Computer Science

<p>Do I need to know computer programming and languages like Java or C++ or anything other than the usual stuff before I go to college for a major in Computer Science ans Math? I'm a sophomore, so if I have to learn anything, I think I should start now...?</p>

<p>Of course, I don’t want to be the only one at college who’s without a clue about anything in the CS class. I’m looking at UC Berkely, and I believe people there are born programmers.</p>

<p>For me, I found that having some programming experience is quite helpful, but being very comfortable with math is invaluable. I’m not sure how the curriculum at my school (Carnegie Mellon) differs, but I imagine it’s relatively similar to UCB. In my experience, introductory courses assumed little experience programming, but required you to be very good at mathematical thinking. I feel like you could do pretty well at my school with absolutely no previous programming experience, but if math isn’t your thing, you’re in for a few nightmare courses. In particular, there’s this dreaded class “Great Theoretical Ideas in Computer Science” that takes the average CS student 20-30 hours per week to complete the group-work assignments. </p>

<p>Looking at the UCB EECS website, I saw this: “If you want to study CS at Berkeley, you should enjoy mathematics! You should also be prepared for hard work and long hours of programming.” It’s hard from me to tell from this statement how helpful prior programming experience is, but it seems to confirm that math experience is perhaps more important.</p>

<p>Considering that you’re planning on majoring in Computer Science and Math (that’s my major too!) I assume you like math and/or are quite good at it, so this is definitely a plus. For me, I found math competitions such as the AMC to be absolutely invaluable for helping me learn more about math and become more comfortable with it. My classes here would have been a completely different experience without them. They’re not for everyone, but personally I think they would absolutely give you an edge over most over students at even the top schools for CS.</p>

<p>This isn’t to say that programming experience isn’t helpful: I think it’s great. It’s a little hard for me to tell exactly how much it helped me, but I’ve never really heard any students complaining about the coding portions of an assignment being tricky, while I’ve heard many complain about how hard the math or algorithms were. I think that more important than learning any specific programming language is the sort of “algorithmic mindset” you get from having programming experience. You want to become very fluent at going from the description of a task to an algorithm to make a computer do that task. Since I’ve known how to program for what feels like a pretty long time now, I kind of assumed that was just obvious to everyone, but after helping someone out with programming homework I realized that it’s an acquired skill just like everything else. I think it would be really nice to be comfortable with this skill before majoring in CS.</p>

<p>Thanks, GaussianInteger. I do love math. I was gonna go for a math major only, but I thought CS along with it’d give me more opportunities.</p>

<p>DracoPi, what do you mean by “the usual stuff”?</p>

<p>For college, you don’t need to know a programming language. There are courses that assume the students are learning their first language. These lead up to upper-division courses and degrees. However, a bit of experience writing code and toying with operating systems can be the difference between lower-division courses feeling like difficult “weed-out” courses and feeling like refreshers on what you’ve already learned.</p>

<p>College, of course, is just a jump start. As a programmer, you need to be familiar with a wide range of paradigms and very fluent in at least a couple languages. The most important thing to consider here is that no programmer is ever done learning; a good professional learns just as much every day as does a beginning student. That process doesn’t end until you die and the sooner you begin familiarizing yourself with a programming language, the better.</p>