Emma is member of the Cambridge programmers’ study group. One of the topic there at one time was machine learning. Cool. But she started thinking about computers learning to write code theirselves. What would that mean for us, programmers, regarding job security?
Automation/mechanisation has eliminated lots of jobs already. Self-checkouts at supermarkets. Agricultural mechanisation. Will the same happen to programmers?
IBM created a huge computer called “Watson” that could win at some game show (jeopardy). Machine learning, natural language processing, etc. What is interesting about that, for Emma, is that “Watson” could be used for “reading” medical journal papers. The computer could amass knowledge (especially of edge cases) which a human doctor could not do: how many papers can you read per week? Same with legal stuff.
Human doctors and lawyers won’t be replaced, but parts of their jobs could be done/assisted by computers.
So what about us, programmers? Code is text.
You could look at genetic algorithms. Random search, guided random search. It takes its inspiration from biology. You could generate random strings and hope they’ll match this talk’s title (for instance). You need a “fitness function” that tells you whether the random solution is any good (note that this is quite different from regular biology, as we’re moving towards a single “good” solution).
Programmatically, you do some randomness, some combination of reasonable candidates and you loop through it. She showed a demo that actually did find the title.
But….. Emma still had to type in the title herself in the fitness function. Generating program code that you don’t know yet… You at least needs a language for it.
“That ought to be a solved problem”. Yes it is. Kory Becker has a website
(http://www.primaryobjects.com). A minimal turing complete language that
uses just a few symbols (
+-><^ (and I probably missed one)). She showed
the standard “hello world” program and it looked like
about 400 characters.
Unreadable for us, but it is something we could feed to a genetic
algorithm. She showed a demo where she tried to evolve to the two-character
hi. It took a horrid long time to finish.
So our jobs are fine.
You can look at https://willrobotstakemyjob.com. But take it with a grain of salt. Computer programmer is at risk with 48%. But software developers are safe with 4.2%. That’s because they treat “programmer” as the one that builds the programs designed by the “software developer”.
What is easy to automate? Rote and routine jobs. What is hard to automate? Varied/unpredictable tasks. Human interaction. Creativity.
Take self-driving cars. You’re on the public road system. There can be road works. There can be a football rolling unto the road. Lots of variation. That is hard.
There have been changes in jobs because of automation in the past.
Positive: increased productivity, so decreased costs, so increased demand, so more jobs.
Negative: lower wages.
Positive: there’s creation of new job types! If you don’t have to be a factory worker anymore, you’ve got people available for other jobs.
Negative: growing inequality. The ones losing their jobs probably aren’t the ones most qualified for newer jobs that probably need more skills.
Positive: productivity increase per worker needed to offset ageing population.
Negative: potential mass unemployment.
There have been people thinking about what society’s response could be:
Re-training? Lifelong education?
Tax on robot productivity?
There are also moral and legal issues?
Legal: who is responsible if a self-driving car kills someone? The driver? The company? The programmer?
Lots of thinkwork to be done.
Photo explanation: I’m constructing a new building for my model railway.
My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):