“Five million, bitches”
—my new reply every time someone mentions Ruby
A friend of mine is learning to program, and how to learn a programming language came up.
The issue is that there is a lot of people who are non-programmers and have taken programming classes and not learned to program. When I was a kid, those languages were BASIC, Logo, and
Karel the Robot, now they are things like C#, Java, and Ruby. Still the same problem rears its ugly head.
Recommending what you know
The big thing that bothers me is, too often, I think people recommend what they know already or are are learning themselves. Ignore these people, they’re idiots.
The first language I ever became an expert in was Pascal. It’s a highly structured language that was great for . The last time I coded in Pascal was in 1991 in order to prove computationally that some differential equation doesn’t approach
e^x but rather the curve e^x-1. It’s not a forgiving language to be programming in today, the popularity of Delphi notwithstanding. I’m sorry, if you
want to learn a language with OOP bolted on, you might as well put the C gun in your mouth, pull the trigger, and blow out your brain with C++.
I don’t code in Pascal anymore. And I don’t plan to.
(I’m sure there is someone out there recommending people learn Erlang as a first language. I’d be offended, but I figure they’ll be dismissed because they long ago lost the ability to speak coherently.)
Filing for divorce
One time at a McDonald’s in San Jose, I watched a guy talk to about six different people in their native language. Asking him on how to learn a language is futile. He is so far removed from the “learning” stage that he forgot. He picks up languages as easily as I pick up new cuss words.
It occurs to me:
We’re that guy.
It’s hard for a programmer to give good advice on what language to learn because we’re so divorced from the learning part that we don’t know the answer ourselves.
Answering by analogy
But maybe that incident clues us in to the answer. If words have meaning through paradigm the reason we call it a programming language is because it is a language.
Programming languages are a lot like real languages—maybe the best way to learn a language can be derived from how we learn real languages. You know you can learn it in a classroom, but immersion is a much faster way to learn.
The best way to learn to program is to have an itch that needs scratching.
If you have a need to program, then you will immerse yourself and learn fast. If you learn in a class, oftentimes it’s a lot like those years spent diagramming sentence grammar…
or memorizing declensions…
Sure, my understanding of the future-perfect tense write marginally better, but you’ll learn much faster and better if you really need to speak/write/use a language.
I believe the fundamental problem with most programming courses is that they’re more an exercise in “look how smart the teacher is” and the theory behind the language rather than actually learning the language. You can’t get more than ten pages into an introductory book on programming before being hit by a wall of terms like
“object-oriented” “run-time” and “compiler.” WTF?
Whe
Truncated by Planet PHP, read more at the original (another 2641 bytes)