What is the most valuable skill to have as a programmer? What does it take to be a successful developer? I bet you a dollar you asked these questions at least once in your career. Did you find the answer? Do you think you got it right?
Many young programmers tell you that the most important skill of a great developer is the knowledge of the language he uses. Of course you have to be fluent in C#, F#, C++, Java, Ruby, Haskell, or whichever one is the language of choice. However, the language itself doesn’t provide you with enough skills to finish a complete desktop or a web application.
“So is it the knowledge of the platform”, you ask yourself. Maybe even the whole platform stack, if you thought about it carefully. For example, it could mean the knowledge of Windows API or iOS development tools and libraries. However, think about it a little more. What happens if the trends change? What happens if the project switches to another platform? Would you still be a great programmer with just the knowledge of the previous platform? I don’t think so.
“Right! I got you. It must be the ability to solve problems and to think analytically”, you almost shout at me. As a matter of fact, you are right. There is no good developer without analytical thinking. Yet, problem solving isn’t the most important skill you have to possess.
“If it is not the knowledge of programming, you must have a passion for it. You have to learn something new every day. You can’t stop and you have to love it.” Indeed, you are correct, even though it is not the most important ability, you are getting close. The passion for programming and especially the passion for learning is what it takes you from a good developer to a great one.
Nevertheless, there is another skill that is even more valuable, and this is communication.
Many times it is very underestimated however you can’t go through your day without the need of using it. Moreover, it’s not just about communicating with your client. It’s also about talking with your colleagues, sharing your ideas, arguing in a non-insulting manner, and convincing your boss that your way is the one to go with. In addition, it’s also about reporting the status updates and explaining what has happened. You need to communicate every day and you need to do it right if you want to become a great developer.
This is the reason I am posting (and will continue to post) seemingly unrelated articles about public speaking. I think that you can learn a lot from them, and if you are interested you can learn much more from the courses the posts are based on. With all these resources you can become a great and valuable software developer.
If you agree with me, checkout the following links
- Introduction to Public Speaking
- Impromptu Speech
- Better Structure of Impromptu Speech
- Defeat Public Speaking Apprehension
and stay tuned for more on this notion.