Hacker News new | past | comments | ask | show | jobs | submit login
Could Coding Become the Next Mass Profession? (roybahat.com)
79 points by zds on Jan 4, 2012 | hide | past | favorite | 101 comments



Citation missing, but I've read a paper that claimed rather convincingly that you need a certain mindset both to be good at programming and to enjoy programming (unsurprisingly, this comes hand in hand).

It's not really problem solving, it's rather a specific kind of structured thinking. It's the attention to detail and the will to think through every aspect of an issue, to find a complete solution. That's also a useful skill outside of software or even engineering (I'd imagine law isn't all that different in that regard), but apparently it's really critical for software engineering. At the same time it's not necessarily linked to general intelligence or problem solving ability or creative thinking, it's just a particular way of approaching problems.

Said lost article had tests showing that only a small fraction of the population thinks this way, something below 10%.

Of course this isn't proven, but it matches with my personal experience. This always makes me very skeptical of things like end user programming, or programming as a mass profession. People without the skill can create programs, in particular in environments, but the results are usually quite fragile and expensive to maintain. "Real" programmers can usually create much greater value at lower cost, so there really isn't much of a point in employing lots of "not really" programmers.


I agree with you: what we think of as 'pro' programming -- writing large programs in formal languages and running it past an interpreter/compiler -- is probably only something the few will really get into.

However, there's a couple of exceptions to this idea I'm not sure how to handle.

MS EXCEL : It's a programming experience, of a sort, and is incredibly popular. I think it uses similar skills to writing code, but is just much more 'gentle' on the brain. There's a programming nature in excel formulae;

    =SUM(A3:A14) / COUNT(A3:A14)
if you see what I mean...

BASIC : Back in the 80's, everyone and his dog had a go at BASIC programming. Most of my friends and their dads got their hands dirty typing in programs from magazines. It suggests that getting lots of people involved in simple languages might be feasible.


Yes exactly! There have been times in history (pre-printing-press) where most people couldn't even read. I'm sure there where many scribes who would look down their noses and say that the common man would never take the time to read for himself.

Our society has grown to be incredibly complex. Imagine taking your great-great-great-great-great-grandfather and dropping him in modern times today and asking him to fill out the forms to get a drivers license, prepare his own taxes, set the clock on your dvd player, or send an email on an iPhone.

I guess my point is that the "common" man is pretty capable of feats that would be considered extremely technical from a historic vantage point.


I was also about the use writing and reading as an example of knowledge that used to be limited to just specialized roles. While there are still professions that deal exclusively with writing exceptionally well, it's now part of our basic education. I think in a similar way, computer literacy could be just a matter of education.


yes, but we get 12+ years of reading and writing education.


I believe we could really start teaching code at a relatively young age too, or at least start teaching them the ability to have the mindset for programming.


Having long ago been a copy editor, and now being a member of a book club, I'd just point out that not all who write write well, and that many who read do so with limited understanding.


I actually think the excel example demonstrates that we are unlikely to see that many more programmers in the future. As much as people use excel in their offices there is still the idea of the 'excel wizard' who really understands the functions and features of excel. It's actually quite surprising how many people I've encountered who use excel pretty frequently and still don't know many of it's basic features. The fact that there is the idea of 'excel wizard' means that for most people even the programmatic aspect of excel is elusive and uninviting.


I think there's a pyramid of automation. Something like

    1. Set an alarm on a phone
    ...
    4. Basic Excel formulae
    5. Excel Wizard
    ...
    7. JavaScript copy-paste coder
    ...
    10. Professional programmer 
 
The original post suggested that there are more and more incentives for people to push themselves up the ladder. I don't think it'll necessarily mean a whole segment of people people jump from 2 to 10; rather, I think peopel trying to get an edge in the job market could shift up a bit, taking the distribution higher. So Excel users will become Excel wizards, word processor users become HTML coders, etc


I remember in 90s you were called a computer wizard if you how to type a document and print it. Expectations change.


However in the 80s I remember if you understood Wordperfect thoroughly (i.e. could do reveal codes and manipulate them) you were called a "secretary." Some form of dumbing down seemed to happen when the GUI came in.


You should see the command line interface my travel agent has (maybe all of them, I don't know), they seem to memorize 100s of airport short codes and use an odd syntax surprisingly quickly for 'non-computer' people.


Very true. Anyone who could confidently boot up a computer had a that geek cache/tarnish.

Is there an example of expectations changing around programming or automation, specifically? Programming, as opposed to computer literacy.

I suppose what I'm wondering is, why is there such a barrier to programming? People are more and more comfortable with complex apps, but not really more liable to fire up some kind of text editor... It's quite a jump to make on your own, I think -- say, going from Excel formulae to VBA macros, or using a WYSIWYG HTML editor to coding JavaScript.


I was called a 'computer wizard' as early as 3 years ago for knowing how to change the wallpaper in Windows, and also for knowing how to use Alt-Tab to switch between windows.


That is impressive, though ;)


I agree, it's both. I remember a donald knuth quote that about 2% of undergraduates have the mental quirks that make them good at programming. He didn't say "intelligence" or "talent", he said "quirks".

That wasn't just false modesty, there are a lot of factors that have to come together for someone to want to be a programmer, and some of them really do seem more like quirks than talents at times.


Well, that may be true to an extent. The other day I was working with some code that was adequate for most purposes, but didn't meet my rigorous standards (hence: attention to detail and thinking through every aspect of the issue).

So I put on my "old age and treachery" hat, aka my puzzle solving hat, and came up with a better solution one that was:

shorter

simpler

more robust

The experienced programmers I know call this cheating, hence the "old age and treachery" (from "old age and treachery beat youth and beauty every time").

Smarts, puzzle solving and intelligence are all a critical part of that. And that's the thing that is the 10x multiplier that makes all your 'average' (median) programmers look distinctly below 'average' (mean).


"""The experienced programmers I know call this cheating"""

Call what cheating? You haven't described anything that could even remotely be called cheating.


I was talking to a (print) design friend the other day who's trying to learn to code. It's interesting to explain to a non-programmer what kind of person will/can become a programmer. If you don't love solving problems by digging and automating, then you will never be a programmer. As you say, not because of intelligence but rather desire and enjoyment.


Did your friend have any incentive to try it for themselves? For example, automating Photoshop using ActionScript? Maybe pro programmers like solving general problems, but professionals in other fields would be interested in solving things in just their domain.


Great idea. I'll mention that. He was coming at it from a somewhat arbitrary expanding-skillset approach, wanting to get his feet wet on the web side of things. I was explaining to him the difference between a creation that "looks" a certain way vs a creation that that "does" something.


Was it Dehnadi and Bornat? (link in other comment)


The analogy here to law is spot on. My dad and two brothers were lawyers; I grew up in an environment where getting pancakes for breakfast on Sunday required parsing statements made days earlier and finding contradictions between them and the statements being made now. Learning to think that way, however, is not just another skill in an infinite toolbox of possible skills, all of which are equal and each of which you can be proud of in a touchy-feely way. Learning to think, and talk, and conceive in advance what you'll do next that way is akin to learning the art of war. The adaptation to programming is pretty minor. Programming is mickey mouse lawyering. The beauty of law is that someone's actually right; there's a logic at work, and teasing out the convoluted threads is your job. I can dig it. If I liked people more, I'd do it. But to say it's a preference or a happenstance aptitude, rather than a learned, honed, bludgeoned and beaten-in skill, is to seriously underestimate the people who are good at it.


Having formally studied law, mathematics, and programming, I find it odd that you could say "the beauty of law is that someone is actually right" especially in comparison to any formal system like programming or mathematics.

The law is not written in a formal language (in the mathematical/philosophical sense), and interpretation/semantics is not derivable from its representation in text; meanings derive from squishy brains responding to the text.

Having said that, I find it to be a very apt analogy; the idea behind "rule of law" is an aspiration that the law should be more like mathematics or programming rather than an ad hoc collection of rulers' decisions.


I don't remember and wasn't able to find it either, but I know which study you're talking about. There was a professor who gave his intro CS students an exam where they were supposed to interpret code. Of course, most of them had no idea what they were reading. The statement "X = X + 1" is (as a mathematical equation) garbage, even though it's legitimate in a conventional CS context (whereby '=' represents assignment). So almost all of the students interpreted the code incorrectly.

What separated the (future) successes from the failures was not how accurate their interpretations were, but whether they were consistent. The students who came up with consistent interpretations of these (a priori) meaningless symbols and could rigorously apply them were able to grok programming-- through trial and error, they picked up the actual meanings over time. The ones who weren't consistent, who just didn't "get" that these symbols had rigorous and inflexible meanings, were the ones who failed.

I actually think this style of rigor in thinking can be learned, even for average people, but it takes time. You can't go from zero to fluency in one semester. The problem (of American mediocrity in mathematical thinking, at least over the bottom 90 percentiles) is similar to what comes up in affirmative action debates: we're addressing it 18 years too late. In the US, many students never encounter mathematical proof or computer programming, except among the elite (e.g. USAMO, IMO). These aren't impossibly hard. Bulgarian and Japanese secondary students tackle proofs. Unfortunately, in the U.S., proofs are extremely rare in the secondary curriculum and computer programming is, if offered, an elective.


The study you are thinking of is "The Camel Has Two Humps" by Dehnadi and Bornat, which was never officially published (and having read it, has several control issues that are cause for concern with respect to internal validity). However, most people continue to quote this study without realizing that the authors have retracted their original claims. In a larger, later follow-up replication study (Mental models, Consistency and Programming Aptitude by Bornat, Dehnadi, Simon), the authors state:

"We now report that after six experiments, involving more than 500 students at six institutions in three countries, the predictive effect of our test has failed to live up to that early promise. We discuss the strength of the e ffects that have been observed and the reasons for some apparent failures of prediction."


That is the one I was thinking of. Thank you.


"""The statement "X = X + 1" is (as a mathematical equation) garbage"""

Actually it could be perfectly valid, depending on the context.

For example, if + denotes the boolean AND and 1 is true, then X = 1.


It's an interesting question how much of the population is really capable of becoming productive coders in a professional setting. Certainly we already have a wide class of coders doing things like advanced Excel spreadsheets which require much of the critical thinking required to write general-purpose code, but even there you find that there is a distinct subset of people who really grok it and break through the next level of creative problem-solving ability.

I would argue that unless you can break through that wall where you have the tenacity, will and base knowledge to debug anything that is thrown your way, you will not be employable professionally as a coder because inevitably you will get hung up on something. I'm not sure the obvious outward computer-geek level passion is required, but I certainly think you need a real sense of satisfaction with the problem solving aspect of the job. How much of the population possesses that? I'm not sure, but I'm guessing far less than half.

My prediction instead is that hackers will continue hacking until we achieve artificial intelligence, and then computers themselves will do the heavy lifting and we can all be creative directors. At that point we will have to contend with far more difficult existential issues such as how to structure society and happiness for a species that is evolved from a difficult struggle for survival in a world where automation accounts for every physical need. Maybe philosophy will be the next mass profession.


I think the piece is overly optimistic about the prospects of coding becoming common place. We have dealt with the software crisis since the inception of software and up till now, no one has proposed an even half way plausible plan on how to address it. As such until someone solve the software crisis in a measurable way that can improve the quality and predictability of code. It will remain a craft, as such only the most skilled craftsmen will be of real value, with the less skill providing solutions that are far more expensive to maintain.

As well the for the majority of the population, writing software is just not attractive it's what technical minded people do, which is 10% of the population at best. Couple that with the fact that the industry up until now has not been that attractive to females and you start to see that there are a bunch of technical and cultural issue working against coding becoming the next mass profession.

The majority of people look at a logic puzzle and see frustration, they don't see a challenge that is interesting to solve. The minority that do, have the spark that is needed to code. Figure out how to give everyone that spark, and you may have a flame, but you still have to deal with all the other issues once you get the fire going.


I agree, and also I'd like to add something. While it's not really an attractive job to many people, it's also relatively difficult for most people. Farming is different in that it's easy for anyone to do (it's just manual labor). Realistically, you can't expect a large portion of the population to be capable of programming.


> Farming is different in that it's easy for anyone to do (it's just manual labor).

I have a small grain farm and also develop software professionally. I find software development is the easier of the two, personally.

Problems in software all go back to the rules of computational theory. It's not exactly easy, but the space is fairly limited and can be understood with some effort.

Problems in farming are all over the map. Sometimes you have to engineer a new piece of equipment to get you out of a jam, other times you're dealing with biology, medicine, mechanical work, sales, you name it, you probably have to deal with it. And you need a solution now. By tomorrow, your profits for the year will be gone.


I grew up on a citrus farm in Florida, I was the first generation to leave the far after NAFTA due to the fact that we could no longer compete as a family farm. While Farming has a lot of variables that cannot be controlled and is grueling work, I did not find it to be any more mentally difficult than development. There is a lot of science in farming for sure, but one thing about farming that is very different than software development is that only one person needs to do the thinking and can then delegate to less inclined individuals. The structure of the workforce is different in that a single thinker can do the processing for a group, in software there is no such luxury, if I do all the thinking for another developer then I might as well take the 10 minutes to write it down and save the salary of the other developer. That's the big difference, roles can be delegated in some professions, in others they just cant. To some extent they can be in software, you can have a test developer, and a build manager but for the most part each one is working out specific, unique problems in their domain.


> but one thing about farming that is very different than software development is that only one person needs to do the thinking and can then delegate to less inclined individuals

True, although, technically speaking, that work still exists. The programmer just delegates it to the computer instead of having people do it. There is no reason why you couldn't have an assembly line of humans hand-compiling your programs, if you really wanted to. Once you give them the basic rules, they can set forth and complete any task that you ask of them. It is just repetition at that point.

Farming is quickly going in the same direction. The delegatable jobs are, more and more, being done by machines.


> Realistically, you can't expect a large portion of the population to be capable of programming.

Then you look at the code of the people who are attracted to coding, and 'capable' of it and pale in fear of how bad the code is (even if it works).


Exactly. I think that metalsmithing in the past would be a better analog for programming today. It is difficult, takes years of apprenticeship to do well, but it still provides a valuable service (horseshoes among many other things).

Not everybody back then were smiths though, just like not everyone today will be programmers. Programming definitely has a great impact on society (like smithing did), but if you consider the incredibly important impact that farmers have, they hardly even compare.


Farming "Just manual labor"?

Common, have you ever tried to plant something?

THAT is difficult!

Any profession could become a mass profession.


This is of course assuming that programming in the future is exactly what programming today is. I find that hard to believe.

I'm sure that the edge of the programming will still have a similar feeling. However the vast majority of applications are pretty simple. I wouldn't be surprised if we see the process of creating those applications become dead simple, any person with a high school education can do it, and will do it. In fact it will probably become a part of the educational process... the way my education involved creating powerpoint slides, my kids will learn to make simple db queries (not necessarily in code) that can be accessed by a simple user interface made in a vb like environment.


You still have to solve for the software crisis http://en.wikipedia.org/wiki/Software_crisis it is still with us today. It is the major reason that I am not optimistic about it changing in the 10-20 year outlook baring a major shift in how software is assembled. The problem with those VB and access solutions is they inevitably do not scale. I think they are great for empowering people but I have seen the pattern too many times where one of these solutions outlives it's intent and becomes a critical system at a company that then pours far more money into keeping it alive than they ever would have should they have hired a developer in the first place. Some of the best environments I have seen is organizations that encourage business people to solution in access, but once a homegrown solution hits a certain size they hand it off as a prototype to a development team to turn it into a robust solution. Therein lies the issue, the tool that empower people inherently lead to sloppy solutions that further the software crisis, the tools that help manage quality and scalability don't empower the lay person. No one is even remotely close to crossing that chasm. If anything web apps have made the two that much further apart.


I think the shortage of software development skills really has to do with the lack of there being enough people who get impassioned with this kind of stuff. When I step out of my bubble I realize that its really difficult to find cultural-personality fits for what building software requires. Most people are just not like 'us' for better or worse. Most people don't get giddy over implementing a new algorithm or building an elegant framework, etc. etc. and probably never will.

Here is an exercise... flip the table and think if our industry was going away and you needed to find a job in a completely new industry/job role. Personally for me about 95% of the things I can think of make me want to immediately throw up... sales, medicine, advertising, law etc. - no thanks they are just not me. I've known people who have transitioned into tech from other industries chasing the money here... they are usually gone within a year or 2.

The other problem is despite all the crap about "I learned to code in 2 months" it is a really long haul to become good. Probably similar to becoming a good author or painter.

Lastly, it is quite well known that some people in software can have a lot of economic problems as they get older not to mention some of the cultural problems in tech in certain places that have been well covered here. I guess the point being that I think its really really difficult to do software development if your not genuinely excited about doing the day-to-day stuff.


I think the shortage of software development skills really has to do with the lack of there being enough people who get impassioned with this kind of stuff.

I was at a party recently I was asking someone about their work. I was really interested in how they solved certain problems, etc... We were probably only talking a minute or so when she says, "Can we not talk about my job and ask me about my car or some great meal I've had?" So I apologized and we talked about other things.

But it did get me thinking that at a random party I'd be happy to talk about my job/industry/etc... While I have a lot of interests, I don't think I've ever thought, "I'm tired of talking about programming or technology". Usually when I stop talking about it, it's for the sake of those around me :-)


Yeah lots of people don't want to talk much about their work outside of work. I think it comes down to whether someone is passionate about it or it is just a pay check. Of course some could love their work but just get sick of talking about it.

As you say I am interested in how other industries solve problems, particular how technology is being applied to help (or hinder) their workflow. Often people who work in other industries just accept workflow processes for how they are and aren't really interested in thinking about how they could be improved. Not that someone working at a big company really has the power to enact these kinds of changes but they are interesting to discuss.


I think you can look at this another way too. How many people in other industries voluntarily embark on pet projects or hobbyist experiments that involve the same things they do at work?

How many people in other industries blog about their profession in their own time? And not just about their day to day, but about new things they've found or interesting things they've figured out.

People want to go home and leave work at the office, but it's not at all uncommon for a programmer or developer to carry on in their spare time, working on their own stuff. You probably started off your career as a hobby in the first place.

Sometimes it can be hard to switch off when plenty of other people manage it fine. It seems almost implausible to imagine a fellow colleague who wasn't interested. I also think that specialist journalism is another profession that almost expects 'extra-curricular' interest in the field.


>How many people in other industries voluntarily embark on pet projects or hobbyist experiments that involve the same things they do at work?

Well this behavior isn't limited to those involved with software development. I'd say that this is the case for any profession that involves the formulation and then creation of content, ideas, products etc.

Take this guy for example: http://www.slate.com/articles/arts/culturebox/2012/01/the_be...

A lot of other fields necessitate a customer in order to perform, such as medicine.


I don't like talking about my job because it's so esoteric from most people's perspectives. I think a lot of people at least have some small idea about what programming is about. I'm a digital ASIC designer. Next to nobody you randomly meet has any clue what that is about.

It actually sucks in a lot of ways because talking about work is an ice breaker, even for people that don't like talking about their work. For me, somebody asking about my work just adds another relational barrier.


Having an unusual profession can be an ice breaker to, as long as you don't expect the other person to really grasp what you are doing day to day. I guess you can just simplify it to say you make device x work when a button is pressed or something depending on what you are actually designing.


No work, no tech and no food? God help you if you ask her about politics or religion. She was hot, obviously. Sounds like a nightmare.


"When I step out of my bubble I realize that its really difficult to find cultural-personality fits for what building software requires."

I absolutely agree with this statement. When programming, you'll always hit brick walls; times when you're stuck and feel like there's nothing you can do about it. That's when your genuine interest in programming and serious attention to detail must get you past the hurdles. It's not something you can just learn in an Apress book or nettut.


This is key. I solved a problem the other day and a non-programmer co-worker asked me how I knew the answer. I had to explain to him that I didn't know the answer and through research, thinking about the problem, and some good old trial and error I found the answer.

I think most people today think school is suppose to teach them F(x) so that they can just go out in the world and apply F(X) over and over and make a living. They are missing the point that they need to be creating F(x), G(x), etc...


Exactly. Learning to program is an exercise in learning how to maintain forward momentum while stumbling. If someone isn't up for some frustration, learning to program is not going to be appealing.

Of course, this also means there is a definite, clear feeling of accomplishment and progress.


Actually law and medicine would be interesting to me if it wasn't for all the hazing rituals and the down right sociopathic evil of the entire justice system. Law and accounting reminded me of learning a codebase when I took a few classes in them at university.


Here is an exercise... flip the table and think if our industry was going away and you needed to find a job in a completely new industry/job role.

Mathematician, without hesitation.


Machinist or high school math teacher.


Male model.


"Most people are just not like 'us' for better or worse. Most people don't get giddy over running implementing a new algorithm or building an elegant framework, etc..."

The question is if commodity software development -- you know, yet another 'book keeping' CRUD app -- requires any serious algorithm much less "new" ones. Serious creative mind workers are generally outliers, regardless of the field.

Programmers: http://atomictoasters.com/wp-content/uploads/2010/12/Telepho...


Hopefully we'll be able to automate CRUD app development in the near future and eliminate the time developers waste building such apps.


We'll have to, there is no other way. The demand side of our field is industrial scale. The supply side is arts and crafts. Something will have to give.

MDA, Software factories, etc., are imho the way to go, but unfortunately, there is strong resistance in the current generation to "ceremonial" architectures and methodologies (which are /unfortunately/ a requirement for that to happen, in my opinion).


In the 1950's and 1960's there emerged a fad for giving personality tests to people, and the then train those who passed to become software programmers that would work in a factory.

A lot of the really bad practices that hit us with long-term costs come from this era... and a lot of the misconceptions we have about programmers being nerdy anti-social types come from those personality tests, because they didn't test whether you'd be a good programmer... they tested whether you would sit in a production line and push buttons repetitively without talking to others.

So... no, I don't think that a return to the factory model is the solution. It's been tried and it really did not work. I think that software is big enough of a shift that it warrants removing the traditional business hierarchies and ceremonies of authority, and to create a new model that is not the old factory model.


You misunderstood "software factory" reference. The reference was to meta-programming, not a room full of factory workers :) Think Japanese robot factories.


My point was that we should eliminate such work, not standardize it as part of a code factory line.


"Better, because writing code is a creative act which can be done with or without a traditional (antiquated?) office-based job, and can create enormous personal and economic value."

This article emphasizes making, which I think is important. It reminds me of my great-grandfather, who came to the US from Poland and started a clothing manufacturing business (that still exists to this day). I learned to make custom-tailored clothing by being in the business.

There was an opportunity back then for anyone willing to learn to make something and sell it. There simply aren't too many of these kind of opportunities today. Coding is definitely one of them. All I have learned from tailoring- the act of making something from scratch- has helped me as a developer. And vice versa.

"Most academic training is focused on teaching students theory, not practice."

The maker type of entrepreneurship requires a practical, work-based education, and college doesn't always provide for that. You learn to make by doing. It's circular: You learn to make by making. The resources for learning to code are readily available, and anyone willing to start making their own projects can teach themselves.

Another thing school can't teach you is what to make. This is where learning to code comes in: if you have experience with something else, you can code tools for that something else.


I have to seriously doubt this. Being good at programming requires a very similar type of brain as the one required to be good at mathematics. The argument is often "if only programming were to become standard curriculum which everyone is required to learn in some capacity, more people would be programming-literate."

Mathematics, in some level, has been required at all levels of education for quite some time and yet very few people can become proficient at anything at the college algebra level or above. If programming were to become as commonplace in our education system as math is, I believe you would see much the same thing. Many people would be able to memorize enough rules to get through the basics, but once it comes time to show that these basic concepts are understood in the form of applying them to more advanced concepts, you're going to see more people failing to get by, just as you do in anything other than basic math classes.

I certainly couldn't imagine a career becoming mainstream that requires mid-level calculus, or even algebra, and certainly not advanced analysis and proofing. By the same token, I find it hard to believe that any profession that requires understanding more than basic computer science concepts (simple looping and conditionals, no OO) will become mainstream. However programming today (writing a Rails app) is significantly different than it was 10 years ago (writing massive programs in C/assembly), so it's possible that programming becomes much easier than it currently is.


Chemistry, Engineering, Mathematics, etc. all existed before coding. So far, the number of people willing to do hard 'mental' tasks has been pretty low. More than a few people I have known haven't gotten into working with their brain that much until later in life, once they decide that the types of jobs generally available to the unskilled aren't what they want to do.

3 months to learn to code Java? I shudder to think of think kind of code those places produce.

Maybe people can learn to make database queries maybe, but most problems I've been asked to solve quickly morph and start requiring a lot more to get working, even to accomplish tasks that seem 'simple' on the surface.

If coding was simple to learn, UML->code would work flawlessly (as in a tool that generates code from UML). I don't think this has proven to be the case.


Of course! It's gonna be THE profession. I imaging in the future more and more things will be doable in 'software'. For example, manufacturing factories will be so automated and full of robots, that you can actually start building assembly lines in pure code. Subway & Railroad systems will drive completely by them self, controlled by code. Container ships & harbours might operate someday purely driven by software. Bottom line: Demand for coders is gonna explode and someday all we need is just coders.


Sorry but I have to completely disagree that someday all we will need is just coders. Code is just a way of getting a computer to do something specific. So what should a computer do? Usually a computer should do something identified as valuable. So who figures out what is valuable? Typically everyone else... business people, researchers, administrators, doctors, analysts, etc. Having just a bunch of coders would be essentially worthless in that we will always need people in other roles to figure out how different techniques can be applied in different fields. After that is identified, the coders can then get to work on figuring out how to get a computer to do it.


true, although the point I was making is that sooner or later fields like agriculture, energy, manufacturing, transportation, logistics and others will be completely automated and just require coders to operate. That leaves some other fields, but these are huge parts of the economy. That's not gonna happen tomorrow of course, but we'll gradually get towards is and coder demand is just increase steadily over time.


I do not think this is accurate either. Just because something is possible (and it is a big IF to say that it is possible to reach 100% automation, economy wide) does not mean that it will end up being that way.

Consider, let's say, manufacturing. We have pretty much nailed down the details of how to automate a factory. Still, we do not see that the world manufacturing has been dominated by the most technologically advanced countries. When you automate, you have to pay upfront for your robots (with a ROI measured in years). With human operators, you defer payment until after you have collected the benefits of their labor (in terms of finished product inventory, not revenue). Not that it has not been tried, car companies tried to pull it off in the 70's, because in the books it looks like the robot is an asset, while the payroll is a liability. But they all discovered the hard way that cash is king and have been struggling with imminent bankruptcy ever since.

Instead, the big powerhouses are less advanced countries with large pools of young workers and weak labor laws. There a manufacturer can get started with much less capital and pay as it goes, instead of building these huge, high-maintenance, illiquid capital investments. And when the market shifts (and it always does) they can retool an pivot much faster too.

Apply the same logic to economic activities where bussiness processes are not throughly documented or even understood (like crafts and professions), or those which depend on contingent uncontrollable factors (like agriculture), and you will see that the idea of a fully automated society is beyond human reach.

Maybe if we manage to build a super-intelligence to solve all these problems for us, we may have a chance, or maybe there are fundamental limits that just cannot be overcome. But in either case, as of today, I think this is more science-fiction than actual science.


I can't dig up the link, but I recently stumbled across an article that highlighted a start up that was building a robot that would kill weeds (for agricultural purposes), replacing migrant workers.

I agree that not all workers will end up being programmers, but a shift towards automation is inevitable as routine human labor will eventually be too costly and inefficient, regardless of the location. China is already starting to show signs of rising labor costs due to an improving economy and a shortage of labor. I would bet against human labor in the long run, as counting on lax labor laws and a population of workers who are willing to tolerate abject poverty as a method for keeping production costs down seems like an unsustainable solution.


I am not saying it is not technically possible, but that it might not make financial sense long term. Nor I am saying that we should do without any automation (agriculture, by the way is already highly mechanized), I consider that there might be a sweet spot beyond which further development is not worth the hassle.


Unlike prior shifts in national economies, coding--good coding at least--does not lend itself to the application of mass labor unlike manufacturing. In the prior mentioned shifts, hunter/gatherer --> agrarian and agrarian --> industrial, you could teach someone to do one or two repetitive jobs without consequence to the rest of the system. Every night at 5, shovel hay from loft to stall or every time a piece from machine A emerges, screw this knobby on and insert into machine B at a 45 degree angle. I would posit that coding requires far more awareness of the greater system as a whole. Changes made in one branch of the code will have a rippling effect throughout the system.


I wish coding were viewed as not just a profession, but a necessary skill to be literate in today's world. It seems impossible to me that our society can keep up with the pace and breadth of information that our digital-systems create.

And I don't mean that everyone should be able to understand assembly. I'd almost be happy if the average person can understand what makes a comma-delimited file parsable by Excel. Seriously...try asking someone who is not in the computing field about that.


I don't think programming in its current form will become similar to unskilled labor. The important part about the examples at the beginning of the article (construction, factory workers) is that there were engineers (smart experts) behind the innovation that simplified a task so that an unskilled laborer could do it.

Can programming become so dumbed down that anyone could do it? Sure, there are plenty of tools out there that are "App Makers" for whatever platform/genre you want. But are those tools churning out apps that make a company? I haven't seen one.

The thing about software is that it is a ton of small pieces put together to create something new and unique. Factory workers put together a ton of small pieces, but to create something that has already been invented. A car, for example, has a specification created by smart people and put together by unskilled workers and machines.


My guess is that in the next few decades, not knowing how to code will be equivalent to being illiterate. This doesn't mean everyone will get paid to write code, but I suspect there will be far more programmers in the future than now.

Of course, coding in and of itself is likely to change dramatically, as languages will gradually support higher and higher levels of abstraction, making programming more and more approachable for the average person. But no matter what the code looks like, a strong grasp of logic, problem solving, and how software works will probably become a fundamental skill in society.

http://www.quora.com/Does-the-computer-programming-professio...


I certainly hope it does not become the next mass profession. I don't understand people that want everyone to learn to code. Its simple supply and demand, friends. As the supply of coders goes up, demand for my services go down.


Maybe that would be the case in other professions...but as a coder, I would LOVE to have more people involved in it. I think programming is one of those areas in which a rising tide lifts all boats.

I find that most of my time is either dumbing things down (i.e. printing the output of a relational database into a flat spreadsheet or worse, a PDF) for those who barely understand basic Excel or attempting to parse such dumbed-down information from other systems. If it were status quo in this world to understand the concept of delimitation and meta-data, my ability to create even more compelling applications, visualizations, and analyses would be greatly multiplied.


I definitely understand. I'm just looking at it from a purely economical perspective. Sure, as the mass's technical prowess goes up, my ability to create cool things also goes up, but as the mass's technical prowess goes up, the earning potential in programming goes down.

Any time a resource becomes less scarce, it's value drops.


Sure, though I'd argue that maybe you're too shortsighted. If you were one of the few literate people at the time of Gutenberg, you might have a good start on everyone else...yet if that kind of literacy ratio never improved within a generation, I'd argue that you might have ended up poorer. Especially if you had the hankering to be more than just a reader...few literate people means few reasons to write books/pamphlets.


But we're not writing code for it to be read by other programmers. We're writing code for what it does when it's executed. More programmers does not make a greater market for programmers. At least not for that reason.


I know where you're coming from but I think that if more people have a basic understanding of programming then more people will be able to recognize the value of good programmers. Assuming you've got the talent and experience I'm thinking your market rate may actually go up significantly. People have a hard time appreciating (and paying for) work they don't understand.


The more "makers" on this planet the better. Software moves us further. We need more hands to pitch in on the effort.


Coding? Maybe. Actually developing new software? No.

What is the difference? "Coding" is applying the tools you have to solve a problem that is in an already solved class of problems. (I.e. use VB to slap a quick UI on a database)

Developing new software often means solving a new class of problem.

There's nothing wrong with that distinction - coding certainly has value. But it's an important one to keep in mind. Both for your career, and for businesses that employ one or the other kind of developer.

But I'd argue that "coding" as outlined above is more the new literacy than the new profession. It is an ability you will need to get any job done well.


If programming (or CS concepts) were to become part of common literacy, that wouldn't necessarily mean programming qua profession would be the next mass profession. Writing is part of common literacy, but professional writers aren't a huge portion of the population. There are a lot more people who write in the course of their work in some other profession, though.


There are a lot of people who program in the course of their work in some other profession. Most engineers can hack some Matlab, at least. But the bar is much higher--most engineering professions are at least as intellectually challenging as programming.


Sure there is room for more people to become software developers, but let's not use the word 'profession'.

Quote from Steve McConnell:

——————————

According to legal precedents, a profession has:[1]

· A requirement for extensive learning and training

· A code of ethics imposing standards higher than those normally tolerated in the marketplace

· A disciplinary system for professionals who breach the code

· A primary emphasis on social responsibility over strictly individual gain, and a corresponding duty of its members to behave as members of a disciplined and honorable profession

· A prerequisite of a license prior to admission to practice

——————————

http://www.stevemcconnell.com/psd/06-novumorganum.htm

Software development in general hardly meets those qualifications. There are plenty of professional software developers, but software development is not a profession. This is a critical distinction, not just semantics.


Farming became obsolete because of economies of scale.

Factory work became obsolete because of economies of scale.

Manufacturing became obsolete because of economies of scale.

What do you think is our generation's economy of scale?

I think the near future will involve making it possible for anyone, even those without a technical background, to quickly build beautiful internet products.

What do you think is the next big leap? What would make coding obsolete?


Obsolete is a strong word. What happens in these industries is that they get split into the high-end (organic farming, small order manufacturing) and the mass-production low-end. Yes in many ways margin have fallen but overall production has gone up, way up.

That being said - retail seems to be our generation's victim. In the last decade, we've replaced media consumables with digital equivalents. This alone has mostly killed music, book, and movie rental stores. It's not just retail stores but retail services - tax prep, insurance, and financial services. Some of this took place in the 90's, but it continued in the 00's and it will continue in the 10's.


I do agree that is a strong word. I guess what I was referring to was it's obselenece as a mass profession. I assumed that was implicit, wrongfully.

I was hoping to drive home the point that while coding is the "it" thing right now, eventually someone will build a framework that makes having a technical background moot (similar to the power YouTube has given to the home movie producer or music artist).

I think you may be right in regards to the retail prediction. Amazon is going to continue to absorb the majority of retail sales, especially as baby boomers (the highest spending demographic in history) completes the retirement cycle and diminishes disposable income in the market.


The big thing when I was studying 20 years ago was "CASE" tools - computer aided software engineering tools, 4GLs (fourth generation languages) and later UML - these were going to make developers job nothing more than designing pretty diagrams in a tool which spit out the nicely polished code at the end. Nothing has come of any of these technologies. If anything the coding landscape has become more fragmented and difficult than ever before - just look at the plethora of Web Development Languages, JavaScript, ObjectiveC and the fact that C/C++ is still the most popular language out there.


None of those things became obsolete, they just moved to cheaper labor pools.

> What would make coding obsolete?

Nothing except full blown AI.


Nope, never a mass profession. Here's why.

1. This partially depends on which area of programming you are talking about. The web development industry is not an area which sees mass hiring. Most web development shops are small teams or one man shops. Running a web development shop is very hard because you have to make a living from running your business as opposed to punching a clock at work. Web development is difficult enough, add all that is required to make a living off it and that cuts the number of people who are able to make it by quite a bit. The article mentions Elance and Odesk jobs which pay "$15 to $20 or more per hour" but the only people who are able to make a living off those wages are living in low wage companies. In the U.S. you might as well be flipping burgers rather than attempting to live as a freelancer at those rates.

The same could largely be said for startups, mobile apps, etc.

2. How many coders does companies such as Google and Facebook have compared to the peak of companies such as Ford? Coding is not and never will be the sort of mass employment industry as manufacturing has been.

3. Coding requires a great deal of self motivation to learn and keep up with. Most people aren't willing to put in the effort that this requires. I learn by doing and I have never had the patience for books, classroom learning or even tutorials. Most people can't pick this stuff up without the sort of structured learning environment which doesn't work well for learning how to code. The number of people who are willing to put in this effort is likely the same percentage of people who are coders today.

4. The labor crunch in the coding industry is not just a crunch of people who know how to code, but rather a crunch for coders who are near the top. The industry could find plenty of people if they are looking for mediocre developers, but that's not where the jobs are going.

5. Knowing the basics of coding for working magic in spreadsheets isn't the same as being handed the keys to commit code to the crown jewels of the company. No matter how many people who know how to code and no matter what the basic expectations are for prospective employees, there won't ever be a significant increase in the number of people who are able to write the code which drives the company.

If the industry needs more coders, then probably the best solution at this point is to be more open to remote developers. That will increase the pool available. Education will also increase the pool, but not on a massive scale.


> but rather a crunch for coders who are near the top. The industry could find plenty of people if they are looking for mediocre developers, but that's not where the jobs are going.

Exactly: to me the talent "crunch" seems to be for: Rockstar/ninja programmers will 10 years experience that live in the SF Bay area.

... and then they wonder why they can't find people.


I think there are certain skills that strongly overlap. I never studied programming, but I did study music. I've seen that pattern many times. So perhaps students at music schools should consider developing secondary skills in coding. I certainly wish I had done that.


Saeed Dehnadi and Richard have done some interesting work on... A cognitive study of early learning of programming, available at Saeed's page:

http://www.eis.mdx.ac.uk/research/PhDArea/saeed/


This is a tough job, most people don't want it.

People like to be lawyers and study business more instead of becoming programmers.


>One Ivy League computer science program only required one course where students actually write code.

Which program is that?


"Coding" isn't one thing. We wouldn't imagine that it makes sense to put a home "cook" whose idea of making a pie encompasses placing a can of premade pie filling into a premade pie shell in the same bucket as a chef with several Michelin stars under their belt. Coding has as much range and as many different roles as cooking does, if not more, but there doesn't exist a well defined set of labels enumerating such divisions of skill and specialization.

Certainly "coding" will increasingly become prevalent in more and more professions. But that says little about whether the coding equivalent of "chefs" will be more numerous or not.


Programming is as much an art as a science.

It's as much the ability to find the dots as it is being able to connect the dots to make a usable picture.

I think some of the more basic, entry level, spec-based maybe development could become available for the masses, but until we do a better job of training people to engage and develop both heir creative artist and creative scientist, I'm not sure.


63% of Americans aged 18 to 24 couldn't find Iraq on a map after we'd been at war there for three years. So let's discount those people right away. The rest -- the other 37% -- have jobs and at least some kind of education. Most of them aren't interested in solving puzzles; they're interested in making money. That's what comes naturally to them.

I'm a mid-level coder. I bill $100-$150/hr. freelance. I specialize in cleaning up the messes left by the Indians and Romanians they hired the first time. I turn their disaster into a functional app, or website, on time and on budget (a budget about six times what they thought they'd be paying, but still not enough for the aggravation). It's a hellishly difficult job that makes me want to pull my hair out by the roots; but I'm good at what I do.

I DIDN'T go to college, and I never took a class in programming. And yet there are only one or two other guys in the world I'd trust to work on my code. So all of this, really, is bullshit. It's nice, but it's a lie. Either you're born with the kind of screwed up brain I have, that lets you see through the code, or you're not. They can commodify everything and turn everyone into a product, but they can't make more of us.


"63% of Americans aged 18 to 24 couldn't find Iraq on a map after we'd been at war there for three years."

This is a little off topic, but this statistic is a bit disingenuous. The stat implies that Americans are dumb because they can't locate a country on a map, despite the fact that we are heavily engaged with that country. However knowledge of foreign policy and of geography are two different domains. A person could read an article a day about the Iraq war without ever looking at a map of the mid east.


"""However knowledge of foreign policy and of geography are two different domains. A person could read an article a day about the Iraq war without ever looking at a map of the mid east."""

Yeah. And I wouldn't trust the foreign policy knowledge of such a person.

A person not interested in checking out for himself the geography of the place of war, and even the culture and history of the enemies, is just an idiot being force-fed news stories.


"""63% of Americans aged 18 to 24 couldn't find Iraq on a map after we'd been at war there for three years."""

Yes, but not because they are dumb.

It's because you're NOT really at war with Iraq, and I mean not in the sense that other countries are at war.

What happens is that your central government sends some (paid) troops to fight 10,000 miles away. And they fight some states with minimal arsenals, tiny air-force etc, or tribal/urban guerrillas. Now, besides the families and friends of your troops, this "war" doesn't affect the general population at all. There are no counter-measures or attacks by the enemy in your soil, no adverse effects on economy (except some overspending), etc.

So people in the US, from Idaho to New Orleans, could care less if there is a war happening or not. Even the "support our troops" is mostly a goodwill/political statement, a self-adhesive ribbon for your car, not a matter of life and death.

Now, what happens when two countries go to an actual war, historically, is much more grave: hundreds of thousands (or even millions) die, their cities are bombed, there is compulsory drafting, thousands of refuges, food shortages and a huge toil on the nation's economy. You haven't see any such war, at least since WWII (and even that one you fought with minimum impact, --with the exception of Pearl Harbor--, thanks to the US's convenient distance from Germany/Japan).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: