The most important skills for a software engineer
How to invest your time?
What skills should you develop to become successful in software engineering? Should you go deep into very specific technology or go wide and shallow? What are the most important skills that propel your career? The answer is to gain skills that will stand the test of time.
You have about 40 years of active work life. To put it into perspective, it’s around 2100 weeks. You need to be picky with investing time in self-development to make the best out of this time. There are some skills that are more universal hence more worthy of your attention than others. I condensed a list of such key skills that will elevate your career through years to come. I based the list on my 10+ year career as a software engineer who became an engineering manager.
10 key skills to get
- Using test-driven development to build better designed and easier to maintain applications
- Getting across your ideas to be effective in a group
- Paying attention to grow on others’ ideas and fulfill the needs of business partners
- Facilitating Event Storming to collect business knowledge and structure processes
- Verifying you understand what is the purpose of your work to do the right job
- Contracting cooperation to build understanding on the scope & responsibilities in a joined project
- Understanding databases qualities as any stateful application is a wrapper on a database
- Managing your time & priorities as the higher you get the less time you will have to do everything
- Asking for help when you’re facing a challenge that’s too big
- Mentoring people around you to help them grow
What about technology?
Most of the universal skills for a software engineer are rather soft skills. I don’t want you to think I’m saying you should ditch learning hard technical skills. You still must understand the tools you work on a daily basis.
Do remember that technologies come and go. If you make your career too reliant on a single technology, the market can phase out you both. I saw senior software engineers who became junior software engineers in the blink of an eye. Their favorite tool became outdated and they haven’t developed any of these skills. When investing time in a new technology, understand its general principles first. It will be easier for you to pick up the next big thing that follows the same principles.
It isn’t the extensive list of universal skills a software engineer should have. If I wanted to make one, I’d have to write a book. If you have something on your mind that you’d like to share with me and other readers, please comment below. I’ll be more than happy to see your perspective on this topic.