Programming is the new High School Diploma
whattofix.com
whattofix.com
Artists
Bakers
Brewers
Chefs
Electricians
Fashion designers
Firefighters
Fishermen (commercial boat captains in general as well)
Mechanics
Musicians
Pilots (including maritime pilots)
Plumbers
Psychiatrists
Stylists
Winemakers
Zookeepers
Even if we were to somehow automate all these jobs (which frankly I'm not sure is actually possible), someone will need to maintain the equipment. It can't be automation all the way down.I think this attitude is dangerous, and considering these jobs "dehumanizing" is, frankly, disrespectful and betrays a lack of understanding of what non-office-workers do.
I highly recommend watching Mike Rowe's TED talk for a counterpoint: http://www.ted.com/talks/mike_rowe_celebrates_dirty_jobs.htm...
Artists - new forms of art, html5, cool particle effects, webgl, 3D model scripts (for videos and such) and so on. A lot of use.
Bakers - baking is a science, machine learning to figure out just the perfect ingredients for the best bread? Pastry? Etc? I'm fairly certain there's a reason why Oreos taste just the way they do.
Brewers - same as the above. Why does Guinness taste just so? There's a lot of science behind that, science and stats.
Chefs - the same argument applies. I also suggest you watch The Best Hamburger Ever -> http://www.youtube.com/watch?feature=player_embedded&v=U...
Electricians - this one is a bit tougher, but some lighting systems in some houses are pretty damn complex - to the point I'm almost certain there are some microcontrollers involved. Or what about stage lighting? Sure it's physical, but it's still programming.
Fashion designers - a tough one, but someone has to program all those looms (although that's fabrics). They could also decide to turn it into a science, or what about those Samsung (or was it Philips?) LED fabrics that can be programmed to make lightshows. That could make it into fashion too.
Firefighters - ok you got me here, this is a very physical job that probably wouldn't benefit from programming .... oooh, how about fire prediction? Calculating how it will spread in a building? That sort of stuff?
Fishermen - have you seen the amount of high tech on a modern fishing boat (on telly for instance)? Puts the average reddit battle station to shame. Those things are complex and look very programmable.
Mechanics - don't modern cars depend a lot on their electronics? Aren't there people who almost do nothing other than tune engines? Isn't that quite a bit like programming?
Musicians - a guy at my faculty made a software that does some intricate things with music, I forget what it was, but basically machine learning on sounds and stuff like that. All very interesting and programming-heavy. Also the effects some peopel use these days are pretty damn awesome ... programmable?
Pilots - don't they already pretty much program the auto pilot? What I've seen on television (discovery channel for instance) that thing is very complex and it doesn't look too far from programming when they input their commands.
Plumbers - microcontrollers that control the amount of water flow based on time of day and season for the best water economy. That is all.
Psychiatrists - they already program people's minds. They don't need anything more than that or they'd be too scary.
Stylists - depends on the kind of stylist. Machine learning from tweets about a celebrity to figure out their best look? To figure out trends in style in advance so the celebrity client always looks like they're ahead of the curve? Hell, apply this to fashion designers as well.
Winemakers - it's a science. A lot more goes into a bottle of wine than most of us think (I've seen how advanced the field of tea tasting is). I'm sure there's a lot of chances for programming therein.
Zookeepers - when do you put a mommy bear and a daddy bear together in the pen so they don't eat each other and produce baby bears instead? ok that's statistics, but a little R programming wouldn't hurt.
Guess what I'm saying is, almost all of these professions could benefit from at least programming in R.
edit: The point is that, if all those people at least knew about programming, who knows what they'd be able to create or at least think of (and then get someone to do it)?
You said: ... almost all of these professions could benefit from at least programming in R.
"Need" != "Benefit From". There are innate benefits from learning anything, including programming. That does not equate to a profession having a need for programming.
Firefighters, for example. Modeling & predicting fire sounds great, but should that be the job of a firefighter or a programmer/statistician who works for the fire department?
That said, I think you're right to call out the parent – many of these jobs should require programming or already do. Many artists & musicians rely heavily on an ability to write software. The group of professions producing food & drink will benefit from automation, but only so much as the professionals using those automation tools understand and can control them.
Programming ability is rapidly moving into all kinds of areas, but to assume that it must end up in every area seems almost as narrow minded as ignoring the impact it's currently having.
Thank you for providing both sides in one post though. It's helpful to see the balance made so clear.
No, they shouldn't become programmers, but knowing how to program (and I wouldn't expect them to know much more than the basics required to write real programs and learn more later if they so chose) will not only help them better understand the modern world around them, but they will be able to apply these skills if and when they make sense or at the very least they would have a better idea of how to best communicate their needs to a real programmer.
I'm not a historian because I was thought history in school, so why would everyone be a programmer if everyone learned how to program?
A pilot is only "programming" an autopilot in the most rudimentary sense, by supplying parameters. He's not implementing the operating system for one.
The plumber will need to know little else about your flow microcontroller than how to install it and possibly some settings to input. He needs about as much programming ability for this as he needs for his soldering iron.
Is a plumber designing your house's plumbing not a plumber just because some plumbers are designing plumbing for whole cities?
Am I not a programmer just because I make websites instead of design and implement Apache, the linux kernel, the processor's microinstructions nor the processor's wiring?
I think we're talking about something beyond the old concept of "computer literacy" here. Any future plumbers are going to have grown up using iPhones, and will have the basic skills needed for the limited interactions they'll have with computers in their jobs.
Until they're replaced by robot plumbers, anyway.
Guinness was a pioneer in this area, actually. William Sealy Gosset, the discoverer of the Student's t distribution, worked for Guinness (he published his work under the name "Student" because Guinness had a rule against employee publications).
But even in your replies, you're often dealing with only small subsets. I don't want to live in a society which feels painters and sculptors are obsolete because we have webgl. I certainly don't want to live in a society in which the Oreo is an example of good baking. And the existence of webgl and Oreos doesn't indicate to me that painters, sculptors, and traditional bakers need to know about the programmatic options.
When not subsets, it's not clear to me why the professional ought to know programming rather than enlisting the help of a programmer. Programming tools for fire prediction would probably be quite involved. I've been programming professionally for 3 years, and I'm not sure I'd be up to the challenge. I'm not sure someone could be a skilled firefighter, learn programming well enough to write fire prediction tools, and still have a social life. And even if someone can, there's no reason every firefighter needs to. Once it's written, it's written, and others just need to learn to use it.
(As for the burger, I wouldn't eat it. I like my food traditional, minimally processed, and made of things I would recognize on a shelf [a category into which his emulsifiers do not fall].)
In the year 2040 you need to go to the dentist. The dentist you visit has a big shop, with lots of employees. There's Linda, who works the telephone and knows you and your family. There's the hygienist. There's the nurse's aide. The dentist even makes his own amalgams for fillings. It's a very personal and homey atmosphere. People like it.
The other place has robots. There is no dentist. You click on your iPad (or whatever you have then) that you want to see a dentist, and within ten minutes you're in the office. A robot does the exam, consults with you, and completes the work.
The first dentist costs four times as much as the second one. It also takes twice the time, and you have to wait two weeks for an appointment. (If you're lucky)
Now that's not some strange imaginings -- that's going to happen, whether we like it or not. The main question becomes: do we evolve a mixed-mode shop full of artisans working (programming) computers and technology? Or do we just commoditize the lot of it, take the humanity and ingenuity completely out of the picture? If you set aside programming, make the programming shop some special place where people go to commoditize business practices, you end up with no people around. After all, you've replaced them. If, however, each person knows their job and also programming, you create something new that wasn't there before. This is the startup question, "should all the founders know how to program?" applied to the world at large.
The essay makes the case not for programmers to rule the world, but for people of all jobs to learn to manipulate complex programmable technology in the same way they might today use Microsoft Publisher to make a banner. It's actually arguing your case for you: for our own benefit, the creative and unique aspect of people must be preserved.
Yes, I would save money by going to the robot dentist, but my dentist would be out of work in no time. It partially rests on humans to keep the exploits of technology at bay. We can't turn personable human tasks into machine work.
Our world can be set up to be completely self-sufficient. Yes, a few people would make a lot of money, but I personally believe the impacts would be horrendous.
We can see this as an increased demand for education / training. But, not everyone is able to keep up and over time ever fewer people are going to be capable of the remaining niches. It's possible that the service industry's are going to continue to absorb the less capable, but that does not help the economy in the long term.
One of them has his or her hand in your mouth and might need to drill, remove, fill or otherwise mess around with your teeth. I think a lot of people would be more comfortable with a human element in all medical interactions, even if robots are eventually as effective.
What about when robots become more effective? Drastically more effective?
I would not let a modern day robot work on my teeth, they are too stupid, but I can imagine a day (fairly soon) when this will not be the case, and my gut reaction will start to be the exact opposite: I would not let a human being work on my teeth.
Now, with automation and 3D imaging technology we can have a specialist specify what to change and let a computer design a series of discrete non-invasive attachments that allow a home users to quickly attach and remove their implant. It's far less painful, takes less time,can far more precisely preform complex work like rotating a tooth, and the only downside is it costs about the same amount as braces. Note: This is an actual company not just BS (http://www.invisalign.com/Pages/default.aspx).
PS: I still occasionally see a teller for complex interactions, but I trust an ATM to be far more accurate for my day to day needs. And there is still plenty of work for orthodontists, but a lot of the simple stuff is simply better handled by a machine.
As to programming; I don't know a lot about how the software works, but advanced users in front of really complex software like Excel and Photoshop tend to blur the line between a Specialist and Programmer.
If that doesn't happen, Wall-E future or massive human revolt.
I might indeed prefer Dentist #1. But if competition in my field of interest has significant reduced my salary or rendered me unemployed, I may have no choice but to dial-up Dentist #2.
This effect then results in Dentist #1 joining me in having his/her livelihood under pressure.
I can't see this ending well...
Just because some chefs with decades of experience figured out how to mass produce relatively poor quality cookies does not mean that it will be a snap for those chefs to spend years learning how to program well enough that they can create Star Trek replicators.
They're not. However, their work is greatly enhanced by using programming to, for example, generate procedural patterns, to mock up new shapes, and to test out new ideas.
Being able to program reduces the constraints that our mental abilities put on us by offloading parts of it to a computer.
At the very least, they will have some idea of what they need when some actual software people try to create something for these peoples industries (ie, they will be able to communicate their needs better because they will have some idea of what the programmers actually do).
EDIT: as much as I hate when people ask about why they are being downvoted, I would like to understand why so I can improve my future posting. Unless of course someone simply didn't like or disagreed with the post, though I would at least like to know why you disagree with me as I don't see anything obviously wrong with my post as an expansion to the parent post. I am merely pointing out how knowing some programming would be useful to a very wide variety of professions[1] beyond what parent said (which was a lot of machine learning) and that at the very least, it would help people communicate with "real" programmers, the same way that I learn about business to help me better communicate with the various different business people.
[1] A large enough variety of professions and people that I think everyone should be taught at least basic programming the same way as I think everyone should learn some basic algebra, history, geography, chemistry, biology, etc
In fact, the biggest win would be even simpler--just understanding where automation could help and where it couldn't is enough to progress. This sort of understanding more or less requires at least a base understanding of programming.
In fact, the food and bev industry is going in the exact opposite direction of this form of commoditization with small, craft shops popping up all over the place.
That's the not the job of the fireman, I think. I hope the fireman in my city doesn't spend his time doing such stuff instead of extinguishing the fire.
Our entire tool-using history has been remarkably short and has vastly transformed the world, resulting in more powerful tools, especially resulting in the universal-tool known as the computer. It can be comforting to imagine there's some normal-people-land that just puts-along untouched by the advance of our tools but really there isn't. Every human activity combines relating with the world and relating to other humans - the changing tools for doing this change the activity, often radical.
Even if you can only get to a mere 50% from some baseline, that's half the previous work force blown away that was previously required. Those laid off will have to find another field quick. It's not easy to change careers and it's not easy to go from a mostly-labor job to a mostly-thinking job. (I'm being fairly broad with labor and thinking here--e.g. I consider someone whose job is to input handwritten form data all day to be a labor job even though they sit at a computer for 8 hours, and a professional artist to be a thinking job even though it's probably better categorized as a creative job.)
Since mostly-labor jobs are the easiest so far to automate large portions of, those jobs are at the highest risk. Programming is the last bastion of a large supply of available jobs until we have AI smart enough to write most of the programs people want, it seems sensible to have a sizable subset of the population at least somewhat knowledgeable on the matter that they have a chance at switching to a programming job if their current one goes sour for any reason (like outsourcing), not just automation.
Have you looked at want ads lately? Chef: must be able to work the mixomatic programmable mixer. Electrician: must have knowledge of microcontrollers. Fashion designer: must be able to create digital mock-ups of new designs and work out how to automatically share them with our manufacturers. Pilots: must be able to work and program so many systems it would make your head spin. Musicians: must have knowledge of MIDI and be able to use a sequencer. Firefighters: must be able to program the engine and help with the local 911 modernization. Psychiatrist: must participate in the machine learning diagnostic project the hospital is undergoing. Must be able to work with data mining to determine non-current patients in need of intervention. And so on.
These criteria are just made-up examples, but I could go on. We could easily pull down real ads. Let's try the most fuzzy one you have up there: artist. Know a writer who doesn't use a word-processor? They exist, sure, but not as many as before. In fact, most of them are now learning html and mixed media formats in order to eliminate publishers and broaden their base. It used to be the "traditional" writers didn't use software. Now they use software but don't configure and program it. The "new generation" of writers do that. What was optional is now becoming a necessity. What was "computer literate" is now looking more and more like programming. This trend will continue.
Perhaps there is some exception. If so, I haven't thought of it. And you haven't listed it here. Yes, in some abstract, perfect way plumbing has nothing to do with computers. But that's the hell of the thing: the plumber in our imagination isn't the one in the real world. In the real world being a plumber means managing your scheduling system, your A/R, working with CAD drawings for a new construction site, buying mechanical devices that require configuration and programming, looking more into robotics for some types of work, and so it goes. The mental picture we have of these jobs and the actual way they are evolving are two different things entirely. You might be able to argue that one or the other jobs has more or less computers and programming in it, but that's a moot point. You're fighting a losing battle. They had zero ten years ago, they have some now, and they'll be mostly automated in just a decade or two. In some very real sense we are all becoming painters, just with a lot of technology to use instead of paints and brushes.
Unless I misunderstand what programmable mixers are, it's not really programming so much as defining preset profiles or sequences. I don't mean to imply it's easy, but it's not what programmers consider programming. (Again, some programmer created the software that the sound engineer uses).
Writers use word processors. Yes. I'm sorry, but are you just trolling?
If your argument is that everybody needs software, that's true. There's no need for everybody to write their own, though. Diluting the term programming is downright dangerous.
It is true that they sometimes have plugin APIs, but so do most applications. A writer would not typically write plugins for MS Word. But he might buy one for his needs. The API is not necessarily intended for the end user to become a developer.
I was boggled that they reviewd audio equipment which you had to write your own algorithms in Assembly though - now thats hard core
Figuring out a way for that to happen naturally, intuitively, and broadly is a hard problem that seems like it would probably have huge rewards.
Given the current UI/UX research and trends, I'd hold it more likely – and certainly preferrable – that the hard work happens behind the scenes, and users can perform more and more complex tasks reasonably intuitively.
Please do. I agree with other commenters that a lot of your examples are people using more software, not actually programming.
Saying "Skill X is the new norm" based on the fact that your life revolves around skill X is a clear case of needing to get out more.
Programming is to computer use what engine overhaul is to driving a car. You can argue that driving a car is an essential skill for modern day life, but being a mechanic is most certainly not.
Being a mechanic might make you a better driver, and will certainly make you less reliant on mechanics, but it is by no means a requirement.
Neither of these things are always true. This is something that tinkerers often struggle to grok.
Consider that the safest way to travel from one place to another is probably on a plane: The vehicle which you are least likely to understand. Moreover, even if you do understand modern jet aircraft and the airlines that fly them, that knowledge won't do you much good, because you have very few knobs which you're empowered to turn. But they constitute a very highly-designed system involving reliable avionics backed-up by redundant highly trained and well-rehearsed pilots with their lives on the line. And the statistics show that you're not going to improve on that. So sit back and have a ginger ale and wait for the plane to land.
As with travel, so with many things in our modern world. Does knowing something about cryptography (a) make you significantly less reliant on professional cryptographers, or (b) make your software more secure? According to security experts I've read, the answers are (a) no, unless you want your software to be less secure and (b) perhaps, but only if you fully appreciate the answer to (a). If knowing a few things about crypto tempts you to deploy crypto that you implemented yourself, it's actually counterproductive if the goal is to produce secure production software.
(As a hobby or an educational toy, of course, I'm obviously a big fan of tinkering. But not everyone needs to have the same hobby.)
Not all mandatory subjects in schools are useful to all professions, but that does not mean that they shouldn't be taught. A large enough percentage of people are office workers that I think teaching programming would be a net win, even if there are a lot of professions that do not require it. Also, as with the subjects I listed above, programming teaches people how a large part of modern industry and business (and just plain every day life with the ubiquity of software on our lives) works and that is, IMHO, useful. I mean, we learn about the world around us in subjects such as geography or biology, why not learn something about how the technologies we use every day (the internet, word processors, music players, whatever) work and are created? At the very least, it expands our minds just like learning a foreign language does.
Saying that everyone needs to know to program is obviously too strong, but enough people would certainly benefit from it that I think saying that, eg, "schools need to teach programming" is valid.
Because the education system is broken.
Many subjects we teach in schools today are there only because they classically established your social status as a proper lady or gentleman -- not necessarily because they are of any practical use to the modern public.
For example, see Harvard's entrance exam from back in the day:
http://graphics8.nytimes.com/packages/pdf/education/harvarde...
That's not to say that (for example) music theory doesn't have a place in today's society, but is it so absolutely critical to the functioning of productive citizens that we should require everyone to learn it, and subsequently forget it?
This isn't why the education system is broken, but it's a symptom.
- It helps you better understand the world around you.
- A lot of knowledge can (and often should) be applied outside of their obvious areas
- It helps us appreciate and/or understand other people in jobs very different from our own
- It helps young people decide what they enjoy or are good at
- It provides a base that can be expanded on in the future if the person ever needs or wants to
- It helps us communicate between disciplines as
- Probably more that I can't think of offhand
"and subsequently forget it"
Sure. This happens a lot, but you forget a different subset of what you learned than what I forget. I also find I can relearn things that I learned in school a lot easier than I learn completely new things. I also wouldn't have known what to forget and what to spend time remembering and improving if I hadn't learnt it in the first place. Finally, I found out that I either enjoyed some of these things that I otherwise never would have been exposed to, nevermind how much of these things seemed useless at the time (and so I would have opted not to learn them, given a choice) but have since turned out to be extremely useful or even critical.
Note that I am not arguing that the education system isn't broken (I think it is), but that learning a large variety of subjects isn't necessarily bad or even a symptom of the broken education system. I think that any reasonably education system would expose students to a large variety of subjects before focusing on specifics.
When she first started she did two things that previously nobody else did: she wrote her formulas down as she made them so she could reproduce them later, and she applied the scientific method to her formula making. Now anybody else reading this HN comment will probably think "WTF that's very obvious". Like I said, she was the first person to do it at her gigantic company (along with her other new co-worker hired at the same time).
And she was made fun of and teased! "You crazy college kids" was what she heard at first. Then after she proved that she was far and away more productive than any of her co-workers they'd scoff at her that "Pizza making is an art". Nevermind that in between those scoffs her boss said she was the most creative thinker...
The old guards wouldn't even write down what ingredients or the quantity when they were making new formulations. They'd have to try to remember later what they did. And guess and checking formulas was how they'd develop new stuff that was tightly specified. Guess and checking pizza is almost always a lot slower than guess and checking the positioning of a label on a web app, so this was a very expensive process.
And when you work with food at that scale it's all marketing driven: Marketing comes down with an idea that "Sodium is scary so let's develop a pizza that's really low sodium. Oh and let's see if we pitch it to blah for their kids meal". They'd specify a level of sodium that was acceptable, and then the kids meal specifications had their own acceptable levels of X, Y, and Z. So with that in mind she would work backwards, make 12 different formulations in spec at once and let the marketers try them to see which tasted best (sidenote: low-sodium pizza tastes awful. Just eat real pizza and have an extra glass of water).
All of these scientific techniques were totally foreign to her co-workers and even her customers, and we're talking math and science that most learn in 4th grade. She worked for a huge successful company that's successful in spite of itself! Could you imagine the software that could have helped her do an even better job: - Software to manage the dozen or so different variations of the project she was working on - Even better, software to help her collaborate with an assistant so she could get these 12 variations in front of customers faster - Software to help her plot some sort of optimization curve to figure out the 12 different variations she should try based on the input parameters - Some sort of version control for her formulations - Automatically come up with the nutrition label before she started working on the pizza - Even more if I could remember some of our other ideas
So to keep on topic: There are a lot of things, at least for baking, that were disrupted by just using 4th grade math and science. Software was the next step, and we were going to start making software (she'd be the domain expert for my coding work), but then we had twin boys so right now we're just trying to tread water. Maybe soon...
Precisely what I was thinking. Basic programming will be just something for 4th grade that almost everyone will have forgotten when 20.
If you are under 50, I would bet most planes (at least in the military) will be piloted entirely by AI before you die. The same should be true for most large ships. Most planes are already piloted by AI most of the time today.
Similar to how if your business depended on a large fleet of vehicles you may not need to be a mechanic, but some basic knowledge about maintenance and the capabilities of different vehicles will allow you to make better decisions and hire better people at more reasonable rates.
The reasoning Markham is using is that 'programming' (and he tries to be clear that he's using a concept not the vocation) is rapidly becoming as essential a skill as reading and basic arithmetic ability. The support for that argument is an observation that everyday appliances are being implemented in 'software' (like the phone) and that this opens them up to customization, and the customization takes the form of programming them.
A very simple and concrete example, how many people who have never been exposed to 'programming' have the additional functions of their 'universal' remote that came with their TV configured? Record shows to be watched later?
Even if the tool is as simple as going through a series of menus answering questions, the underlying mechanism is that your creating a 'program' to achieve some objective. So if your Artist never needs to use a computer to create art, they will have to figure out how to tell the microwave to convert their frozen entre' into something edible. They will be exposed to stored program sequencing and understanding the basics of that will make their life easier today, and Markham asserts will be required in the future.
Markham riffs on the jobs aspect I suspect because it has a large number of ways to see how people are displaced, but the bigger point is that the world is becoming programmable.
In my mind at least, this isn't about automating skilled jobs out of existence. This is about giving these professionals the ability to streamline their work. Without the ability to understand software, they often wouldn't have the knowledge of what pain points a hiring a programmer could help them with, let alone the ability to do the work themselves.
The fishing industry is in dire straits because too many boats are chasing too few fish. Boats have been getting bigger hauls for decades, partly because the power block allows small crews to shoot more gear, but mainly because of better data.
The bridge of a modern trawler looks like that of the starship enterprise. A captain spends most of his trip looking at computer displays, reading sonar data. A skipper lives or dies on his ability to find fish, by combining his knowledge of fish behaviour, tides and currents with his sonar data.
It's for this reason that the fishing industry is consolidating into fewer, more sophisticated boats. The Annelies Ilena is currently the biggest trawler in the world at 144m LOA and 11500 tons displacement. It is capable of processing 350 tons of fish a day. Boats of this size are only economically viable because better data methods allow them to reliably find fish.
> Maritime pilots
Largely replaced by computers. In most modern ports, pilotage is only necessary for the biggest boats and the most difficult conditions. Higher-resolution charts and differential GPS obviate much of the need for the local knowledge of pilots. Computerisation has hugely reduced the crews of merchant ships. Some of the biggest vessels in the world operate on a crew of less than twenty.
>Airline pilots
The US armed forces now have more drone operators than pilots. Those are being replaced by software as fast as ethics will allow. I'd be astonished if there's a single fixed-wing pilot left in the military in 20 years time.
Civilian aviation should have abandoned human crew years ago. For every Miracle on the Hudson, there are a dozen accidents that no computer would have allowed to happen. Computers are just better at flying than people.
Ultimately, this isn't about "software" as we see it today, it's about artificial intelligence. We need to get our heads around the idea that within a few decades, computers will be more intelligent than us. Unless we understand the implications of that fact, we're doomed.
That last thing students is need is yet another hot topic on top of all the other crap they're supposed to be learning.
There is far too much specialization going on. What the students need more than ever right now is increased focus on the basics of reading, writing and mathematics. Everything else, including future vocational training, follows from the basic skills of the "three r's".
When I read articles like this, I get the feeling that some people love programming and computers so much they get all giddy thinking that everybody will need to be programmers at some point. Don't get me wrong though, I do think that people who have the capacity to wield computers have a lot of power on their hands, but I think it's a bit of a stretch to think that everyone will need to be programmers eventually.
https://news.ycombinator.com/item?id=3285212
I don't see the need for everyone to be a programmer. Nor do I see programming to be as fundamental as literacy or numeracy.
-- Bill Garrett
If programming really is the new high school diploma, I expect to see a big failure in the "there's an app for that" meme. If it's the case, at some point people will need to compose apps in new, creative ways that suit their particular individual goal, which no one else has currently thought of to implement in a single one-click app (if it's even possible) and/or which an app that's almost there can't go the rest of the way because the request is too specific to that one user.
Of course, I'm more in favor of using the same simple argument made when students ask why they must learn algebra. It shapes their thinking in a positive manner regardless of whether they advance further in the field.
However - I think it is important to consider the political implications of such a future. It is unlikely that 50% unemployment is politically acceptable. If we were to move to a more communist / socialist society would robots still be doing the work?
It is unlikely that we all end up programming.
I think that we need to redesign society from a technological and _primatological_ standpoint because I think a lot of the extreme hierarchy and brutality we see in our world is a result of the way that our cultural frameworks handle our primitive needs such as various ways that men compete for sexual success (such as resource acquisition).
The thing that I think people are missing as a realistic concern or change is that by the time these robots are able to replace most human jobs, which doesn't seem like it will be too many decades from now, shortly after that, we have to expect that the robots will become even more capable than humans.
The robots will be smarter than people. Normal, unaltered humans will probably eventually be treated like animals. I think that people don't take this possibility seriously (to me it is a likelihood, and probably within my lifetime).
I don't think that means we should prevent the next 'species' from taking over, but I do think it means we need to plan for ways that we can integrate with super-intelligent technology in order to stay relevant. And I think that is going to be a very practical issue within a small number of decades.
It'll probably take us 50 years to have emission-free vehicles dominating the auto market, let alone robot overlords.
Maybe I'm just pessimistic (or optimistic), but I think Humans are too dumb and/or too smart to create an AI that will overthrow us. More likely, we'll ruin our society by overpopulating and draining our natural resources before we can prepare a suitable "Earth 2".
Or Zombies...never discount Zombies.
That said, strong AI is so difficult, and we are so far away from it, that it is likely that by the time it happens we will have automated everything else already.
I actually think social work will be the safest job. In a world filled with robots, people will want to talk to real people :)
The problem is really what do you do with a lot of people who need to do anything and probably don't need to exist? They tend to multiply quite rapidly as well as there is nothing else to do.
In a society that demands employment, 50% unemployment is a death-sentence. That's half your population draining the subsidies dry and raising taxes on the working half. Suddenly both sides are angry. Prisons become overburdened, people dead in the streets, Governments overthrown, CEO assassinations, etc.
Sure, in a fantasy land where things don't cost money and land isn't 'owned', 50% unemployment could be ok. Unfortunately that's not us yet.
Society is polarised by automation. The gap widens every day.
I've destroyed hundreds if not thousands of manual work positions over the years by making software that replaces them. I've now got to support the uenmploymed with my tax contribution. Welcome to the flawed turd-bag that capitalism is.
The issue for the next 20-50 years isn't that everyone needs to become a programmer, its that currently no one is becoming a programmer. Until we start to graduate people from high school with some ability and interest in programming, we're in tough shape. At the present time, its near impossible to find a school system anywhere with a good programming/CS program.
And the changes will take a long time to implement: government will need to invest heavily in teaching teachers to program (and teach programming), and invest in ever-changing computer lab infrastructure.
The future looks as ripe for companies like CodeAcademy as it is bleak for government-run education systems.
Locally (outside the US), I see job postings that require "programming gods" for the job, that top the pay scale out at $70K. The US is reported to fair better, where programming deities can earn over $100K, but mediocre programmers still do not earn that much from what I gather.
It takes a lot of work to become even a mediocre programmer, and when you get there, there is no room for advancement. The programmers job is to automate itself away, yet, unlike the commissioner, the average will never see residuals on the gains from that automation. They say most programmers leave programming by the age of 35 because it is a dead end.
Don't get me wrong, I love the field and have no regrets about entering it. I started programming in high school because I was fascinated by it, and the fact I can make a decent living doing what I love is amazing. I do, however, recognize that I could be much further along professionally if I would have poured all those hours into other pursuits.
And that's the kicker. Most people are not going to naturally love programming like me and, I'm going to assume, you. Why would they want to spend their formative years on interests they do not particularly love, to find themselves in a job that pays decently, but has no real room for advancement beyond leaving the act of programming entirely?
A non-technical parallel is public speaking. With extraordinary skill (in isolation), you could end up as a PR flack making 100K or so. If you combine great speaking ability with strong organizational and interpersonal skills, you could end up making orders of magnitude more as a CEO or politician.
Programming, like public speaking, can be thought of as a delivery mechanism. As more of our world becomes "programmable", the increased reach and leverage of coding ability will make it far more valuable.
It's not the people who already enamoured by programming, it's the people who dislike or even hate it (i.e. most people). What about programming makes it worth their time to do, when they do not naturally love it?
In other words, to have something resembling the mental model of a programmer, without writing code. In that sense, I can see "programming" being the new highschool diploma.
But if he means it literally, then I don't agree.
There are other service professions that do not need to know how to program as well(all sorts of entertainers, personal services [trainers, masseuses, barbers/hair stylists, etc.])
Learning programming doesn't mean to be any good at it, or choose it as a career.
There are many more steps to nearly every process that involves a computer. The parts that are best performed by a computer most likely already are (at least here in the US). As computers improve, their role will continue to be expanded, but this curve will flatten out. Granted, the curve is in the early part of flattening and has decimated jobs, but I don't think that it will continue forever.
I have even less confidence in the job security of existing programmers who do scripting and/or programming that amounts to little more than patching existing modules together to get relatively simple effects. These jobs are just as susceptible to automation as those of assembly line workers. In software we're where the telephone industry was in the 1940's: there are 350,000 operators in the U.S. alone and the sky's the limit for good-paying jobs as telephone operators. We worry when a small percentage of these good operator jobs are outsourced to foreign workers. We should be worried about virtually all of them being eliminated by automated switches.
Lawyers and doctors don't do this. They might give some freebies, but not to the extent of the open source community.
I can't help thinking about medicine instead. Admittedly I haven't tried, but it seems unlikely that the same thing would work for medicine (studying books for a couple of weeks). Even learning medicine in isolation (as is common for programmers) seems like madness.
I will now go looking for tutorials on removing an appendix on YouTube, but I kind of hope that I won't find much...
Most applications that are being developed are 100% standard fare (CRUD).
Also a lot of programmers seem to get by just fine without a CS degree. (I've got a maths degree and minored in CS, but still, sometimes I feel I wasted my time). In fact I don't think I have ever been asked by an employer to code something complicated. If I were doing a startup it might be a different matter.
Are you saying that you shouldn't bother to read the PickAxe book or the PragProg Rails guide unless you have a CS degree?
Also, most code is probably crap but works anyway. I suspect the same can't be said for appendix removals.
If you have said something like "developing CRUD web apps is so easy compared to some other jobs", I would have had nothing to say to you, because you're probably right.
Maybe if you had gone to work at IBM on Watson, or for a NASA research center on spaceflight communication networks, or work for something like Certicom producing the next public key cryptosystem over elliptic curves, you'd really be flexing your math muscle and programming. I can imaging there are a small subset of startups as well that would extremely value your math capabilities. So you feel your degree was wasted modulo the way your career panned out.
And a final note about code being crap: Many dental and medical tourists come back to the US with extremely poor workmanship on their knee replacements, fillings, or root canals, and have to have much of it re-done here. Also, due to the nature of medicine and software development, the comparison isn't really apples-to-apples. An oral surgeon might do 10 wisdom-tooth removals a week, granted everyone's mouth is different and there are a huge number of complications, but many software developers are working on something entirely novel on each project. In my experience, crap code is a function of changing requirements + iterated attempts at refactoring.
Given pre built systems, everything is simple. And since "software is eating the world", maybe everything can be simple.
Maybe it is because both of my parents work in the medical profession, but that sounds perfectly sane to me. Most of diagnosing a medical condition is applying Bayes theorem to symptoms. Have symptoms x, y, z? It indicates condition a, or b. Run a few standard, well known tests that lead you to believe that is a instead of b. Follow standard treatment for a. Say a is gal stones, a few weeks of reading would make you close to an expert on gal stones, treatment, causes, how to diagnose etc. Now sure if a is brain cancer then it is a little more involved but there are corners of CS I would say the same thing about.
High school biology wasn't very hard, and I imagine you could be minimally useful after little more than that. But to actually become a doctor is a very different matter. Just like being a Java jockey is very different from working on high-performance distributed systems.
The basics of medicine (particularly of routine surgery) are not particularly hard to grasp; the hard part is learning to control the scalpel, and that's really not very different from learning how to cut a frisket mask for airbrushing. Sure, there are hard parts, but how many GPs ever have to delve into the deepest arcana? That's what specialists are for.
Programming is easy if you're already inclined to think that way, or once you've had the "aha!" moment. Getting there isn't universal, even among those who have chosen to pursue programming as a career. Pick a platform, visit a forum or newsgroup, and look for the "kindly do the needful" messages from people who are paid to do things that should be as simple as putting two Lego blocks together.
[1] http://en.wikipedia.org/wiki/Ferdinand_Waldo_Demara [2] http://thedailywtf.com
I'd like to mention that I've kind of been on the receiving end of some angst towards generally tech-savvy people, and I have a feeling I'm not the only one. I'm a computer engineer, and I've noticed that when the topic of what I do for a living comes up and the person I'm talking to isn't good with computers or isn't an expert in another field, their general attitude towards me changes for the worse. I feel like those outside of the tech industry really resent us programmers, as they likely (and rightly) see us as one of the main causes of present job loss in some industries; but I wish there was a good way to help them see the bigger picture, where technology has always been shifting job availability from industry to industry, and that it really only improves overall quality of life in the long term.
For instance, just last Thanksgiving my aunt and I were talking about how much things have changed in the past few decades, and she said something along the lines of "people used to work with their hands, not program computers all day." She said it very negatively; and in the context of the conversation, it was very clear she's actually against the trend of ever-increasing use of computers. There wasn't much I could think of to say at the time that didn't seem rude or disrespectful. But now when I'm on the receiving end of angst towards programmers, I point out that the shifting of jobs throughout industries has always occurred as technology progresses and try to provide examples throughout history. Although it can sometimes be difficult to do this without seeming pompous.