underrated_swe_skills.htm
List of skills that engineers underrate
I asked an old professor how did she find what to learn. Her answer impressed me.
I also needed, at this time, to learn ancillary skills to do the things I wanted to do outside of a day job: teach, speak, self-market, freelance, network, et cetera. Throughout my career from then until now, I would say it is these skills that have opened the most doors for me. I have found it exceedingly difficult to get computer science students to care about these skills. Anytime I try to offer a course on this, it fails to hit the signup quorum, or gets very few signups. People want to take Machine Learning. I get it. But it feels like a missed opportunity.
Why as software engineers do we self-sabotage by not learning the skills that can put you ahead in your career. Many say, the work speaks for itself, but my experience has been that it doesn't suffice.
Here's a list of skills she mentioned:
- Teaching
- Public speaking
- Marketing yourself
- Freelancing
- Networking
Out of those, I would emphasize marketing yourself and networking. It feels slimy, yet that's how sales get done. If you don't know how to sell yourself, or how to manage a team, or how to communicate effectively. You won't get promoted.
The question becomes, how does one do that. And what kind of jobs rely on these skills the most.
Some top of mind are: sales, marketing, consultants, lawyers. Basically, any job where you have to convince people to buy your product. Whether that be a SaaS product or immigration services.
As as a software engineer here are some things you can do to get better at them:
- When you finish a project, write what were the outcomes and how does that connect to the business goals. How did you save money, reduce costs, or improve the product?
- When you think of an idea that the leadership is interested in, send them a note about it, think about initiatives that could move it forward
- Volunteer at local programming clubs and talk to people who program in your same language (e.g., Java user group)
- Share what you learned from your project; either through a LinkedIn post or in your blog
- Join a Discord group with like-minded engineers and share things you're excited about
- Write a blog post teaching others how to get ramped up in a language you have experience in
- Volunteer at the local tech meet-up to talk about your company/tech stack/pet project and get feedback on it
- Read a marketing book like
or ; share what you learned