Jack Of No Trade

Hery Ratsimihah
3 min readMay 5, 2013

--

I have been learning a lot in the past few years, but maybe not as much as I thought. I read many programming books and implemented web and mobile apps using many different languages and technologies.

In Summer 2011, I wrote a survey-software tool in Python, and hosted it on Google App Engine.
In Summer 2012, I wrote an iOS Campus Tour app in Objective-C, which was published to the App Store.
In Winter 2012, I wrote a lifestyle web app in Javascript for node.js, and hosted it on Heroku.
In Spring 2013, I wrote a vim-commands-like game in Javascript, using the Impact JS engine and hosted it on Github.
In Spring Break 2013, I wrote a Shopify app in ruby, and hosted it on Heroku as well.

I figured if I learned lots of languages I’d improve my ability to learn and would then be able to learn faster and faster.

But a downside of using a plethora of different languages may be that the time spent on each one of them is split into as many languages one learns. And so is the experience and knowledge earned. This results in a superficial knowledge of many languages, instead of a thorough knowledge of just one or two of them.

Up to now, it has never been an issue, as I was able to compensate this lack of knowledge by learning what I needed on the spot using search engines and documentation. Getting into research programs and internships was not an issue either, when it did not involve technical interviews. I would just apply to positions that involved skills I’d used before, submit a resume with a decent GPA and a loaded portfolio, go through a bunch of non technical interviews about what I did before, and get the position. But this year, most positions I applied to involved technical interviews. They’d ask me questions that involve deeper knowledge than I cared to remember and/or language-specific questions, the kind I could always Google when building something, and naturally, it didn’t work out.

I guess it makes sense. Technical questions test to some extent one’s understanding of a technology. But the fact that I didn’t thoroughly understand the technologies involved in positions I applied for this far has never prevented me from building and shipping decent and working code. (I guess that’s where the world and I diverge. The world wants outstanding, not decent.)

I will be graduating from college in a couple of months, and I am not sure whether I should change my approach to learning programming. Maybe I should keep learning the way I do it now, and seek positions that judge candidates on what they did, and thus can do. Or maybe I should pick a language, and understand it entirely. I am not attracted to this approach, though, because each language has its own purpose, and learning just one of them may involve having to specialize in a single field. Which I want to avoid. My interests vary. I have been into mobile, web, and game development, and each one of these fields requires different languages. It gets even worse, as my focus just switched from computer security to artificial intelligence and machine learning. Besides, I feel like having various kind of skill lets me learn more efficiently, as I can relate different subfields together.

But it seems like the professional world doesn’t have room for this kind of attitude. Companies want programmers who are good at what they do, not just all right at what they do and other things. Staying in academia isn’t much better, as it also requires specialization. And entrepreneurship doesn’t seem like it could enable me to play with many different technologies either.

Thus, I need to specialize now. The most obvious choice seems to be to specialize in my current interest, which is artificial intelligence and machine learning. It is not that obvious, though, as my ultimate goal is to build a general artificial intelligence, and I feel like it doesn’t only involve machine learning.

Enough pickiness. Let’s get back to learning.

Thank you for your feedback everyone. It’s all very insightful and will tremendously help in my life as a learner. It’s also reassuring to see I am not the only one feeling uncertain, and hopefully some of these answers will also benefit others.

--

--

Hery Ratsimihah

just a kid building an empire with a castle and an helicopter, and human-like artificial intelligence, part-time. New York, NY · ratsimihah.com