Everyone Must Learn to Code

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.

Advertisements

Education: To make a living or to make a life?

What should we learn?  How to make a living or how to live a life?  Where should we learn it?  Who should be responsible for us learning it?  Ourselves or the state?

Make a living or make a life?

In the case of universities – it it really to learn how to do something?  Or should it be about how to live? What is the ROI of making a living?  Just because it is difficult to calculate doesn’t mean that it is not a big or important number.

Perhaps in the case of vocational and technical colleges it is obvious – the education gives you a skill which allows you to make some money providing this skill to the market.  If you study to be an electrician, you don’t necesarily need to learn about philosophy.  Maybe you do need to learn about the implications of a career as an electrician and some idea of running your own business later on?
I have written about schools and education several times over the last 18 months:


What is an Education?
The verb educate comes from the root “Educare”.  Here is a comment my father made on a previous post about learning: “Education has two aspects; the first is related to external and worldly education, which is nothing but acquiring bookish knowledge. In the modern world, we find many well versed and highly qualified in this aspect. The second aspect known as Educare, is related to human values. The word Educare means to bring out that which is within. Human Values are latent in every human being; one cannot acquire them from outside. They have to be elicited from within. Educare means to bring out human values. To ‘bring out’ means to translate them into action.”

What can be cut, what must be kept?
We are at a time when big cuts are being made in “non-essential” services in all developed countries.  What counts as “non-essential”?  What is cuttable?  What is not?   How should we decide what should be taught or not?  How should we decide which courses should be free or not?

Should engineering, medicine, physics, maths be free and poetry, history, english and humanities cost money to do?  Or the reverse; given that you can get paid a good salary as an engineer, doctor but not so much as a poet or historian…

How should schools, colleges, universities adapt to a world of life-long learning?  Technical skills are out of date within 18 months…  so what I learnt in university 16 years ago about object-oriented programming in C++ and cognitive psychology is about as old as Socrates, Plato & Aristotle.   Will the degree of the future be something that goes parallel to life…  perhaps returning to college for 2 weeks every year to update my skills and knowledge?

Back to you…
This is not a post with any answer, just some questions running through my head as I reflect on how the world’s governments will allocate the reductions in spending that are forced by the current economic reality.  I welcome your thinking, comments, ideas, links to resources.  Have a great day.

The school of the future

I have posted about education a few times in the past.  (The purpose of school, The best teacher I had in school, How we really learn).

photo credit: chrissuderman

What is the future of education?  I think Ken Robinson has some great ideas for education delivery, and Seth Godin on how education will be delivered.  I think the follow 5 sites are already big part of the future of education…

  1. Academic EarthThe best university courses. Academic Earth offers free access to video courses and academic lectures from leading colleges and universities.
  2. Khan Academy – The best tutorials. Khan Academy is a global free educational site that hosts 1600 mini-tutorials (15 minutes or less) on math, science, and other subjects. Bill Gate uses the site with his 11 year old. (the #1 visited educational site in the world; september 2010)
  3. EdutopiaThe best resources for teachers, parents and school administrators. George Lucas’s foundation is behind this source of innovative learning resources.
  4. iTunes University – Apple brings learning to the mobile. Lectures from MIT, labs from Stanford, history from Oxford, maths from Cambridge, physics from Trinity College Dublin.
  5. TED – the best source of powerful ideas delivered through great speeches. A global community covering every discipline and culture.

I believe peer to peer learning is another thing that will characterise the school of the future.  I was good at maths when I was in high school… but that was because I compared myself to 32 other kids…  not the millions that I might realistically be able to connect to today via facebook, linked-in, twitter…  is there a business here?  The network of peer to peer learning…  the online network of developing shared passions (for those out of school) and peer learning networks for schools…  could it be youtube?  will it be another?

What are you favourite TED talks, online videos, iTunes courses?  I am putting together a list of the top engaging learning videos.