Wanting to learn how to code is very popular these days. When I first started writing code the only people who were into coding were those that you’d imagine in the movies. Think back to any representation of “hackers” or “coders” you’ve seen and remember how they look. If you are anything like me, your memory immediately took you back to super nerds or ultra geeks. Nowadays, developers or coders, look very different. Now we are the trendy tee-shirt, flip-flop wearing millionaires that live in Silicon Valley and drive Teslas, right? Not quite - but at least the perception is changing. Before the dawn of apps, hardly anyone knew that people who were “computer programmers” actually wrote code. Now people are so emboldened that they’ll even write an email or leave comments directed at developers about the code they’ve written! My how things have changed.

Coding became democratized by the internet and the freedom of information suddenly becoming available to all. Anyone who wants to learn how to code now has a seemingly unlimited amount of resources at their fingertips. I remember being in college and spending all night scratching my head trying to figure out what exactly the problem was with my project. Becoming desperate the best I could hope for were hints in my notes or maybe a fellow classmate down the hall who’d been killing the game all semester. There were no forums or sites like StackOverflow that could be searched easily to draw on the experience of developers all over the world. One only had textbooks, classmates, office hours and grit. Things have changed so much that now an aspiring developer can go online and find resources to help her code without any real struggle. I don’t wish the dark ages upon you like most old men; I want you to appreciate the effort so you can have a deeper gratitude for the effort it takes to accomplish this goal.

This book is for ye who want to learn beyond the code. There are hundreds of (free) resources out there to help you learn to code. I’m not interested in teaching you syntax. I’m interested in teaching you how to get the most out of your career. The primary reason I am not going to be focusing on a particular language is that programming languages change all the time. When I first learned to code C++ was the way of the future. Here I am some years later, and I write JavaScript. In twenty years, I’ll be writing code in some other language. Being keenly aware of this cycle, I’m more motivated to share my experience and skills that are transferable. At the risk of sounding convoluted or cliché, these may be even considered meta-skills.

My goal is to help you explore ways for you to excel in becoming the best employee possible whether it be for your current organization or a new team you hope to join. Simply put: I’ll share details about some of the techniques and strategies that I’ve used to make me successful in my career. I do not claim to be the smartest engineer in the world nor the best coder, but I still add significant value. I’m valuable to teams I work on because I understand the value of coding community and the value of making the people on the team around me better. I understand that collaboration on a team is more valuable that being a lone-ranger.

Rock, paper, Coding started off as a joke in my classroom because I nonchalantly mentioned that I was writing a book. Soon after I said it, I realized that in fact there were things I wanted to share with the students (and anyone wanting to learn). So these musings are not only about what to learn but how to learn. My hope is to share techniques on how to find out what you don’t know, how to do well in a dynamic group, how to deal with the insecurities that can come from working with people smarter than you, and how to make a career out of this entire thing.