It’s a good time to be a software developer.
It’s a set of very in-demand skills which many companies and employers are offering top dollar for (as well as additional company perks), to attract the best and brightest talent.
If you’re a software developer with at least a couple of professional years of experience under your belt, you’re likely going to be inundated with e-mails and phone calls from recruiters and potential employers, blasting you with new job opportunities.
The wording of the opportunity, will of course vary, but they all share the same characteristics.
You’ll get information about the location of the potential employer, some blurb about how fast they’re growing, and that they’re desperately looking for new talent to join their team. Then some things about all the awesome benefits and perks that their employees enjoy.
Eventually, you will get into the main description of the opportunity.
At the highest level, it will describe the general kind of development opportunity is being advertised. Perhaps it’s a mobile application developer position requiring someone who has proven experience and skills developing applications for smartphones and tablets.
Or it could be a web application developer. Or for an engineer with DevOps experience.
Then it will usually describe the general level of experience required, whether it’s a junior level for someone first starting out in their career, or a senior level person with a minimum of 5-10 years of experience under their belt.
Finally, it will describe the specific tech stack and programming language experience required for the position.
“Looking for developer with C\++ experience.” “Java developer with knowledge of Spring framework experience” “.NET developer needed with C# and MVC experience”
There’s no question it’s appropriate for an employer to list the specific tech stack and programming language experience needed for the position advertised.
A software developer who has significant professional experience with a specific programming language and tech stack can hit the ground running with a new employer … they don’t need time to ramp up and learn a new language.
I get it. If you’re going to pay top dollar as an employer for a qualified software developer who can hit the ground running, then you deserve to find a qualified developer who has those skills.
That being said, I think a lot of potential employers and recruiters have this misconception about specific programming languages and tech stacks.
Here’s a hint …
THERE’S NOT MUCH DIFFERENCE IN PROGRAMMING LANGUAGES AND TECHNICAL STACKS.
It reminds me of an incident years ago when I was on the hunt for a new job.
At the point I was ready to start looking for new job opportunities, I had a very specific set of programming language skills … specifically Microsoft’s Visual Basic. Somewhere north of six solid years of professional Visual Basic programming language experience.
Unfortunately, the tech landscape was already starting to change.
There was a new nerdy tech sheriff that came into town and his name was MICROSOFT .NET AND C#.
It was Microsoft’s shiny new programming language and API playground that was taking the software development programming world by storm. It was Microsoft’s way of countering the other major programming language and platform from Sun Microsystem … Java.
I tried applying to several programming opportunities, but the recruiters I spoke with, informed me that without specific C# and .NET programming experience, the employers they were attempting to fill the positions for, told the recruiters they were adamant about requiring specific C# programming language experience.
I can attest to the fact that one programming language isn’t that much different, from a syntax perspective than another programming language.
Much in the same way, learning one specific foreign language will make it easier to learn a different foreign language. For instance, if you learn a specific romance language derived from Latin, say, the French language, learning a secondary romance language like Italian or Spanish will be much easier, because they are all derived from a single parent language.
Most modern programming languages used today pretty much all derive from the parent programming language of C.
And here’s how you’d declare an integer variable in Java: int i = 6;
And here’s how you’d declare it in C#: int i = 6;
C\++: int i = 6;
Are you getting the picture?
Ok, so the Visual Basic programming language, I’ll concede, may look a little different in syntax than C#, but any developer worth their salt will be able to understand the differences between the two programming languages.
Moreover, every programming language conveys the same basic programming concepts.
Every programming language will have some sort of language syntax to use if-then branching logic.
Every programming language will have the ability to allow you to perform loops.
Every programming language allows you to declare variables and hold dynamic values.
Once you have a good solid understanding of a specific programming language and tech stack, I guarantee you won’t have a problem learning new languages and tech stacks. In fact, I find it a rather enjoyable experience, getting to learn something new like that.
Ultimately I was turned down for those new .NET/C# programming positions because I didn’t possess that specific programming language knowledge.
Eventually, I found a company that WAS willing to trust that I was going to be able to learn C#, because they knew I already had significant programming language experience in another language.
Let’s stop with the obsession with a specific programming language and tech stack.Let’s stop with the obsession with a specific programming language and tech stack. Click To Tweet
Here’s another news flash …
THERE WILL ALWAYS BE A NEW PROGRAMMING LANGUAGE AND TECH STACK AROUND THE CORNER.
That specific programming language that happens to be the in-demand language du jour all the companies are desperately looking for in job candidates, will be old news a few years from now.
Remember how Ruby on Rails was the hottest programming language and framework on the planet?
But I guarantee you it’ll be something else a few years from now.
So then what SHOULD an employer really be looking for in a potential job candidate?
PEACE, LOVE, AND UNDERSTANDING.
Ok, maybe that’s aiming a LEE-TLE too high…
Does the job candidate know how to learn new things? Do they work well with others in a collaborative team environment? More importantly, are they team players? Do they place high importance on code quality and test-driven development? Do they know how to think outside the box?
If I were an employer, that’s what would matter to me.
Peace, love and understanding would be icing on the cake…