Some thoughts on the labels we attach to ourselves
Tags: webdev, learning, discuss
Published: 2020-02-28 09:18:18

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?