News for hackers. Stuff that matters.
Re:How should I get started with programming? Which language... by scythe on Wednesday February 02, 2011 @05:11AM (#2169727)
I'm going to break the rules here and answer two languages.

First, you should learn one of the easy dynamic languages. This means Perl, PHP, Python, Ruby, Lua, Clojure. I think Ruby is a good choice because it has a lot of cool concepts built in to the core language that the others lack, and so it can be a foundation for learning many different styles of programming -- it does this, in my opinion, better than Python, and has a nicer syntax than Perl. _why's poignant guide to ruby is a bit outdated but still a pretty awesome and cool introduction.

http://mislav.uniqpath.com/poignant-guide/

Second, and this might come as a shock, some form of basic assembler. I recommend LC-3 assembler. And the main reason here is that a decent understanding of the memory model is going to help you a lot when it comes to dealing with pointers, complex data structures, or anything, really. You'll probably never write a program longer than 100 lines in LC-3, but the short things you do write will give you a deeper understanding of your code everywhere else.

http://en.wikipedia.org/wiki/LC-3

http://highered.mcgraw-hill.com/sites/0072467509/student_vie...

There may actually be a newer "learning assembler"-styled language out there, but I am not aware of it. LC-3 is showing its age, but it was great when I learned to program, and I learned as much programming for three months in LC-3 as two years prior in Java.

That said, you should definitely familiarize yourself with control structures prior to jumping into assembler or you could break your brain.

Re:How should I get started with programming? Which language... by SoftwareMaven on Wednesday February 02, 2011 @12:23PM (#2171060)
Learning some assembly should be required for anybody who wants to make a career writing software and is very valuable for hobbyists. I don't know that I would start there, but at some point along the way, understanding what that nice, high level language is really doing down at the metal makes for much better engineers.