April 23

Learning to Code

Throughout my career, I have been asked the same question numerous times:

“(I / My Son / My daughter / My cousin / My friend) want(s) to learn how to build websites. Do you have any recommendations to help (me/them) get started?”

The first time I was asked this question, I didn’t know where to start. After all, web development started as a hobby for me. I learned most of what I know through trial-and-error and just goofing around on silly personal projects. By the time I entered the industry and got my first professional job, I had been coding for over 8 years.

My story is not unique; many developers today began their careers by tinkering. But this doesn’t help someone looking into get in the industry today. So here’s my advice that I offer to anybody who asks me the above question. Keep in mind this comes from my own anecdotal experience, and your mileage may vary.

Putting the cart before the horse (intentionally)

Start looking for jobs. You aren’t necessarily going to apply for them, but instead see what employers are looking for. Find job titles and responsibilities that pique your interest, and check the requirements for those positions. Start a list of these qualifications and you’ll find a pattern. Once you have a general idea of what employers in your area are looking for, you can begin to plan the path to learn these skills.

Skipping School

You may have noticed after completing the first exercise that many employers aren’t asking for someone with a degree. In some cases, an employer will favor a developer that is self-taught over one that learned in a traditional school setting since many colleges will teach outdated material or foster bad habits. That’s not to say that there may not be some great programs out there for the aspiring coder. In fact, in recent years there have been more and more workshops, classes and certificate programs that have emerged to help programmers get their start. But many of these options are expensive for what they offer.

I usually don’t recommend these avenues, with one exception: if you are not self-motivated or you need accountability and a structured environment, then a workshop or degree program might be better for you.

The best tool for the job: The Internet

The Internet is the only tool that is fast enough to keep up with the web industry. Ideas and information can be shared instantly, and something that has been published digitally can be updated and modified more efficiently than any other medium. There are a variety of tools available online to help you get started. Here are a few that I use or have heard good things about:

  • CodeAcademy: A free online tool with courses that will walk you through the steps of building your first website, as well as some more advanced classes.
  • CodeSchool: For $29/month, you can have access to an ever-expanding list of online courses to teach you a variety of web technologies.
  • Lynda.com: Another paid option with a huge archive of video classes. Not as structured as the above two, but there are a lot of great resources here, including more specialized tutorials.
  • CSS-Tricks: I’m a big fan of Chris Coyier and his archive of tips and guides – from simple to advanced –  for developers.
  • JSFiddle: Think of it as a sandbox for coders. Play around with your code and see the results in real-time.
  • Stack Overflow: Search for any problem or error you may come across and you’re guaranteed to find a Stack Overflow thread on the topic – often with  concise and well-written answers.

Other Resources

In spite of my earlier bashing of traditionally published materials, there are actually a few books that I would recommend. Just make sure you get the newest edition:

Keep on keeping on

Once you’ve learned the basics of HTML and CSS, you’ll have a solid foundation on which to build other skills: JavaScript, PHP, MySQL, Ruby, Python, Swift, and many, many others. The only constant in web development is that you can never stop learning. Keep that in mind, and before you know it you’ll be well on your way to your first job in the web industry!