Bobby Elliott, Qualifications Manager at SQA, has written this guest-blog to coincide with National Coding Week, which takes place from Monday 14 September to Friday 18 September.
I want to start with a confession.
My first experience of programming, in 1975, was when I was introduced to something called “Algol” as part of the University of Strathclyde’s first intake of Computer Science undergraduates.
Learning to program was the most valuable thing I did during my degree. The highlight of my coding career happened a decade later, when I was published in the October 1985 edition of Personal Computer World (I was paid £300 for my efforts) for writing a piece of software that could broadcast a message to every computer on a network – something that was oddly missing from the original operating system. I wrote the program in machine code and hooked it into the operating system. My *BROADCAST command was an instant hit. I even got fan mail. I didn’t deserve it. All I did was take an existing piece of code (*MESSAGE), which sent a message to a single machine, and put a loop around it to send it to every machine. Once compiled into machine code, no-one knew. It taught me an important lesson: good programmers copy; great programmers paste.
Coding is no longer niche. The Word of the Year for 2020 will be “algorithm”. Not so long ago simply saying “algorithm” could lose you friends. Thankfully, times have changed. There are now coding classes for seven-year olds. Digital skills have joined communication and numeracy as basic literacies. Computer science is a mandatory part of the school curriculum in the United States. Terms such as “machine learning” and “data modelling” are routinely used in the media.
But why bother? I think that there are three reasons that everyone should learn to code. Scotland needs programmers. Or, more accurately, we need software engineers who can develop large, complex, reliable software systems. Universities are doing a good job in supplying these engineers but the supply chain starts at school and college.
Organisations and businesses need people who can “program”, in the sense that building models in Excel is programming (it is); or creating rules in Outlook is programming (arguably); or doing clever things in Powerpoint is programming (possibly). Software companies are creating low code/no code products that let you do “programming” without programming. Microsoft has big plans for its Power Automate platform, which lets you link its Office products. It uses a simple interface to connect products like Excel, Outlook and Teams so that you can, for example, find a time (using Outlook) to meet (on Teams) if your sales (in Excel) fall below a specific value. It’s coding – but not as you know it.
So, the country needs talented software engineers and businesses need efficient workers. But that’s not the reason I think that everyone should learn to program. It’s going to become increasingly difficult to be a citizen in the 21st Century if you don’t understand code. Not because everyone will be a programmer but because (just about) everything will be software-driven. Want to be a motor mechanic? You better understand software and software updates and programming errors for the coming wave of “computers on wheels”. Want to be a nurse? You better understand data and data models for the coming wave of data-driven health care. Mechanics, nurses, teachers, lawyers and architects don’t need to master programming but they do need to understand code at a basic level.
Learning to program (even the basics) is a great way to learn other important skills such as problem solving and logical thinking. Skills Development Scotland’s Skills 4.0 framework (meta-skills) lists 51 distinct “21st Century skills”, and programming delivers 20 of them – more than any other activity I can think of.
There’s a democratic reason too. We need educated citizens to participate in debates about automation, employment, machine learning and privacy. Code (and data) is at the centre of all these things. Understanding (at least in principle) what an “open API” means is too important to be left to the CEOs of large technology companies.
The reputation of programming needs a make-over. It continues to be perceived as a geeky, male, anti-social, isolated activity. But code guides the surgeon’s knife and steers the self-driving car. Code will cure cancer (with the help of cancer specialists and researchers). Promoting programming in these terms will go some way to improving its image and attract more women and BAME. The recent Scottish Technology Ecosystem Review emphasized the need for more software engineers to improve Scottish productivity and global competitiveness. Jobs that are well paid, flexible and as future proof as anything can be in these uncertain times.
I’ll conclude with a shameless plug. The Scottish Qualifications Authority has some excellent introductory programming units that teach the basics of coding, such as the SCQF Level 5 unit from the National 5 course and the SCQF Level 7 unit from the HNC course. Neither of these units on their own tries to produce software engineers, but they both aim to provide learners with the fundamentals of coding. I recommend them to every learner.