Published: October 2, 2012
When the first Kaypro computers were being sold in the early 1980s, were people already trying to write code that would enable computers do things we take for granted today?
Yes. Even in the 1960s, people were writing applications for drawing, engineering design and entertainment. It took a while for those applications to become mainstream. There is a drawing program called Sketchpad by Ivan Sutherland from 1963, and another one called GraIL (Graphical Input Language) by Rand Corporation from the late ’60s, which can do some things that some might find surprising even today. Videos of these programs are available online; they are worth checking out.
Expertise is hard to quantify, but fluency can be achieved in a year, and mastery in a few years. That said, one doesn’t learn programming in isolation. Programs require one to make mental models of real world phenomena and encode them with abstract concepts. You can write simple programs without that kind of understanding, but writing complex software requires a lot of abstract thinking.
Does teaching programming to university students include discussions of ethics?
Sure. It is possible to write programs that do harm to people and such things should be discouraged. That said, a market exists for people to write code to detect and defeat cyberattacks, and to do so requires knowing what malicious code looks like and how it works.
Where should we look for new technology horizons?
The technological crystal ball game is a very difficult one to play! Existing platforms will continue to improve in terms of speed, capacity and size, plus there may well be some surprises coming down the pike. Usability is harder to call; we have had periods of leaps and bounds, but also periods when user interfaces seem stuck in a rut.
You write “anyone can program” but, really, can anyone program?
That phrase is a play on the phrase “Anyone can cook” from the Pixar film “Ratatouille” and is credited to screenwriter Brad Bird. The phrase is often misunderstood. It does not mean anyone can just pick up a keyboard and start writing code, but that great programmers can, and do, come from any background. Programming is not just for nerdy, male, socially inept geeks. Stereotypes should not stop people from learning to program.