Over the years I've worked as a programmer, I've noticed, both in myself and in other programmers, various behaviors that make us unproductive. These are usually either low self-esteem, fear of the unknown, or arrogance, which create the problems. In other words, human traits that, as human experience has shown, if we manage to tame them, we make the world a better place.
1. I need to learn everything to be a good programmer
This is something that might happen when you start your journey as a programmer. Slightly influenced by the countless movies that portray programmers as centers of knowledge and wisdom, and overwhelmed by the vast number of technologies out there, you may feel inadequate to become a programmer or believe that you must dedicate your life exclusively to it.
When I was finishing school and trying to find my first job as a programmer, I would read all the job listings and the knowledge potential employers expected me to have, and I would break into a cold sweat. Technologies I had never heard of, unknown and incomprehensible terminology. It was the reason I didn't pursue programming professionally at that time and chose something simpler, like network technician.
However, if I had overcome my fears back then and managed to find a job as a programmer, I would have faced another problem that many new programmers experience: imposter syndrome.
In fact, when I started working as a programmer in 2016, for two years I believed that I was just lucky, and soon they would discover how clueless I was and fire me. This anxiety pushed me to try to learn as much as I could. To learn WordPress, to learn JavaScript, to learn Laravel, to learn C and C++ (as if I needed them as a web developer), to learn the meaning of every new buzzword I came across in the programming world.
Fortunately, I soon realized that all I needed to do was focus my attention on one language, one framework, and learn fundamental concepts and how I could apply them in my daily life as a programmer.
As programmers, we need to understand that we cannot learn everything. There are so many programming languages, frameworks, and technologies out there that even two lifetimes wouldn't be enough to master them all. We just need to understand that the only thing we need to learn are
2. I know everything, I am the best programmer
Fortunately for me, I have never encountered a programmer with the arrogant attitude of a know-it-all who is always right. However, this is another human behavior that we often encounter in everyday life and, sooner or later, we will come across it in our profession as well.
At some point, we may acquire enough programming knowledge to start thinking we are something special. This might be reinforced if, in your work environment, you're the one giving everyone answers and helping them with their problems. But it's important not to fall into this illusion.
We should always keep an open mind and listen to the opinions of others, even if they don't have our level of experience or knowledge. A good idea can come even from the person at the corner kiosk, who may have no connection to programming. Rejecting an idea just to assert our superiority helps no one.
Greater than the value of being right is the ability to collaborate with other people, and that cannot happen if you believe you're always right or that your opinion is better than others'. Collaboration solves problems, and that's what we, as programmers, ultimately want to do—solve problems.
This problem is impossible to solve; no one has ever solved it before
Let's say you've been working as a programmer for a few years, you have confidence (but not arrogance), and you're presented with a problem you've never encountered before. It seems impossible to implement, and you reject it. Congratulations, you’ve just missed an opportunity to become a better programmer.
I understand the fear someone may have of the unknown, but a programmer doesn’t exist just to build simple CRUD applications. After all, even an AI could handle that today. Programmers are here for the difficult problems, and those are the ones that improve us and make us better.
Sure, not all problems can be solved, but we shouldn't dismiss even the attempt to solve them. Before you say, "I can't solve this problem," make an effort. See if others have solved it or have tackled parts of it. Ask another programmer if they have any ideas. Only when you've reached a complete dead end should you admit defeat. There’s nothing wrong with that. At that point, say, "At this moment, I cannot solve this problem."
The process of attempting to solve it, and even admitting defeat, elevates you. It’s no small feat to break out of the routine of producing simple CRUD applications and do what you were meant to do—solve real problems.
Top comments (0)