I have started to learn to program. I am interested in it and dont mind how long it takes to learn. But I am using books to start out and I find that there are some things I get and some things I have no idea.

I can understand the code when I see an example but I feel completely lost if I were to go out and do something on my own. I have barely any experience: maybe 20 or so hours, which I understand is absolutely nothing.

  • When does everything come together?
  • What are some best ways to learn that anyone else has found?
  • Are there any good projects people have done that have been a great learning experience?

2 Answers 2


The absolute best way to learn how to program is to write code.

There's no way around it, especially as - and you said so yourself - it's the goal in itself.

Reading is For Background and Research

Books, blogs, podcasts and the likes will get you started and give you general background and knowledge at first, and then help you study more complex algorithms or learn about software engineering techniques and best practices.

Get Started

If you want to learn to code, you need to code. Pick a language, find something you want to start working on, and get down to it. Or find a list of small exercices and do them.

Possible Book Suggestions

Several approaches. In any case, it's vital that you actually do what the books tell you to do and don't just simply read them.

For the Practical Mind

If you're the practical kind, these would be good introductory books to coding. That is, if you're curious enough to then go beyond what the books teach you:

Some will say they are light on the details and overlook very important concepts, but the point is to get you going and to enjoy programming quick. So if you're easily distracted and want to see quick results, maybe these are for you.

For the Academic in You

If you're the studious and academic kind, these are good bibles, if you get past the fact you can also use them to kill someone:

Some consider them not a good fit to get started, because they are detached from the reality of software engineering in professional settings (mostly because of the languages and tooling used, but also because of the purity generally sought in the answers).

They are extremely good books though.

For the Life-Long Learner

Or at least for the one who goes beyond just learning the basics and wants to dive into the more arcane areas of the craft, both in terms of algorithmics or in terms of software engineering practices:

Suggested Helpful P.SE Threads

* For some reason unknown to me, I dislike this book very much. Blasphemy, I know, right? Too heavy, hard to navigate (subjective), repeats itself too much and could easily be half-the size. Maybe because I read it too late in my career, I don't know.

  • Why does everyone always leave out The Pragmatic Programmer :(
    – Evicatos
    Commented Feb 27, 2014 at 19:08
  • 1
    @Evicatos: Over-hyped comes to mind, though I did consider naming it in the third section for life-long improvement. It's a good book, just wouldn't use it as the book to start learning though.
    – haylem
    Commented Feb 27, 2014 at 19:10
  • Interesting. I'd actually recommend it over pretty much all the books in your "Life-Long Learner" section for a beginning developer. It's like the ultimate shortcut to all the things a serious software developer needs to at least be familiar with. I can understand your pov though. Although we're going to have to agree to disagree on Pragmatic Programmer, I 100% agree on your assessment of Code Complete.
    – Evicatos
    Commented Feb 27, 2014 at 19:14
  • @Evicatos: I don't think there's ONE perfect book for everyone. I'm sure Code Complete works for many, just not for me, and like I said it might just be because I read it when I didn't really have much use for it. I can see it's a decent book, just not enlightening to me and not written in an appealing manner for my taste. I guess now I prefer "reference" type books for things I know, and things written more in the style of the Pragmatic Programmer for new topics. It's just that when I read it it also didn't bring much to me either. I'll add it in that section though.
    – haylem
    Commented Feb 27, 2014 at 19:16
  • @Evicatos: I mean, it's definitely a different type of book than the AoCP, for instance. But I see both as valuable things to read once you're past a certain level. Overall programmer conscience kind of thing. But I didn't want to give a reading list that's too daunting. There are many things one should read in a career. Doesn't mean you have to to read them all (I still have a great many to go), and we all have blind sports, so I was just trying to capture a few. Could have named the Lambda Papers for instance.
    – haylem
    Commented Feb 27, 2014 at 19:20

How do you learn to swim? By swimming. How do you learn to program? By programming.

You can't learning to swim by just reading books, nor can you learn to program by just reading books (not to say reading is not important, it is important, in addition to practicing).

So start writing simple programs as much as you can, there are a lot of exercises on the internet.

Not the answer you're looking for? Browse other questions tagged or ask your own question.