Novice in many vs Expert in any

by Mahesh Jagadeesan on October 14, 2009


expertThere’s a very good article in The Working Geek by Jeffrey Thalhammer discussing the breadth vs depth of technical knowledge. Jeffrey has done a great job of putting down his thoughts on why he considers it better to be a master of one technology / language rather than be mediocre in several. In particular, he has made some excellent points about the benefits of being an expert in one’s chosen area.

While I have nothing against what he has said – indeed, I agree that being mediocre will not serve your best interests – I don’t quite think that being tunnel-visioned about one and only one area will further your career prospects, especially when things go wrong. To be sure, Jeffrey has pointed out that it’s better to master one technology before rushing to learn a “new bag-of-tricks”, but the thrust of his article seems to support being a one-trick pony, no offense intended.

Countering that view is very simple: just think of what happened to COBOL programmers when that language began to fade away (with no disrespect to such a long-lived language) in the face of the onslaught of more efficient and structured languages. Or FORTRAN programmers, for that matter. The job market is a demanding and extremely dynamic place, and popular skills of yesterday become out of fashion at an alarming rate; dogged pursuers are likely to find lesser and lesser opportunities. From first-hand experience, I can tell you that betting on a technology to last forever is fraught with big risks. So, do I suggest jumping from one technology to another as quickly as possible?

The answer is an unequivocal No. All I’m saying is, it’s good to know a bit of everything, but it’s best to know everything (or as much as possible) about at least one thing. So, when you start learning something seriously, leave no stone unturned in attaining mastery over that subject. Burn the midnight oil in practice, ask other experts even the silliest of questions unabashedly, and strive all the time to increase your knowledge, and above all, make sure you understand what you’re learning. You’ll soon find that others start approaching you with questions and doubts. It’s a process that, as Jeffrey says in his article, takes time, effort and dedication, but the rewards are definitely worth. Along the way, get acquainted with other relevant areas of knowledge. For example, if you’re learning Perl full-time, make sure you get at least familiar with other scripting languages like PHP and Python. The effort spent thus is extremely likely to reward you by providing new insights and urging you towards even creating new idioms in Perl programming. Just make sure you retain your primary focus. I’d go so far as to say that the best step you could take in mastering a new technology is to let yourself be distracted by other relevant technologies.

Of course, this applies to not just programming languages, but any technology in general. You could play around with various Linux distributions while learning Solaris; find out why C# is getting wildly popular while plying your C++ trade; master machine-clustering in Linux while trying out virtualisation at home; the list can go on and on. The idea bears repetition: don’t get stuck on any one technology without venturing to know more about other relevant technologies that can complement your existing knowledge. You’ll thank yourself later when a concept (that you spent time learning and using) that was only used by a few fringe pioneers initially becomes the in thing and, all of a sudden, you find your new skills in high demand!

So, get up, go forth and multiply (your knowledge)!

Written by Mahesh Jagadeesan. Mahesh is an experienced IT professional with 10+ years of experience. If you need a hand with anything related to Perl, Javascript, HTML or any computer problem, drop him a line (maheshj at gmx dot net) or through his website at The Practical Idealist.


About the Author:  Written by Mahesh Jagadeesan. Mahesh is an experienced IT professional with 10+ years of experience. If you need a hand with anything related to Perl, Javascript, HTML or any computer problem, drop him a line (maheshj at gmx dot net) or through his website at The Practical Idealist


2,274 readers have already subscribed to email updates!

Enter your email address:

  • Jeff Thalhammer

    I think you’re absolutely right to warn against becoming “stuck” in one technology, especially considering that no technology lasts forever (however, I’d wager that those remaining COBOL programmers get paid A LOT of money).

    I agree that my post on the WorkingGeek blog did seem overly biased toward being a one-trick-pony. And after years of working with Perl, I recently started writing Java. Even though I had no prior experience with Java, I landed the gig precisely because I was known as a strong Perl programmer. If I had already been mediocre in both Java and Perl, I probably wouldn’t have gotten the referral.

    So I definitely acknowledge that you can certainly help build your career by *diversifying* your technical skills. I only wanted to point out that *deepening* your skills can also pay dividends, even though we sometimes overlook that possibility.

    Great blog! I look forward to reading more.

  • http://www.maheshj.info/ The Practical Idealist

    Thanks for the pingback, Jeff. I can’t agree more about cutting deep in a field (of knowledge); mediocrity is not something that I’m allergic to as well. What I wouldn’t agree with is being so focused as to become tunnel-visioned, that’s all.

Previous post:

Next post: