A developer's disease
By Alejandro Ocampo (@kadosh) - 10 Jun 2020
Some people talk about the health problems developers will face due to the amount of time we spend seated every day. It is very important, I won’t argue against that.
A developer’s disease
But there’s another problem that I have seen a lot of developers are facing. It is the status quo in their dev life.
It was Voltaire who said:
One day everything will be well, that is our hope. Everything’s fine today, that is our illusion
I don’t know if you are aware of that easy life you get once you get familiar with the project you’re working on. You learn the good and bad habits of the project. You know which areas in the code are wrong and you have an idea of how you can fix it. You learn to survive the day in the project, you know, let’s push some commits through the day, post an update on the ticket you’re working on, change the status on your task and that’s it.
You pray that nobody kicks the beast today, you know, let’s hope that no one reports a bug on those sandcastles we have in the project and let’s hope that someday in the future, somehow, everything gets better.
What about learning?
Be honest and answer this question: When was the last time you really learned something new?
Let me try to describe the status quo in a full-stack dev life…
A daily life example
You got started with React, for example, and it has been more than a year you’ve been working with it and you still don’t understand why you need to subscribe to network calls inside the componentDidMount.
I know that componentDidMount runs after the component output has been rendered to the DOM, I remember that from the basic tutorial.
Yeah, that’s stated at the docs. But do you really understand what it means?
How about css?
I have known developers that have worked more than 2 years with css and they still don’t get the very basis of the flex model. Some experienced engineers will end up adding a complete UI framework just to create a basic layout.
I’m not talking about you, it happened to a friend of mine…
Wait, but you will normally have a UI framework in your project. You should not do everything from scratch.
That’s right, but even when you’re relying on a UI framework, the framework relies on the fact that the developer understands how the flex model works.
How about .NET?
Ever wondered what is that thing inside square brackets before a method or a class?
Again, many full-stack developers know that those are needed in some places, but they haven’t reviewed it in a deep way. They know where to put it but they don’t have that curiosity to understand how it works.
Wait, those are called attributes and attributes add metadata to your program.
That’s right. They do that. But have you ever tried to implement a real attribute on your own?
And SQL
Oh wait, we’re full-stack, right? Let’s talk SQL. Really, there are engineers around who work with SQL in a regular way, and some times they don’t get the difference between LEFT/RIGHT JOIN.
We cannot know everything
I think that you understand my point. I’m not talking about understanding everything we do in a perfect way. It requires a lot of time, and sometimes we don’t have such a time.
But I’m talking about getting out of the status quo.
Overcoming the disease
I don’t want to simply point out the disease, but I’d like to also provide a guideline on what you can do to overcome this disease.
1. Identify the gray areas on your domain knowledge
This is the very first thing you need to do. It all starts by observing what you do in your daily dev life and identify those things that are already there but in your mind, there’s a black hole on how it works.
2. Spend some time digging on those gray areas
There’s a quote ascribed to Einstein which says:
If you can’t explain it simply, you don’t understand it well enough.
You need to put some effort to understand the what, why and how of those gray areas.
3. There’s a whole world out there
We all know that there are some engineers asking for whole solutions at Stackoverflow. But there are others that don’t care about clever solutions from the outside world. Sometimes, clever solutions require you to get out of the status quo and implement something totally new, but better.
4. Help others
You will be amazed by the benefits of mentoring others. You may think you understand very well some concepts, but when someone asks you about them, then it is time for your brain to make sure you are right. Helping others gives you the opportunity to discover more gray areas in your domain knowledge.
So, don’t simply stay still with the disease. Do something!!! Hopefully, this will help people to fight with that weird status quo disease.