(Re)Learning how to program

I graduated with a degree in Software Engineering in 2008 from the National University of Singapore. I didn’t actually learn much software engineering in the 4 years that I was enrolled in that program. Not because I was lazy or because I didn’t want to. It was mostly due to my involvement in a startup, where I was leading design, sales and other general management activities, which I believed, at the time, to be the best use of my time. The uninspired educational environment also didn’t help the cause. :P

So, I proudly adorned the role of the “general manager” while I was still an undergraduate and totally ignored the software I was supposed to be learning. Bad move (you’ll see why as you read this). Eventually, the startup died an unceremonious death. I moved on to a consulting role with a boutique strategy consulting firm, travelled the world a bit and eventually decided to settle in the bay area, where I currently reside, with a job offer from PayPal’s strategy team. That was 2 years ago. I learnt a lot from my consulting and PayPal strategy days. I loved the experiences, the people and the opportunities I received over the years.

However, I was always slightly disappointed in myself for not maximizing the value of my undergraduate degree. This disappointment was further deepened by the realization that, if you want to be a web startup founder in today’s environment, NOT having a solid software engineering background can be a big deterrent.

So, finally, as I took on a co-founder role at a web startup, although I was super excited about the possibilities, I was also super fearful of the lack of programming skills that are almost a must in a seed stage web startup. It hasn’t been all that bad but totally could have been! Three things have helped in a great way:

  • My co-founder, who DID pay attention in college and put his tech skills to practice with another startup before now, has been very helpful and patient while I re-learn how to program.
  • The friends I have kept up with over the years (you know who you are) have also been very supportive in this process.
  • Finally, the INTERNET. Resources like CodeSchool have been instrumental in picking up the basic skills that are needed at our startup (Ruby, RoR, CoffeeScript, BackBone.js, RSpec).

Based on my experience, what I recommend to every college-goer (or for that matter, any youngster) today is to learn how to program so you don’t end up in a situation similar to mine. Surround yourselves with others who know how to program and START NOW. The next few years will completely transform the way careers and professions work and programming is, likely, going to be at the center of it. I forget who I heard this from, but its an interesting thought:

“Programming in the 21st century is how carpentry was in the 16th century!”

Translation: programming has become such an essential skill for building today’s artifacts that not knowing how can be a career limiting move.