Programming A Computer Is The New Driving A Car

So many companies and initiatives are cropping up that teach you how to code, without needing you to go through an entire computer science course. The most notable one being code.org because they’ve got the who’s who of the tech world involved – Marc Andreesen, Jack Dorsey, etc. It is happening now partly because things have evolved to an extent where it is easy to abstract away the messy parts (memory management, compilation, deployment, etc) and give you a clean driver’s seat – a steering wheel, rearview mirrors, a gear shift, some pedals, etc.

I’m sure something similar happened with automobiles. It was probably a technical challenge to drive the early cars and you needed trained drivers to drive you around. Somewhere, it got easier. Now almost everyone can drive a car. Many people even understand bits of the internals – jumpstarting a car, shifting gears for more power, checking if an oil change is needed.

Everyone knowing how to code, or more generally, program (because you don’t need to write code to program – e.g. visually programming Lego Mindstorms), is going to (borrowing from Apple) “change everything”. In 2 years’ time, most schools will be teaching coding and most teenagers (not just the nerds!) will know how to code. Non-CS people who already work a lot with computers – designers, writers, accountants – will probably be among the early adopters of “coding”. We should be re-thinking our interfaces to allow for a world where everyone can code: most users being power-users and for related sub-economies to crop up.

Letting my imagination run:

  • Tesla already has a REST API (could you expect less from Musk?) – email driving itinerary to the car to pre-load into the gps, get an SMS alert for refueling based on how far the next destination is, findMyCar™, measure fuel efficiencies of routes (hilly, flat, stop signs, etc)…
  • Program your doorbell to ring only when your mobile phone (i.e. you) is at home.
  • Program my microwave to count exactly how many times I put back that Amy’s Lasagna for a few more seconds before it is actually done, and then put in an online database to share with other microwaves of the world.
  • Text my oven to start pre-heating before I reach home.
  • A script that checks for changes to an airline policy from the last time I flew on it.
  • A script that texts me in the evening if the weather tomorrow is going to be significantly different from today.

Some of these may be possible to do now. ifttt.com may enable some programmability. But standard features of a product are not likely to cover specific use cases. An analogy could be that if you’re taking the bus, you can only get to the bus stop, but if you’re driving, you can go to exactly where you want to.