The Hardest Problems in Your Software Career Will Not Be Technical
I see so many software engineers out there worrying about what skills they need to pick up to stay competitive in their industries. Should I learn React? Will I be left behind if I don’t fully understand the changes in ES6? Should I pick up C# even through I already know Java? Machine Learning, cryptocurrency, buzz-word, buzz-word, buzz, buzz, blegh!
Look, I’m not discounting the need to stay on top of your technical game - it’s important to have a competitive skill base. However, I think in the mad rush to be at the bleeding edge of technology, many engineers forget to dust off the skills that really matter.
You see, the hardest problems you will encounter in your career won’t have anything to do with a particular software language or library. In fact, the hardest problems won’t even be technical. Rather, the toughest challenges will all be human in nature.
The Hardest Problems
Consider, instead, this list of challenges you’ve likely encountered:
- Communicating with other people
- Writing down decisions and sharing them with others
- Just writing down… anything
- De-escalating tension/animosity within team
- Estimating time, estimating expense
- Naming things
- Controlling your emotions
- Hiring good people
- (there’s a lot more…)
When I look back at all of the major issues & crises in my career, all of them center around something from the list above — none of them had anything truly to do with software. Probably you have your own lists of non-technical problems you faced in the past. Why did you leave your last job? What did you hate about your previous team? Why did that startup run out of money? I’d be shocked if the answer to any of those was: because no one knew React.
Focus on Soft Skills
The next time you find yourself learning a new technical skill, remind yourself that the non-technical things matter too. As often as you learn a new software language, or a new framework, you should also be practicing writing, speaking, being empathic, and building relationships.
There is a blog post that I have yet to write, but the title will likely be: The 3 most important skills are Empathy, Grit, and Intuition. The gist is simple: if you want to be successful, you should practice the human skills — the skills that you just can’t learn on a computer screen.
Every couple of weeks I'll write about my experiences from a career in software engineering, sign up and get my next article emailed directly to you!