Become more confident as a developer
I received an email from a developer not long ago. She introduced herself and asked me if her knowledge was sufficient to become, and I quote, “a real developer”. I have received this exact email from so many different people that I am actually writing an article about it.
A true developer
Today we’re going to talk about the idea that some developers would be more developers than others.
It’s something that comes up all the time with the more junior developers. It’s something that concerns all developers.
When you want to be part of a group, or a community more generally, you need to follow some rules and customs. There’s no escaping that. With tech, it’s obviously the same thing.
And for us, it translates into things like: “a real developer does C++”, or “a real developer never uses his mouse”, “a real developer spends all his free time on leetcode”, and other bullshit just like that.
I’ll spare you all the other examples, I’ve really read and heard everything.
On a senior developer all this has less effect. At worst, it could make you angry and you could start to slap people with your keyboard.
On a junior developer, it’s catastrophic. Because while you’re building your skills and your vision of the job, you’re being harassed. Permanent questioning that makes no sense at all.
Confidence takes a hit and the ability to learn with it. Most of the time, just to please one person.
And the tragedy begins when you learn things out of social pressure, not desire. It’s a never-ending story.
The never-ending story
Very quickly, people told me that I wasn’t doing any real development. I wasn’t a real one. At best, I was a word processor.
A real developer makes real code, you know? A real language with objects, classes and all that goes with it. So I learned PHP.
And when you’re a PHP developer but you’re not a killer in a framework, it’s weird. People look at you as if you’ve just landed with your flying saucer. So Symfony became my religion.
And then, people told that when you’re web developer, you’re not really a developer. You only make websites, it’s not complicated.
So I learned Python. And then I was told that Python is too easy. To be a real developer, you have to wait for a more complex language like C++. So I learned C++ by trying to code a video game on Unreal Engine.
And I continued like that for years, from tool to tool and new knowledge to new knowledge. I remember losing all hope with some medium Leetcode questions. Am I really cut out for this job?
Finally I came to understand that there was no end to it. I came to understand that it was only a problem in my head. A problem of elitism.
Understanding elitism in 30 seconds
Elitism exists everywhere. It’s not something that is unique to developers. That said, it is strongly present in our profession. And actually, it’s very logical.
Development is a very complicated job. Anyone who thinks the opposite have an ego problem. And when this complexity is “mastered”, especially with certain tools or certain ways of doing things, that’s when elitism appears.
What must be understood is that people who impose their elitism and their way of doing things as absolute truth do not do so without reason. They are people who have fought to reach their level of knowledge. Complex professions have this effect on people.
Development is no exception.
As long as you haven’t struggled as much as they have, on subjects as complex as they have, you won’t be a “real” developer.
I hate that kind of attitude, but it’s human to react like that. I’ve caught myself having this kind of attitude before. Of course, in a teddy bear version of it. I’m not completely stupid.
But despite all my good will and hindsight, sometimes it happens.
You are a developer
Let’s be clear.
- If you make code, you’re a developer.
- If you make code and get paid for it, you are a professional developer.
What I want you to understand today is that both of these facts are true. And it doesn’t matter, your language, your tools and your level of knowledge.
Don’t let anyone tell you otherwise.
You are not a “fake developer”. It doesn’t exist.
But I know that feeling is strong at the beginning of your career. With time and experience, some of that feeling will disappear.
I’m not going to lie to you either. It’s never going to completely disappear. I don’t want to talk about the impostor syndrome today, because it’s a subject in itself. We’ll come back to it in a future article.
All I want you to understand today is that elitism is the basis of all this. People who do not hesitate to denigrate others just to prove things to themselves. And sometimes it takes on ridiculous proportions.
You’d be surprised how many devs are completely questioned when they change jobs or teams. It’s common and completely normal. Usually it puts the elitism back in place.
Despite all these years of experience, nothing is fixed and absolute. The developers’ level is a long gray scale that moves constantly.
Not everything is black or white. There are also Arabs, Chinese, and people who think they are helping, but who only make things worse.
Anyway, if your goal is to be more waterproof and feel better as a developer, there are two very simple things you can do right now.
To feel better as a developer, I think you have to be pragmatic in the way you approach and do this job. And take the time to build knowledge with practice.
The Pragmatic Programmer
I remember the first thing that completely freaked me out as a junior was how much knowledge the other developers had around me. Especially in terms of best practices, code organization philosophy and general rules to make quality.
I always felt so overwhelmed. It seemed insurmountable. And in fact, if I hadn’t done anything, I was going to stay in the same situation.
Then one day I came across the book The Pragmatic Programmer. It was by far the book that gave me the most confidence in myself and my abilities. It obviously talks about technique, but not only that.
This book taught me the pragmatic approach of being a developer. And I apply advices from this book every day. It has calmed my anxieties towards my code, towards others, and especially towards myself.
It taught me the principle of entropy in development. It’s responsible for most of the rotten codebase. He taught me how to talk requirements with a client. He taught me how to debug efficiently. He taught me how to solve “impossible” problems in my code. He taught me how to communicate with other developers efficiently. He taught me how to give feedback and especially how to receive negative feedback.
The Pragmatic Programmer is responsible for the confidence I have as a developer. And I recommend it to all developers, regardless of your level.
But all this is nothing without practice.
I could give you all the tips in the world to feel better as a developer, it won’t help if you don’t practice on your own.
And normally, I’m supposed to give you a list of side projects to do. Complete subjects, that make you touch everything. Boring topics that you’ll never finish before you shoot yourself in the head because of boredom. Believe me, it’s not going to help you learn anything.
I know this because, once again, have been there. And my advice is very simple. Do a project on a subject that really interests you. No matter how useful it is, no matter what language you use, no matter what concept you working with.
If you do something you hate, you won’t finish it.
How to come up with an idea then ? How do you motivate yourself? How do you find time? I answer all this in the article dedicated to custom projects.
A personal project is not a chore. It’s by replacing the notion of chore by fun that you will do a lot of practice. And practice is the ultimate key to more confidence as a developer.
No developer is “more” developer than others. No matter what language or tools you use. People who think otherwise, you can simply ignore them. This will allow you to focus on yourself. And that’s all that counts for more confidence in what you do.