prerequisites to become a good programmer

i just want to know if there are any prerequisites to become a good programmer,like do you have to be intelligent and have a high I.Q(problem solving ability) to become a good programmer?

1 Like

Like any other skill, getting good at or mastering programming takes a lot of practice.
More than anything to become a good programmer you need to be motivated enough to do what it takes to be one.

It helps if you are good with: Abstract thinking, Mathematical reasoning, General problem solving, Detail oriented. If you are not good at them, but have got motivation you can still be a good programmer with a bit of extra efforts.

  • Pick up a standard book on C/C++/Java/Python/Whatever Language and learn the syntax of the language.
  • Write standard programs for standard tasks like: sorting, searching, recursion, binary trees, etc.
  • Learn about loop invariants, pre-conditions, post-conditions, program contracts, and in general you should be able to convince yourself of the program correctness formally.
  • Learn about the basics of data structures and algorithms from a good textbook
  • Now based on your tastes and interests you might do some or all of the following:
    • Learn about different paradigms of programming. Especially about functional programming, learning about it will make you a better programmer even if you still program in other language.
    • Start an open source project with friends OR contribute to an existing project.
    • Compete in online programming contests like: Topcoder SRMs, Google Code Jams, Codechef Monthly contests, etc.

Remember that its going to take time to be a good programmer, so be patient and systematically work towards your goal.

P.S: I have intentionally not given any references to specific textbooks/books, because that is a different topic in itself. I will community wiki if someone feels like adding references.

1 Like