Pitfalls for Pre-Programmers

The Typical Bedroom Programmer

Most people who are learning programming for the first time don’t go and apply at the nearest college and shell out hundreds of dollars for lessons. Odds are they go to their nearest book store or library and grab something to the extent of “Programming for Dummies.”

When I started learning I began with a solid programming book called “Learning Game Programming Through C++.” And while the book taught me all the basics of C++ and programming as a whole, it didn't tell me how to choose my libraries or my tools beyond the ones covered in the book.

Many “Bedroom Programmers” face this same issue. Common questions that pop up on various programming forums like Dream in Code or QA sites like Stack Overflow are:

  • “What is the best IDE for [Insert language here]?”
  • “What is the best programming language for beginners?”
  • “What’s the best version control system?”

All of these questions are not really answered in any of the popular intro to computer programming books.

Many programmer-lings ask, “What is the best tool for X job?” The best answer I can give is just try everything and stick with your favorite. Something that every programmer has to learn at one point is that there is no single best solution to anything. It takes the right tool for the right job.

One of the best things about learning to program as a hobby is the freedom to use whatever tools, language, or IDE you want. Some people swear by emacs or sublime text but, I personally like vim. I’ve tried many of them and settled on vim. I still haven’t found a programming language that I want to do every project in and that’s because there is no single language that can do everything and do it well.

For the newbie programmers reading this, here’s what I would recommend. After reading your first intro book, whatever it may be:

  1. Download the latest compiler/interpreter for your language and write something from beginning to end. Whether it be a little number guessing game, a word jumbler, or a madlib, make something FROM SCRATCH. Doing this would make it easier for you to get up and going.
  2. After you’ve made your first project, learn how to use some more advanced tools like debuggers version control systems (like ![git](http://git-scm.org/)) or learn how to script your tools.
  3. After you learn some more advance tools and are comfortable with your language find a new language, rinse, and repeat until you find something you fall in love with.