How do you Learn?

Yesterday I was talking to someone who asked me how I went about picking up a new language (we were talking specifically about ColdFusion). I’ve never done anything with ColdFusion but naturally I am aware of it both in the sense of a Programming Language and of friends doing dangerous free energy experiments…

So I replied that the first thing I would do would be to find a decent book, read through it, then start working through a few tutorials to get my hands dirty. So far so good, but this got me thinking the trouble with tutorials (both on the web and bound and printed on paper)  is that they tell you the easy stuff. They rarely tell you the stuff you need to know, they skirt over and avoid difficult areas, areas where a particular language gets a little lumpy.

Now all languages have a particular slant, an underlying ideology if you will. I suppose that this partly to do with the constraints in which it is designed to operate and partly to do with the design philosophy of the original authors of that language.

Clearly languages also evolve over time, take PHP(the ubiquitous embedded scripting langauge which I am currently most familiar with), it started off as a set of scripts written by Rasmus Lerdorf for his own website, it was then taken up by a pair of Israeli programmers Zeev Suraski and Andi Gutmans. It has evolved over time from something small and handy into something complex and powerful, changing direction and picking up things like Object Orientation along the way.

How about Ruby…

Ruby is a language of careful balance. Its creator, Yukihiro “matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.

He has often said that he is “trying to make Ruby natural, not simple,” in a way that mirrors life.

[ http://www.ruby-lang.org/en/about/ ]

If that isn’t a staement of intent, I don’t know what is. Or Flash, once upon a time, a simple animation tool now… well now it simply is (everywhere).

I suppose when I started writing this, the point that I wanted to make was two-fold:

  • Good books are hard to find.
  • Everybody needs to find a way of working that suits them.

3 Responses to “How do you Learn?”

  1. Darfuria

    The way I learn things completely varies depending on how my mind is working at the time. Sometimes I will be able to read something, pick it up and do it from then on. Other times I will see something an adapt it, going about it in a slightly different way but producing the same results. Other times I’ll grasp something when someone shows me how to do it. Then there are the times when I sit and read, and watch, and can’t get my head around something no matter what I do. So I just end up asking really stupid questions all the time.

    Crazy how the brain works.

  2. Flipflops

    I have to say, that I am definately a book person. Web pages are all very well, but when you need to get a handle on something right at the begining, there is nothing better that good typography on paper.

    I actually find it quite hard to read large amounts of text on a web page, but more than that the key reason for me is that often you want to sit on a sofa, a deckchair, a bus. You can a have a book strewn with bookmarks, fingers in on various pages. You can scribble in the margin, you can lay it face down on the table.

    For me in many ways, the book is the ultimate piece of design. It is perfect (sure you get crap books)… anyway I have a bit of a book obsession (still much healthier than a Britney Spears obsession I guess).

    (Talking Programming etc.) Once I’ve got the hang of something from paper, then I like to dive in and set up dev servers and try things out start doing the tutorials and then abandon them for something I want to do…

  3. Darfuria

    The only situation when I like to learn things from the web is when it’s a simple bit of code, or there’s an actual video (Captivate) tutorial going on. Otherwise, I agree, I don’t like reading lots of informative text on the web. Leisure reading (such as blog posts) is okay, though.

    As you well know, I find it quite difficult to learn mass amounts of programming from books. When I read a book I like my imagination to get involved, and I vividly become the character(s) I’m reading about – which is obviously a very difficult thing to do when you’re reading about programming.

    I find myself very easily distracted (short attention spans suck), and don’t get very sucked-in, when reading pages and pages of text about something I wish I could just do.