How to Learn a New Language

Since I got interested in programming, I learned quite a few languages – at least 5 during the last few years and counting. I wouldn’t say, I mastered them, but I’m able to program enough in them for practical means. Here I will present the approach, I found to be the most efficient for me.

Try to remember how you learned to ride a bike, to add numbers or even to write a good essay. Did you read Introduction to riding bikes, learned the Peano axioms or read Voltaire to get the hang of it? Hopefully not.

I propose a practical approach, based on your own interest. In short, you do what you want to do, but you increase the size of your project in every step. You wouldn’t be able to pull that off without help of course. So what I would do is

  • Read about the typical use of the topic and try to get inspired by that.
  • Find a way to figure out, how things are done. That might be a online tutorial, a book on the topic, a reference, a help function, etc. You don’t have to read it just now, just keep it close.
  • Start fooling around. Try out easy thing that you are interested in. When I started with Ruby, I would define a function, that takes a block and a start value and find a fixed point by reapplying the block. I had no idea how to use blocks at the time, but that is what I wanted to do. So I pulled out my trusty reference and looked up the use of blocks, how to define functions and the basic control structures and soon, I was able to call fixpoint(heron(2.0),1) to get the square root of two.

I could just have followed the book, I’m sure, it is a good one, but that would not have given me the opportunity to find it out by myself, and just that improves your ability to learn it.

Greez, zombiecalypse

  1. Great article!
    There is no doubt that fooling around is one of the best ways to learn something but I like to read a whole book first and while reading I code the examples. After I’m done reading I like to go the same way you do.
    Learning by doing is really one of the best ways to learn ^^

  1. No trackbacks yet.