Help for a beginning programmer (12)

6 Name: #!/usr/bin/anonymous : 2010-12-05 00:11 ID:M2SatZzY

I was going to recommend something earlier but I got lazy. As an experienced coder, I endorse >>4 and >>5's advice.

On top of Java, which will quickly immerse you in the important concepts of object-orientation (Greek for the practice of separating your program into distinct modules and treating them like, well, objects), threads, polymorphism, inheritance, etc, you should briefly work down to C++ and, if you feel like it, C. These'll gradually ease you into lower-level practices like dealing with data at the RAM level and interfacing with other hardware. You'll also pick up a more stringent but cautious conception of syntax, eg. what exactly you mean and specify with each line. Plus these are industry standard languages for intensive processing work as seen in games, financial software, simulations... so its good to know if you ever want to really get your hands dirty.

Maybe after all that you could take a crack at SICP. Be forewarned, however, that it's pretty much intended for college freshmen proficient in the calculus and familiar with programming. If you want to be a Knuth or Sussman (read: computer scientist), this is how you start. But LISP itself is a handy language to learn, as it is what one would call "atomic". Like logic and maths you build from a single element and its possible relations to others, treating the compound as elementary and adding on in the same way. It has been said that LISP enlightens you.

What are your goals for programming? Do you want to contribute to open-source projects? If so then you'd want to learn as many languages as you can. As >>5 pointed out, this is not difficult if you have kept at what you already know. Python, Javascript, Ruby, Perl if you're a masochist... If you just want a casual hobby then stick with two or three languages and make as many different things as you can imagine. Factoring in the possibility of a future job, though, you will want to spread out as much as you can. Being strong in a relatively low-level language and proficient in a multitude of others will make you pretty useful. Maybe you will even want to learn about system administration.

That said, I'm done for now. Good luck!

This thread has been closed. You cannot post in this thread any longer.