# The Mediocre Programmer ## Introduction Let's face it; we don't want to be mediocre programmers. We want to be great programmers; superlative programmers. We want to be the programmers they call whenever they're in a bind and we want to be the programmers that rush into the code base and produce perfect code in a matter of minutes. Code that would sit in the Louvre as a work of art, studied by generations of programmers for its intrinsic beauty and exceptional functionality. Why would we want to be mediocre programmers? Mediocre is the opposite of great. Shouldn't we strive to be great programmers? Sure, we should strive to be great programmers in the long term. But to become great programmers we have to pass through being mediocre programmers first. Mediocre programmers know that they're not great yet. Mediocre programmers see the distance between where they are and where they want to go in their programming career. They see the work that goes into a being a great programmer and they know that one day they'd like to be that great programmer. But they also see their own faults and failings. They see their browser history littered with online-searches for basic syntax and concepts. They see their email archives of questions they've asked other developers. They look at their code from several months back and wonder if they'll ever get to be great programmers with all of those mistakes and missteps. They see the gap between them and the great developer they wish to be and it feels like that gap widens every step of the way. The mediocre developer wonders if it's even worth it; if they should do something else with their lives other then computer programming. Maybe they're not as good as they thought they were, or maybe they lack that special talent that great developers have. Maybe they learned the wrong things early on in their journey, or maybe they think they should have started sooner. They see others being wildly successful and wonder if they were absent the day that the good programming genes were handed out. The truth is we're all mediocre developers in some way. We all still ask questions and have to look up syntax and concepts in our day-to-day programming. Computers continue to add complexity to everyday programming tasks and it takes a lot of mental bandwidth to keep all of those concepts fresh in our mind. This book is about helping you along on the journey of being a mediocre developer. Together we'll uncover some of common misconceptions we have about programming, failure, and growth and come to understand that the act of programming and development is something we undertake each day and improve in small ways. It's these small changes that over time transform us from being mediocre developers into better developers. There are plenty of books on how to become a better developer out there. Usually they have checklists and other things that the author deems important for you to do in order to become a better developer. This book will try not to saddle you with more work (you likely have enough as it is). Rather, we'll discuss what it feels like to be a programmer. We'll talk about the emotion of being a programmer; the feelings of frustration, guilt, anger, and inadequacy. We'll talk about those feelings you have of giving up and walking away from computing and whether those feelings come from a place of love or a worry that you're not keeping up. This book is a personal journey for both of us. It's a memoir of my time as a programmer and my feelings along the way. I've thought many times about giving up and finding a different career path but funnily enough doing anything other than being a computer programmer scares me even more. Does that mean I'm stuck in a perverse oroborous of self-pity and self-doubt? Hardly. It means that I need to dig deeper to understand why I chose the path of being a programmer and realize that it took a lot to get here and it's going to take a lot more to get where I want to be. It's a commitment to seeing things as they are now and moving forward from wherever I'm standing. Let's start the journey with figuring out what lead us here and where we are now.