You don’t need to be a great programmer to be a great programming teacher!
I know, sounds strange right?
Let me explain...
My Programming Background
I used to be a programmer. I worked for a small software house in a little village in Essex and we created software that could be used in colleges to teach NVQs. Quite a niche.
We used a terrible programming language called Authorware, which we dubbed “Awfulware”. I should point out this has since been bought out by Adobe so I am sure the current software is much better than the original version I was using in the 1990s.
Don’t get me wrong, working in the company was fun, it was just that the programming language we were using would drive us all nuts. I worked with one of my best mates and were paid to go to the pub to play on their “Crystal Maze” game to get inspired for activities we could use in our own software. We played loud music all day and got to work with some amazing people. It didn’t give me the work ethic I have now, but it showed me how to think like a programmer and how creativity is a huge part of successful programming.
I was introduced to other programming languages and expanded my repertoire, but I will never forget those giddy days where I first learnt the trade. It was exciting and I loved that I was able to solve problems and be creative. We were just thrown problems from the course writers and left to solve it somehow.
“You want a game where students work through a maze but you want it educational, leave it with me.”
“Oh, you need to create a puzzle where they move parts around the screen, I’ll get right onto it.”
“It has to have some sort of quiz element and you don’t know what it will be but you want it different to anything else that is out there, I’ll see what I can do.”
Loads of creativity and loads of problem solving, lovely.
I shudder at the memory when I went too far one day. I was trolling through the vast image folders we had access to, looking for an interesting photograph of a medical condition for the Hairdressers NVQ software that I could use. I came across a photograph of a cyst on the top of somebody’s head. A large angry looking boil thing that was poking out of the hair.
What else could I do as a 23-year old who has been given far too much leeway than was good for me? I made it wink when you click on it, obviously.
I only told my friend, expecting to get into trouble. It went through final testing and documenting and nobody came back to us and said “What on earth do you think you are playing at?” So I guess they never noticed and that little Easter egg is out there somewhere, I wonder how many students discovered it?
I digress, back to the story…
I’m Not A Great Programmer
The reason I was telling you this is because I freely admit I am not a great programmer. I’m a good, solid programmer and understand the basics and how to apply them but I am by no stretch of the imagination a great programmer.
I have written one of the best-selling Python programming guides on Amazon
I am one of the best-selling authors on TES and
I have built a successful training business showing teachers how teach Python
All this is possible even though I am not an exceptional programmer.
All you need is A BASIC UNDERSTANDING OF A FEW SIMPLE RULES AND AN IMAGINATION TO APPLY THEM.
Really, read that line again. All you need is “a basic understanding of a few simple rules and an imagination to apply them”.
What Makes A Good Programmer?
Programming is not about finding the correct answer straight away: it is about thinking creatively, a lot of the time learning from our mistakes and applying what works well in other ways.
On my first day at the software house I was given a programming problem and told to fix it. I sat down and started writing a flow diagram (as I had been taught) and pretty soon my manager came over and asked what I was doing. When I started to explain the top down approach I was using, he gave me a withering look and said “Just get typing, we can sort out the documentation afterwards”.
This was a revelation to me. It was not the way I was taught to work at university but from talking to many other programmers, it is certainly the way that most of them seem to work.
If it is a complex problem, programmers may sketch out a very rough d