When I was little I learned to program. I learned not to schedule too, and although now I program a little hobby, a critical tool for a professional look. I like to know programming. Having a basic idea, very simple, how it’s done for the computer to do things. I find it interesting and in many cases, useful. However, stopping to think, is much more difficult for children to learn to program today than when I did.
I mean, my first exposure to programming was a Spectrum ZX in the glorious eighties. My first program would be something like this:
10 INK 6
20 PAPER 2
30 BORDER 3
40 CIRCLE 20, 20, 20
Of course it is to do much, but he drew a circle on the screen and changed a few colors. But that for a child in the program began, was a world. And they were just four lines of code.
Much later I ventured with a friend in HyperCard , a Macintosh application curious that allowed it to build complex collections of hypermedia (hypertext with images, sounds and video.) The language incorporated in HyperCard, called HyperTalk-breaking head for names, Apple, without being too sophisticated allowed a pair of imaginative children to build applications very simple but very fun. We even have a couple of games, adventure games that was what we liked. Of course were appalling, but were much more than an eleven year old child can easily do today.
Recently a friend told me he would like to learn to program. Honestly, if I could tell him to go back in time and play with a ZX Spectrum or VM Logo , the best way to learn the basic principles of programming are the two languages. However, as my friend does not know time travel, I started thinking about another answer.
Were discarded languages like C or Java because of its complexity. PHP was a good candidate, but has a complicated syntax and too lax in matters of rates and declaration of variables. Very comfortable to use, but bad for learning. So the thing was between Ruby and Python.
Would probably today Ruby programming language more suited to a child. The concepts actually make more sense than in functional programming: we have objects that are like things in the real world, and these objects respond to messages, which are like the things we do with things in the real world. However, so deeply idiosyncratic personality of Ruby, which is unlike anything else in the world, except SmallTalk, which is rarer still, it would surely be counterproductive in the long run. When you learn to program in Ruby do not learn to program in general, only learn to program in Ruby.
So the winner, by elimination, was Python. The invention of Guido van Rossum is flexible enough to not require complicated to introduce concepts that are not needed. The fact that treat the space as we expect it to try and not like other languages, who do not know, makes it very suitable for learning, and his incredible range enables us to understand, when necessary, concepts as convoluted as lambdas.
What do you think? What you think is the right programming language to learn programming from scratch nowadays?
