10 Steps to Learn a New Coding Language Fast

    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!


    Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
    • Cookie

      You have anything else other than lists??

    • http://yoosuf.awardspace.com/ M.A.Yoosuf

      Then you are saying, That i can can do, Thank you.

      M.A.Yoosuf
      http://yoosuf.awardspace.com/

    • http://penalette.com Hendri

      Wow! amazing & useful tip list.. thanks Glen!

    • http://patareco.carbonmade.com Patareco

      Great Points! Guess I’ll be doing this for RoR!

    • http://www.midphase.com/newaff/redir.pl?a=0.633159074074687&c=1&creative=BannersmidPhaseTextLinksTextLink&redirURL= Start Your Own Website

      Great article just what I needed as I am trying to master PHP

    • http://blog.insicdesigns.com insic

      Great article. This is absolutely right.

    • Rick

      one to many “W”s in the O’Reilly link above! ;)

      • danny

        wwww.oreilly.com still too many w’s :D

    • http://www.armadadesign.ca Sean S.

      Great information! I always forget about cheat sheets, which in hindsight seem so crucial when you’re just starting out, and starting a get a hand on the syntax.

    • http://www.nickfessel.com Nick J. Fessel

      Good article.

      I would also add a step to “Learn to love the language’s error messages”.

      Learning a language’s error messages is invaluable because the more you know about the messages, the easier it will be to find the errors in your code. Even just being able to read a log file is invaluable because you can then begin to learn the language’s error messages and terminology.

      For example: when Ruby on Rails tells me this: “RuntimeError in AccountsController#show” I know it means that I have to correct a problem with the Show method of my Accounts Controller file.

      Sure, you could learn the language by making no mistakes and just copying and pasting examples, but to really understand the language, you must understand what to do when an error occurs.

    • http://parisvega.com Paris Vega

      Solid wisdom.

    • Monit

      Thanks a lot this will be a foundation stone for me as I am trying to learn a language and I am not a developer……You guys are doing great work of educating many like us.

    • murdoch

      “If you’re trying to find try looking for easy applications that interface with a database, like a blog or todo lists.”

      What?

      “These types of applications allow you to catch what’s different among other languages, and help you clue in on the nuances.”

      Huh?

    • http://www.xqlusive.nl xQlusive

      Learning works better when you have a couple of hours a day instead of half an hour :)

    • http://www.layeredthoughts.com Darrin Demchuk

      I think two big ones that were missed in this article were:

      1) Find a programming quiz site for the language you’re learning (rubyquiz.com for example) and do as many of the quizzes as you can. They greatly help you get comfortable with the syntax and nuances of each individual language. projecteuler.com is also a good one that is language neutral.

      2) Think of a simple project that isn’t covered in a tutorial and jump into it once you’ve done a few tutorials and quizzes. Having to look up each new thing you want to implement is annoying initially, but each new thing you research becomes a potential answer to that same question in the future.

      Other than that, this was a great article.

    • Shuuun

      Hmm, this article got no real message :O
      3 Steps to learn a new language:
      1. get all the basics and functions you need, get brigdes to your old script language and see what the new can better!
      2. view lots of tutorials, then try to combine some of them.
      3. visit insider sites and forums to get insider informations and learn some tweaks befor you do the same errors.

      thats all.. if you really want to learn this language, then it should not be the problem to learn it! just to master it!

    • http://www.dotworks.pl macias

      nice article / thx

    • http://www.instantshift.com DKumar M.

      Nice tips Glen… Thanks !!

    • http://www.sunetos.com Doug Sjoquist

      The full-immersion experience you get when following item #1 is critical. You can struggle along for weeks or even months, doing a little bit at a time and not get the same benefit that two or three dedicated days in the same week can give you.

      Not too long ago I made the commitment to dive into iPhone development, and found myself doing most of what is on your list.

      One additional source of relevant material can be established podcasts. As part of immersing myself in this new environment, I have listened to many hours of various podcasts while driving related to iPhone development tools, practices, languages, APIs, business items, etc. Many of the discussions and interviews have provided some background for my subconscious to begin to fit the pieces together as I learn.

      Thanks for the tips for additional things to consider.

    • http://www.graphicrating.com Andy Gongea

      How about some coding??
      I agree with the first comment. Most of the information from your posts is generic. Sometimes examples are a good way to learn a language. And you have only advices.

      Shuun, the last line was awesome – … if you really want to learn this language, then it should not be the problem to learn it! just to master it!

    • pete

      wow I sure am glad I read this list. my life is enriched immeasurably, as you have so much to teach us all

    • http://www.pixelsoul.com pixelsoul

      I think getting involved in a community of developers that allows you to communicate with others that know the programming language you are trying to learn is a good one.

      I have learned a lot from others that you can’t get sometimes from reading a book, things that are just not documented. Some of these are really also so obvious, like having the time :P

    • mike

      Great article!

      One thing I’ve found that helps me learn a new language is to actually use it to build something. Not just a sample application, but something you would find useful.

    • http://www.techforagents.com Steve

      Holy Crap; this has happened at least 3 times already. Last night I was beating myself up on whether to hire out to finish my application or to learn javascript (mostly JQuery) and get it done myself.

      And then you post this; it’s a sign!

    • Walt

      What’s a “coding language”?

    • Frank

      How long does it take you to learn a new language sufficiently?

    • http://kylefox.ca Kyle

      Completely backwards, in my opinion.

      The best way to learn a new language or framework is to *build something with it.*

      I always chuckle when people say things like “I bought myself a book and found 57 tutorials that I’m going to read cover-to-cover because I want to learn jQuery.” Memorizing documentation is not “learning a language”.

      Programming is a practical skill — reading a million books, articles and cheat-sheets won’t make you a good programmer, the same way reading books won’t make you a good carpenter. You can only learn / improve your craft by actually practicing your craft.

      Quit wasting time gathering resources and just start building something fun and cool! You’ll pick up the resources you need as you go. More importantly, you’ll be able to ignore all the information that doesn’t matter to you.

    • http://mcarthurgfx.com Sean McArthur

      Agree with Kyle.

      I’m in the process of teaching my wife programming. I haven’t gone and found any tutorials. No books. No blog posts. I just tell her what to write in psuedo code, and let her struggle through it. I help when she gets stuck.

      Using the syntax teaches her far faster than anytime I’ve told her about what I do in the car.

    • third world apricot

      Also agree with Kyle. Start on a project that interests you. Even if you never complete it you’ll learn swathes more than you would if you lurk around on IRC and tweeting.

      Btw, I think the whole world is overdoing the “15 ways to do this” and “23 ways to do that”. Please cease this inane practice of enumerating self-help guides and write useful content.

    • http://www.ripsdomain.com tony petruzzi

      the fastest way I’ve learning new languages is taking an existing application from a language I know and porting it into the new language.

    • http://www.chrisgunther.net Chris Gunther

      I agree with many of the other commenters that the best way to learn a new language is to just jump in and start coding, but I’m sure everyone learns differently. Books/tutorials may work for some, jumping right in and coding may work for others.

    • http://pageint.com/ Pageint

      What’s a coding language?

    • http://www.velvetblues.com Shirley

      Yeh, the best way to learn is by doing.

      I also like having a cheat sheet. That’s actually good advice for experienced coders. On a daily basis, for example, I code in at least 3 languages (ie. JS,PHP,AS,.NET… markup: CSS,HTML,XML..) and a cheat sheet is so useful for all the little things that I forget as a switch between code. Often, I just put little things on the cheat sheet like ‘string concatenation’, ‘designating comments’, ‘declaring variables’, etc… It’s so helpful.

    • http://kylefox.ca Kyle

      Maybe my original comment was a bit harsh-sounding; this is actually a good article with some valuable advice — but I think the *title* is wrong.

      The tips provided aren’t great for “learning a new language fast.” But they are excellent tips for become a better all-round programmer, especially when learning your first language.

    • http://fahri-blog.site90.com kaqfa

      hardwork hardwork hardwork ……..

      this tutorial help me get understand new language beside hardwork. Thank You

      Fahri Firdausillah
      http://fahri-blog.site90.com

    • Pingback: Learn quickly a new coding language [10 Steps] « collecting web design and development

    • http://kalinago.blogspot.com Karenne Sylvester

      The list’s great – however, actually, the first thing I noticed about the list is the way you laid out your information in such an easy, clean format.

      I learned most from the style, the eye-catching large font type for points listed.

      Super, danke!

      Karenne

    • Pingback: Dev Blog AF83 » Blog Archive » Veille technologique :

    • http://jade.cadelina.com Jade Cadelina

      This is a good introduction. I like it. Maybe you can add a description and sample codes of procedural programming compared to object-oriented programming(OOP).

    • Pingback: AndySowards.com :: Web Development Nerdy Daily Links For 12/17/2008 | AndySowards.com :: Professional Web Design, Development, Programming, Hacks, Downloads, Math and being a Web 2.0 Hipster?

    • Pingback: JeremiahTolbert.com » Blog Archive » links for 2008-12-17

    • http://kapucino.org leksa

      Thanks for this tips.

      Addition from me, “Just try it, dont just read the book all day..”
      Problem is the Guru..
      and the Google is the class.. (yeah its work on me ;) )

    • http://butenas.com Ignas

      Thanks. I’ll try it when I’ll start to learn python and will see if it is useful :)

    • Pingback: روابط .. 19 ديسمبر ..

    • http://tendou86.blogspot.com/ Takumi86

      I have been trying to learn coding language like Java but its more hard than i thought as i could get myself stressed when i attempt to memorize it. I just hope this article will encourage me to learn that java once again

    • Pingback: links for 2008-12-19 at DeStructUred Blog

    • Pingback: Learn a New Coding Language Fast - David Caolo

    • Pingback: Daily del.icio.us for December 17th — Vinny Carpenter's blog

    • http://www.wordmagics.com Aditya

      Very encouraging article.. thanks :)

    • http://blogspot.fluidnewmedia.com Ahad

      @Glen good post. There is one other point i’d like to add. Don’t take me wrong but instead of reading feeds from your favorite blogs on your favorite topics READ A BOOK!!

      So if you wanted to learn about Python or Rails try and grab a book on it before you go feed crazy.

      I like all your points above -> good stuff dude!

    • http://joelongstreet.com Joe

      Check your local library. Some carry a subscription to O’Reilly online. Very valuable.