I believe the best way to teach children how to program is with a good teaching language. Languages like Java, Python, JavaScript, C#, C/C++, PHP, Ruby are all industrial languages; they carry a lot of industrial baggage that can get in the way of a beginner. A good teaching language is devoid of extraneous complications and lets you focus directly on the basic and most important programming concepts. Unfortunately, I’m in the minority. Far too many people push Python or Java as instructional languages and I think this is simply wrong.

The fact is: once you’ve learned how to program the right way, it’s pretty easy to pick up a second language such as Python or Java. There’s no need to start students off with these languages in the misguided notion of preparing them for a vocation in programming. Teach them how to program in the clearest and easiest manner, and their future in the IT industry will sort itself out.

There is only one good teaching language, in my opinion. (There are others such as Scheme or Logo, but allow me to make my case.) It’s called Smalltalk. Smalltalk was designed in the 1970s by Alan Kay et al. for teaching programming to children. It’s a beautifully simple and elegant language. The entire Smalltalk syntax can be summarized on a postcard!

And yet, for all its simplicity, Smalltalk loses nothing in terms of programming power. This is why Smalltalk has been used commercially for over three decades! (Languages like Scheme and Logo enjoy virtually no commercial use.)

Image for post
Image for post

In fact, Smalltalk is so powerful that the U.S. joint military used it to write a million-line battle simulation program called JWARS. It actually outperformed a similar simulation called STORM written in C++ by the U.S. Air Force. We’re talking about a language used to teach programming to children!

Another important reason to teach Smalltalk is the fact that Smalltalk was the original object-oriented programming (or OOP) language to popularize this paradigm. OOP is the most widely used style of programming in the IT industry. (OOP is a superset of procedural programming.)

Did you know that Smalltalk directly influenced the design of nearly all the major OOP languages today? Languages like Java, Python, JavaScript (ES6), PHP, Ruby, Perl, Objective-C, Swift, Groovy, Scala, Dart, and so on.

In other words, if you care about object-oriented programming, it would be unconscionable not to learn Smalltalk. Smalltalk is OOP done right.

For more information about Smalltalk, read How learning Smalltalk can make you a better developer.

Here are some resources to help you get started with your students…

Prof Stef is a nice, gentle introduction to Smalltalk.

I recommend starting your students with Pharo, the most progressive of all the Smalltalk dialects. There’s an excellent, free, accompanying book called Updated Pharo by Example. For older kids, this Pharo MOOC may be appropriate.

There’s also an excellent Pharo blog.

Alternatively, you may consider Squeak, the traditional choice for teaching students.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store