Pattern recognition. I don't mean the ability to do regular expressions. I mean the ability to recognize patterns in software development, organizations, and trends in the industry. It helps recognize when you've seen something similar before and know a good approach to dealing with it. This would include design patterns (like Gang of Four), integration patterns, architecture patterns, etc. There are a lot of problems out there that have stable, known solutions to them.
Being the resident JavaScript/Node expert on my last team put me in a great position for quasi-leadership and opened up some doors later on. The greatest skillset in my tech career has been developing soft skills, especially communication with non-technical audiences. Yes, metaphors and analogies are easy and overused, but using the right ones with the right people can go a long way.
Knowing how to communicate both verbally and written, persuasion, talk to “the business”, navigate corporate politics, building networks internally and externally.
I got tired of being the geek that everyone ignored over a decade ago.
Maybe not a tech skill, but public speaking. I forced myself to give talks at code camps after recognizing it was a glaring weakness of mine. Was hired by Microsoft as a cloud evangelist as a result. There was also a lot of interest from local companies who sponsor those sorts of events.
The fact that CS programs don’t require this is madness.
I’ve taught software engineers some really simple stuff about networking that really made them better at their jobs. Some successful people seem to lack the first hour of the first networking class.
My work basically amounts to having a high frustration threshold. I practice it every day. Oh this is annoying, frustrating, confusing and hard? Great! Don’t let it win.
You guys downvoted me, but if you can swiftly untangle your own code from someone else's code, you cut out a lot of confusion and long meetings. Maybe you guys like meetings.
Linux, but it was 1998. I did a hard pivot from networking stuff, to get into Linux, at the request of my then employer.
Today, I'm kicking myself that I didn't get MUCH deeper into the networking stuff, as I'm in a senior role, and this hurts regularly.
Pattern recognition. I don't mean the ability to do regular expressions. I mean the ability to recognize patterns in software development, organizations, and trends in the industry. It helps recognize when you've seen something similar before and know a good approach to dealing with it. This would include design patterns (like Gang of Four), integration patterns, architecture patterns, etc. There are a lot of problems out there that have stable, known solutions to them.
Being the resident JavaScript/Node expert on my last team put me in a great position for quasi-leadership and opened up some doors later on. The greatest skillset in my tech career has been developing soft skills, especially communication with non-technical audiences. Yes, metaphors and analogies are easy and overused, but using the right ones with the right people can go a long way.
Knowing how to communicate both verbally and written, persuasion, talk to “the business”, navigate corporate politics, building networks internally and externally.
I got tired of being the geek that everyone ignored over a decade ago.
Maybe not a tech skill, but public speaking. I forced myself to give talks at code camps after recognizing it was a glaring weakness of mine. Was hired by Microsoft as a cloud evangelist as a result. There was also a lot of interest from local companies who sponsor those sorts of events.
Data structures and application architecture.
Taking a networking class, I'm still amazed that CS programs don't require it at this point.
The fact that CS programs don’t require this is madness.
I’ve taught software engineers some really simple stuff about networking that really made them better at their jobs. Some successful people seem to lack the first hour of the first networking class.
Having worked with many different environments/programming languages/tools
Pretty much above, but I'd say it as "exposure to many different business problems"
My work basically amounts to having a high frustration threshold. I practice it every day. Oh this is annoying, frustrating, confusing and hard? Great! Don’t let it win.
Writing.
Git
Can confirm. Wrestling with git is a huge pain. Doing it right takes practice and really improves productivity. Doing it wrong is hell.
You guys downvoted me, but if you can swiftly untangle your own code from someone else's code, you cut out a lot of confusion and long meetings. Maybe you guys like meetings.
[dead]