Launching A New Career
Let’s begin with a goal.
This book exists to help you land your first job as a software developer. The job will ultimately be called something like “frontend engineer” or “web developer”, but: The overarching goal is to get someone to pay you to write code. At that point, the seeds of a success and sustainable software career will be in your hands.
How and Why I Wrote This Book
From 2010 to 2012, in the wake of The Great Recession, I began a career as a lawyer. While successful, I wasn’t philosophically happy with my work. The world (America especially!) does not need more lawyers. I needed to find a new career.
I wanted a career that would:
- Grow the world by creating new things.
- Be economically feasible as soon as possible (someone would pay me to do it).
- Not require any more formal schooling.
- Not require too much money to get started.
Software engineering seemed an obvious choice for these criteria. We’ve all heard stories about college dropouts who became software millionaires. All I needed was a measly few tens of thousands! And so I decided to learn to code.
By the end of 2013, I was getting hired to make software. Over the next 5 years, I held titles like Hacker-In-Residence, Software Developer, Senior Full-Stack Developer, and Chief Technology Officer. Along the way, I learned a lot about what works (and what doesn’t) when making a career transition to software engineering.
. . .
As the years have gone by, many people have asked me for advice about making a transition to paid software engineering. It is common knowledge that “software is eating the world”. People fear being left behind, and they want a more modern skillset without the shackles of student debt!
Unfortunately, you can mentor only so many people at a time. As I have watched friends and acquaintances struggle through the frothy sea of “LEARN 2 PROGRAM!” tutorials and classes, and then give up and go back to a job they hate, I want to shout No! There is a way forward for you! It’s not hard to get an entry-level job making webpages! And you can do other cool stuff after that!
And so I now welcome you to ZERO TO CODE, a book to help people break into the software industry. This book is pretty different from the standard introductory coding tutorials, most of which focus on learning programming. ZERO TO CODE instead focuses on building software programs (mostly webpages) and getting a job. In the course of building many small software systems throughout this book, you will gain the the knowledge, portfolio, and confidence that make a junior software engineer seem an attractive and valuable hire.
At this point, you are probably (prudently) questioning whether a book this size can really guide you to new employment.
A Software Industry Secret
Have you ever seen the news headlines that say “Demand For Programmers Sky-High”? It’s true. There are not enough software engineers in the world. This fact itself is not surprising, but there’s an industry secret that flows from it:
You don’t have to be great at programming to get your first programming job.
One flip side of the gargantuan demand for programming labor is that the software industry lacks many of the artificial barriers to entry that exist in other knowledge worker careers. You don’t need a college degree or certificate or five years of experience to be a programmer. Though they don’t advertise it, many companies are willing to gamble on new programmers who have only a few months of experience. Most entry-level programmers are hired primarily on the basis of mere potential. This includes hires who are fresh out of Fancy University with Computer Science degrees. (This is a good time to point out: although they are related, computer science and software development are not synonymous).
This is tremendously heartening for people who want to launch a career in software! If you look like you can be a productive team member, you can get hired to write software. This is the bedrock of our strategy.
So How Do I Get Hired?
There are three steps to getting any job: Getting the interview, passing the interview, and negotiating/accepting the offer. This book is largely about the first two steps. We focus on building the résumé and skills that gets you to and through an entry-level software engineering interview. Let’s go ahead and dial in on the most salient point of the preceding section:
If you look like you can be a productive team member, you can get hired.
To get to the interview, we must then ask: What is a productive team member? A productive team member is one who helps the team build software. So how do you look like someone who can help a team build software? How do you look like someone these software companies want to interview?
The Zero To Code Approach
This book guides you through building a series of webpage and data processing projects. Each project is presented as an assignment you might receive as an employee of a software company, complete with simulated dialogue from characters like The Designer, The Team Lead, and the Backend Engineer. This form of assignment is used as a device to simultaneously teach you software development and software team skills.
Using version control (a system for saving your code and working with other coders), you will keep copies of all of the projects you build on a website called GitHub.com. Doing these projects and being able to speak intelligently about them will make you look like a developer who can help a team deliver software. Your GitHub profile will serve as a testament to your abilities. By doing these projects (and also attending meetups!), you dramatically increase your odds of getting and succeeding at programming interviews.
By the time you are done with this book, you will have
- Learned a broad array of web development skills.
- Learned how to answer your own software questions.
- Developed several software development workflows.
- Created a résumé full of coding projects on GitHub.
- Learned about traditional software team roles.
- Made a solid start on your lifelong coding journey.
This book wraps up by giving you guidance about what kinds of jobs to apply for and how to prepare and conduct yourself throughout the interview process.
What This Book Is And Is Not
I don’t want to lead anyone astray, so let’s begin with what this book is not. ZERO TO CODE is not an all-in-one manual. We frequently point you in the direction of further resources (see Appendix A: A Hacker’s Bookshelf). Itt is absolutely essential that you consume at least some of them. While one of our primary goals is to reduce the frustration and time inherent in learning to code, if you are not someone who can force themself through some initially frustrating learning experiences, this book (and coding in general) is not for you.
ZERO TO CODE is a how-to book. With particular emphasis on web development, it teaches you to systematically build software. There are dozens of projects in the book. Each project is presented as a workplace assignment, complete with scripts of simulated conversations with your bosses and coworkers. From those conversations, we deduce requirements for the software system we’ve been tasked with building. We then architect the system, breaking it down into solvable (code-able) components that we then code. In many cases, we deploy a webpage on the World Wide Web. This sort of top-down approach stands in stark contrast to other entry-level coding books. Most of those operate from first principles, leaving their readers muddled in the weeds with no worthwhile coding projects to show.
ZERO TO CODE is your navigator through the sea of tutorials. It will help you figure out how to build software. It will help you figure out how to get paid to code.
This is book can be productively read by four different kinds of people:
- New programmers aspiring to a sustainable software career.
- Programmers working on their first web development team.
- People working with or on a programming team for the first time.
- People who want to know how webpages work.
This book is primarily for the first audience - those who want to become employed programmers.
By The Way: You are a programmer. Say it out loud right now: