What do you need going in?

<p>Just to repost something I had posted in a random double majors thread and I hoped to get an answer for by posting here:</p>

<p>
[quote]
To further the question asked earlier about C++ and stuff,
the underground guide to course 6 says that one of the prereqs for 6.001 is programming experiance.</p>

<p>What do we really need to know/what should I learn if I don't already know over summer?

[/quote]
</p>

<p>Same applies for all majors/classes. Is there anything you current students wished you had been better at going in?</p>

<p>I am told that programming experience isn't a requirement, but it can help. I've also been told that extensive OOP experience can actually harm you.</p>

<p>Really? I don't understand how OOP experience could harm you... could you elaborate on that (or on how the class is different to make OOP knowledge harmful)?</p>

<p>I think the general interpretation is that it's a difference of thinking styles -- the professors are trying to get you to think about how to do things, and if you think you already know how to do them but your professors disagree, things are not going to be pretty for you. So it's not that the knowledge harms you per se, but it harms you if you are too stubborn to realize that there's a lot left to learn.</p>

<p>Personally, I wish I'd taken AP Chem and AP Physics in high school, or self-studied the summer before freshman year, or anything other than what really happened. Going in with weak prep in chemistry and very weak prep in physics makes for a not-so-fun first semester.</p>

<p>I'd definitely agree with Mollie. I haven't taken 6.001...being a prefrosh and everything...but our high school taught its junior year CS class in Scheme, and the programming paradigm shift is definitely a shocker for someone who'd been raised on OOP languages like Java. The shift to a functional language was actually enough to make me despise Scheme for the first 3/4 of the year, but after a few things clicked in my mind, I really came to love it.</p>

<p>If you're worried about it though, I highly recommend checking out the textbook online at <a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start%5B/url%5D"&gt;http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start&lt;/a>. You can download DrScheme at <a href="http://www.drscheme.org/%5B/url%5D"&gt;http://www.drscheme.org/&lt;/a> and get started playing around with it :)</p>

<p>Hint: Functions are first-class objects, check out the map and filter functions. Those were the first bits of functional programming I learned, and it was ridiculously cool.</p>

<p>Thanks for the link to the book! I'm Java/C++/NQC born and bred, so I'm very interested to see what Scheme is all about. :)</p>

<p>I really don't think that's true, I thought my Java OOP experience helped a lot
Maybe if you just learned java as a bunch of methods/techniques instead of intuitively... all programming languages are basically equivalent</p>