<p>Seems like most everyone in the program has been coding since elementary school. I took AP Comp Sci in senior year, got a 4 on the AP, and tested out of one semester because of it, but due to some scheduling complexities I'm not even in a real CS class this semester. (Next, however, I will have both Object-Oriented Programming and Optimization.)</p>
<p>Is there anything I'd really better learn now so that, even if I'm not technically behind, I'll know enough to get internships relatively early, be capable of undergrad research, be as prepared for jobs as my major-mates, and in general hold intelligent discussions on the subject? C++, perhaps? (I've tried the Bloodshed compiler, but it's horrible.)</p>
<p>You might start studying data structures, since they are an important foundation of computer science.</p>
<p>I have not done much C++ programming, but I have done quite a bit of C programming. The GNU C/C++ compiler has been suitable for my tasks. Some people would rather use Java or Python.</p>
<p>There are two main approaches to programming: Procedural and Object-Oriented</p>
<p>(Side note: Yes, I know about the LISP’s and PROLOG’s of the world but they are not major)</p>
<p>Procedural…you have covered with C.
For Object-Oriented, C++ will give you that…but…</p>
<p>Your Data Structures course will tighten your skills more. The “Organization of Programming Languages” course will help mold you to be able to learn new languages quickly (a big part of a long-standing software career).</p>
<p>The classmates who are ahead you now in Freshman year will be on the same level come Senior year. The MAIN THING that you want to take from your CS degree is to be able to:
Be presented a computational problem
Formulate a plan (logically) to solve it
Convert the logical plan to code…while
Using the correct data structure(s) and algorithm(s) that will best utilize and optimize the computer resources (speed, memory, space, target language)</p>