Learn to CODE by Blowing a Sheepdog Whistle
In the image above, you see a typical program (written using the Python programming language) that contains familiar, English words. This program convets inches to centimeters.
So why am I talking about sheepdog whistles?
Because I’ve just discovered that sheepdog whistling is a “thing”, and it’s a thing that has helped me understand programming language a little better (and in a fun and interesting way).
A shepherd’s whistle (pictured below) is the specialized instrument used to train and transmit commands to a sheepdog when it’s helping the shepherd herd sheep and other livestock.
Shepherd’s whistles are used to clearly communicate the commands of the owner to the sheepdog. (there’s a link below where you can hear these whistle commands for yourself!).
The pitch is shocking, so turn your volume down if you decide to listen to the whistle commands! The pitch is apparently at a frequency that is easy for the herding dog to hear even during adverse weather (e.g. thunder storms, snow storms, high winds).
Whistle commands vary, but the standard commands instruct the dog to:
- Lie down
- Stand and walk towards the herd
- Go clockwise (arc around the left side of the herd)
- Go anti-clockwise
- Slow down to a steady pace, and
- Turn around and go gather more livestock
Go to this LINK to read more about sheepdog whistling and to hear a professional blow the most common whistle commands. It’s quite interesting.
Sheepdog whistling is an ideal analogy for programming and programming languages because very simply…
A programming language (like Python) is like whistling to a sheepdog.
Python is an instructional language directing the computer to carry out a specific instruction. When shepherds whistle to a sheepdog, they’re not setting out to have a full-blown conversation with the dog, just to, quickly and easily direct it towards the herding goals they have in mind.
The problem with the term programming “language” is that people assume it’s a whole new language, like learning Elvish (from Lord of the Rings), Na’vi (from Avatar) or Dothraki (from Game of Thrones).
It isn’t. There is nothing foreign about programming languages.
In reality, programming language is designed by humans for humans, using the same alphabet and similar grammar. Many programming languages can be mastered in months rather than years IF we approach it as something we already know and understand…with slight adjustments here and there.
It’s like when I moved from Louisiana to Massachusetts, a state where they refuse to use the letter “r” in everyday conversation.
They were speaking English, I just needed to adjust so I’d know what to do when someone asked me to “Pahk the kah” or “try some chowdah”.
I figured it out.
Happy Programming!!!