Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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).
share|improve this question

closed as off-topic by MichaelT, Corbin March, Dan Pichelman, jmo21, GlenH7 Aug 16 '13 at 11:13

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, Corbin March, jmo21, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

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 Feb 7 '11 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 ;) –  delnan Feb 7 '11 at 12:03

4 Answers 4

up vote 4 down vote accepted

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.

share|improve this answer
    
this question should be closed, and the answer to point to "Algorithm for Learning development". –  RBA Feb 7 '11 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 Rowe Feb 7 '11 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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer