I often find myself feeling incompetent while completing tasks at work. I am a self-taught web developer, and everything I know I have learned through trial and error as well as a significant Google search history. I frequent some web development communities around the internet and have found a common theme: a lot of developers feel like they have no idea what they are doing, despite having jobs in the field. We feel like we have somehow tricked people into believing that we know more than we do.

Why do we feel this way

I learn by doing. When my manager interviewed me for my current position, he asked what experience I had with various technologies and languages. I explained that even if I did not currently have experience with something, I can usually figure it out and make something usable with it. The vast majority of what I have created during my time in this position I have learned as I worked. This ability is a double-edged sword, because despite my capability to learn and develop usable products I still feel like I know nothing. I feel as though the only knowledge I have is how to go to Stack Overflow and copy code that someone else has written. I have seen a lot of developers experience this same feeling of being an imposter due to the way they learn.

Skill is not what you know, it is what you can learn

I think this commonality between developers is because of a warped perspective. Our skill as developers is not limited to the amount of code, we can write off the top of our heads, but in our ability to understand, copy, modify, and adapt the code of others. And this is not limited to development. Any field or task can benefit from this ability and is probably doing so without knowing it. Anyone who has had to write research papers knows that most, if not all, information comes externally. You must clearly state a claim, back up that claim with sourced information and references, and create a work that combines the information while arguing a position.

A change in perspective

The perspective from which you view your abilities ultimately determines how you feel about them. Rather than a negative angle of "I'm incompetent and don't know what I'm doing", you can view it from a positive angle of "I may not know what I'm doing now, but I can learn and gain the knowledge I need". A positive angle changes the way we feel about ourselves and our skills. I may not be lead developer at Google material yet, but I know more now than I did a month ago and in a month's time I will learn even more. We all grow and improve and learn gradually, it is not an instant process. We need to be kinder to ourselves and think of how far we have come and how much we have learned rather than how much we do not yet know.