I am a student of computer engineering. I have never done any programming before, and as you can understand, I don't know how to study it or how to make my own programs. My English is weak [edited for clarity - ed], and so if you don't like the choices I list, please feel free to provide others.

How should I study? How should I learn programming languages?

  1. Study completely from a book.
  2. Don't study from a book, just try writing code.
  3. A mix of the two; study from a book, then try writing code.
  4. Study half the book, then write the code by hand on paper.
  5. Listed to the teacher, then try to solve general problems (those not from any specific chapter).
  • 4
    This is very similar to a previous question (now deleted) that was closed as being not constructive. What works for others isn't necessarily going to work for you and you've already listed possible styles, so I don't see what use a list of learning styles is going to be.
    – ChrisF
    Commented Feb 7, 2011 at 11:54
  • 1
    Well, you won't get anywhere without practice. And you won't get anywhere (if you're really "lucky", you'll get to something remotely working but otherwise horrible) by trial and error. Note that this is not really programming-specific ;)
    – user7043
    Commented Feb 7, 2011 at 12:03

4 Answers 4


You may want to review the answers to "Algorithm for Learning development".

Depending on your personal learning style (visual, audio or tactile) I'd go with getting a recommended book, reading a bit, writing a lot - you learn by doing - and getting deeper into the language.

Higher level languages are generally easier to pick up and work with than lower level ones so perhaps start with one of these: JavaScript, Java, C#, PHP, Ruby, Io or Lisp.

  • this question should be closed, and the answer to point to "Algorithm for Learning development".
    – RBA
    Commented Feb 7, 2011 at 13:01
  • @RBA You have a good point, and I considered a vote to close as duplicate, but this is a little different in it's approach and can act as a gateway question to the one I offered.
    – Gary
    Commented Feb 7, 2011 at 13:13

The single most important thing to do when learning to program is to actually write programs. Compare it to learning to playing an instrument - you simply need to practice, and on a regular basis while challenging yourself.

But you also need to know what to code and how. This is where the teacher comes in - and a book if you don't have any teacher - as he/she will know where you need to go and how to get there the best.

For learning a new language, the Project Euler problems are really nice, as they allow you to focus on a simple, well-specified task while figuring out all the nasty little details like "oh, the static keyword in Java is important?".

And above all, programming isn't easy, so it is a long journey you have started. Do not give up just because you don't get it in five minutes.


That depends on you personal learning style. I prefer to read a book or a web page and try writing a small app. That way I can decide on the speed. In a class the teacher decides on the speed and I might either get bored if the speed is too low or I get left behind if the speed is too high.


You should definitely buy a book and study with it. You probably won't gather much of the information you'd like by just reading the book - practice is essential to a programmer, also in the learning phase.

Also take notes of the important points you come across. Especially about the fundamentals, as it is somehow quite easy to forget even the simplest things in programming.

Anyway, I recommend you to start easy with a book and an interpreter/compiler (whatever suits your needs). So go with option 3 (and occasionally 5), but don't let it prevent you from exploring your newly acquired knowledge - be creative, develop while learning, and so on. That's the best way to study programming languages.