What is The Mediocre Programmer?

The Mediocre Programmer? What's that?

The Mediocre Programmer is a book about the journey of becoming a better programmer. But before we can become better programmers we have to pass through being mediocre programmers. Mediocre doesn't mean a bad programmer --- far from it. It means lacking skill. As beginners we start our journey full of fresh ideas of how we'll be great programmers, but as we learn more we realize that the gap between being a beginner and an expert programmer requires us to be mediocre for a time. And that period of mediocrity can be frustrating. As beginning programmers we're given all the encouragement to explore and make mistakes. As we move to the intermediate and mediocre stages of programming that encouragement fades. Instead of encouragement we are faced with expectations, both from ourselves and from others. We start to question our abilities. Why do we have to keep looking things up? Shouldn't we already know this? Why does programming feel like a struggle? Am I ever going to be good at this?

This book is about helping you along on the journey of being a mediocre programmer. 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 programmers into better programmers.

There are plenty of books on how to become a better programmer out there. Books like this tend to have checklists and other advice that the author deems important enough for you to do in order to become a better programmer. They tend to focus on specific improvements like choosing a better editor, writing better test cases, or drinking lots of water. Those books have lots of useful advice, but they read like a laundry list of things that you must do all at once in order to succeed. 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 emotions in being a programmer; the feelings of frustration, guilt, anger, and inadequacy. We'll cover the struggles in learning new things and keeping your skills current. We'll talk about those times when you feel like 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 doing anything other than being a computer programmer scares me even more. Does that mean I'm stuck in a perverse ouroboros 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.

I hope you'll join me on this journey.

(The book is released under a Creative Commons Attribution-ShareAlike license (CC-BY-SA). You are encouraged to read it, share it, and use it to help others through their struggle).