From October to December I had the privilege of helping teach an introductory computer programming module for the University of Exeter’s new Degree Apprenticeship course.
Much of the essentials of what a would-be programmer needs to learn today is the same as it was when I first learned Pascal and C back in the 1980s. In those days there was no internet, no smartphones, not really much digital anything. We had CDs, but almost everything else was still analogue. With so little digital stuff then, one might question why anyone would bother learning to program. That question certainly doesn’t apply today, and programming skills are well worth acquiring by most students, regardless of anticipated careers.
Exactly what should be learned will depend on many things, but the essential introduction to computer programming must cover data types and structures, control flow, algorithms, sorting, compilers, interpreters, language syntax and more. Lots of concepts and practices need to be mastered in a short time in order to apply computer programming to further learning and, hopefully, a rewarding career too. What has changed is who is learning, why they are learning, and how they are going about that learning.
Some new reasons to learn computer programming
A decade of smartphones (iPhone was introduced in 2007) and web applications such as Google docs, has changed our collective understanding of how computer software is used and who creates it. The transformation of photography, music, film, tv, radio, books, and maps from analogue to digital has been more thorough than any of my generation could have imagined.
Architects, musicians, dancers and other creatives aren’t just using computers in new ways, but are now creating their own software and contributing to community initiatives to create new kinds of software. We have new artifacts that never existed before this digital age, such as 3D printers, drones, virtual reality, and the internet of things. It’s clear that software really is ‘eating the world’.
Tools have improved and many excellent programming environments can be had for free. Perhaps just as importantly, the popularity of ‘apps’ makes it practical for an experienced individual to create something useful with just a few hours’ effort, and then share it widely.
The new computer programmers
The IT industry has a bad reputation for lack of diversity and shocking maleness. Perhaps part of the reason for this has been that the route in for most has been through computer programming, and until recently the main university courses teaching programming have been engineering and science.
With students of all ages now using laptops, smartphones and other computer technology across all subjects we should see much greater diversity in the backgrounds of computer programmers. And as demand for computer programmers has increased we’ve also seen a new phenomenon of programming as a second career. This is sure to bring new and perhaps unexpected skills into the profession.
What are the new programmers learning?
The 1980s ‘language wars’ between C, Pascal, Cobol, Fortran still have their modern equivalents with Java, Swift, C#, JavaScript, C++, Python, etc., each having their own following. Today Python seems to have won out as the language favoured by those teaching formal undergraduate courses. I’ve found it a pleasant language to teach and would recommend it to learners and teachers. It’s also proving to be very suitable for informal instruction, and distance learning, since the Python programming environment is easy to install, well documented and doesn’t require a high specification computer.
However, there are going to be some who sensibly choose to start elsewhere. For example, makers and product designers dabbling with the internet of things, will likely want to experiment with open hardware such as the Arduino and its C language based programming environment. Also, the rapid advances made by the JavaScript language in recent years make it a strong contender for the current ‘must learn’ language if perhaps not as a first programming language.
New learning opportunities
So, some things have stayed the same, others have changed hugely in recent years, and the growth of the internet and applications of computers, has created more demand for programmers. Internet technology has also enabled new ways of learning. Remote and online study is already enabling study at a distance. For an entire term I was able to connect with students in their workplaces each Monday lunchtime by video conferencing. This made it practical for me to combine teaching with other work, even when away from home. It also enables students in different locations and with different backgrounds to learn from each other, so called ‘peer learning’.
Reflection
Learning to program is becoming an essential skill for active participation in many industries.
As the internet and digital technology have become more a part of our leisure, hopefully more people will discover that computer programming can be fun, and that being able to program will improve the proportion of workers who are free to be creative at work. For this to happen it’s not just important to offer everyone opportunities to learn programming, we are also going to need to accept this more varied workforce into our profession.
A last thought - learning isn’t tests and exams, it isn’t even about gaining qualifications. As Professor Brian Cox said in a recent interview about physics - ‘You don’t even need to do an exam really. You don’t need me to tell you whether you understand Einstein’s theory of relativity or not. You’ll know when you get it.’ This is certainly true for computer programming.
Further reading
- Why software is eating the world by Marc Andreessen
‘Many people in the U.S. and around the world lack the education and skills required to participate in the great new companies coming out of the software revolution. This is a tragedy since every company I work with is absolutely starved for talent.’ - The long read: Should kids learn to code? by Gaby Hinsliff
‘A three-month crash course that promises to equip them for jobs in a digital world.’ - I’m learning to code at 56, by VM Vaughn
‘Why? Because I love it. And I’ve got a knack for it.’
School computing curriculum and resources
- National curriculum in England: computing programmes of study
A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world... computing also ensures that pupils become digitally literate - able to use, and express themselves and develop their ideas through, information and communication technology - at a level suitable for the future workplace and as active participants in a digital world. - Intel: Teaching the Basics in Computer Science....Going Beyond the Hour
Computing is an integral part of our society, but most schools still do not teach this subject or address the diversity of the students to ensure meaningful classes. - micro:bit
The micro:bit is an educational and creative tool to inspire a new generation of young people. It can be used across the curriculum, not just in STEM subjects. It can help give young people the knowledge and skills to move from being consumers of digital information, to being designers and creators of new tools to enhance learning, to solve problems or just to have fun, enabling them to make the most of 21st century life and the economy.
Michael Saunby CEng MBCS https://www.saunby.net