How should I get started with programming?

marco:

Which language should I learn first? 

No language is “too hard” for first-timers. Programming is naturally complex and unforgiving, and that’s going to be intimidating at first. You’ll face the same challenges as a new programmer in any language.

I took Russian in 9th grade. We had an exchange teacher from Moscow, for whom English was a distant second language, and while she was great at teaching us the alphabet and pronunciation, I had no clue what she was talking about when it came to things like declensions and conjugations. It made the whole experience completely joyless (and not just because I was 14). Fast-forward a year, when I gave up on the русский язык and switched to Latin and Spanish, and suddenly all of that made sense and I liked learning languages again. I think the same goes for programming languages. 

Marco has some great advice for first time programmers here, but I disagree with the “No language is too hard” statement. It isn’t that a language is too hard, but it is very easy to get caught up in syntax and sugar and esoteric implementation details, get frustrated when you have absolutely nothing working, and give up. I think, for most people, it will be much more satisfying and fun to start out with something simple that you can quickly get functional and iterate on while learning the fundamentals of programming (operators, iterators, functions, objects, etc.).

I’ve been coding professionally for almost half of my life at this point. Language-wise, I happened to start with C/C++, then Perl, PHP, Java, and now Ruby, with a smattering of proprietary languages and one off projects along the way. Once you know what you’re doing, the basics of a new language really aren’t a huge deal, but unless you grasp the general concepts, they are all impossible. 

(Source: marco)