Great Coding Skills Aren’t Enough!

I have been fortunate to have worked with some geeks with incredible coding skills. I felt amazed at how they can play games with compilers, perform magic with their incantations on the shell, and solve some insanely complex algorithm problems with ease. I naively assumed that they are going to achieve greatness in near future. Alas, I was wrong. Really wrong.

I am prompted to write this article when I came to know about one such geek who is now struggling to find or keep jobs. I remember how I was in awe observing the same coder early in my career and wanted to emulate his coding skills. One the other hand, I find many of my so-called “average” school and college classmates doing really well in life now.

As Calvin Coolidge said: “There is nothing more common than unsuccessful men with talent”. May be we can take it for granted that talent != success. But WHY?

First things first: Talent matters. I would search and employ programmers with best talent that I can find and afford to pay. However, the world give undue attention to raw talent. What young kids achieve is amazing and regularly makes news, for example, a news item about a kid who recites the whole Quran!.

Now, what is more important: raw talent is never enough. To illustrate, consider amazing programmers like Brian Kernighan, Bill Gates, Linus Torvalds and Mark Zuckerberg. Their programming talent is very evident, even from their early career. But other than the raw talent, there is something more that makes them special and successful.

  • Brian Kernighan is known for his amazing writing skills and is an inspiration for so many tech writers, including me. Example: Arguably, his excellence in writing, as in co-authoring the classic The C Programming Language contributed the popularity and wide-spread acceptance of the language.
  • Bill Gates is known for his business acumen. Example: Microsoft did not transfer the copyright of the DOS operating system it sold to IBM and that made the foundation for the success of Microsoft as a company.
  • Linus Torvalds brought together an open source community together. Linux is a success not because of his coding acumen, but mainly due to the community he built around it.
  • Mark Zuckerberg called himself a hacker but he is certainly more than that. The way he experimented with his ideas in the real-world, the way he built FaceBook and led to business success, his philanthropy, and his possible foray into politics – all this shows he is not just yet another ace programmer.

I can give more examples, but I think the point is loud and clear: There are so many people with raw talent, but there is something more that is needed to lead them to extraordinary success. For example, in addition to incredible coding skills, it could be writing, speaking/presenting, business acumen, management ability, building communities, or having a knack for making right moves at the right time.

Now, how can YOU benefit from this understanding and move forward? It does not matter if you are a person with no in-born talents or ones who have special talents, there are many things you can do to grow from “good to great”.

  • Become teachable. Most talented people stop learning after sometime and have bloated egos. This is especially true for those who make it to top institutions (like the famed IITs, Harvard, or Stanford). Learn from those who are around you and from the experiences in the real-world.

“Talented people often think they know it all. And it makes it difficult for them to continually expand their talent.” – John C. Maxwell

  • Get versatile. Try different things and experiment. My favourite example is Robert C. Martin. From writing to speaking, from coding to developing courses, he is quite versatile and has built a career that is worth emulating.
  • Build on your strength – programming. Programming wizardry for the sake of programming is amusing and interesting but is practically not very useful. Mediocre programs that solve a problem or meet a customer requirement is far better than great code that serves no purpose. Yes, it is a strength to have super cool coding skills; but build something useful on top of that foundational skill.
  • Get incredibly good at something (other than your coding skill). My favourite example is Venkat Subramaniam who has gained fans world over for his passionate and simply superb technical presentations.
  • Get better at working with people. No matter how smart you are, you will eventually be outsmarted by someone else. Also, one is too small a number for greatness. No doubt those who win Nobel prizes, Academy awards, or Turing Awards are incredibly talented folks – but there are always people leading them, with them, or working for them. The people factor in greatness is often not evident to us so we often naively assume that it does not exist or that it is not needed for greatness.

Unfortunately, there aren’t any excellent books on this topic. But two books stand out that come to my mind that may be useful:

  • Soft skills. This is one of the few books that focuses on the often ignored skills – so called soft skills – for geeks and nerds.
  • Talent is never enough. Maxwell talks about why talent is not enough and explains why “talent-plus” people are successful. Also provides strategies and steps for becoming a “talent-plus” person.

Still not convinced? Now, here is an indisputable example of why great coding skills alone aren’t enough for greatness. All of us know the success story of the Apple Inc. Apple was founded by Steve Jobs and Steve Wozniak. Steve Wozniak was the programming geek – but why is that it is Steve Jobs who made history? Here is a video clip from the movie Steve Jobs that answers this question. Hope this gives you an insight on talent vs. greatness.

One comment

  1. As a matter of fact, beautiful, award-winning design skills aren ’ t even enough —they are the cost entry. For a young designer to succeed years from now, you’d better have some serious design chops—so start working hard.

Leave a Reply

Your email address will not be published. Required fields are marked *