Do you recognize the thoughts that your brain keeps generating over and over?
"Next time, they will see you for what you really are," or "You won't get any good at this," or "You are a worthless idiot."
Yep, that's the imposter syndrome talking, my old friend I have known for quite some time.
I started coding when I was about ten when my father brought home our first computer, БК-0011, an ugly-looking Soviet PDP-11 half-clone. And I loved everything about it: the flat keyboard, the old TV you had to hook up, the cassette recorder to store and read programs, the GAMES! But the fascinating thing was that you could write your own programs. The first one we wrote with my dad would ask you for a name and then print a proper greeting with this name. Seeing this thing remember something and then print it was like a miracle! At that moment, I knew I wanted to write software. Well, games, of course 😂
I was occasionally coding some stupid things without any documentation or guidance. But mostly, I spent my youth years playing all kinds of computer games, especially later when we got our first "real" PC based on Intel 80286 processor.
As a very slow learner, I wasn't very good at school except for maybe math. When the time came for me to decide what college course I would take (whether I should go to college was never a question, especially for my parents), we picked the one that was easy to get to. Because, you know, it was easy.
I ended up with "Automated Control Systems in Technical Processes" or something like that. It's as convoluted as it sounds. It's also pretty diverse in technical aspects: a lot of electronics, automation theory, electrical drives, etc. At the same time, not only it's difficult to explain, but it's also much harder to understand, especially for non-technical folks. And I hated being in college.
At the same time, I had some side gigs as a "programmer" because, at the moment, it was enough to be able to build a PC so you could be considered a "he knows computers" geek. All I did was some primitive VB automation for MS Office products, and I was pretty proud of myself.
As you can see, I don't have a "proper" CS degree.
After graduation, I went to a state job agency (yeah, it was a thing in Russia) looking for a first "normal" job. When they asked me for a diploma, they looked at it and asked, "And what does it mean again?". I only cared about becoming a software developer, so I said, "I am a programmer." They said, "Okay then," and wrote me down as a candidate for a software developer position.
A state job agency like that would then try to find a place for you to work. It took some time, but finally, they called to inform me that I had gotten my first interview appointment. It was a position for one state-owned energy company (well, Russia, remember?) with a small office in our town. I was nervous and excited!
When I came in, there were three guys in the room. They measured me as if they were saying, "oh, another idiot." Two of them left to smoke in the corridor, the guy who stayed asked me about my education and smirked after hearing my answer. Then he asked me to sit down and write a sorting algorithm on a piece of paper. "Eh, in what language?" I asked, "Any language" he answered. It was very embarrassing. I knew that sorting algorithms existed, but I never wrote one. Of course, I couldn't write any code. After looking at my fruitless attempts, the guy stopped me and said in a toxic and typical Russian manner that I should've stuck with my hardware crap and not wasted anyone's time.
That was the first time I faced reality about my abilities. It was also the first moment my imposter syndrome hit me hard. It was so embarrassing I couldn't even say a word. And stayed depressed for a couple of weeks.
Of course, I kept doing my side gigs but couldn't shake this feeling that I was occupying someone's place, that I was just an idiot pretending to know something.
There were more interviews with other companies. And later the same year, I got my first "normal" job as a software developer with a company that was looking for someone who could maintain internal automation software they were pushing to production. For some reason, they liked me.
That was the job where I restarted the Primary Domain Controller during work hours on my first day. But they were pretty easy on me, so my boss only laughed and said I shouldn't do it again. One small step at a time, I started to look at my mistakes and stupidity with more interest.
Later on, I decided to study software development for real on my own time. I had an idea that learning C++ would change things for the better. So I bought the 3rd Edition C++ book by Bjarne Stroustrup that just came out that year. I started reading software developer forums. The only thing I knew for sure was that there was so much more I should learn about! And the more I read, the more stupid I felt. But interestingly, this feeling was not stopping me.
Later I got myself into Win32 API guts, database optimization, programming microcontrollers, different OSes, compilers, genetic algorithms, a tiny bit of machine learning, multiple languages, tools, and so forth. Except for the games, for some reason 😉
My growing interest in all things tech doesn't stop ever since; it just slows down at times.
I changed a bunch of jobs and worked with different technologies, and the only constant I have had for this whole 20+ years is my imposter syndrome. It's even here right now when I am writing this post. I got used to it, and somehow, I managed to adjust. I know it's just a part of me. And for some reason, I feel safe having it. I feel very uncomfortable when I don't think I am doing something stupid. Because maybe I am.
I have been trying to understand this duality for some time. And I got a clarity moment when, after all those years, I met a very talented and smart engineer who also did not have a formal CS degree. We worked together, and he asked me to pair with him to review his code.
The code was quite ugly, to say the least. A lot of copy-paste blocks and spaghetti dependencies, but it was working fine. When I started to approach the sensitive topic of code quality, he interrupted me and said something like, "You don't have to apologize; I know it's a piece of sh*t, I know, because I am not a programmer! I just happened to work on this. Just tell me how to improve it!"
And that was the moment. I realized this was precisely the feeling that had supported me all that time! After living long enough with imposter syndrome, it can't tell you anything that you don't already know. "You are an idiot," it says. And you say, "Yep, I already know that; please be more specific; in which part am I an idiot? I want to know". Or it says, "You're not a real developer," and you say, "Haha, yep, exactly! How much worse could I do?" and then you smile 😁
See what we did? We weaponized this freaking imposter syndrome. Embrace it, weaponize it, and make it work for you.