This is a topic I've been thinking about for a long time now, and my personal opinion on it changed a whole lot since the idea formed. This article is a kind of way to put those thoughts to a single space, and motivate the community to discussion.
Each time we introduce ourselves in a business environment, we essentially slap a huge label to our foreheads. For example, if I was currently looking for a job, I'd post something like this:
I'm a web-developer with more than 8 years of industry experience. So far, I've been working with:
- HTML
- CSS
- Javascript
- PHP
- Symfony framework
- custom applications
- eZ Publish CMS (now eZ Platform)
- Pimcore
- Laravel
- custom work
My work was involved mostly with large distributed systems with complex data models.
Now, as you can see, I just labeled myself as an experienced backend developer. We do this each time we're on a job interview or a random job posting so we can tell our employers what to expect from us.
Does an 8-year experience matter? Yes. But I think the last sentence in that paragraph matters even more. Why? Well, what if instead of that, it didn't say anything at all? How would an employer know that I'm the right person for the job? The length of experience is probably less important than the KIND of experience. I know "junior" devs who run circles around "senior" devs with more than 10 year of experience due to their involvement in major projects these seniors never touched before. Yet those "seniors", only because of their title, do not feel obliged to learn from those "juniors". Believe me, those "seniors" are feeling entitled due to their label.
Also, as you can see, I'm specialized in one thing only. That's a mixed bag. In reality, we all know that PHP is not going anywhere, and in my experience, a switch from one framework to another is not an issue, especially with something as good as Symfony. On the other hand, I could never compete for something like a Python dev, or a Rust dev, or whatever. To people who search for devs using those languages, I'm probably either unemployable or low on the list of others who have more experience than me in those programming languages.
To those people I say: the KIND of experience matters. What I'm trying to say is that, in the search for quality devs, one should, from time to time, think out of the box. Perhaps the person who just applied for the job has an interest in switching to your tech stack out of a desire to learn. And their past experience, regardless of the technology stack, can help your company in general.
The point of this thought-piece is that, sometimes, we need to change the way we think in order to progress.
I'd be happy if we could get rid of at least some of the labels. Learning programming languages is a matter of syntax, mostly. There are always some hurdles you need to pass in order to grasp the nuances of a programming language, of course, but they're all minuscule compared to the general principles of programming you need to apply in your day-to-day development.
So please, discuss, which labels would you like to see gone and which labels would you like to stay in IT?
Top comments (4)
I'm a seniorish PHP developer myself, and I'd have to say I generally agree.
Though I basically did a single Angular project and I now bill myself as an Angular developer with 7 years Experience. PHP in general ( though Laravel is an incredible framework, and it's still my favorite hands down ) , is kind of a poor language from an architectural standpoint. Blocking IO and the fact that old PHP projects turn into spaghetti because of it's loose typing means it's not a top pick for alot of companies.
So I take a bit of the middle ground here. The Labels are somewhat inaccurate and can often obscure greatness, but they aren't totally useless because they do provide a useful short hand to HR people who don't know anything about software engineering and who don't understand how transferable most of this stuff is for a competent developer. I'm up to like 6 languages at this point and I'm just collecting them like pokemon, but that can be hard to get across.
Though on the upside, re-branding yourself as any kind of developer is quite easy so long as you can prove you can build something in language x or framework y. Also 80% of our job is being able to learn, so it helps to avoid thinking of yourself as x type developer. Your just a developer. The language is fundamentally immaterial if your any good.
Yeah, legacy PHP can be a pain. We gained a lot with strict types. And the PHP project itself has gained huge traction lately. Also, I read a bit on the P++ initiative, and I salute it. State of PHP is a lot better. And when I say I worked with complex data models, that's not an exaggeration. We're talking thousands of objects handled gracefully and above all, fast.
That being said, I'm generally not looking to rebrand myself, but... I don't think that should be that difficult as it is.
Yeah that's really funny to, because I'm actually less interested in Strict Types , ( I prefer optional typing, because sometimes type errors are a huge pain in the dick and can create lots of unnecessary boiler plate ).
Untyped Laravel Code but using explicit imports is more than enough for fantastic idiomatic code. It's actually better because your controllers can be super thin and lightweight. You can build API's lightning quick because your not wrestling with compilers, preproccesors, and linters written by sadists.
Let data be data I say, you have to validate it anyways.
But the market for PHP just isn't there - so I doubt I'll ever go back unless someone offered me a butt-load of money to compensate me for lost future revenue for having the wrong technology on my resume.
Oh, I wouldn't go so far to say there's no market for PHP. As I said, it's making great strides. And I do think it's gonna be with us for a very long time.