When I was 9 years old, my father brought a Commodore Vic 20 computer home for Christmas. It came with 3k memory. It had a keyboard, a tape drive and it connected to a TV. I still remember sitting in my pyjamas and turning it on. As a child with nobody to tell me how I should or shouldn’t program, my first attempt was a paragraph in english describing a game. I was surprised when I reached the end, hit the return key and: “Syntax Error”.
The Vic 20 came with 2 books “Learn to Program BASIC I” and “Learn to Program BASIC II”. I went through these books by the end of January. It was more fun writing my own games than playing the ones that came with the computer.
I learnt maths because I needed binary to create sprite graphics. I learnt quadratic equations to solve for collisions in games. I learnt basic physics to create realistic missile flight. Maths in school was easy because I had already learnt it to serve my computer programming hobby.
Computer Programming saved me from boring school lessons
I never paid too much attention at school. It was generally boring. I spent a lot of time daydreaming. I would think through which of Superman’s superpowers would be most useful to escape the boredom of school. It was always a toss up between flying and laser eyes.
I was lucky. The traditional school environment was built for my style of learning. Exams tend to bring out my best performances. I was never good at the sustained effort. I am best in the hurried sprint to deadlines.
I used to read a lot. I had read the entire SciFi section of my local library before I was 10. I would take out my full quota of 6 books and read them in a week. I had whole collections of Dungeons and Dragons books. I loved Frank Herbert’s “Dune” (all 7 or 8 books). I loved Tolkien (LOTR, Hobbit).
Reading is great, but it is not an activity that allows the development of mastery. You can’t get “better” at reading after a certain point. You might be able to get a bit faster, but you don’t develop beyond basic reading in any significant way.
I loved sports, but was always a bit small so got pushed off the ball in football or relegated to wing when playing rugby. My younger brother was superb at any game with a ball, and there is nothing more painful to an older boy than being beaten by a younger boy in sport – even more painful when it is a brother… and the gap is 5 years.
Computer programming was my first world of mastery.
Computing is taught poorly in schools. We need a change in the role of computing and style of learning supported by computers in schools.
The Failure of Computing as taught in our Schools
Most school systems teach children how to use Microsoft Office. They teach students to be users of computers, not creators with computers.
A computer is not a car. We need people to know what is under the hood as well as knowing what the pedals do.
Programming computers is a wonderful environment for children to explore, test, trial, experiment, hypothesize, fail, succeed…
Programming taught me Important skills.
Any programming language is essentially the same. Java, PHP, C++, Basic, Python, Lisp… even Fortran, Cobol or Assembly code. Master one, you will quickly learn any other.
It teaches you to be clear. It teaches you how to trace and remove errors. It teaches you how to test. It teaches you how to think about systematically solving problems – not one-offs, but full systematic reproducible solutions.
As you grow you learn about building code that scales. Efficient use of memory. Efficient looping.
As you collaborate you learn to write code that can be easily understood by others. One half is good commenting, but the other half is using the clearest code to achieve the given outcome.
You learn how to isolate specific parts of the code to test for correct function.
You learn how to describe solutions to other people.
You learn how difficult it is to predict human behaviour. You learn that human beings will tend to do the unexpected. You learn that if it can go wrong, it will go wrong.
Everyone must learn to code
I do truly believe that I learnt more in my own self-guided programming of computers than in any classroom. The social stuff I learnt in the playground and through sports.
What were the teachers doing?
Keeping me off the streets.
When someone tells me that I am wrong, what do I learn?
“You are not doing that right!”
“How did you let this happen?”
Do I learn what is intended?
I don’t think so. I don’t often know what is intended – that I should feel bad or guilty; or that I need to see the world in a different way, act in a different way? However, what I really learn; being honest is something quite different.
What do I really learn when you tell me I am wrong?
I do often learn one of three things:
- You are stupid
- You are blind
- It is no fun talking to you
Mark Twain says that as a young man he did not often agree with his father, so he left home.
Years later he returns and is amazed at how much smarter his father had become.
I am terrible at being bored.
I fill my days with a constant stream of activities.
Three days ago, I was with my daughter on a beautiful Costa Brava beach. We were on a journey to explore the ruins of an ancient 6BC Iberian town on the cliffs (located on the head of the peninsula in the photo below).
We sat for a moment on the rocks to see if we could see some fish or crabs.
I found my hand reaching for my smartphone.
Here I was in a beautiful place, exploring nature, speaking about the time of Egypt and Carthage and what the people who lived 8000 years ago must have been like – and some part of me wanted to check email, facebook, twitter, foursquare…
I run from being bored. It requires more effort for me to just sit and think, than to read and respond to emails, create busy-ness.
Do you do “bored” well? How?
“A person cannot teach another person directly; a person can only facilitate another’s learning” Carl Rogers
This is how I want to Teach:
- I create an environment in which participants can learn. I am responsible for setting the mood in the room.
- I teach leaders. I accept zero excuses. I will never, never, never provide pity. I expect 100% responsibility of each participant for their actions, their preparation, their interventions, their learning.
- I know every participant is capable of the growth required.
- I am neither above or below anyone in the room.
- I ask people for their specific goals. I am responsible for ensuring that everyone sees how my course, my teaching, their participation is relevant to their current reality and the problems they face.
- I am a participant, a member of the group. I aim to learn alongside the group.
- I take the initiative in sharing my thoughts, feelings, experiences, reflections in ways which others can take or leave. I tell stories that participants can relate to.
- I teach adults. Everything I teach applies to real life. All content is judged by its direct application to improvement in the quality of life of participants, during and for as long as possible after the course. My teaching is a journey of mutual enquiry.
- I refer to a wide range of resources for learning. I trust participants to read, view, buy, borrow what serves them.
Freedom is dangerous without self discipline.
Few people will get anything important done in life without a boss, a parent, a teacher. It is the removal of freedom that allows creation. Completion requires constraints: deadlines, scope, format…
We chaff at the chains, but they serve us.
My boss is an idiot, but without her insistance I wouldn’t have finished the document.
My teacher knows nothing about the real world, but without his deadline I wouldn’t have written the essay.
My landlord is cruel, but without his insistence on payment of rent I would not have gotten out of the bed, out of the house, into the world, served a paying customer, grown, learnt.
Freedom is dangerous without self discipline.