labs learning open_source programming

So you want to be a programmer?

I have been asked by at least a few people if I could tell them the best way to get started with programming and I have been slightly ashamed that I was unable to confidently answer that question.

I got started in a way that was certainly not the most efficient one, and it really bugs me when I read answers to this question that assert that the only way to become a good programmer is to do what I did and walk uphill both ways in the snow while fighting compilers until you reflexively cringe at a mismatched bracket.

Studying Computer Science is also a common answer to the question. I studied undergraduate CS after I was already pretty well versed at compiler-foo and while it is very interesting and I learned a lot, it really wasn’t necessary for practical programming. Don’t get me wrong, CS is great! If you are the one working to make sure no command is wasted then it is essential, but most of the things you write don’t need to be that optimized. Practical programming is really more of an art than a science.

After trying really hard to pull away the things you really don’t need to get started as a programmer I’ve come up with my instructions for anyone who wants to try and dive in. I will go into detail later about what I mean, but here is the outline.

  1. Learn a language
  2. Find a community that uses it
  3. Find an Open Source project in that community
  4. Contribute to that project

My approach is largely based on the way someone would tell you how to learn a foreign language. You go to the country, find places to hang out, make friends, speak the language with them. None of this is new stuff, but my goal is to try and help you see how this translates into the software world.

Since I don’t want this post to be out of control I will do it in installments stay tuned and I will walk you through the steps.