<p>I'm trying to decide between mechanical engineering and comp sci right now. Im more interested in comp sci but i have no experience with it other than a few online lectures and some karel programming. I know that majoring in comp sci doesn't require any previous experience, but do people who have experience generally do much better than people without it?</p>
<p>It’ll be some extra work, but not much. If you’re starting next Fall, you’ll have plenty of time to teach yourself whatever language your university starts with. Some questions:</p>
<p>1) Find out what language does your University start with.
2) Go rent or buy a cheap book along the lines of “____ for Dummies” or “Teach yourself ____ in 24 hours” or “_____ the easy way”. Read through it, work through the exercises, etc.
3) Write a ton of programs. Write a program for everything. Write silly programs that do nothing, and write interesting ones.</p>
<p>You’ll be abundantly fine.</p>
<p>While this is a short note, it comes from lots of experience seeing how people like CS in college. </p>
<p>So here it is – major in CS only if you really see yourself liking the programming culture. If you have no experience, but really like the idea of pounding away at bugs and such things, and getting programs to work, and figuring out efficient solutions to problems, fine. Don’t try to convince yourself that you <em>will</em> like these things if your gut instinct is that you won’t. </p>
<p>There is, of course, CS theory which avoids the entire coding aspect, but this route leads to academia, and you have to be tremendously over-intellectual + interested + of a special kind of character to make it in that track.</p>
<p>CS is really more than just programming, you know. Even if you don’t go in to theory, the problem-solving aspects of the CS major - the sort of “jack of all trades” programming assignments - can be quite interesting, or at least I’ve thought so.</p>
<p>The above is true – however, I think generally among people considering CS, the main reason to be wary if you don’t have experience is <em>not</em> that you don’t like interesting problems. I don’t think most English or history types are going to try to do CS :), probably people who like interesting problems + logical thinking. However, the big reality check seems to be if you can handle the coding aspect.</p>
<p>And face it, theory limits options, which is bad, unless you’re super set on an academic position (for instance like me) and don’t care.</p>
<p>
</p>
<p>Not always. A non-negligible number of people with experience come in thinking that they are hot **** superstars and have nothing to learn, that they are just there because the piece of paper is useful for getting jobs. These people tend not to do all that well until they get their acts together.</p>
<p>“And face it, theory limits options,”</p>
<p>I’m not sure where that comes from but there are large software outfits where you are expected to know the theory as there will be meetings and discussions where understanding will be taken for granted in a group of software engineers.</p>
<p>My experience is that some previous experience helps. Math knowledge helps. Doing puzzles helps.</p>
<p>
</p>
<p>Comp sci is not really a difficult subject and most people who come in with experience have experience in programming and other computer development tasks. What they tend to have trouble with is math, well because its dumb and useless in most cases. </p>
<p>Ive been in groups with guys who were 50 and some who were 30 and Il tell you, they brought more to the table than most professors did. The reason is, most of these guys were self employed and this was their craft, it was how they ate and fed there families. Ive seen a student completely make a professor irrelevant during class before. </p>
<p>GPA really means nothing in CS for this reason also. Most of these older guys with years of exp. really dont care about there grades because all they want is a degree. Sure they could try and get a high gpa, but there is no need to. The skills they have speak for thenselves. The years of work exp, speak for themselves. Even so, some company’s will not work with contractors who don’t hold at minimum a B.S, so they just want the paper. </p>
<p>I graduated with a 2.8, and dont give a crap about my gpa. I took it easy at school, as there was no need to work hard. Im already a core developer on a major linux distro. Id say my work there speaks louder than a phd in industry at least.</p>
<p>If you take computation theory, and don’t kill yourself you may like the theoretical stuff. Most people hate that class. Its a bloody horror.</p>
<p>My son’s taking theory right now and he tells me that he and one other kid in the course get it. It’s his favorite course so far. You’re right in that just about everyone else in the course hates it.</p>
<p>Most people where I work have masters degrees or Phds and we actually use the theory stuff in the products we build.</p>
<p>“Comp sci is not really a difficult subject and most people who come in with experience have experience in programming and other computer development tasks.”
I’m not sure that’s really a fair statement. It’s not really easier than any other major… you can make any major arbitrarily hard, and whether a particular subject comes naturally to you or not goes a long way towards determining how easy or hard you find it.</p>
<p>“What they tend to have trouble with is math, well because its dumb and useless in most cases.”
Universities aren’t trade schools… the idea, anyway, is that you go there because you want a broad education, and your major is just a “concentration”. Math is one of the most interesting, powerful, and useful subjects in nearly every scientific discipline, and computer science isn’t really any exception. Not only does it let you do computer science, but it provides endless opportunities for computer applications.</p>
<p>“Ive been in groups with guys who were 50 and some who were 30 and Il tell you, they brought more to the table than most professors did.”
Professors aren’t necessarily expected to know about software development in a hands-on way, and that should make sense… it’s not their job to actually write software for industry. But I don’t think it’s fair to say that students bring more to the table than the professors. Professors have done deep, theoretical studies of specific subjects, and to get a PhD you have to produce brand new knowledge in your dissertation. That’s nothing to sneeze at… and without wanting to sound rude, it seems a little cocky to me to say that students “bring more to the table” than their teachers. Different things, maybe, but not more.</p>
<p>“Ive seen a student completely make a professor irrelevant during class before.”
I would be interested to know exactly what happened. I’m guessing that the professor was saying one of the standard things about algorithms, data structures, efficiency, introductory software process, etc. and somebody questioned the wisdom of the approach, and the professor didn’t have an answer. I wouldn’t call that “making the professor irrelevant”, and I think that to even talk like this betrays a lack or respect for one’s teachers. I’ve had professors who I didn’t agree with on certain points, and several times my teachers were blatantly wrong, but I never presumed to know more than them about what they were good at. If I did, perhaps I should have a PhD too and teach the class.</p>
<p>“GPA really means nothing in CS for this reason also.”
Again, what a great attitude. </p>
<p>"Even so, some company’s will not work with contractors who don’t hold at minimum a B.S, so they just want the paper. "
Perhaps what you’re saying is meant only to apply to these people. By all means, if all you want out of college (and life in general) is a piece of paper to get a job, everything Dr. Horse says is applicable. If, on the other hand, you went to college with the hope to learn as much as you can, broaden mental horizons, etc. then you should probably disregard those jaded comments.</p>
<p>I don’t mean to be too contrary, but you must admit that your post was a little disparaging to a field that many people find genuinely interesting from an academic point of view.</p>
<p>The thing is, you don’t need a college education to learn. I went to a pretty good CS school and like I have said before, the education is nothing more than a summation of Wikipedia articles. You go to college for a degre, nothing more.</p>
<p>I think differences of opinion are what make the world an interesting place. I just wanted others to know that there are people who have a different estimation of the scope and utility of a college education. That’s all…</p>
<p>I would disagree with Dr. Horse on the Wikipedia thing but my son continually tells me that he doesn’t learn anything in class. He studies all of the materials before the course starts and knows it so that classroom time is just review.</p>
<p>I also went the route that Dr. Horse talks about: working in industry and then getting my degrees. Getting the degrees was pretty easy with work experience. I didn’t have the theoretical background when I moved into engineering and there were things that I didn’t understand - the MSCS filled those things in so that I could communicate with co-workers and understand how various algorithms worked. Back then we didn’t have Wikipedia or the web. Learning was transmitted through books and people.</p>
<p>I’m a self-learner as is my son. I think that most people aren’t self-learners which is why we have college. Perhaps Dr. Horse is a self-learner too.</p>
<p>I would definately disagree with Dr. Horse. It’s true some profs are a annoying and a particularly bad one I have this semester is making the class harder it seems. I still would say that computer science as a college degree challenges you and makes you think in ways you most likely wouldnt otherwise. Yeah you can get by with a gpa below 3.0…but why PAY to go to college if you are not going to try? Also the doors will be initially open farther if you’re GPA is higher. </p>
<p>I would say Im a self learner, but college also gives you exposure to figure out what you want to do in comp sci…which is something you may not be exposed to otherwise ;).</p>
<p>Back in the 1970s and 1980s, you could get programming jobs (and sometimes engineering jobs) without a degree. You could learn on your own or in high-school (our high-school was one of the first in the state to get its own time-sharing computer) and demand was strong enough that they would take someone that could do the job. Back then, many employers would pay for your college expenses so computer companies with large numbers of programmers and engineers without degrees had lots of those employees in college getting their degrees.</p>
<p>In the late 1980s, it became more difficult to get programming and engineering jobs without degrees as recruiters and HR departments used the degree as a screening tool.</p>
<p>I know one guy in his early 50s who is a project leader for an important product that doesn’t have a college degree. He’s an engineer and he takes courses from time to time but has never felt the desire to finish off the degree.</p>
<p>
</p>
<p>I feel we have colleges and schools in general because people are just to lazy to learn bu themselves. They don’t have the obedience to learn 4 years of material on there own. While advanced classes that one would take for a masters might not be on Wikipedia, the fact is a lot of the material is still there and that applies to all engineering and science. </p>
<p>I mean I dont like to say it, but its the truth especially in a undergrad curriculum. There is nothing in any of those classes that you cannot learn fully by yourself by either getting a book or going online. </p>
<p>
</p>
<p>ok so if you self study and mirror the curriculum of your favorite U, then why wouldn’t you get the same result. </p>
<p>Both of you guys say you disagree with me, then come back and well kind of agree with me.</p>
<p>My disagreement is instinctual based on credentialism. I know some people that self-learn very well but I know many others that went through the process and they are very, very good too. I see far more of the latter.</p>
<p>I don’t know if it is lazyness or the way people learn.</p>
<p>Our daughter does not have the same capability to self-learn that our son has. She needs more help and handholding in general.</p>
<p>Part of the homeschooling movement is dependent on the self-learner model. If you get your kids to learn using self-paced materials, online materials or textbooks that they go through themselves, you set them up to be independent from schools in learning. Maybe it’s the school system itself that gets kids to expect someone to teach them.</p>
<p>Well, I guess Dr. Horse is right, to a certain extent. Schools are all useless because, at the end of the day, it’s the student who decides what they will learn, not the teacher.</p>
<p>Why do we have any schools? You can learn anything on your own.</p>
<p>I’ve worked with people ranging the entire spectrum from never went to college to have PhDs. To a certain extent, some self-teaching is necessary in CS, because there is far more information than can be covered in any classes one might take. There are advantages to going to school, such as having access to other students for collaboration; being able to draw upon the wisdom of professors/TAs to provide insights one might not come up with on one’s own; access to labs that might otherwise be difficult to gain access to or build oneself. Some people don’t need these advantages, or are fortunate enough in their careers that they don’t get burned by a lack of a certain type of information or skill.</p>
<p>jessiehl is completely right. It can actually be easier to do better than the people with experience, because they skip class thinking they know everything they need to and don’t study out of a false sense of security. Try it if you think you’ll like it, you can always stop if you don’t and you’ll have a basic programming course under your belt. That can’t hurt!</p>