1. Code
  2. Roundups

10 Steps to Learn a New Coding Language Fast

Read Time:7 minsLanguages:

Learning a new language can seem like a daunting task. However, as it is with all types of learning, there are certain techniques and practices that will help you learn the language faster and more efficiently. Here are 10 of the best practices that aspiring programmers can use to quickly start programming in a new language.

1. Make a Time Commitment for Learning

So often we think that we can learn a new language spending half an hour a day over the course of a week. While this approach will eventually work, it's not nearly as effective as blocking out a day or two where you don't have anything else planned other than learning the language. Learning in large, uninterrupted chunks is the best way to really soak in the language.

Small learning sessions over the course of the week aren't that productive for learning a language, as a good portion of the time is spent just getting back up to speed on what you previously studied. The review itself can might take half of the time scheduled each day.

2. Find a Cheat Sheet

What may seems as "duh!" information on the surface, cheat sheets provide more in-depth value than just a reference. Cheat sheets are some of the most useful bits of information we can have at our disposal while learning a language. Cheat sheets are not only useful references, but they also give you a quick overview of patterns and commands that help define the language. Just by glancing at a cheat sheet, you can quickly pick up on the syntax of the language, which makes understanding the language easier down the road.

3. Gather All Relevant Material

There are tons of resources out there for learning languages. Some will sit well with you, others won't. Gathering lots of information is a good way to take a "holistic" approach to learning, and one that will help you quickly identify writing styles and resources that you understand better than others. Finding a decent programming book is also a good idea, but many times if you're just trying to find beginning information about a language, your best bet is to hit Google and start collecting information. You might collect information like:

  • Tutorials
  • Tips posts
  • Best practices

... and any other material related to introductory topics.

As with anything on the Internet, you have to find reputable sources of information. Use highly-respected sites like O'Reilly, IBM and, ahem, Nettuts, of course.

An excellent resource, though a little pricier, is a membership to O'Reilly's online "bookshelf", which gives you access to all of O'Reilly's excellent tutorials and books on a myriad of given programming topics.

One thing's for sure: You'll need to be relying on people who are considered 'experts' in the particular language you're learning. That way you can be sure you're learning best practices from the start, and not picking up any bad habits.

4. Really, Truly, Understand the Documentation

Too often people try to skim the information presented in the "getting started" documentation. I'm guilty of it too. I'll try and quickly skim the basics of the programming language, and hop straight to the tutorials and example applications. While tutorials are awesome aides in understanding the language, they don't prepare for expanding on the language like the basics do. You have to crawl before you can walk.

Re-read the information. Make sure the basics of the language are totally grasped before diving into working with an example. Understanding the basics inside and out allows you to learn quicker, as you have to have a solid foundation before you can start to build on these basics.

5. Let the Information Settle and Take a Break

It makes sense that once you've done the gathering of materials, reading and understanding the basics, to dive right into piecing together a demo application. Yet, in order for proper learning to happen, you have to let the information marinate in your mind over the course of a few hours. Do something recreational, fun, or totally unrelated to let your mind subconsciously grapple with what it's learned.

A great practice is to take a day to learn the basics of the language, and then let the information seep in your head overnight, and start in on the demo applications the next day.

6. Create a Sample Demo with a Database

After you've completely gathered your information, spent adequate time learning the building blocks of the language and given plenty of time for the information, then it's time to start your demo application.

Most languages have a demo application that you can use to create something that works, in order to understand the basics of how to piece together an application. If you're trying to find try looking for easy applications that interface with a database, like a blog or todo lists. These types of applications allow you to catch what's different among other languages, and help you clue in on the nuances.

7. Struggle Through the Bugs

Learning how to fix bugs is an essential part to learning a new language. And you'll definitely run into some when you're new to the language. Some beginners throw in the towel when there are bugs in the code, and don't "struggle" enough with figuring out what's making the code fail.

Learning what you can't do is just as important as learning what you can do with a language.

Failing is an inevitable and helpful aspect of learning. Winston Churchill once said that "success is going from failure to failure without losing enthusiasm". Don't just give up on the language if you can't get it to work right out of the box. Hardly any language is ever that easy to learn. The next steps will give you aide if you're really and truly stuck.

8. Rely on Real People

Learning a language shouldn't just be a solitary endeavor. There are plenty of people who have made the same mistakes that you have, so asking for help is a great way to power through some of the tougher bugs. If you can't get your answer in the language's forums or the IRC channel, use outside resources like:

  • Webmasterworld
  • The language's forum
  • IRC - The IRC is one of the most valuable and underused resources most language projects provide. Think of it this way: The IRC is full of active gurus who can most likely answer any of your questions in a heartbeat. Even if you do manage to stump these incredibly smart people, they'll usually go well out of their way to help you find the answer.

    IRC groups for languages sometimes get a bad reputation as "snobby elitists" who don't talk to newbies. I've never found this to be true. I believe that if you are respectful of these guru's time and phrase your question politely, you'll get a polite answer. It's important to remember that these people are volunteering their valuable time to help n00bs like us learn the languages that they have mastered.

  • Twitter - Bet you didn't think that Twitter would be a good resource for programming, did you? Twitter is, in fact, an excellent source for asking friends for advice.

9. Review

Now that you've successfully waded through a demo application and felt the euphoria of creating something that actually works, it's very important to review what you've learned. This will help sear into your brain what it actually took to create the app. Next time you won't have to re-learn as much of what it took to create the application.

10. Make a Commitment to Practice

And finally, now that you've successfully learned your new language, it's important to make a commitment to practice and expand on what you've learned. Repetition is key to learning, so it's important that you clear time at regular intervals to practice your new knowledge. Otherwise, you'll lose most of what you've learned over time.

The more languages you learn, the easier it becomes to learn new languages. Patterns start to emerge, and processes start to become very familiar. While there may be differences in how the language works and behaves, there is usually a fundamental base that all languages share.

  • Subscribe to the NETTUTS RSS Feed for more daily web development tutorials and articles.

Glen Stansberry is a web developer and blogger who's struggled more times than he'd wish to admit with CSS. You can read more tips on web development at his blog Web Jackalope.

Liked this post? Vote for it on Digg below. Thanks!

Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.