You are a fourteen years old and just because you learned how to write your first BASIC program on your C64 you feel you can ace every programming problem in the world.
READY
10 PRINT "Hello World!"
20 GOTO 10
From that moment on, you only focused on improving your technical skills and focusing a lot on learning programming languages. I was that guy and in retrospective after almost 20 years in the software industry there are few lessons it took me years to learn I want to share with you so you can learn them much earlier.
Improve your social skills
I’ve always been shy and afraid to express my opinions for fear of being proven wrong and making a bad impression. I tell you what. I discovered that others are not as critical of me as I am of myself. Remember that no one is harsher or more unforgiving than yourself when it comes to what you say or do. Nowadays, I speak up more frequently because I enjoy being proven wrong. It means I discovered something new. I discovered that when I participate in a community, I learn more, gain trust in myself, and have the opportunity to help others, which is something I enjoy doing. So, my advice is to express yourself and don’t be afraid to be proven wrong. Join one or more communities that interest you and interact with others. There are a lot of them, and they’re easy to find on social media.
Improve your writing skills
During my computer science class at school, I always underestimated the importance of doing a good and clear written analysis of the problem. My only goal was to create a beautiful and compact pseudo-code that could be translated into a programming language. The teachers pointed out that I was not paying close enough attention to let others understand what I was trying to accomplish. You know when you’re a teen. You don’t listen because you believe others aren’t as intelligent as you are. Why use words when they can simply admire your craft and understand exactly what you want to do? Today, when creating an effective Design Document, Technical Strategy, Programming Language Evolution Proposal, or Technical Vision, you must ensure that your ideas are well understood by your peers and decision makers. When you clearly express what you want to do and why you want to do it, it is easier to move your idea forward and get people to jump on board. It is critical if your idea is large and complex and requires funding, possibly a team, or if it is important enough to be prioritized over other great ideas. Improve your presentation skills It is necessary to be motivated, but it is also necessary to be able to motivate others. What is more effective in capturing and maintaining the audience’s attention than a good presentation or talk with a good mix of humor and suspense? When I first started giving presentations at work, they were ineffective. Slides with wall of texts that I was essentially reading without any emotion. I was fortunate to attend some interesting talks and learn from very talented people, some of whom even spent time with me to help me improve my presentation skills. A good presentation sows the seed of an idea in the minds of others. As a result, you will notice people begin to build on the message you presented some time ago.
Conclusion
It may appear counter-intuitive to work on skills unrelated to software engineering in order to solve complex technical problems. The effort to learn them pays off more than you might think, not only in terms of success at work, but also in life.