“Begin with the end in mind.” -The 7 Habits of Highly Effective People (this is the second habit!)

“Give someone a fish, feed them for an hour. Teach them to fish, feed them for for life.”

The Goal:

Getting Your First Programming Job

Are you trying to break into the software industry? This book can help you land your first job as a software developer. The actual job title will probably be slightly different – maybe something like “frontend engineer” or “webpage developer”… but no matter what they call you: The overarching goal is to get someone to pay you to write code. Once that’s happening, the seeds of a successful, sustainable software career are in your hands.

Part 1 of this book is introductory. It offers generalized advice on how to mentally and practical tackle the learning path ahead. Part 2 helps you set up your basic workflow for coding and creating websites (résumé pieces!). Building with that workflow,Part 3 and Part 4 focus on HTML, CSS, and JavaScript and guide you from zero-to-deployed for dozen-plus websites. This is where you learn to build your code portfolio. Part 5 is a walk-through of the interviewing and hiring pipelines.

Many of these chapters are presented as simulated challenges you would find in a software company workplace.

If you work through the book, you will have a GitHub portfolio full of projects and concrete ideas for how to make more. You will be someone with a rudimentary grasp of software engineering principles and knowledge of the general industry. You will know how to make yourself a better software engineer going forward, too. You will be a software engineer who knows how to tackle previously unseen problems – the sort engineering managers like to hire for entry-level positions.

Before we dive into the code, let’s talk about how Zero To Code came to be.

The Origins of Zero To Code… or Why I Wrote This Book

From 2010 to 2012, in the wake of “The Great Recession”, I started a career as a lawyer. I had good jobs, but I wasn’t happy with my work. The world (America especially!) does not need more lawyers. I needed to find a new career.

My new career criteria were:

  • Create value for human society.
  • Be economically feasible as soon as possible (someone would pay me to do it).
  • No 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 or high school dropouts who became software billionaires. Hell, I didn’t need billions - all I needed was some thousands! And so I decided - resolved - to learn to code.

By the end of 2013, I was a software engineer. 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.

“How do I get a coding job?”

As the years have gone by, many people asked me for advice about becoming a coder/programmer/software engineer. As the Silicon Valley gadflies and oligarchs like to say, “Software is eating the world!” People often fear being left behind by either their age and/or the transitioning economy. People want a modernized skillset… hopefully without the shackles of student debt!

You can mentor only so many people at a time, though. I have watched too many friends and acquaintances struggle into the frothy sea of “LEARN 2 PROGRAM!” tutorials and classes, get bogged down and discouraged (they are almost always making great progress without realizing it), then then give up and go back to a job they hate. I always want to shout “DON’T STOP! What you’re feeling is just impostor syndrome! There is a way forward for you! With a few more months of grinding, you can 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 basic programming concepts. 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 an attractive and valuable hire.

At this point, you are probably (quite prudently) questioning whether a book this size can really guide you to new employment. WELL! Pour yourself a fresh cup of coffee, my friend, and let’s speak frankly.

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 Pants University with Computer Science degrees. (Note: Computer science and software development are not the same thing).

This is tremendously great news for people who want to launch a career in software! Why? 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 Make Myself Look Like A Good Hire?

There are three steps to getting any job:

  1. Getting the interview,
  2. passing the interview, and
  3. 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 relevant point of the preceding section:

If you look like you can be a productive team member, you can get hired.

So 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 to Becoming a Software Builder

At its core, this book guides you through programming and deploying 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 delivers software. GitHub is an industry standard, and 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 public 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, how to prepare and conduct yourself throughout the interview process, and how to keep advancing your career once you get the first job.

What This Book Is And What It 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). It is absolutely essential that you consume at least some additional resources. 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-get-a-job 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. What could be a more visible résumé piece than that!

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. We’re going to instead simulate building software in a team environment.

ZERO TO CODE is also a book about learning how to learn and solve your own problems. Software engineering is a young and rapidly evolving field, so these skills are doubly important for you. While this book focuses on the currently indispensable web technologies - HTML, CSS, and JavaScript, we also discuss how to use internet resources (documentation, search engines, message boards, newsletters) to answer questions you have that go beyond the scope of this book.

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 five 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.
  • People who want to learn about the software industry.

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:

This is your manifesto.