Tell Your Kids … Learn Python (and JavaScript), Use a R-PI, And Fire Up Linux

Yesterday, I presented a Christmas lecture to schools, and used an old friend to help me … Python. I booted up my Raspberry PI (R-PI), and…

Tell Your Kids … Learn Python (and JavaScript), Use a R-PI, And Fire Up Linux

Recently, I presented a Christmas lecture to schools, and had some an old friends to help me … Python, a R-PI and Linux. And so, I booted up my Raspberry PI (R-PI), and connected my CCTV camera, my Hue lights, and Wi-fi electrical sockets, and with a quick ssh I was in, and running my Python programs. For me, it feels like I am back in the 1980s, and when computing was fun. In a world of cloud computing and complex programs, I feel in complete control of my digital world. No Cloud, no Internet, no public wifi, no logins, no IDEs, no databases or no compilers to get in my way.

For all the fun of the 1980s, the PC came along and changed all that, and made computing more business like and serious. But now with Python, Linux and the R-PI, computing is cool again, and I can build my own digital world and learn every single time I type a line of code.

This is the world that our kids need to learn within, and where they see the world through code. So why do we teach them to run PowerPoint and order pizzas on-line, when we should be showing them how a temperature sensor works and how to turn-on a water pump? If you are interested, here’s my little setup [here]:

Personally I have seen whole modules transformed from the switch from Java to Python. Often students who care little in becoming software developers are switched off Java (and, especially if it is not applied to a topic of interest), but love being taught cryptography or network packet analysis with Python. For them, the subject becomes alive, and where Python becomes the way to explore and learn about the methods.

For all our move to strongly typed languages and pre-run checking, our hardware is now so powerful, and that we don’t actually need the compiled languages anymore Our scripted languages now allow us to build without much complexity and on simple systems. The days of complex installs, DLL updates, and registry updates are gone too, and where PIP and NPM are there to simplify the adding of libraries and associated code. We now live in a much simplier world for code, and where APIs and local code are there at the tip of a hat. The requirement of thousands of lines are gone within our programs, and where with a few lines of code we can perform complex operations.

As a core C# coder, I could see nothing that could compete with .NET. I have built large scale Web infrastructures and programs based on it (including NetworkSims, asecuritysite.com and brightbooks.net). But, increasingly, I found that I couldn’t find the most up-to-date code for cryptography, and I started to move towards Python. Now many predict that it is heading to overtake Java and C++, and has even gained No 1 spot on the YPL Popularity of Programme Langauge Index. This language table measures the number of people using the languages within tutorials:

We see that Python is now top of the tree for showcasing code, with nearly a quarter of all tutorials. Why? Because it’s code is shared and that there is such support for virtually every application you can think of. For me, it’s my first port of call for code in cryptography, and then onto Node.js. I can only see Python and JavaScript becoming stronger in a world which runs in a batch mode for data.

Conclusions

So teachers … go teach your kids on a R-PI, and try and use some Python (or JavaScript). Learn Linux. Use the command line. Learn a bit of applied computing. Forget structure charts and pseudo code, and get them to build real things. Get them to probe and debug. Get them to learn how our physical world becomes digital. Don’t set them up to be software engineers, just let them learn about how wonderful computers are, and where every person in the future will need to understand this new world. They might end up being clinicians, bankers, business leads, economy specialists, but they will all be driven by this new digital world. So, just let them learn about how our digital world meets our physical worlds.

Stop teaching our kids structured coding, and structure charts. That will all come in the end. Let them have fun with technology. Let them make things and understand how our physical world worlds, and how they could change it. Let them understand the new world that is evolving, and stop switching them off with pseudo code and structure charts. We have built a flawed world, so let them build it in a better way.

If you are interested, here’s my scratchpad of Python and JavaScript for Cybersecurity: