I, like so many other programmers doubt myself a lot. In spite of years of experience successfully solving problems and overcoming challenges, I still wonder about how I really measure up. I think about my high school years playing Super Smash Bros Melee. In my home town, I was good. Ten or so of us would get together and have a big tournament and I would typically either win, or come in second to my brother. During this phase, I met a friend in school, Paul, who learned I liked smash brothers and talked a lot of smack. We made plans to get together so we could see who was actually better.
It wasn’t even close.
I completely destroyed him. It felt great, having someone talk so much trash and then showing them just how good you are. I’ll never forget that feeling.
Well, a few years or two later, Paul and I would happen to go to the same college but we hung out in different crowds. I still played it, but pretty casually. Enough that I probably didn’t get much worse, but certainly not trying to get any better. I remember Paul approaching me again and asking if I wanted to play him. I remember gloating pretty hard, but Paul this time was pretty humble. So a little later on during a big get together he and I had our chance to face off again.
It wasn’t even close.
He completely trounced me. I think we were playing five stock, and I don’t think I took a single stock off of him. He was using moves I wasn’t even aware of. He could beat me with any character on the board.
I learned after that much that he had made a group of friends that took smash brothers pretty seriously. They got together multiple times a week to practice and they closely followed the pro scene.
There were a few lessons I took away from this. First, stay humble. It feels great to be the winner whether or not you talked yourself up beforehand. But talking smack and losing has got to be one of the worst feelings. The other (more relevant) point was that there are always bigger fish. Paul was significantly better than me now. But he was still nowhere near the top. There were still people that could make easy work of him in his own group.
I think about that a lot when it comes to programming. Whenever I do something I think is clever and clear, I’m so quickly reminded about how the ocean of programmers out there is vast. I work with programmers who are better than me. I consider that understanding an asset. But it can also be a bit of a detriment.
I might not be the best programmer out there, or even a truly great programmer. But that doesn’t mean I don’t have something to share. While people online can be cruel, and they frequently do know more than I do, I still have something to offer, and it’s important I remember that. That goes for you too. Almost certainly you have experience in what you do that differs from what others have experienced. That’s an asset that anyone worth working with should be able to see. As long as you are hard working, willing to learn, and polite, I really think programmers of all experience levels can act as a boon to their teams and their local programming communities.
If you’re uncomfortable with the idea of sharing something you’ve worked on, give it a try. You know something worth teaching.
I'm a father of three and a software engineer for both hobby and trade. I enjoy tabletop role-playing and board games - especially of the heavily social variety! I also occasionally participate in game jams with friends.
I'm particularly interested in self-improvement in all of those things. I enjoy progressing through a new skill and learning ways of maximizing my time and focus.