Much is said about how you need "Passion" to work as a developer.
How one can not be "the best" if you are not passionate about it.
>> Passion is overrated.
Or how "you are not a real developer" if you don’t study at least 2 hours per day, every single day, to keep up with the hypes and trends.
As if no one has a family, kids to take care of, or a hobby just for the fun of it with no intention to make any money out of it.
Actually, turning everything you do into some kind of business is a bad idea, don’t fall for The Modern Trap of Turning Hobbies Into Hustles.
Or how you have to love coffee, energy drinks, or any other stimulants to be at the top of your game.
And "the best time to code is at night", and then you develop the sleeping habits of an owl.
For some reason, exercising, sleeping, and resting properly are underrated.
If you have ever heard any of these items as mandatory to be a "Professional Developer" and believed in them, you have been misled.
Consistency vs Excitement
Excitement for something is an awesome feeling to start any project.
The tech is new, the project is new, everything is new, so excitement is only natural.
But any long-term project, with any stable tech, will, at some point, lack the excitement.
Excitement is human, but Consistency is the skill of a professional.
You wake up every day and do the work you need to do.
Showing up every day is hard and this is what is expected from a pro.
Your level of professionalism is shown by how you perform when you are at your worst.
Not just what you like
You can’t expect to always work on the shiniest and newest.
Legacy code is working code.
The biggest companies run on code that is decades old.
Most of the code that makes real money in the world is, at least, a couple of years old.
By definition, unless you are joining a brand new project in a brand new company, chances are, you will work on legacy code in a not-so-hyped tech.
If you want to keep exploring new tech, keep your own pet projects on the side.
As a pro, you are paid to solve problems, not to code.
You are not your tools
A pro is not a synonym of its tools.
Just because you specialize in Python, doesn’t mean you can’t work with JavaScript.
Just because you like framework X, doesn’t mean you can’t work with framework Y.
A pro uses the right tools for the right job.
Of course, you can always perform better with the tools you know the best, but don’t force the use of a hammer to do the work of an electric saw.
Always Learning vs Adaptation
When people think about "Always Learning", they think about taking time to study every day or every week.
To keep "Always Learning" is a matter of adaptation.
It doesn’t matter how much you study, you will never know everything you need to know.
Backend, Frontend, Machine Learning, etc.
Any of these areas are big enough for you to spend the rest of your life digging and getting better at.
Adaptation is the true differentiator of a pro.
How fast can you learn the skills needed for a situation you were not previously prepared for?
Having your basics in place is what gives you the power to fluctuate among different tools.
The process of learning top-down is nice, but learning bottom-up takes you further.
Get to know JavaScript, and React or Angular or Vue will be a matter of simple choice in a given situation, not a dreadful moment.
You don’t need to be an expert to deliver a lot.
Be a Finisher
Many can start, but only a few can finish.
To have working code at some level takes some work, but having it polished to the point you feel confident it can grow to high levels of use is another matter.
A system is never "done", if it is used by someone, there is always something to change, fix, or evolve.
Going from some piece of code that "just works" to another one that can handle every situation is something else entirely.
A finisher goes all the way through this path until the polished product.
The starter is moved by the feeling of excitement.
The finisher has the skills of a professional.