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.
In fact, the idea doesn't just apply to great coders, it can be generalized to technologists in general.
Take Andy Grove, for example. He was technically brilliant, but what took him (and Intel) to great heights was his management approach and strategic thinking. His books "High Output Management" and "Only the Paranoid Survive" document his management style and approach that made him successful.
Consider his approach towards life and success from his most famous quote (which is nothing to do with technology): "Success breeds complacency. Complacency breeds failure. Only the paranoid survive."
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.
Liked the blog and want regular updates on my articles & blog posts? Follow me in LinkedIn or Twitter.
Program Management at Accenture specializing in Cloud Migration and SAP for Life Sciences & Healthcare Clients
7 年A little bit of a divergent opinion here: in my view, great coding skills *are* enough if someone simply wants to become a great coder, assuming that one has the desire to keep learning and growing. For example, consider great doctors or accountants or architects. They keep updating and upgrading their skills, which makes them consistently great in their fields. However, if one wishes to grow into a manager, create wealth or gain recognition in their field, then - yes - what you say makes a lot of sense. Thanks, Ganesh.
Senior AML Analyst at Danske Bank.
7 年Sebastian Kuniewicz
CISSP
7 年Oh, I had the same diagnosis but a different medicine to offer. "Knowing programming is to know how to solve a problem. You have it? Great. Now focus on finding which problem to solve."
Software Engineer
7 年Not sure in what context that guy said this: > “Talent is cheaper than table salt” But that was absolute non sense and shows a major character flaw of that person.