You’re not really a developer. Sooner or later, people will realize that you do not understand what you are talking about. You are not savvy enough.
Perhaps you have such thoughts, in one form or another. Nobody told you that you are not a developer, but you keep thinking about it. Perhaps you are thinking so right now.
I’ll reveal a secret about this feeling. Ready?
All developers, to one degree or another, think and feel this way. This occurs so often that it has become a well-trodden path that we all follow.
Even the best of us – seasoned veterans and very talented newcomers – are gripped by similar unpleasant experiences. We all misjudge our development skills.
Moreover, such thoughts can be harmful. They force us to keep our ideas to ourselves. They force people to refuse to participate in projects. They narrow our prospects and destroy potential. They drain strength and limit us. They deprive us of people.
Today we will talk about feelings… What for? Because developers are people, not machines. Our feelings affect the quality and enjoyment of our work.
This article is dedicated to everyone who at least once felt that they could not apply for this profession. Anyone who is dissatisfied with their programming skills, or considers themselves not good enough developer. If you’ve ever felt uncomfortable calling yourself a “developer,” then this article is for you.
Defining a developer
Let’s start with the main definition. Ready?
A developer is the person who writes the code.
And that’s it! There is no Sacred Council that gives you the title of developer when you reach a certain level. Nobody sends you a certificate on parchment with ornate signatures and silver foil stamp. There is no official exam that you need to pass in order to finally, finally you have acquired the right to be called a developer.
Sometimes they judge what it means to be a developer based on artificial criteria. It is called filtration (gatekeeping) and this
heh nonsense. Nobody can decide if you are a developer or not.
If you write code, then you are a developer.
It doesn’t matter if you write professionally or in your spare time. This can be done in the CLI, IDE, web, or inside another application. It can be client-side code, server-side, embedded, cloud-based, local, remote, or some other. If this is a code, then you are a member of the club.
Impostor syndrome is a state when you feel like a cheater: they say, you are not good enough and someone will understand this in the end, or you don’t belong here at all. Most developers feel this way at some point. Don’t believe me? David Walsh wrote great article about your similar experience.
In our industry, it often seems that there are super experts – people at the pinnacle of professionalism who know everything and have answers to everything. It is difficult not to compare yourself with them and not to feel your shortcomings. But this feeling is only perception, not reality. Here good illustration:
It may seem that everyone knows more than you, but they are not. A whole treasure trove of knowledge is stored in you. Instead of suffering from not knowing something, think what you can do and share it with others. This will not only enrich them, but also strengthen your understanding of what knowledge you have.
Hockey stick training
When you first start coding, things are prohibitively complicated. As skills grow, it gets easier. And in the end, you stop thinking about the code and start thinking about the problem being solved. It’s like driving: after a certain amount of practice, you already unconsciously pedal. Someone calls this state stream…
But this requires time… There is nothing wrong if, even after years of effort, you have not entered the state of flow. Each new portion of knowledge brings you one step closer to it. Every time a huge new language feature or heavy documentation (or just mastering jargon grok and grep), you get a little closer to the flow. But in reality, the learning curve is more like a hockey stick.
When you go half way, you fall into a trap.
Being a developer does not mean climbing to the top of knowledge. This means climbing up to the top, enjoying the view for a bit, and then starting to climb to the next summit.
It’s perfectly normal to feel like you have a lot to learn. Everybody has this feeling… For most developers, this feeling doesn’t go away at all. Here is one of my favorite quotes from John Archibald Wheeler:
As our island of knowledge grows, so do the shores of our ignorance.
The more we learn, the more we understand how much more needs to be learned.
In his wonderful book “Mindset“Carol Dweck explains why people adopt one of two ways of thinking as they learn.
The first image is fixed: a person believes that his skills or knowledge in this area is innate and unchanging. It is not that they are not improving – they are improving – but the person is confident in the limitations of their abilities. And his productivity exemplifies his way of thinking. The problem with this way of thinking manifests itself in difficult situations: people try to avoid difficulties because they can threaten their self-image.
The second way of thinking is the mindset for growth. It implies that observation is a skill that can be developed. Difficulties are perceived as an opportunity to learn new things. Intelligence is not static, it is mobile and changing.
People with a growth mindset almost always outperform people with a fixed mindset over time. Yes, there are exceptions. But if you look at the situation as a whole, tenacity usually triumphs over talent.
There is no shame in a fixed mindset. Each of us adheres to one of these types of thinking in relation to different situations and phenomena. But the main takeaway from Dweck’s research is that it is easy to switch between the two.
The trick is to reformat your attitude towards a topic. Software development is skill, not an innate ability. It takes patience and practice to learn it.
So the next time you chew on a difficult task, try to see it as an opportunity for improvement.
What’s the point?
What does all this mean? what you are a developer… Welcome to the developer community.
Stop assessing your position, you don’t have to. Feelings characteristic of impostor syndrome are just perceptions. Be patient with your studies. Change your way of thinking. This process takes time and we are all learning.
And the most important thing: go and write the code…