My first exposure to programming was, of course, using BASIC on my DOS 6.22 machine in 1995. Then I played around with C from a book my friend bought me. My last two years of high school found me learning the fundamentals of C++, but I didn’t get much further than simple if-else functions. This helped in college as I was required to take one semester of C++ which I basically slept through. It was interesting coding a program to calculate the trajectory of a cannonball based on certain inputs, but I don’t remember much else. Ok, I did just find eight .cpp files from twenty years ago, so I could use the gcc compiler on my laptop to see what happens.
Seven or eight years ago, I started using Codeacademy to learn something, maybe Perl, but that didn’t stick. I had also purchased a book on Java and a book by Larry Wall on Perl, but didn’t continue learning programming.
A few months ago, Tim Ferriss had a link to an essay by Paul Graham about writing essays. I could relate to Mr. Graham as he tweeted about his 7 year old feigning death at the elder Graham’s exposition about what writing essays entails (I have a 7 year old at home as well).
Reading this essay lead me to Graham’s book, Hackers and Painters. This short series of essays talks about programming, creating wealth, the commonalities between (surprise surprise) hackers and painters, and how to start a startup. In one of these essays, an endnote points the reader to Eric S. Raymond’s essay “How to be a Hacker.” Raymond explains in his essay that hackers create, tinker, and share ideas whereas crackers steal, obtain illegal access and break the law. For more details, see Steven Levy’s book Hackers.
Raymond describes four steps (not a complete checklist, but a start) to become a hacker:
Basic Hacking Skills
- Learn how to program.
- Get one of the open-source Unixes and learn to use and run it.
- Learn how to use the World Wide Web and write HTML.
- If you don’t have functional English, learn it.
I already use Linux on my machine, so I figured might as well start learning programming. Thankfully ESR doesn’t recommend going back to C or C++, but rather Python. Apparently one doesn’t need to manage memory resources or other overhead processes as much as C++. So I installed the python IDE on my laptop and started the Python 2 course on Codeacademy.