imposter-syndrome as competitive edge
my aquired imposter-syndrome
no, this isn’t clickbait and I’ll make a case for it
When I started getting into programming almost 14 years ago - when I was 14 - i was immersed in a developer community with a handful of very gifted programmers but also hundreds of copy/paste kids from the first minute. I had joined an english-only private server community that wrote MMORPG servers from scratch.. as someone who could barely order a drink in english and didn’t even know how to pronounce ‘C#’. Thankfully, there was a guide on how to download some source code, compile it and how to connect your game client to it, it required zero programming knowledge and was basically unzip and F5 in visual studio. Half an hour later I was writing an advertisement about my new server.
They tore me apart like fucking vultures.
When reality comes crashing down on you, you have a binary choice: accept it or go into denial. I had no idea what I was doing and people were quick to point that out. My first choice was denial. I defended myself saying most other servers are using the same source code and have the same problems and my Hamachi room was better and my uptime was from after-school hours till the morning before I had to turn off my computer (ahh what i’d give to be 14 again). I felt like i was competing nicely with the majority but people immediately pointed out that ‘just because the majority is a bit more shit it doesn’t meant my shit is good’
I felt horrible - because they started making sense.
Having players play on my shitty server - talking with me, encouraging me, telling me about all the known bugs and exploits,.. - was a source of good feels though, so I couldn’t just quit. I had found something that truly gave me joy in life, i was passionate and driven. I’d just scroll through the code files and read everything trying very hard to understand at least a single line. I’d read the threads on the forum, 200 pages in one go if it was that long, to get some insight into programming; what were people talking about? Is anyone posting code? Is there something I could copy paste?
There was a lot of discourse, my english was too bad to make sense of most of it but i was persistent! Failure was not an option, I’d prove all those cunts wrong and learn how to fix the problems and create something they couldn’t criticize anymore, force them to see me as an equal! How they saw me instead was a kiddy who couldn’t do anything bot leech off of others and copy paste together some shit others had to write.
Back to feeling terrible I guess.
After some weeks of copy paste I had the skill of a GOD… in copy paste … still couldn’t write any code myself but at least I somehow figured out how scopes work and where I have to paste stuff and that I sometimes had to rename a variable. Most of the other people leeching code couldn’t figure out where to paste stuff and if there was a typo somewhere they’d complain on the forums about “shit releases” because the “code doesn’t work”. That gave me some joy. Additionally I had picked up a couple terms and keywords, i had a rough idea what an integer and a string was, i knew about semicolons and curly braces and one guide that showed how to add a new NPC to the game was easily deconstructed into the knowledge of how to edit existing NPCs. That opened up a lot of new terrain for me. Now I’d be able to create some basic quests! I’d spend days to build a trivial ‘talk to A then talk to B then get item C’ quests. My players liked what I was doing and the american / british players I had would improve the grammar, spelling and wording and I’d update the code. I felt good again! Posted my first ‘guides’ on how to make those quests on the forums, .. and get torn into pieces by people shitting all over my code.
Hello darkness my old friend…
Months later, I’d have hardly any issues reading english forum posts, i’d read parts of code and understand them. I finally discovered StackOverflow! Now I could ask my questions there and get answers from professionals! Wrong. I got shamed and banned within a week. There’s been some leaks of new source code with much more features, it wasn’t as easy to setup, required MySQL and Apache, config files and it was unstable as fuck. But I knew i needed to make it work to stay competitive. I’d spend the first day trying to figure out what MySql was, what apache was, how i’d get the database imported and the server connected to it, how to create a SignUp page in php, ended up paying someone 10$ for a blank page with a username and password box and a submit button. That’s when I created my first paypal account at the age of 15 and spending half my monthly pocket money. Paypal was supposed to be 18+ but in the early days they didn’t do any verification. Sadly that ruined the end of the month. I had to pay 20$ a month for 1GB of 3G internet and I just spent half of it. So a couple days later internet was gone for the rest of the month. Without any internet all I had was trial and error, changing random stuff and see what happens, do more NPCs and quests, write a list of things to google when I had internet again,.. and fearing that all my players would bail on me for the long downtime.
and i couldn’t blame anyone but me
Two years later, I’d be comfortable writing code, implement custom features nobody else had ever even thought about. I’d stay in the top 3 for months, have the most popular private servers for a year while the big guys took a break working on their next version. Those big guys still saw me as the same Leecher I had been in the beginning. They’d always talk shit about me, when I posted code they’d still heavily scrutinize it and find 500 things wrong in a 100 character line of code. It got to a point where I thought i was just a complete failure. I felt like I improved A LOT but the people i looked up to and wanted recognition from wouldn’t give it to me, just the polar opposite. Another problem was that I had reached the stage where I could actually understand their criticism and see the truth in it. There was no denial anymore, I knew they were right. I was proud of how good I had become on my own but the people I looked up to would always prove that I hadn’t become good at all.
I felt like a complete scam.
I took a break from the private server scene and bought a book on C#, read it, did all the practices, it was horribly boring. I stated writing some random utility tools for my personal use, made some tools for friends, dabbled with GUI programming and chat applications. My coding abilities were very much constrained to the MMORPG servers I was working on. I had no idea how to do anything else but I learned quickly after a slow start. Writing my own chat client/server to replace MSN was the first project i got really into since taking a break from the private server development. Eventually I realized that I could probably write my own private server from scratch as its just like a chat server, just with different logic and more packet types - which were already available in the community.
So I started writing my own. I’d have two, three sometimes four reference projects open in visual studio, initially copying a lot of parts without modifying them in any meaningful way, primarily the cryptographer, the packets, the packet parsers, and the calculations and dice-rolls. After 5 months I had something that was almost playable. You could login, kill monsters, get experience, use skills, talk to NPCs,.. all of the basic stuff worked - more or less. Surely now they couldn’t call me a leech anymore, right? “Half of the code is leeched and the other half is even worse”
I’d never get a job if i didn’t start learning how to write proper code. If I want to turn my passion into my job I have to become as good as them. I started pestering the guys i idolized. Please teach me how I can improve, please show me your code so I can learn. No fuck off! Please! NO! PLEASE SELL ME YOUR CODE, ILL GIVE U 100$! 100$? Hahaha I spent months on this code its worth at least 300$! OK ILL GIVE YOU 300$!
I probably spent 600$ on private server source codes in total. I bought some off of the guys directly, others I bought from people they trusted, others I manipulated into giving me their for free and even others I’d pester into letting me watch them code on TeamViewer. I’d ask for control to check out files and make sure I got every file from top to bottom for at least a moment. They didn’t know that I ran screen-recording software so I could slow it down later and type it all out. Which I did. It took hours and hours.
Often times I’d look at their code and find myself dumbstruck by never having seen certain classes or attributes or unsafe code in unconventional places. I’d take parts of that code to StackOverflow or other people i knew and ask for explanation if google didn’t yield anything.
I got quite good at this point. I was more than comfortable writing code, I even wrote another server from scratch, this time with minimal “inspiration”. And I made sure it used less RAM than any other public server, was more CPU efficient than any other public server, would never crash and would still have features nobody else had. I’d get sooo obsessed about optimizing code because I knew people would just shit on it again if it wasn’t perfect. I’d take courses about low level C# programming with unsafe code, I’d take courses on Threading and read CodeProject articles on “High Performance Sockets” and “Memory Allocations” all of that. Eventually I made my server run on a raspberry Pi - i realized that if I set my target hardware to something as powerful as a retarded potato, I’d have no problems with performance when I actually put it on a VPS for production.
I’d get great results, everything would be fast enough, use weird memory optimizations like packing things in BitArrays, stackalloc, pointers, threads,.. and my code would look absolutely horrible every time i got half way through to completion… I always felt like a scam again. I mean after all, if I hated my code and could see 100 things that are wrong, im sure they could see 500 things that are wrong with it. I was too afraid to post anything anymore because I couldn’t take the shame.
One of my idols had sold me his code and even after all my pestering, still talked to me and occasionally even answered some questions (though I’ll never forget his default response to 90% of my questions: “I forget D:”). He was a couple years older than me and had a job as a programmer when I sent him my latest server I had written from scratch. It was the first time he said “its not bad”.
I said that one day I’ll become a professional software developer too and get a job in the industry and that I’ll keep learning until I’m useful and try to get into uni for a computer science degree.
He laughed and told me that I’m clearly better than most of his colleagues.
Telling me that some computer science graduates struggle with reversing an array and most juniors need someone to hold their hand just to write code that works - let alone efficiently or beautifully.
He said that almost all code is shit code, that his code is shit code in his eyes, that it keeps him on his toes, pushing the limits, getting better, that if you are your own critic and take your criticism to heart and work with it, success is inevitable and you’ve earned the the right to call yourself a programmer.
He said as soon as you become complacent you stagnate and become a fraud.
I’m convinced, Imposter-syndrome is just as bad as pride. Good servants but bad masters. The key is to find balance. Know what you can do, know what you can’t and be honest about both.