- Read Tutorial
- Watch Guide Video
Over the years I’ve been hired by organizations such as Learn.co and AppDev to write programming curriculum for:
- Ruby on Rails
- Ruby programming
- Python
- Java
- Several JavaScript frameworks
The only language that I really build applications in is Ruby, which means that I’ve been forced to become proficient in a number of language that I really didn’t have much experience working with, sometimes in a very short period of time.
And over the years I’ve developed a system for learning a new language or framework and that’s what I’m going to walk through today.
When I’m learning a new programming language I follow these steps:
- Watch a full tutorial series on the language, when I’m watching I don’t try to follow along, I simply watch what the instructor does in the demos so I can get a high level view of the language syntax and flow.
- Create a hello world application, I’ll incorporate a few basics, such as running a loop, creating and instantiating a class, and any other high level concepts I remember from the tutorial.
- Pick out a sorting algorithm and implement it in the language. It’s fine if the sorting algorithm is a basic one like selection or bubble sort. Sorting algorithms force you to use: data structures, loops, variables, and functions. Combining each of these elements will give you a good handle on how the language works.
- Go through an advanced tutorial on the language and this time follow along and build the programs with the instructor.
- Go through coding interview questions for the language. Being able to confidently answer these questions will give you a good idea if you have a solid understanding of the language.
I’ve used these five steps for a number of languages and I can also tell you, once you’ve become proficient in a single language you’ll find it’s much easier to pick up new programming languages since most of them have quite a bit of shared processes and all you’ll need to do is learn the difference in syntax.
I hope these tips will help you learn a new programming language, please feel free to comment with any other methods that you’ve found helpful when learning, and good luck with the coding!