|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
Also not everyone can train to be an Olympic athlete either, otherwise we wouldn't care and there would be nothing special about them. You should really read up on genetics.
This is what I said. Not everyone is equal, but anyone without a disability can train to be good enough for any day-to-day task. You won't be an athlete ever, sure, but you'll get the job done.
Learning difficulties etc. could be counted as disabilities in my books, if they are genetic and not caused by environment (bad parents, incompetent teachers etc.).
However I have met too many people who simple refuse to learn anything. Provide them with a problem, and they discard it immediately. How can you know something if you never even try to learn? Those people don't suffer from "low intelligence", they suffer from laziness.
|
On February 14 2013 21:28 mcc wrote:Show nested quote +On February 14 2013 21:21 Fwmeh wrote:On February 14 2013 21:03 adwodon wrote:On February 14 2013 20:40 Greentellon wrote: I love to use this when talking about IQ or intelligence: brain is like a muscle. Sure, not everyone is an olympic level athlete, but anyone can train to be good enough.
Anyone with a functioning brain can train themselves to be good enough to succeed in programming. You don't understand the brain at all. That is absolutely not true, learning difficulties and low intelligence aren't down to laziness and suggesting so would probably offend a lot of people, including psychologists / neuroscientists who actually study these things. Unless of course your 'functioning brain' caveat doesn't include people of low intelligence or that by succeeding in programming they can successfully compile a Hello World programme. Were you ever to meet someone 'brilliant' you would understand this without question. I met a man when doing my masters in physics who has been introduced to nobel laureates and was highly praised as brilliant and I can assure you, no amount of hard work would ever allow me to attain even an inch of his brilliance. That is also an extreme example, I can name people who work hard and achieve good things, others who work hard and are only mediocre, some poor people even work very hard and achieve little. Very few will succeed without working hard, simply because there are a lot of smart people in this world, but an intelligent man putting in little effort will still outshine someone below average putting in a significant one, at least in academic matters. Also not everyone can train to be an Olympic athlete either, otherwise we wouldn't care and there would be nothing special about them. You should really read up on genetics. This is not supported by research on expert performance, actually... I doubt that is the case, but I would blame this difference in opinion on misunderstanding of what he means. To avoid that maybe you should expand what you mean exactly. I took his post to mean that he believes that there are levels of expertise only reachable through "natural talent" (not well defined in this instance, but w/e), specifically from that part where he says that "no amount of hard work would ever allow me to attain even an inch of his brilliance."
There is research on what makes people achieve "brilliance" in a field, and so far they have been unable to discover this "natural talent". Thus, my meaning is inform that current research in this area does not support the above notion. This has nothing at all to do with my opinion, only with my understand of the current state of research in this particular area.
edit: The Cambridge Handbook of Expertise and Expert Performance is a summary of the current state of research.
|
|
|
On February 14 2013 21:41 Fwmeh wrote:Show nested quote +On February 14 2013 21:28 mcc wrote:On February 14 2013 21:21 Fwmeh wrote:On February 14 2013 21:03 adwodon wrote:On February 14 2013 20:40 Greentellon wrote: I love to use this when talking about IQ or intelligence: brain is like a muscle. Sure, not everyone is an olympic level athlete, but anyone can train to be good enough.
Anyone with a functioning brain can train themselves to be good enough to succeed in programming. You don't understand the brain at all. That is absolutely not true, learning difficulties and low intelligence aren't down to laziness and suggesting so would probably offend a lot of people, including psychologists / neuroscientists who actually study these things. Unless of course your 'functioning brain' caveat doesn't include people of low intelligence or that by succeeding in programming they can successfully compile a Hello World programme. Were you ever to meet someone 'brilliant' you would understand this without question. I met a man when doing my masters in physics who has been introduced to nobel laureates and was highly praised as brilliant and I can assure you, no amount of hard work would ever allow me to attain even an inch of his brilliance. That is also an extreme example, I can name people who work hard and achieve good things, others who work hard and are only mediocre, some poor people even work very hard and achieve little. Very few will succeed without working hard, simply because there are a lot of smart people in this world, but an intelligent man putting in little effort will still outshine someone below average putting in a significant one, at least in academic matters. Also not everyone can train to be an Olympic athlete either, otherwise we wouldn't care and there would be nothing special about them. You should really read up on genetics. This is not supported by research on expert performance, actually... I doubt that is the case, but I would blame this difference in opinion on misunderstanding of what he means. To avoid that maybe you should expand what you mean exactly. I took his post to mean that he believes that there are levels of expertise only reachable through "natural talent" (not well defined in this instance, but w/e), specifically from that part where he says that "no amount of hard work would ever allow me to attain even an inch of his brilliance." There is research on what makes people achieve "brilliance" in a field, and so far they have been unable to discover this "natural talent". Thus, my meaning is inform that current research in this area does not support the above notion. This has nothing at all to do with my opinion, only with my understand of the current state of research in this particular area. The inability to achieve "brilliance" is rather clear in some areas, in some others it is not so clear. The research that I know of mostly pertains to areas where experience trumps talent to high degree and thus conclusion is what you say. In others the talent has much bigger impact, but even there hard work is necessary to reach the top, as there is a lot of people with talent. Only in very few areas talent is nearly completely dominant, and programming is not one of them. But saying that everyone who is not mentally deficient can be a good programmer with enough effort is rather improbable. Also note that mental deficiency is not clearly defined in the sense that the scale is continuous so the cutoff line is to some degree arbitrary. The continuous nature of mental abilities is also the reason why it is very probable that there are degrees of problems that can be solved by people that have sufficient level of innate ability (brain structural differences) and not those that do not have them. Reason being that there are people who cannot comprehend higher math ever (see the mentally retarded). And since the scale of mental abilities is continuous and complexity of problems also it is rather probable to think that there are different limits a person can achieve, but never cross. That is true also for the "talented" people, they also have lines they cannot cross. There is no reason other than political correctness to think that what is true in the realm of physical abilities is not true in the realm of mental ones.
Also word expert is not what he really was talking about. Experts are plenty in every area, "geniuses" are few and statistical analysis is much harder to do. Even the connotation of the words is pretty clear, expert is someone with a lot of experience (effort), genius is someone with innate talent.
Anyway if we want to get out of speculating you would need to actually mention studies that you are referring to.
EDIT: All this is far beyond standard programming work.
|
Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.
Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.
I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.
|
On February 15 2013 12:18 Cyx. wrote: Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.
Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.
I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.
I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two.
If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there.
If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?)
Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics)
If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS.
Just check out MIT's opencourseware. It's good.
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
|
On February 15 2013 12:56 Abductedonut wrote:Show nested quote +On February 15 2013 12:18 Cyx. wrote: Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.
Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.
I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component. I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two. If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there. If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?) Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics) If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS. Just check out MIT's opencourseware. It's good. http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
You definitely do sound like a douche. While programming isn't all of what a CS/SE student should focus on, it's not worth any effort to learn any of the things you mention. I don't think I've met a software engineer who has used any calculus, linear algebra, or differential equations in their life. I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.
Algorithms is also important to software engineers, but honestly, once you recognize when to use what algorithms, it's pretty straightforward.
And unless you're doing embedded systems, you don't need physics or electrical engineering in any way.
Find me a software engineer who makes a living doing something other than programming... And basically all software architects were software engineers at some point... programming.
It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).
|
On February 15 2013 12:18 Cyx. wrote: Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.
Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.
I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.
Honestly if I was starting off again, I would delve right into Android app developing. I did some recently, and it's very easy to get an app off the ground. As you go you will learn things. Just think of an app to make and do it. It's fun, rewarding, and it feels like you're actually making something, as opposed to doing some dumb assignments in C++ to print binary trees or something.
|
On February 15 2013 13:17 aurum510 wrote: I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.
Discrete math and logic is mathematics. It's actually the "other" branch of mathematics that you don't explore until college (which is arguably backwards because logic benefits the everyday student much more than calculus). And in many ways, discrete math is the foundations on which all other math is built on. Consequently it plays a big role in computer science and its importance cannot be understated.
On February 15 2013 13:17 aurum510 wrote: It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).
Such jobs exist, e.g., technology-focused entrepreneurship, technology-focused law practice (esp. around software patents), software development product managers, UX designers, tech writers, or education.
|
On February 15 2013 14:16 Kambing wrote:Show nested quote +On February 15 2013 13:17 aurum510 wrote: I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.
Discrete math and logic is mathematics. It's actually the "other" branch of mathematics that you don't explore until college (which is arguably backwards because logic benefits the everyday student much more than calculus). And in many ways, discrete math is the foundations on which all other math is built on. Consequently it plays a big role in computer science and its importance cannot be understated.. Discrete math is very much math, I can't understand why people wouldn't call it that.
@Underlined part: I studied discrete math in high-school, and last semester I did study it again on my university. And content wise, it was mostly the same stuff that I studied again. We even had lectures together with a high-school class
|
On February 15 2013 14:29 WindWolf wrote:Show nested quote +On February 15 2013 14:16 Kambing wrote:On February 15 2013 13:17 aurum510 wrote: I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.
Discrete math and logic is mathematics. It's actually the "other" branch of mathematics that you don't explore until college (which is arguably backwards because logic benefits the everyday student much more than calculus). And in many ways, discrete math is the foundations on which all other math is built on. Consequently it plays a big role in computer science and its importance cannot be understated.. Discrete math is very much math, I can't understand why people wouldn't call it that. @Underlined part: I studied discrete math in high-school, and last semester I did study it again on my university. And content wise, it was mostly the same stuff that I studied again. We even had lectures together with a high-school class
You're super lucky. The traditional high school curriculum doesn't expose students to any kind of discrete math. This ends up being one of the major barriers to entry in an intro CS sequence as many students don't have the training/natural intuition for the sorts of logical thinking that programming requires.
|
Heavy mathematics will be used for certain algorithms. However, that type of thing typically makes up a very small portion of overall development. If you have the background, you can be the one guy who gets tasked with developing and/or optimizing those algorithms, but it's certainly not a critical skill set to have.
|
On February 15 2013 14:34 Kambing wrote:Show nested quote +On February 15 2013 14:29 WindWolf wrote:On February 15 2013 14:16 Kambing wrote:On February 15 2013 13:17 aurum510 wrote: I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.
Discrete math and logic is mathematics. It's actually the "other" branch of mathematics that you don't explore until college (which is arguably backwards because logic benefits the everyday student much more than calculus). And in many ways, discrete math is the foundations on which all other math is built on. Consequently it plays a big role in computer science and its importance cannot be understated.. Discrete math is very much math, I can't understand why people wouldn't call it that. @Underlined part: I studied discrete math in high-school, and last semester I did study it again on my university. And content wise, it was mostly the same stuff that I studied again. We even had lectures together with a high-school class You're super lucky. The traditional high school curriculum doesn't expose students to any kind of discrete math. This ends up being one of the major barriers to entry in an intro CS sequence as many students don't have the training/natural intuition for the sorts of logical thinking that programming requires. Things in Sweden must be different from those in the US, because at least when I studied, you could read natural science with (slight) focus on math and programming at high-school
|
On February 15 2013 14:48 WindWolf wrote:Show nested quote +On February 15 2013 14:34 Kambing wrote:On February 15 2013 14:29 WindWolf wrote:On February 15 2013 14:16 Kambing wrote:On February 15 2013 13:17 aurum510 wrote: I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.
Discrete math and logic is mathematics. It's actually the "other" branch of mathematics that you don't explore until college (which is arguably backwards because logic benefits the everyday student much more than calculus). And in many ways, discrete math is the foundations on which all other math is built on. Consequently it plays a big role in computer science and its importance cannot be understated.. Discrete math is very much math, I can't understand why people wouldn't call it that. @Underlined part: I studied discrete math in high-school, and last semester I did study it again on my university. And content wise, it was mostly the same stuff that I studied again. We even had lectures together with a high-school class You're super lucky. The traditional high school curriculum doesn't expose students to any kind of discrete math. This ends up being one of the major barriers to entry in an intro CS sequence as many students don't have the training/natural intuition for the sorts of logical thinking that programming requires. Things in Sweden must be different from those in the US, because at least when I studied, you could read natural science with (slight) focus on math and programming at high-school
It is. Part of the side effect of standardization of the HS curriculum here is that some subjects get pushed to the wayside as electives and then are summarily ignored by schools (to their credit, usually due to budget and capability). For example, computer science is considered an elective in most, if not all states, and as such doesn't get the same level of treatment as chemistry and biology.
http://www.usnews.com/education/blogs/high-school-notes/2012/10/01/high-schools-not-meeting-stem-demand
|
On February 15 2013 14:38 Craton wrote: Heavy mathematics will be used for certain algorithms. However, that type of thing typically makes up a very small portion of overall development. If you have the background, you can be the one guy who gets tasked with developing and/or optimizing those algorithms, but it's certainly not a critical skill set to have.
It's true that intensive algorithm design is not something that the everyday programmer has to do. However, mathematical training affects a developer well-beyond algorithm design. Simply reasoning about programs in a precise, scientific way requires discrete mathematics, e.g., reasoning about program flow and invariants or understanding the computational complexity of your programs.
|
On February 15 2013 12:56 Abductedonut wrote:Show nested quote +On February 15 2013 12:18 Cyx. wrote: Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.
Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.
I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component. I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two. If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there. If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?) Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics) If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS. Just check out MIT's opencourseware. It's good. http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
Well, to give you a bit of background on me - I'm well aware that programming is very much math and that's why I love it. I currently work as a math tutor for high school and first-year university students and my math classes are consistently my best marks. Math isn't my problem, nor is it what I want to focus on right now in my spare time either - so since I already have passed every math course you mentioned except differential equations, including a couple of stats classes, let's just assume I have a pretty good grasp of that side of it and want some good resources for learning the programming side of it in my spare time.
EDIT: That being said, MIT's opencourseware does look like it could be very much like what I want, so despite you maybe coming off as a little bit of a douche, thank you! This site looks like it should be able to not only give me a decent idea of what I'll come up against but also let me get some practice on it which is exactly what I need so you were really helpful =)
|
If you need anything but programming from CS education depends on what you want to do after. If you're just aiming to be a standard business applications programmer, then duh, yeah you're never going to need anything besides programming knowledge and knowledge of good systems design.
But:
You want to go into research or work at a company that does a lot of research related stuff (all applied sciences that need programming [theres a lot] like image and audio compression, video and audio processing in general [this includes game programming], machine learning, well there's really a huge list here. Just think of any big company that you can think off that got rich on some kind of technology [this includes stuff like medicine]), there's no way to get around the stuff (among others, math) that so many of you describe as being useless to a programmer.
But that's just the things that require stuff like math as a baseline. If you want to be at the top of your field, you should have a lot of knowledge in a lot of different theoretical fields, because then you're going to be the guy who is able to draw connections between related problems and come up with solutions that nobody else can, or you're going to be the guy who invents an awesome algorithm that is based on some weird theoretical math problem that nobody ever thought would have any application.
In general, if you want to actually invent useful things and make the world a more technologically advanced place as a programmer, you're going to need a lot of skills that an average programmer doesn't have.
Of course the standard average programmer Joe can say goodbye to math after graduation, but imo university and even college education should train you to be able to become the elite, not the baseline programmer. Becoming a good average programmer doesn't need any formal education (in fact, no formal education in the world will make you a good programmer), just experience and a decent amount of common sense.
|
So, as a first year software-engineering student that doesn't just want to program for the rest of my life: Can I just stick out the course, and be able to do some exciting jobs later in life, or should I change to a "real" engineering degree like EE? Or I was thinking of maybe taking a Business/management masters after, if not a more technical CS one. So far I've done pretty well in all my courses, including Math, but just programming itself is not very... exciting to me, so far.
|
On February 15 2013 12:18 Cyx. wrote:I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers Get a copy of K&R
On February 15 2013 12:18 Cyx. wrote:sorting algorithms Get a copy of Knuth vol 3
On February 15 2013 12:18 Cyx. wrote:basic Java programming... Find any tutorial online and write hello world. Then find any source of basic programming puzzles/questions and grind out as many as you can.
On February 15 2013 17:11 junseung wrote: So, as a first year software-engineering student that doesn't just want to program for the rest of my life: Can I just stick out the course, and be able to do some exciting jobs later in life, or should I change to a "real" engineering degree like EE? Or I was thinking of maybe taking a Business/management masters after, if not a more technical CS one. So far I've done pretty well in all my courses, including Math, but just programming itself is not very... exciting to me, so far. If you're ok with writing code for a few years or more, then you can stick on Software Engineering and be one of the many guys who transitions into being manager / PM / etc. Or you can just go do software engineering straight into a master's degree without any experience and then try to land a PM/manager job right out of the gates, that's pretty common too.
|
On February 15 2013 12:56 Abductedonut wrote: I hate to sound like a douche... You poor guy .
I'm sure your advice is well-intentioned, but it's a bit silly. There are obviously fields of application for a CS degree that don't require programming, but you're trying to make it sound like writing code is a secondary skill. That's like saying that knowing how to use tools is a secondary skill to a carpenter - there's obviously a lot of field-specific additional knowledge that a computer scientist will need professionally, but which set of knowledge that turns out to be is entirely dependent on the kind of work you end up doing.
For example, I ended up in web application development, so all of the things you just suggested the guy learn are actually useless to me. I took a huge amount of math and physics at university, and I'm glad I did because I like knowing those things, but I use none of it professionally. If I were advising someone on what to learn in addition to the basics of programming, using the same kind of blindered bias that you're using in your advice, I'd say just read W3C specs, learn how TCP/IP and HTTP work, learn RESTful principles, and so on and so on. Only the person I'm giving advice to might be interested in doing physics simulations on massively parallel systems, where knowing the semantic significance of the <main> element isn't going to be of any more use than multivariable algebra is to me.
|
|
|
|
|
|