This is something I've wrote to help you when trying to learn a new programming language. It is targeted at programmers who have already learned the basics of programming, and want to add a new language to their arsenal. TL;DR * Build something you actually need right now. * Port an existing, well known program to the new language. * Find a decent book on the language and read through it all as fast as you can. * Mix action with equal parts learning (reading books/tutorials). * Study reference works on public repositories. * Devote large, uninterrupted chunks of time, at least half a day, to learning the new language. * Learning a language shouldn’t just be a solitary endeavor. * Use an editor with syntax highlighting. * Working on a real project with real customers and deadlines is a white hot crucible for learning a new programming language. * Invest Regularly in Your Knowledge Portfolio: Learn at least one new language every year. Different languages solve the same problems in different ways.