113 comments

[ 6.9 ms ] story [ 326 ms ] thread
Considering the quality of the code I see currently and the costs created by that technical debt I'm not sure if becoming less elitist will be a good thing. Instead of all these code camps, I can't help but wonder if we could get 90% of the value and 10% of the problems if we taught people shell scripting instead of programming.

It looks like wireds ad-blocker blocker has been circumvented now at least.

The nice thing about software projects is that they're easily replaceable. They can be treated as any other business asset in that you can hire a shop to develop them or do it in-house. So long as you have enough business eyes on the process then it works. Expensive, but it works. Businesses are used to expensive.

The real value of good code is way, way less than developers would like to believe. This is coming from someone who is damn near a perfectionist about code. I have to constantly check myself and ask whether whatever I'm demanding we spend time and effort on is really worth it from a business perspective. Occasionally it is, most of the time it's not.

If coding wasn't the thing I could make the most money with at this point in time, I'd do something else and code free software as a hobby. At least free software really benefits from great code practice.

as a general rule, i think the quality of the code matters more as more things depend on it, so i think you need to temper your statement a bit- the value of good code depends greatly on what its being used for.
I've never seen management buy in for a rewrite, especially when the code is so bad that the company starts circling the drain. The only time I've seen it is when there's been a fundamental technology shift, like from VB6/C++ to java/.net.

Network effects also make it hard. Sometimes you can't upgrade X because A, B and C feed into it and D, E and F feed out of it and they're all tightly coupled (another thing that's even worse with less skilled programmers). Replacing a single component can mean rewriting the software stack of the whole company.

> If coding wasn't the thing I could make the most money with at this point in time, I'd do something else and code free software as a hobby. At least free software really benefits from great code practice.

Completely agree here. The money is the only thing keeping me in the industry, if that went away I'd do something much more blue collar.

Sometimes I wonder if the money is the only thing that keeps me coding. It seems too hard to do well otherwise.
> The real value of good code is way, way less than developers would like to believe

Soooo much this.

But it's also important to note the difference between code and system design. The vast majority of code that's written is solving problems where system design doesn't tend to make a huge amount of difference.

It's only when you get to a certain scale and/or in certain domains that the system design starts to matter, and even there, the code itself is of little import.

Then with shit code and even more for shit system design you just spend far longer maintaining the technical debt rather than adding genuine value. Every feature takes 4 times longer to implement because of it. It costs more, and ships later. And there are always bugs to fix. Its obvious to anyone capable of writing decent code that it does have value.
> Its obvious to anyone capable of writing decent code that it does have value.

Business users are the ones that have to make the value decisions, and they can't write any code, much less decent code.

And they are oblivious to the costs incurred by shit code.
"shit code" is in the vast minority of code written, most of it ranges from merely crappy to so beautiful you'd auction off your own mother just to bask in its presence a little longer

The reason architecture starts mattering is because you can do things like put that "shit code" behind an interface/microservice/whathaveyou and then the rest of the system just doesn't care.

This is why code itself isn't particularly valuable in the way you seem to be implying. It isn't without value, but while software is valuable, it's rare for specific code to be where that value is at.

Either you're luckier than me or we have a different definitions of shit, but I'd agree that the vast majority of code written is shit.
Also: shell scripting is programming.
Technically true, but it is also very different to what most programmers do.
Depends on the scale of the shell script. And SQL is also very different from what most programmers usually do, especially the ones that use ORM.
I think the article is trying to argue that we should embrace the bifurcation of the tech industry. It's pretty fair to say most software developers don't need a full computer science education. In my view, web development is especially vulnerable to continued commoditization. It makes sense to optimize the lower hanging fruit among programming jobs - aside from perpetuating high (arguably, inefficiently so) salaries, the barrier to entry really doesn't need to be as high as it is now. That's not to say coding bootcamps are the answer, but vocational training is at least a step in the right direction.

From one perspective, this would be good because driving down barriers to entry will theoretically increase jobs and reduce costs. From another, it's obviously not great for web developers who are highly paid, though it could theoretically raise salaries even higher for the fewer highly trained engineers who actually require a computer science education.

Either way, I think the industry would need to substantially change before the less complex/more rote programming jobs could be subsumed into vocational training. It would require a pretty significant cultural shift.

Being less "elitist" does not mean that standards are any lower. For example, electrician is not an elite or elitist profession, but the quality of electrical work is very high, because there are strict standards, developed carefully, that all electricians adhere to. It is because electricians do not improvise on the job that their work output is high quality. Experts develop a standard toolkit to deal with 99% of the electrical work out there, and electricians deploy those toolkits with a much greater focus on standardization, conscientiousness, and correctness rather than creativity or novelty.
>> shell scripting instead of programming.

I was at a discovery conference (lawyers) listening to a vendor pitching the cost of writing some ediscovery syntax to delve through a 50gb database of emails. While he was talking I performed a grep search on my ubuntu netbook, with the database on an encrypted thumbdrive. In a matter of minutes I convinced the client that he didn't need coders to do much of anything, that an idiot lawyer with a laptop could do it from his hotel room that night (which I then did). The vendor left the room very angry with me.

The downside was that rather than the 100k I saved the client, all I could ethically charge was my rate for 6hours of overtime.

I always love these stories. I'm pretty sure half of the over engineered apps where I'm working could be replaced by a handful of shell scripts. One particular one recently had us adding a whole lot of tables to the database with the accompanying sql and code so we could monitor performance in real time. The information could have easily been generated from our log files with a sed script or a flex program.
(without breaking at-client priviledge) The full task wasn't exactly simple. It started with a failing part in a product. The issue was when exactly the manufacturer should have been aware of the issue. All we had was a database of emails to and from local reps, who as it turns out had been fixing the problem for a long time by telling customers to disable certain features. This fix caused other damage. From the email pile I created a graph showing when customers emails started to mention problems, when the first reps started telling them of the fix, and when those reps started talking to each other about this fix. My client-manufacturer then had an idea of when his organization should have gotten the message and put a stop to things. This then informed the negotiations. So it was cross-referencing a list of vendor emails addresses, customer email addresses, some keywords, and putting it into a timeline. Bash bash bash, a solid night's work but nothing needing actual code.

Had this gone to trial we would have had the ediscovery vendor come in and do a full and proper report. It didn't, and both sides looked took my report as useful enough to come to an agreement. (I gave them my bash scripts and they verified my conclusions themselves.)

So for a lawyer on overtime that's still more than a coder makes for 6h work.
Not really. Bringing in an outsider takes time and money. You cannot just grab some kid off the street. You have to go with a vetted pro, someone who can be trusted to handle the material. He or she must be briefed about the task and then be supervised. The result is a report and presentation that me and the other lawyers have to read and attend. It takes weeks. I, already on the inside and not needing any briefing or supervision, got it done overnight.
I've had this thought before. What's software development if not a trade? I don't want to say that work gets dumbed down, but one hundred years ago a store clerk was a solidly middle-class job, now it's not.

Maybe a more relevant example. My grandfather was an accountant. What he did for most of his career, bookkeepers do now. What he did at the end of his career was basically law and banking. The electronic spreadsheet took care the gruntwork he used to do

absolutely. but even today there are master craftsmen, as respected as ever. i think software developers will see the same thing- lots of jobs will become menial, but the best will still be highly sought after.
What's the difference between a system administrator and a plumber? I don't mean it as the first line in a joke.
The plumber can't execute change-washer.sh and have his job done in 1 second. The plumber can't use "down time" to proactively solve future issues. A sysadmin does have a higher level of abstraction available to them.
> The plumber can't use "down time" to proactively solve future issues.

Oh, but he surely can, replacing a valve that is known for going to break in near future for instance, or putting a different one with additional safety features.

> A sysadmin does have a higher level of abstraction available to them.

Mainly because sysadmin works with immaterial things (software) (and some of sysadmins also work with hardware).

Sysadmins really have similarities with plumbers.

> Oh, but he surely can, replacing a valve that is known for going to break in near future for instance, or putting a different one with additional safety features.

Doing that change will cause downtime. The sysadmin can write a script to make the change and avoid the downtime.

From Scott Adams:

"If you want an average successful life, it doesn’t take much planning. Just stay out of trouble, go to school, and apply for jobs you might like. But if you want something extraordinary, you have two paths:

1. Become the best at one specific thing. 2. Become very good (top 25%) at two or more things.

The first strategy is difficult to the point of near impossibility. Few people will ever play in the NBA or make a platinum album. I don’t recommend anyone even try.

The second strategy is fairly easy. Everyone has at least a few areas in which they could be in the top 25% with some effort. In my case, I can draw better than most people, but I’m hardly an artist. And I’m not any funnier than the average standup comedian who never makes it big, but I’m funnier than most people. The magic is that few people can draw well and write jokes. It’s the combination of the two that makes what I do so rare. And when you add in my business background, suddenly I had a topic that few cartoonists could hope to understand without living it.

I always advise young people to become good public speakers (top 25%). Anyone can do it with practice. If you add that talent to any other, suddenly you’re the boss of the people who have only one skill. Or get a degree in business on top of your engineering degree, law degree, medical degree, science degree, or whatever. Suddenly you’re in charge, or maybe you’re starting your own company using your combined knowledge."

http://dilbertblog.typepad.com/the_dilbert_blog/2007/07/care...

> I always advise young people to become good public speakers (top 25%). Anyone can do it with practice.

Wasn't he suffering from word soup around this time?

What do you mean? That made perfect sense.
Word salad was the term I was thinking of (https://en.wikipedia.org/wiki/Schizophasia), for a while he couldn't speak publicly because he would just say random words instead.
You don't have to personally be doing every little thing you advise someone of doing. Perhaps it's something that didn't work for him (because he physically had issues speaking), but he recognized it as being important for other people to do.
> If you want an average successful life, it doesn’t take much planning. Just stay out of trouble, go to school, and apply for jobs you might like.

I wonder why so few manage it then? Perhaps it was easy for Scott Adams, but most people have different experiences. What if you can't afford college, for example?

I think by "average successful" he means something like being able to pay rent and raise children (if that's a goal) and living to retirement age.
So being able to get through life with your basic needs and propagate is the definition of success now? I mean I guess that's certainly true to a certain extent, but that bar seems damn low.

It does feel like it's a difficult bar for so many people to clear nowadays, though.

> So being able to get through life with your basic needs and propagate is the definition of success now?

For a lot of people... yeah, that's true. When people say that HN is a bubble, they mean it.

I don't know anything about your background, but have any of your friends ever said something like "my biggest dream in life is to be a mom"? Here in Canada, I've heard that from several friends. For a lot of us on HN that might sound trivial, but we're a strange bunch in our own special ways :)

I'm from the Midwestern US, so yeah, I've certainly heard that quite a few times (dated a couple women like that, even). But I never saw that as something unachievable by most people, which I know isn't the strict definition of success, but to me, success is when you've managed to do something that a lot of people can't do.

A lot of people won't reach it, or won't bother to try to achieve it, but you have. Winning the state spelling bee could meet that criteria. Publishing a book, saving people's lives, etc.

But going to a grocery store and buying food, and finding someone willing to have sex with you until you or they get pregnant and then not totally fucking up when raising the kids is not really something that 'most people can't or won't achieve'.

People manage it all the time. Sure it's not easy, especially with the way health care, housing, education, and daycare costs have skyrocketed and made it much more difficult and stressful, but most people who want to do it still somehow manage it.

I guess I just have a different perception on what it means to be successful. I'm pretty much just arguing semantics, really, and I'm sorry for that. I'm just surprised that's considered to be successful.

> to me, success is when you've managed to do something that a lot of people can't do.

> I just have a different perception on what it means to be successful.

Yep, I think these two things are the crux of the issue. The first is probably quite different to how lots of people view things. It can be really painful to evaluate your own worth/success relatively against others.

For many, I think, success is much less a relative issue than an absolute issue. Most who desire to be happy, loved, materially comfortable, and parenting probably do view success as achieving those things. Besides, if those things are what your peers aspire to as well, then you might even be doing better, relative to them, anyway!

Becoming moderately good at two things is how I ended up where I am. Before I went to college I did freelance graphic design. In college I ended up studying computer science, simply because that's what my brother majored in. The two combined meant I was getting job offers in my sophomore year. I can't stress just how much it helps when I'm applying for jobs - not only do I have a wider selection (design and programming jobs), but it also opens up niche jobs which are typically in high demand and low supply (prototyper, my current role). Scott's advice here is spot on and is the first thing I recommend to people when they're looking to prepare to enter the workforce.
I have a similar skill set combining graphic design and programming, but I find those niche jobs of prototyping to be in very short demand, where are you seeing the opposite?

The lack of opportunity to flex my creative muscles actually drives me to create my own startups because it's the only type of project where I feel I can utilize all of my strengths instead of being pigeonholed into a developer role.

I saw this same advice on Marc Andresen's blog a long time ago: http://pmarchive.com/guide_to_career_planning_part2.html

One third strategy I've seen but unfortunately don't quite have the temperament for is:

3. Become the best at one very specific thing. Unlike becoming the best at something hugely popular, there's a lot less competition once you niche down far enough. I've seen people do this with as youtuber analysts of a specific video game, as creators of art using an unusual medium, as bloggers with freemium content focused on a specific niche and with marketers who specialize in both an acquisition channel and an industry.

What's appealing about this is that after becoming #1 in a niche, it's often possible to use the success there to springboard into a larger territory, learn new skills and then enter either path #1 or path #2 with a significant advantage.

This can explain the C level of a company. Typically, these people are good speakers and good at something else: finance, sales, technology ... also SV typically has looked down on MBAs but that is probably a mistake. They're good at networking, speaking and probably have some other technical skills.
This is great advice, but you have to be more entrepreneurial, or at least have more personal initiative, to take option 2, especially in high tech.

Here's the problem - if you apply at a company that follows the standard "technical interview", you will be tested on one thing only - your coding ability at a whiteboard. Here's what can happen.

An employee at the 89%ile in writing, speaking, sales, and coding would be very valuable and rare.. However, this employee must interview with 5 people, all of whom filter out anyone who doesn't land in the top 10%ile.

Companies rarely create jobs for this sort of multifaceted worker who is top 25% in many areas but not quite top 10% in any of them. Truth is, they don't really understand what this is or why it would be valuable. A software developer might benefit tremendously from expertise in these other fields, but if you don't do really well in the whiteboard exercise, you're out. As a result, software interviews tend to filter out people who can present, write, or sell well. Those workers are still out there, of course, but I think companies reduce the probability that a developer will have these skills through the interview process - and I'm not sure they increase their probability of finding good developers appreciably, even when measured purely by coding skill.

Of course, every inefficiency contains an opportunity. My advice to companies is to look for paths to identify and hire people who can do more than one thing. My advice to individuals is this - first, get as good at the coding tests as you possibly can. But probably better is to try to enter a company through a path that doesn't go through software engineering. Trust me, they will fail you out if you can't find all permutations of a set at the whiteboard, even if you could do this quite easily given 15 minutes and stack overflow (and fully understand what you are doing).

So? Learn to code, and let that be your superpower. I know a few people who had a cs/math background and worked as analysts when they started their careers, and have learned to do quantitative analysis, programming, database design, and so forth, and they are rock stars in their fields, highly valued and often invited to speak at conferences. However, when they interview, they don't go through five hours of whiteboard exams - their interviews are actual interviews, they way almost everyone outside tech understands them. Our interviews are more or less indistinguishable from exams (except without the conventions that make exams more fair for the student, such as feedback, consistent grading, a study path, and so forth). Every now and then, when you pop your head out of the tech bubble and talk to people in other fields, you'll see that they actually shudder when they hear about what our interviews are like. Most importantly, they don't get filtered out because they haven't reviewed their textbooks from whatever they studied their second year of college book and prepared for final exams (again). Seriously, anything you can do to leave a field that forces you to do that is worth considering as an option.

Like I said, this will take more personal initiative on your part. People don't really advertise these positions, you have to show the value and build your way into it. Another "problem" is that you probably won't get the pay grade for a software developer track right away - but you may build your way up, and when you get there, you'll be unusual, invaluable, and probably have a more enjoyable job.

There has been a "blue collar" coder for a long time, maybe always. It's all about "sandboxes", by which I mean the area the programmer is concerned with. If the sandbox of a programmer's job is in one language, say Java, and it's only writing unit tests to test other people's code, the programmer is very limited in what they are responsible for, and the cost of their mistakes is very low. Yet just writing unit tests that cover code, even if they aren't brilliant tests, certainly has value. And the number of people who can be taught to write unit tests is much higher than the number of people who can be taught to write the application itself. And the person is still a professional programmer, but they are paid less, and are less talented than other programmers. But they still make decent money and likely find this work more intellectually stimulating than selling insurance or whatever.

I think a lot of people who are professional programmers find programming itself scary. Programming is a hard thing to do, and ace programmer's are very opinionated, smart, logical, and can spot non-ace programmer's pretty easily. Or maybe it's just that people are naturally lazy and don't want to get out of their comfort zone. Whatever the reason, many programmers work in one language, in one product, then try and stay in it forever. Then they get laid off after 10 or 15 years and find it quite hard to find a new job.

When hiring people, I'll come across this type of resume, where they focused in some super-niche proprietary tech for many years and are unfamiliar with the latest trends, and usually are asking for a below-average salary. I have interviewed a few, and their lack of talent is so glaringly obvious I feel bad for them. But someone will probably hire them, probably the companies that think that all programmers are replaceable widgets.

In summary, "blue collar" programmers already exist, it's just the author who thought he made some stunning realization, which isn't new.

> If the sandbox of a programmer's job is in one language, say Java, and it's only writing unit tests to test other people's code, the programmer is very limited in what they are responsible for, and the cost of their mistakes is very low. Yet just writing unit tests that cover code, even if they aren't brilliant tests, certainly has value.

Not disagreeing with your overall point, put I'm fixing some terrible unit tests (that aren't really unit tests) right now that do nothing but add negative value. So many otherwise experienced programmers write terrible unit tests and/or untestable code that I don't think it could ever be silo'd like that.

Those who "focused in some super-niche proprietary tech for many years and are unfamiliar with the latest trends" have a level of talent that may be difficult to measure. It probably isn't low though, since they lasted years.

Nearly nobody will hire them, because employers like you are expecting 100% domain knowledge on day 1. Because you are completely unwilling to give a person a chance to learn on the job, you are missing out on employees that tend to be low-cost and loyal. There is a cost to having employees regularly quit, and you are paying it because you refuse the sort who stick around.

The big problem with this is that we're already competing to some extent with outsourcing shops in China and India and this trend is more likely to grow than not. While I believe there will always be an incentive to keep these jobs in-house and local, there is no reason to think it will grow to the extent that middle class blue collar work did through the industrial revolution.
I work in China as a programmer and the local outsourcing shops tend to throw tons of very cheap labour at anything. Unless you're building critical or sensitive systems this model can work (even for physical products and civil engineering if "QA'd" enough through brute force). It's a complete pain in the ass for the in-house team who have to pick up the pieces and maintain the code, though.
I've worked on code that came from those shops (though maybe India more than China) and I completely agree. But it's still going to be hard to make the case for coding to expand the way auto manufacturing did, for example, when we're already outsourcing a huge chunk of work. And there's no reason to think they won't get better at the work there in any case.
This seems to depend heavily on the specific role and type of software! Building LLVM, cutting edge vision systems, self driving cars, sublinear time algorithms, ..., all probably take a bit more study than the standard definition of blue collar would demand.
(comment deleted)
As a counter example of what is hard or not, a bit more study is easy compared to 'the standard definition of blue collar'. As an example. Pick up a 50 pound box. Walk ten feet with it, and set it down. Repeat. For 12 hours a day, 6 days a week. That makes advanced systems design, such as self driving cars look trivial because theres a ton of talent lifting one enormously complex box, one time - then it ships.
I'm sure large corporations would love some cover to depress wages. The reality is the blue-collar jobs the article references had low barriers of entry, and provided good salaries. SE jobs with good salaries rarely go to boot-camp graduates, and with a glut of CS majors on the market, there's no reason that'll change.
Why coding and not mechanical engineering? MEs often have jobs that could be considered blue collar if not for their degree: designing, installing, & building the same equipment that many blue collar workers use or maintain.

It's because coding is seen as a trivial job despite requiring the same amount of education as an ME. Society has this imagine of 14 year old hackers that can do it with minimal training. So it's easy to convince them that some mechanic that lost his job can retrain to become a coder, because, if a 14 year old could do it...

Computer Science is poised to get more difficult in the future, not easier. New companies/technologies will come along offering products that eliminate the need for low-skilled programmers, leaving the more difficult, high-skilled jobs. The tasks that get easier will no longer require a specialized developer, they can instead be done by a person with an understanding of that specific domain. Leaving the rest of the programming jobs a little bit more difficult. (I think the skewed ratio of senior to entry level programming positions is evidence of this phenomenon in action)

I got my start as a teenager doing small e-commerce sites for people, but I'm not sure the "dedicated developer for a small e-commerce site" job exists much anymore. They have been replaced by Shopify, WIX and even Amazon. And once these companies out-grow their platforms, they need more experienced people to build something more robust.

I think we are doing society a disservice by convincing people that anyone can A) learn to sling some JS, and B) make $80k a year doing it. Easy jobs that anyone could do are not jobs that pay 2-3 times the median salary of a region.

Mechanical engineering is not being a "mechanic." They rarely build or install anything with their hands. Usually we sit in cubes running software to analyze physical systems (like air flowing over a wing) and write up the results. We use a lot of math. Technicians, who usually don't have 4-year degrees, handle the actual fabrication and maintenance.

(In case you've forgotten, mechanics is a branch of physics dealing with force, acceleration, mass, that sort of thing.)

I understand. I was more getting at the fact that, for example, an HVAC technician would develop an understanding of basic engineering principals by virtue of their job. But nobody would come out and say that they should be retrained to be MEs.

Those same people would learn basically nothing about CS in their job, yet they should be developers.

Except that they often do have to fab up prototypes, at the least, and the better ones have enough familiarity with the realities of the blue-collar Joe or Jane that's going to have to use and maintain the piece of equipment that the engineer designs.
>> but I'm not sure the "dedicated developer for a small e-commerce site" job exists much anymore. They have been replaced by Shopify, WIX and even Amazon.

Mate I thought this was the case until over the last 2 years I have met a number of mum and dad "coding" companies that literally make their bread and butter from building websites using these platforms and shit like wordpress. I was actually blown away that a few of them had managed to make enough to maintain/pay off houses in Sydney (and in nice parts of the city too) and still have enough to buy a bimmer and a audi to boot. Like considering over the last few years I have been trying to get myself out of the laboring market and into I.T, I had to actually stop my jaw dropping in obvious exclamation when I found out these people support their lavish lifestyles providing products that are literally DRAG AND DROP forms of production and not exclaim "you get paid for doing that shit?!" its been a real eye opener...there are plenty of luddite's out there willing to pay for crap.

Yeah but you need to understand it's not the actual coding they sell, it's the 'online business consulting' which brings in the moolah
Developers need to get out of their bubble and realize that even a basic website is sorcery for 99% of the population. I'm thankful that I started off in online marketing and then learned to code because I remember what it was like to know nothing and can see opportunities that people like yourself overlook.

This post reminds me of the infamous HN dropbox comment in terms of how out of touch it is.

This is it exactly, the blue collar programming jobs are using the tools mentioned by the GP to build sites.
The downside of the 'sorcery' impression is that they actually think it's magic and once you make magic happen, you can do anything. There are no engineering trade offs to make. Your request isn't unreasonable or infeasible. If you don't cast spells for me, I'll look around for someone who will (try). Cheaper.
This just shows that it's not technical ability that translates to money, it's salesmanship. These people aren't gifted programmers, obviously; what they are good at is doing something that's "good enough" (and beyond the abilities of regular people still, mainly because the regular people haven't even bothered trying to DIY), and then selling it to them. There's countless examples of technical salespeople selling utter crap to clients for huge amounts of money; just look at "enterprise software". Much of it is utter junk, yet costs a fortune because some salesperson can convince some corporate exec that it's great.
Why coding and not mechanical engineering? MEs often have jobs that could be considered blue collar if not for their degree: designing, installing, & building the same equipment that many blue collar workers use or maintain.

Mechanical engineering has become a form of coding. Creating a structured design in CAD strikes me as being similar to creating a software design in code.

I'm not an ME, but I work at a site that employs a number of engineers: Mechanical, electrical, embedded systems, software, manufacturing, etc. Granted, the kind of work done by engineers varies from one industry to another. At my site, most of the engineers do very little engineering per se. They spend most of their time creating parts and assemblies in CAD, dealing with suppliers, and engineering bureaucracy (sprints, JIRA, document control, etc.), and troubleshooting manufacturing problems. The software engineers are doing pretty much the same thing, with different tools (IDE instead of CAD).

Part of the issue is degree inflation: People who used to attend trade school and became draftsmen or designers, are now getting 4 year engineering degrees, but the work for draftsmen and designers is still the same, albeit with more efficient tools.

Ok this article actually gripes me quite a lot due to its wrongful interpretation of what a blue and white collar job is. TBH I read it whilst I was on the toilet so I'm going to go as far as to say it gave me the shits.

Unless we are going to start referring to or reclassifying typing on a keyboard for 8 hours a day as strenuous physical activity (which it is not), coding will never be a blue collar job. Blue collar jobs by definition are classed so by the large amounts and types of physical exertion required to perform them along with the location in which that job is undertaken (mostly outside or in workshops). White collar jobs on the other hand refers to work that is generally of a cognitive nature and doesn't require much in the way of physical labor and are generally done in offices(don't get me wrong blue collar jobs require cognitive processes too but they also involve PHYSICAL LABOR as a KEY component).

The article would be better if it had said "blue collar work is going to be replaced by white collar work as the pillar of civil middle-class society". The title of the article currently is just plain wrong unless they are incorrectly referring to white and blue collar as some form of reference to a class system/exclusivity system based upon how many workers perform a certain type of task (e.g white collar jobs only employ a small high earning portion of the population whilst blue collar jobs employs the masses on average incomes).

This is a very excellent point. Blue collar means manual labor, while white color jobs are anything professional.

Heck, most of the developers I know rarely even wear a collared shirt to begin with.

So there are three classes of work: white collar, blue collar and no collar.
Please don't imply that labor that is predominantly manual cannot be professional. A better dichotomy would be: Blue-collar means manual labor, and white-collar means mental labor (with a spectrum between both poles).
I'm not implying anything... I'm going by the dictionary definition.

Wikipedia link has good references, if you care to look them up. I agree that you can be a "professional" who does a lot of manual labor, but the blue/white collar dichotomy is rather established in definition. https://en.wikipedia.org/wiki/Designation_of_workers_by_coll...

> A "white-collar worker" is a salaried professional...

Thank you for making this point clear! I'd like to also add that white collar often means management positions to most real blue collar workers in the factories Ive worked in.

Additional note: I remember a 'blue collar' robotics technician at an aluminum casting foundry that knew the actual machine code instructions for programming a legacy robot. Not assembly, binary op codes. He performed this type of work daily, while also turning a wrench, driving forklifts, sweeping the floor, etc. Id say there are 100s of hardcore, real blue collar programmers out there, but few white collars realize it.

Thank you for writing this. I was about to write it myself to stop this madness. It seems to me that most people don't even have a clue about what software development is about. That's the only possible explanation for this classification as a blue collar job.
what really pissed you off is the pejorative stigma of "blue-collar jobs". there is a difference between the art of coding and operating an elevator
At the risk of sounding Marxist, there's only really two classes. If you have to trade your time and labour for money, you're working class. If your money makes money and you can live off that, you're capitalist class.

We stratify working class into different sub groups (blue collar, white collar, professional, middle class, working poor, etc) to develop a sense of hierarchy, and it really rubs people the wrong way to be told that they're no better (or worse!) than the guy sweeping the floors.

Perhaps coders should fall under the gray-collar classification.

We don't do heavy lifting (or laundry).

Maybe wrinkled-collar?

(I'm so going to get downvoted for this, I know.)

They probably think that JavaScript/HTML/CSS programming require no brain usage, hence blue collar job ;)
This is actually how programming started in the first place, and still is. It's only because of highly publicized Valley-style successes, mysticism ("these twenty-somethings wrote an app and got rich? Surely they are geniuses!") and remnants of the dotcom era that programming still has a glamorous air.

Programming used to be women's work (i.e. "low level" work, similar to typists according to 1960s stereotypes), and programmers programmed a business' computers to do whatever tasks they wanted to accomplish. The vast majority of companies in the world do not have software as a core business, so this still applies to a large extent.

It was never "women's work"--wiring up those analog machines is really in no way programming.
>But any blue-collar coder will be plenty qualified to sling Java­Script for their local bank.

Yeah, that sounds dangerous.

Do you have any idea how many billions of dollars are moved around everyday by excel and VBA scripts? Sometimes I've replaced these with real code and they complain it doesn't replicate the VBA errors.
While I'm all for coding literacy and job retraining, I think the hype around code schools misses the fact that the field requires extremely deep knowledge along with curiosity. A few months of an intensive code bootcamp can get you the basics of writing some JavaScript, basic git workflows, and maybe some API development on top of a database, but it does nothing to develop the intuition a lot of us developed over years and years of tinkering.

I've seen lots of code bootcamp grads get completely lost when deploying an application to a Linux environment. Or when they have to figure out what's going on with a malfunctioning system. Or when they have to think about networks. Or when they encounter performance issues in their code.

Then I realize that a lot of my peers that I pair with were like me. They broke the school computer and fixed it when they were 12. They spent their summer job money to build a computer from parts because they were curious at 15. They taught themselves to code, then got better at college or through continued self-study. They ran Linux as their desktop for fun.

Now I'm not saying that bootcamp coders can't get there, but it's hard to compare to someone that at 21 had 10 years of autodidactic learning experiences, maybe with a college degree on top of it. I'm all for being more inclusive and we really should be making efforts to get more people involved, but I think we forget how broad of a domain we work in and how long it took us to get to our skill level.

I wonder where this fits on the continuum to end-user programming: https://en.wikipedia.org/wiki/End-user_development

One can see Rails and the later enthusiasm around Node driven by the idea that people could come to be programmers, not necessarily through a dedicated process of education in computer science.

I wish I could just manage a login page all day, sheesh
Other advice from Scott Adams:

"The reality is that women are treated differently by society for exactly the same reason that children and the mentally handicapped are treated differently. It’s just easier this way for everyone. You don’t argue with a four-year old about why he shouldn’t eat candy for dinner. You don’t punch a mentally handicapped guy even if he punches you first. And you don’t argue when a women tells you she’s only making 80 cents to your dollar. It’s the path of least resistance. You save your energy for more important battles."

"If there are no sponsored terror attacks before Election Day, it means ISIS prefers Clinton. They have the means. Think about it. #Trump"

He's got a point though. The 70 cents on the dollar thing has been debunked pretty thoroughly by now, and yet people just keep mindlessly parroting it. Maybe arguing about it is not, in fact, a sensible thing to do.
> The 70 cents on the dollar thing has been debunked pretty thoroughly by now

Not to my knowledge. Can you provide some reliable source that explains it?

> yet people just keep mindlessly parroting it

... or are people mindlessly parroting that it's been debunked? Let's try to treat each other with respect.

https://www.google.com/search?q=70+cents+on+the+dollar+myth&...

Plenty of reputable sources right on the first page of results. I can't treat people with respect if they lack critical thinking skills, sorry.

> I can't treat people with respect

You should try a different forum than HN.

A generic search results page is your evidence? The internet is chock full of BS in all directions. If you want to convince me you're right, you need to pick out the sources you trust and convince me to trust them too.
>reliable source that explains it

You're going to have to elaborate on "reliable source."

From an NPR interview concerning a report from the Association of University Women, a feminist organization: "After controlling for several relevant factors, they found that the wage gap narrowed to only 6.6 cents."

http://www.scpr.org/programs/airtalk/2012/10/24/28990/study-...

The study: http://www.aauw.org/GraduatetoaPayGap/upload/AAUWGraduatingt...

"How much of that is attributable to discrimination?" "We're still trying to figure that out." Do tell.

In fact, according to data from Census Bureau, "unmarried women who've never had a child earn more than unmarried men"

http://online.wsj.com/article/SB1000142405274870442110457546...

From "An Analysis of Reasons for the Disparity in Wages Between Men and Women" prepared for the U.S. Department of Labor in '09: http://www.consad.com/content/reports/Gender%20Wage%20Gap%20...

>This study leads to the unambiguous conclusion that the differences in the compensation of men and women are the result of a multitude of factors and that the raw wage gap should not be used as the basis to justify corrective action. Indeed, there may be nothing to correct. The differences in raw wages may be almost entirely the result of the individual choices being made by both male and female workers.

So, as with many good talking points, this is a game of statistics lacking important control factors. It's not exactly surprising that men are going to work on oil rigs, which is why the "77 cents" talking point is a brilliant piece of omission and great example of how statistics can be misused.

The purported "women's wage gap" virtually vanishes, and in fact it's a male wage gap in certain demographics, when you have proper controls for career decisions.

In summary: there is no wage gap when you compare apples to apples. If you are talking about women's career choices, then by all means encourage your daughter to be a professional in a high paying sector, as opposed to the low-paying education and health care sectors.

Or you could encourage her to join the lucrative fields of logging, piloting, construction or roofing, steel mill work, trash collection, mining, etc. where there is a very clear and distinct gap. They pay well.

Is that copied and pasted from somewhere? consad.com is a parked domain at GoDaddy (or gives me a 404 testing from another route). That and the exaggerated, sarcastic tone make me wonder whether I'm going to gain much from reading and responding to that comment, and whether it's an attempt to inform or attack. Life is too short.

For those interested in learning about the subject, here's a passable summary, though it relies too much on partisan sources:

http://www.politifact.com/truth-o-meter/article/2015/jul/15/...

There is a pay gap in some places and not in others; there even is a reverse pay gap in places, but of course if you get into the weeds of any data then it's always a mess. For example, the pay gap in Hollywood between actors and actresses is well publicized (though not mentioned in the article).

One argument they don't mention is that society and the economy are still structured around males working; that those are the norms we inherited and, like almost all norms, we accept them so fully we don't see them - like we are born and live underwater and don't realize that there is air and land. Think of the norm of a career: Get your first job at 18-24, steadily build your career, retire at 65-75. Taking a break to raise children is still a violation of the norm. But if women were the employed gender for centuries, then the expectations and norms for careers would be different; maybe we'd expect to have two careers, for example. That also may apply to the norms of what jobs are paid more highly; certainly in the past, men were paid more or given the better paying jobs because it was expected and necessary for their status as breadwinners; this was explicit. It may not be coincidence that we pay so poorly, for example, for teachers, a high-skill and high-value job to society but 'women's work'; they weren't the breadwinners.

>For example, the pay gap in Hollywood between actors and actresses is well publicized (though not mentioned in the article).

Yeah, but who cares? I really don't. I honestly, truly don't care if female millionaires are paid less than male millionaires. Cry me a river.

I only care about middle-class people and below, not a few ultra-lucky rich people. If some single mom is struggling to pay her rent on a modest apartment and has some crappy old car that's in danger of giving her unaffordable repair bills and she's getting paid less than her male coworkers, that angers me. But spoiled Hollywood actresses? Please.

>In summary: there is no wage gap when you compare apples to apples. If you are talking about women's career choices, then by all means encourage your daughter to be a professional in a high paying sector, as opposed to the low-paying education and health care sectors.

WTF? I agree with the general idea here of encouraging your kids to pursue more lucrative fields where feasible, but where'd you get the idea that healthcare is low-paying? Surgeons make a fortune, other doctors generally do very well (there are some exceptions, and GPs do the worst on average but still are not "low paid" by any means), and even nursing is a very solid decent-paying profession.

But yeah, education really sucks as a career choice, both in pre-college and in college too these days.

>Or you could encourage her to join the lucrative fields of logging, piloting,

Piloting is a terrible career. The pay is generally horrible and the conditions dangerous until you get to the "big leagues". There's way more people who dream of flying aircraft for a living than there are places to employ them at good wages. Last I heard, a copilot for a big place like Fedex gets paid $18k. On top of all that, the training costs are enormous, because you're paying for private tutoring and high fuel/maintenance costs. It used to be possible to get aviation loans 10 years ago during the bubble, but it's not any more because the field collapsed and there's a glut of pilots.

This is a flame-war inducing comment if I've ever seen one.

The commenter you were replying to quoted specific, apolitical career advice from Adams and you're answering with highly polarizing politically-motivated comments Adams made elsewhere. If the article itself were related to wage gaps or the past election it would be on topic. It wasn't though.

It's possible to find value in a successful entrepreneur's career advice without agreeing with (or wading into) their political commentary. Would you mind saving these quotes for an article where they won't derail the discussion?

This is arguably the stupidest thing I have ever read. I spent a good portion of my life learning to be a software developer--CS in college, then grad school to specialize in UX type work for awhile. Even the "local Credit Union" is not a blue collar role. Being a developer requires aptitude and constant study.

I take offense because my Dad was a welder, a real blue collar worker, and it sucked balls! He never wanted that kind of life for me and for good reason, it was a dead end--working with drunks and biker trash and it was dirty and dangerous inside power plants, paper mills and tall smoke stacks.

Don't write about things you don't have the first clue about!

A presumption of this article, and many like it, is a backwards-looking and somewhat elitist view of the economy and the workforce.

Consider these quotes:

* "What if we regarded code not as a high-stakes, sexy affair, but the equivalent of skilled work at a Chrysler plant?"

* "teachers and businesses would spend less time urging kids to do expensive four-year computer-­science degrees and instead introduce more code at the vocational level in high school. You could learn how to do it at a community college"

The problem is that manufacturing jobs, or their equivalent, is going backwards. We want to go forwards, improve opportunity, income and quality of life for each generation. We want higher-paying, higher-skill jobs.

Rather than find ways to not go to college, what if we continued the trend of each generation being more educated than the last? What if we sent people to college? Sanders proposed college for all, arguing that high school was sufficient a century ago but now college is needed. Clinton proposed something similar, free college for families making <$125K/yr (IIRC the details); she got the majority of votes (which doesn't qualify her for President, but does say something about the popularity of her ideas).

The idea that 'college isn't for everyone' is elitist. It really means that 'college isn't for the children of the working class, only those of the wealthy'. Think about it: Will the children of Senators go to college? I think so. The children of most people reading this? Of SV millionaires? Of Apple and GM executives? Do they tell their kids, 'college isn't for everyone; learn a trade at community college'? Somehow college is for all their kids (with few exceptions), so the evidence seems strong that with the proper resources, it's for everyone.

> Sanders proposed college for all, arguing that high school was sufficient a century ago but now college is needed. Clinton proposed something similar, free college for families making <$125K/yr (IIRC the details); she got the majority of votes (which doesn't qualify her for President, but does say something about the popularity of her ideas).

I would be careful here drawing conclusions like this. Voting for a candidate or party is an extremely imprecise way of determining public support for any one policy, because they're effectively an aggregation of various policy ideas and other issues. Those other things are usually not easily deconvolved from each other.

It's like going to a supermarket and only being able to pick from two baskets that were loaded for you by the staff, that you can't rifle through to find out exactly what the quality of the food is. Are you buying the cart on the left because it has sweet ice cream or because the one on the right smells like it's got rotten milk in it?

Agreed; I didn't mean to imply otherwise but I wasn't being very precise about it.
>The idea that 'college isn't for everyone' is elitist. It really means that 'college isn't for the children of the working class, only those of the wealthy'.

I actually think you're right that it's elitist, but I don't think this "college is not for everyone" attitude is about money, but about intelligence and personality characteristics. These things happen to also correlate with "wealthy," for values of wealthy above "working class."

Some people just aren't going to be able to make it through college no matter how many resources you give them. And college as we do it now is not right for everyone either. For evidence of this, go to your local state run university and observe how many students are failing out of school because they prefer to smoke weed every day to studying. I think something like 70% of people I met in my freshman year failed out of school in this particular way. Free college wouldn't have helped them.

> this "college is not for everyone" attitude is about money, but about intelligence and personality characteristics. These things happen to also correlate with "wealthy,"

You're claim is that children born into wealthy families are naturally more intelligent? And that 70% of people in state universities flunk out, and they flunk out due to marijuana usage?

Hmmm .... I think we'd need to see some basis for these theories.

No, I'm claiming that intelligent, conscientious people are more likely to be wealthy. There are many studies that support this.

I'm also sharing an anecdote that many people who have the opportunity and resources to go to college, waste it. That's an anecdote from my own experience of going to a state university. The point of sharing it wasn't to tar everybody who goes to state universities, but to point out that there are people who will waste opportunities that they're given.

> intelligent, conscientious people are more likely to be wealthy

We're talking about kids; their access to wealth depends almost entirely on their parents, not the child's own intelligence and conscientiousness.

College is for the elite because it is an arms race. We use college for class signaling.

If a degree is free, then employers will demand a master's degree. (already starting) If we make that free, employers will demand a doctorate. If we make that free, employers will demand post-doctoral work.

Meanwhile, the actual education obtained for any given level declines. This is a race to the bottom because the customers demand it. Colleges are now teaching things that were once required for entering high school, particularly writing.

For an individual, it is usually beneficial to participate in the arms race. College expenses rise to take much of the benefit, but there is some benefit left for the student. For society, anything that encourages the arms race is harmful. An increasingly large portion of a person's life is spent being unproductive.

I have a much better idea: how about you acquire some critical thinking skills instead? It'll serve you well in the long run.
I found the statistic interesting that for 11 jobs there were 950 applicants. How does this sort of competition compare to traditoonally blue collar jobs?
Most 'blue collar' jobs are probably about 1000% more complex than 'white-collar' workers realize.

This discussion is about social class more than it is about practicalities.

There is a divide between the ownership class and the worker class, just as there has always been. The owners always find ways to justify their unfounded belief in their superiority because that is necessary to rationalize the unequal distribution of profits and unfair burden of work.

The 'coders' are the intelligent and capable hard workers. The owners, managers, 'entrepreneurs' are the ones that happen to have enough money to avoid doing real work.

This article is largely just another caste justification.

(comment deleted)
I'm going to make an assertion that will like make some of you angry. Let me start with this... Life is a bell curve. Everything you observe from weather to color to taste to whatever, measured multiple times across a large sample tends to land into a bell curve. Now we all know this also applies to people's intelligence. We tend not to emphasize it, because as empathetic members of society we know categorizing people can lead to unethical behavior. But ignoring the spread of human intelligence does not make it false. So what does this have to do with the article? Think back to high school where we were all constantly reminded of our ranking amongst our peers. Some got A's, some B's, most got C's, then the D's and F's. Now think of the friend you had that fell into the D/F group. Which do you think they are better suited for? Pouring concrete or writing secure Javascript logon pages? Let's move across the bell cure into the C's. Do you think they are better suited to hanging sheetrock or writing discrete transactional SQL in a multithreaded environment? See what I mean? Now we move to the B's, a much smaller group. They can likely code, but do they have the aptitude? I know people consistently making the Dean's List in college who can barely understand variable assignment, let alone pointer arithmetic or referential integrity. So to say that we just shift the "blue collar" workforce from "industrial" tasks to writing code, I can't see it.