“Lessons from a veteran.” Ow, doesn’t that just make you want to duck and run?
Trust me, I didn’t come up with the first part. Being called a veteran is a lot more attractive than the dinosaur label I put on myself more than 10 years ago (already!). Being a dinosaur is what it felt like, though, being at least 10 years older than my colleagues and having started in programming long before many of them were even born.
From the Seven Seas to Bits and Bytes
My career started in 1985, the week after I graduated from nautical college. Yes, I was trained as a ship’s mate. I loved the education, the variety of topics, and the adventure of sailing the seven seas during my apprenticeship.
Three months into my final year at college, though, I realized that I would get bored pretty quickly, despite the variety of work as a mate.
Being a sailor isn’t half as romantic as it sounds. The long stretches crossing an ocean are tedious, to say the least. There is little to entertain you (remember it was the ’80s!) and no way to escape your colleagues unless you want to become fish food.
At the time, my brother was working somewhere programming coffee machines or cash registers. Having taken classes in electronics and BASIC programming (no, not Visual Basic, basic BASIC, on an HP3000 with teletype terminals) at nautical college, I figured I could do that, too.
Six months or so later, I walked into the offices of Volmac, the biggest and badassest software consultancy firm in the Netherlands at the time.
Your Tech Stack Is Just a Detail
When you’ve worked in the software industry for as long as I had (yes, I’ve left—except for writing about tech), you realize your tech stack isn’t as important as it seemed to be when you started out.
Once you know procedural programming, you’ll quickly pick up any procedural language. Once you’re proficient in one object-oriented language, others are very much alike.
Perhaps that’s difficult to accept. Especially when you have scars that bear witness to the pitfalls you encountered gaining your experience. After all, every language has its own set of gotchas, and it takes time to encounter them, right?
Wrong. Languages based on the same concept are more similar than different. And now that Google exists, you can instantly benefit from the experience others have gained through the blood, sweat, and tears of hard work.
That’s why the really important things about programming are things like
- Knowing the overarching concepts of procedural, object-oriented, and functional languages.
- Realizing that code is like a WORM device: You’ll read code far more often than you’ll write it.
- Coming to terms with the fact that writing code that’s easy to understand and maintain is far more important than writing clever code and doing it quickly.
- Learning and applying principles like SOLID that’ll guide you in writing maintainable code.
- Understanding that design patterns are not a library for you to use, but a set of abstract solutions to common problems and a language to talk shop with other developers.
The Hard Soft Skills Every Developer Needs
Nowadays, you’re likely part of a scrum team. Hopefully, it’s one that is—or actively strives to be—agile. That means collaboration. A lot of it. And transparency. And a whole slew of other soft skills for programmers. No more hiding behind your monitor.
That means you need to be able to get along with others, not just tolerate being around them. It means being able to communicate your ideas clearly. Not just to other developers and testers, but to non-techies as well. It also means standing up for your ideas without getting other people’s hackles up. So maybe you can start to see why soft skills for programmers are so important.
The most important soft skill of all is the ability to trust your coworkers and to be trustworthy yourself.
To be vulnerable and ask for help and opinions. To espouse unconditional positive bias: assuming positive intent when things go haywire and you’d prefer to knock people over the head with their mistakes. To own your mistakes and tidy up the fall out yourself. To be okay with taking a back seat and not having to have all the answers or be right all the time. To know your limits and not take on more than you can handle so you can remain reliable. To know your boundaries and patrol them actively. To show your emotions and feelings without holding them over your coworkers’ heads.
It’s hard. In my not-so-humble opinion, it’s far harder than the so-called hard technical skills.
And soft skills for programmers are all too often overlooked, although it makes you easier to work with and prevents the dysfunctional behavior that leads to friction, spilled energy, and nobody taking responsibility.
So You’re Happy to Not Be a Marketer or Salesperson?
Being an engineer, you probably get a bad taste in your mouth when you think about marketing and selling. You prefer the objective world of tech over the sleazy world of emotions and persuasion.
I hate to be the one breaking this to you, but actually, everyone is in the business of marketing and selling.
- When you talk about your ideas, you’re selling and marketing.
- When you mention what you want to learn next, you’re selling and marketing.
- When you ask your manager to assign you to a project, you’re selling and marketing.
Maybe that’s why you don’t talk about these things.
And that would be the biggest mistake of your career.
It was of mine.
Don’t Sell Yourself Short
It wasn’t until very late in my career that I talked about my achievements. It felt sleazy and something done only by people who don’t amount to much. No, my managers would see it all by themselves and reward me for it.
They didn’t, and my coworkers that were better at selling and marketing themselves passed by me.
All those who want you to do well and are quite willing to help you are busy with other things. Their day-to-day work, their challenges fighting fires, and, of course, their careers.
So, yes, you absolutely need to help them connect the dots, and show them how what you do helps the company and thus their careers. So learn how to market yourself and those other soft skills programmers need.
Because if you don’t, you’re selling not just yourself short but everyone who stands to gain from the value you deliver.
This post is part of a series interviewing veteran developers, asking them questions about their journey to tech mastery and sharing the advice they have for those getting started.
This post is by Marjan Venema. Marjan’s specialty is writing engaging copy that takes the terror out of tech: making complicated and complex topics easy to understand and consume. You’ll find samples on her portfolio. Her content is optimized for search engines, attracting more organic traffic for small businesses and independent professionals in IT and other tech industries.