Keep Building, Keep Pushing Code

TIME LIMIT: 60 minutes

Give a person a fish, feed them for a day. Teach them to fish, feed them for life.

Imagine for a moment two teams of people who are in a competition to build the best car they can in 100 days. Team 1 decides to take the full 100 days to build just one car as their submission. Team 2 takes the approach that they are going to try to build a new car everyday – whatever car they build on Day 100 will be their submission. Which team do you think is going to build the best car? M

My bet is on Team 2. Their approach is known as iterative development and is built on the premise that the more complete development cycles you run through, the better your workflow is going to get. This principle applies to software, and employers hire for it (they often call this the agile approach).

If you have done all of the projects and exercises up to this point, you are probably already or close to employable. Through iteration, you know most of the essentials of git, HTML, and CSS. You are competent enough on the command line. Equally importantly, you have have good programmer habits - you know how to help and teach yourself. You go to meetups - people in the community are familiar with you. You have a frequently-used Stack Overflow account and know your way around the Mozilla Developer Network. Your GitHub profile is full of mini-projects that demonstrate your ability to cobble together knowledge – you know how to learn. You have a basic workflow down – you know how to build.

All of these things come together to make you look like someone with a lot of upside potential. But this book can only take you so far - eventually you will run out of pages and need new material. I want to make sure you programmers using this book are well equipped to keep building your resumes once you’re done reading this.

Turn Tutorials Into Repositories

The algorithm is simple:

  1. Find a tutorial you want/need to read.
  2. Start a directory on your machine (you know how to make a folder, use version control now).
  3. As you read the tutorial, experiment with the code on your own computer. Embed it in a webpage or whatever else you need to do.
  4. Commit and push the code to your GitHub profile.
  5. Write a README with all of the relevant details. Commit and push again.
  6. Repeat.

Voila! You’re still in the coding habit, and you have the GitHub profile to pback it up.

How To Find Tutorials

There are hundreds of thousands (maybe millions) of programming tutorials on the internet at this point. Here’s a way to find some good ones:

  1. The weekly newsletters mentioned in the Social Project chapter in Part 2 always have good tutorials in them. They often discuss state-of-the-art technologies and best practices. These land in your inbox every week, and if you don’t delete the emails, you will have a healthy stash of tutorials you can always use to get a green square on your GitHub.
  2. I find most tutorials I do via simple Google searches. I’ll search for something like “CSS spinning squares tutorial” or “jQuery expand list tutorial”, then see what the top non-promoted links are (i.e. Google Ads).
  3. Relevant reddit communities, e.g. reddit.com/r/LearnJavaScript.
  4. Lots of popular libraries have linked tutorials, e.g. https://learn.jquery.com/about-jquery/how-jquery-works/

Recap

You need to build skills to get a job. You need an active GitHub profile to get a job. You can get both of these things by finding tutorials and translating them into projects (“repositories”) on your GitHub account. You have enough of a workflow down to do this.

Don’t obsess over code quality while you do this. The best way to learn to write good code is to write a bunch of bad code. Do not be at all concerned about having a bunch of half-baked repositories on your GitHub. It can only help you. If someone asks about it in a job interview, just say “Yeah, I slap all of my learning work on GitHub in case I want to reference it later.”

Exercises

  1. Go find a tutorial. Create a new GitHub repository, and turn that tutorial into a simple webpage you deploy.