"But any blue-collar coder will be plenty qualified to sling JavaScript for their local bank. "
Even highly trained software engineers can barely get security correct. What makes this journalist think somebody with a few years of high school programming can do any better?
I'm not sure I buy the "blue collar coder" prediction. At least not in the US. That type of work is currently outsourced to India and parts of Eastern Europe. There's an entire industry of code factories that already exists - are these US-based blue-collar coders going to be any more effective than off-shoring?
And within the US, code already permeates other professional roles. Staff accountants and data analysts do lightweight (and sometimes heavyweight) programming in Excel and other business tools. And hobbyists program things like home automation in Lua.
> Even highly trained software engineers can barely get security correct. What makes this journalist think somebody with a few years of high school programming can do any better?
They don't have to get it better. If paying top dollar doesn't guarantee results, then why not save money?
> are these US-based blue-collar coders going to be any more effective than off-shoring?
Yes, many companies either have a bias against off-shoring employees or they want a butt in a chair.
> And within the US, code already permeates other professional roles.
So you don't need specialist programmers. So a manufacturer needn't bring in a highly paid consultant to build out a workflow system; they likely have talent in-house.
Hell, I'm a developer and some of the systems I use (for example, my finances) are run in a spreadsheet with a few clever functions. I'm always dreaming of writing proper software, but the truth is, I'd spend weeks to get a sad % of the functionality Google Sheets gives me. And with tools like Airtable, pretty rich UIs are doable. Software is indeed eating the world, but it's also eating software developers.
For that matter, there aren't a lot of local banks anymore, either. Post-2008 regulatory reforms killed them all off.
Much ado is made about how out the American intelligentsia are out of touch and I think this line is a pretty good example of why. Taleb would have a field day with this writer
“Even highly trained software engineers can barely get security correct. What makes this journalist think somebody with a few years of high school programming can do any better?”
Why would they have to be better? You just made very point here. Some high schooler with a boot camp can do just as well as many “highly trained software engineers”.
First, why don't we fix the cost of medical care by letting vocational schools train doctors? After all, there are high-profile medical errors and the world goes on.
(In case the sarcasm isn't obvious, my point is that the existence of errors by professionals doesn't mean the entire system would be just as good if staffed by non-professionals.)
Actually, we kind of do, in physician assistants. Having in recent years received most of my medical care, including emergency care, from PAs, and only rarely seen an MD, I have to say, I'm not sure you're doing a great job supporting your case - the care I've received from PAs has in no respect been below the standard I'd expect to receive from MDs.
No, but it doesn't matter. The comparison between a doctor and a physician assistant is quite closely parallel with that between a "conventional" and a boot-camp-trained SDE. Especially since our field has no certification requirements, minimum necessary training, or indeed any qualifications whatsoever beyond simply demonstrating the ability to do the work!
Does most of the software involve mission critical work where failure means death or loss of vital organs?
Outside some key areas, most of the software work is not that important.
So this comparison isn't fair.
My girlfriend does React/JS apps for local businesses and she's teaching some other women in the neighbor too.
No she doesn't know how webpack works but she has learned enough to produce results.
Whenever she gets stuck, she looks for Stackoverflow or GitHub issue links and 80% of the time finds the answer there.
Rest of the time she gives up on a tool and uses other tool which doesn't suffer from the same issue.
Sorry i used to think i am very smart because i am a programmer but it turns out others were simply not introduced to the programming way. Programming is wayy easier now with all the tooling/guides/courses available now.
I think it's great that many other people are taking an interest in programming and doing it. And it's true that to think oneself very smart for being able to program is the wrong attitude. But this thread that you're replying in started with this particular assertion from the article:
"But any blue-collar coder will be plenty qualified to sling JavaScript for their local bank."
An app that's secure enough for a bank is unfortunately not something one can make without a lot of training. Maybe someday.
But would they do just as well? The state of data protection and security in the industry may seem abysmal because of several well publicized breaches, but in some of those cases (Equifax comes to mind), it was a lack of experts that caused the problem.
I think what he’s saying is that the industry’s still working despite the fact that such experts are generally not present, and that this can continue.
Separately, I think that people consistently haven’t actually penalized most companies for security breaches, anyway. Big brands get hacked, everybody collectively moans for a week, and then they go back to using the exact same products. People publically get mad, but they don’t vote with their wallets, revealing how they really feel about security.
Not only can they not get security right, I have seen MANY people slinging Javascript at banks who are career programmers with CS degrees who can't get slinging JS right. I'm not talking total incompetence or can't fizzbuzz but people who were consistently unable to deliver on midsize or larger features and who's code is unreadable and unmaintainable.
The problem with the blue collar coder concept is that there is a lot more art(or design) required to write code than to work in a factory or mining(which I'm sure also has an art to it but I'm guessing is much less conceptual and abstract). Unfortunately I don't see it happening.
It's going to take a generation for this to be the case because the basic everyday skills that we don't even think about are just not a part of the core daily activities for most people.
Consider the most basic skill you need to write code: Writing with the Keyboard. The majority of kids have never used a non-software keyboard. Technology isn't helping this either as autocomplete, swype, speech to text input etc... pushes new and basic users further away. My daughter has iPads in her school, not computers with keyboards. So although she's using computers, she's not using keyboards. Maybe IDE input schemes will adapt to this, or eliminate it completely but nothing so far has beaten writing with the keyboard.
The second most basic skill is also very rare today: OS navigation. Almost to a person, every developer I know including myself started playing around with computers at a young age literally just poking around to see what was inside. This means simple things like installing programs, configuring applictions, installing drivers, searching for folders, moving files, modifying text based program files and on and on. Now imagine not knowing how file structures work and trying to grok ls or mkdir in your bootcamp classes.
I think it's a solvable problem and I think we can get to where the entry level requirements for developers is low enough for the general population, but that means our tools (IDE, frameworks, installs) and structures need to adapt to support that.
As a community we don't particularly care to work on that, and we seem to like to gatekeep when it comes to our "special skills" and "special thinking." If we really care about communities and our economies it's up to us to help grow the developer base and transition the labor force because we're the ones building the tools and systems.
Neither of these are serious barriers for entering the field. I would argue it's the continuously changing landscape of skills which necessitates continuous learning that creates an ebb and flow of supply in the field.
If Java had their way and it was used everywhere for everything, and everyone started to master Java, sure all these fears that float around HN would be justified. But that's not reality.
For whatever reason, it seems like the way of thinking required for even simple programming doesn’t come naturally to most people. I saw this with a bunch of kids I went through nearly CS classes with. People who could not wrap their heads around pointers or reference semantics. People who didn’t get polymorphism and seemingly couldn’t no matter how many times you went through it with them. People who couldn’t seem to write programs, even very simple ones, despite being clever in most other ways that can be measured by academe. To be sure, it could be the slice I saw was not representative of typical people, but that would require typical people to be better suited to programming than those admitted to a high tier university. Maybe they are, but it doesn’t seem especially likely.
I think when you get started coding earlier, your existing knowledge about the world doesn't disrupt the seemingly idiosyncratic way languages and computers operate and describe operations.
But one issue that definitely is a killer is just that some people, even if they have a "knack" for it, just don't enjoy programming and find the whole thing tedious and frustrating and/or the attitude of "I'm done with school. I'm done learning new things. Just put me to work".
Those two traits greatly limit the pool of people who are willing to work as a software developer, despite being fully capable of doing the work.
Also, I’ve seen smart people just not have the patience required to work on programs. There’s a level of pain tolerance required for debugging, for example, that some people just can’t handle - or don’t want to.
Agreed. The patience comes from actual interest. Few people if any just sit down and code a whole program from start to finish without hitting any bumps. A person's tolerance for dealing with those bumps will determine if they can be a programmer or not. No matter how smart someone might be, there comes a point where they will have to grind out a solution to a problem. That means sitting in the front of the compute for hours with seemingly no progress. That is challenging for many people.
What I saw in college was a lot of people dropping out of the Computer Science track for the Information Technology track, because they wanted to learn about computers and the business surrounding them.
The early CS classes were about pointers, iteration, conditionals, and other things they had 0 interest in.
I think it takes a specific kind of personality to be interested in this stuff, and it’s not something that most people would enjoy doing as a job, contrary to what articles like this want us to believe.
Actual logical thinking doesn't come naturally to anyone. Look at symbolic logic classes in Universities and how much people struggle with that. You only get good at it by doing it a lot and banging your head against the wall sometimes. Most people would do just fine with programming if you frame it the right way for them. We are already used to working within constraints.
My theory is that we have a personality dimension related to "tolerance for being wrong"
In 'real life' we're ultra careful about implying, let alone proving people are wrong. Considered by most to be highly insulting! And showing someone they're wrong is often interpreted as disrespectful.
On the receiving side, it's common to hate the feeling of being wrong and deny reality itself when the feeling comes around.
All of these common cultural assumptions and potentially biological traits are deeply at odds with programming.
Yep. We had a 50% dropout rate in year 1 at my university. Most of those were in it for the money, but didn’t have enough personal interest in the subject to push through the combination of logic and tedium that makes up introductory computer science.
Bootcamps I swear train cargo cult programmers. It may work for some, but in my experience they lack the understanding of why they are typing what they are typing. They can go through the motions of what they've been trained to do, but they get stuck extremely easily and have no idea how to help themselves. So then when you start explaining why their program does not work, their eyes glaze over when you start talking about the stack, heap, etc.
They are like cargo cultists. They go through the motions, imitating what the boot camp taught them, but without real understanding of what the computer is doing...
I think you're right, and I think it just comes down to Time. A lot of people sneer at traditional university CS degrees as being wasteless and unnecessary, but that's one thing they do right; the combined total time of CS courses you take might rival the time spent in a 6 month intensive bootcamp, but its spread out over more Time.
People need Time to understand abstraction. Most engineers start with the abstraction ("how do I write an API in Node") then work their way down when problems arise ("wait, why is my app slow? what's an event loop?"), but if all you have is the 6 months you simply aren't going to get very deep. Then you're on the job, while simultaneously adulting (if you weren't already adulting during the bootcamp). So you're set up to evolve at a much slower rate than your coworkers because you're missing fundamental understanding of the lower levels of abstraction and how they fit together.
I really think it comes down to having two classes of software engineer, just like electricians vs electrical engineers and nurses vs doctors. Each role has a very important place in our modern economy, and you can make a blue collar living in the more easily accessible ones. But you simply can't replace deep domain knowledge of low-level abstractions, nor the many specialized fields in CS like performance engineering, authentication/authorization, machine learning, cloud engineering/infrastructure, etc.
This is actually just how I learn. I never understand anything abstract the first time I read about it or use it. In fact there were many things in software that I just did because it was "best practices" without understanding why. I could read about the Why all day long but until I experience the Why it will never really click for me. I eventually understood why because I kept trying things out, asking questions, and didn't give up. I don't think you can expect most juniors to understand the Why to a lot of the things they are doing and one could argue that there isn't much value in ensuring they understand it right away. What matters is that you have processes in place to allow juniors to slowly learn why we do things the way we do. Seniors need to also understand that not everyone comes from a CS background nor is it necessary to come from one and be an effective worker. The work that 90% of programmers do out there is not complicated and anyone with a rudimentary understanding of algebra could do it.
I think you need a particular type of personality for the bootcamps to be effective. Like you said, you need to thrive on curiosity and have a thirst for knowledge. Not everyone is like that. I have a few friends who think programming is like learning how to solve a rubik's cube: you go to the training, learn how to do it, and bam, you are now trained and can solve any rubik's cube.
It wouldn't surprise me. They cram a ton of material into a handful of greuling rushed weeks.
Then again apparently many if not most devs leave college with a four year CS degree and can't code either, so maybe it's just a reflection of typical ability.
The point of a CS degree isn't to teach you to code.
Also the amount of time spent in class is roughly equivalent between a 4 year CS degree and a rigorous, full-time bootcamp. 2 hrs of class, 4 days/week, 28 weeks/year in most universities vs. ~10 hrs/day, 6 days/week over 13-17 weeks in bootcamps.
Personally, I'm anti-bootcamp, but I'd argue that many bootcampers are more employable in a junior role on day 0 than many CS grads. (Perhaps the solution is a bootcampish "finishing school" for CS grads where they are taught an in-demand framework or 2?)
This, I often find people unable to debug more complex issues because they have no real understanding of what the computer is doing, it's a black box to them.
Blue collar jobs aren't low paying due to lack of skill or value, it's due to excess supply. In the bay area we have plumbers who charge $150/hr, the same rate I charge for coding, due to a low supply of plumbers.
The catch is that plumbing and other trades haven't changed much in the last 100 years. Coding is changing constantly. Therefore the supply of coders who can professionally use the latest technology is always small, hence a high paying rate. Only once coding itself stops progressing and innovating will supply be able to catch up to demand.
You might be seeing blue collar rates with HTML which is ubiquitous and changing relatively slowly.
This topic recycles on HN pretty frequently. I don't believe it. I have many friends that aren't coders and it helps me remember how big the skill gap is.
Unless you've done substantial training, code seems just as opaque as medicine, or law, or most fields of engineering. Any job that requires substantial training and trust not to royally screw everything up pays well.
Perhaps 30% of the population has the creativity and analytical skills to make a decent programmer. And maybe 10% of those find a job largely comparable to doing math homework enjoyable.
Programming isn't as old as most fields of engineering, but it's older than a generation of workers. If coding was going to be commoditised it would have happened decades ago
> If coding was going to be commoditised it would have happened decades ago
I don't understand how coding would have been commoditised literally decades ago... when the reality is that not so long ago the demand has increased exponentially. Plus only now the supply is starting to pick up - remember you have countries (like China or India) pumping millions of programmers per year, and these numbers will increase - due to internet, free access to information, and of course the demand.
I learned my first few languages through the acid inpired O'Reilly tomes of early/mid 90's. Since then things are far more accessible but this effect is throughout society, not just programming.
You can teach yourself law or medicine these days online as well as engineering but it doesn't seem to have a commodity effect on any of these professions.
The main barrier remains. It's not easy to learn and requires a person with the "type". I believe the biggest barrier to highly skilled jobs isn't necessarily the skill but skill combined with interest.
Most people simply don't want these kinds of jobs regardless of the pay. Make 2-3x as much to do a job that requires endless learning and a lot of tedium, that only attracts a couple percent of the population that naturally enjoys this type of work or wants the money bad enough to put up with it
The training materials and methods continues to evolve. How many remember those thick programming books that weighed 5 pounds. Chances are those who started learning in the past 5-10 years have never seen one. All of those learn programming websites and code challenge sites are a recent invention.
The internet only really hit mainstream adoption a short while ago. Decades ago the internet was twinkle in the eyes of hardcore nerds. A fad to everyone else.
Yes. It should be "did you enjoy math homework or do you think it's worth getting paid 3x your salary to do math homework all day". Programming is mostly simple math but we've all been in the situation where SQL, data, and bugs combine into some unholy quagmire. The kind of thing that most humans honestly have no desire to deal with
The article presents the idea of a future mass pool of novice coders who don't (or don't need to) level up, that can take care of simple things like "manage the login page". I think that underestimates the complexity of code. A lot of things could go wrong if you have the majority of your codebase being worked on by novices, no matter how simple the feature. The simplest feature can also be: a single point of failure for the entire application, bottleneck hurting user experience, huge security risk, evolve into an unmanageable mess of brittle code. I personally (without evidence) believe it's possible for every healthy human to learn how to code and increase their skills over time. I don't think a factory line approach works for building software. For that to happen there would need to be more advanced tooling that leaves developers with work more similar to configuration management than coding.
> I don't think a factory line approach works for building software.
Kanban is a factory-line approach, and also the basis of every commonly accepted best practice in software engineering today. I reserve comment on whether that argues for or against the point of yours that I've quoted, but certainly you'll understand why I note that point is likely to be a controversial one.
Programmers overestimate how complex coding to solve problems actually is. Look at data science, you have tons of people with years worth of domain specific knowledge picking up enough python/ML on a weekend course to outperform those with PhDs in computerscience. And sure those people won’t be able to write their own implementation of lisp in C, but they don’t have to, that’s not as valuable. I feel like we have English lit majors complaining that programmers can’t write books because “they didn’t study literature for 8 years” and we all know that to just be ridiculesly off. Yet here we have software developers saying that highschoolers can’t program because they didn’t spend 8 years studying algorthms and cryptography.
I believe coding is easy when it's to assist in your own work. Programming at scale is a different problem.
I'm not certain, however CS jobs appear to reflect this on the two different pay scales (my work has two different programming roles with one compensated at almost twice the rate)
Two of my most blue collar friends just made the jump. One a mechanic the other a deli worker, via bootcamps in their late-20s. Neither hated their jobs, but they also couldn’t afford to move out of their parents houses on those incomes.
For now, they seem to be doing “blue collar” programming work. Mostly freelance basic front-end and rails development. The question to me is if they broaden their scope into other specialties and how quickly that happens. That’ll be my indicator to how long my own overpaid salary might last.
The people I know who've done the same are broadening pretty quick. Makes me glad I've been putting so much of my own overpaid salary into savings: 'Gather ye rosebuds while ye may.'
My girlfriend who is nurse basically by training, took bootcamp and now she makes react frontend + Prototype in Sketch which is what she really enjoys.
She told me this area of work is really good as you can learn from YouTube and put it to practise right away without worrying about that you'd screw up.
It suggests that instead of doing a course at university we should be teaching programming in school (great!) and also do more boot camp style education for your local bank’s JS stack.
That’s all well and good. I’ve worked at a bank that refused to interview boot camp grads. Anecdotal I realise.
I worry that these kinds of articles wrongly portray how hard programming/soft eng/comp sci really is to the average person.
I'm going to go on a rant, as I know this is an old piece. But, I feel like it's really sad to see the devolution on journalism quality as it has become digitized. Yes, it's always been easier to do an incendiary, low quality hatchet job on a tough subject that you don't know anything about than to do a well researched long-form think piece. But, it seems that all I see more and more of (exacerbated by social media) is low information fluff pieces that make grand, controversial assertions.
The problem is, there's no cultural penalty for being wrong, so there's no skin in the game from the authors. Right now, there's little stop the market from being saturated with trash. I had a lot of problems with the Gawker media properties, but I liked how cutting they could be, and how their snark could (at their best) act as a natural check against the cancerous growth of smarmy clickbait. Company ending lawsuit aside, they also did a fantastic job at capitalizing on their snark. Of course, even they had their biases and blind spots, but nowadays, I feel as if we really don't have too much.
One of my bosses at a former company used to quip "I love HBR articles. They usually follow the formula of a 2x2 identity matrix of the form of 'You're probably thinking A. Here's why B, which you weren't thinking about, is true while A is wrong.'" But it's really sadly true, and we don't do a great job of exercising the sociolinguistic tools to critique poor choices of A or B. I don't know whether this is a chicken or the egg situation that comes as a result of the factory oriented American education system, but it makes me pretty sad and disappointed.
To be fair, at least he has a github account. That said, his most complex contribution to open source seems to be a script that prints a stream of freak out words, created the day after Donald Trump was elected.
var wordToPrint = ["oh god", "no", "please", "no", "no", "no", "no", "no", "oh crap", "oh crap", "oh lord", "oh no", "no", "help", "no", "no", "oh crap", "oh god", "please", "oh man", "no", "oh f-", "oh wow", "oh wow", "wtf", "no", "i can't", "i can't", "i can't even", "oh fuck", "i -- oh no", "shit no", "oh man", "oh man", "oh please", "i can't even", "no no no", "no no no", "no no no", "ugh ugh", "ugh", "ugh ugh crap", "it ... can't", "i can't", "it can't no i can't", "make it stop", "i'm ...", "i'm ...", "it's ...", "oh oh oh oh", "oh oh oh oh oh", "nnnonnnnooo", "nnnonnnonnoo", "ugh", "gnnnaah", "gnaaaah", "gaaah", "wtaf", "wt actual f", "what what what", "it ... no", "no ... i ...", "...", "..."];
I've seen this same thought expressed quite a bit through my ~20 year career. I think the earliest expression of this that I've found was a quote from the 1980s. So, people have been saying this for a long time.
In the early 2000s, I thought they were probably right, because a half-drunk baboon could put together a working application using VB6 (and later, if he sobered up, he could do the same with .NET WinForms). RAD was a real thing, and I thought it signaled the end of the high-salary programmer.
I was wrong.
Looking at modern tech stacks, none have productivity tools that are contextually equivalent to VB6 and .NET's WinForms. So, I think we're still wrong about this prognosis.
Even if a lot of programming gets commoditised, I think that would still be a white collar job, not a blue collar one. But, of course, calling it "blue collar" can make for a better title.
While I agree with the assessment that it might be the new blue collar job, I don’t think it’ll ever be understood very well by people without formal education, either through experience or study.
I think anyone who wants to explore the world of programming should do so, but I don't agree with this article.
I fit the demographic that this article is talking about. I taught myself JavaScript for years, taught it to others and I currently work part time at a cloud technology start up and part time teaching online with another company. The reality is that contrary to the hype the truth is that it takes a long time for your mind to adapt to thinking in code. Learning programming is not something that most people can do in a year or even two. Basic programming? Yes, maybe. Basic Wordpress development? Maybe. But keep in mind for modern front-end development you are also talking about the DOM, async, frameworks like React and a hodge podge of things that can easily drown developers who have been working in the field for decades. I once had a bio-chem student who was extremely smart and had A's in his advanced math classes. No matter how much we tried to work through it he could not get his head around DOM programming. I went out of my way to try an help him but eventually he decided it just wasn't enjoyable and he dropped the course. I've also had many students that have assumptions about the attainability of this stuff that make my jaw drop. I've worked with online bootcamps that treat students soley as customers and instructors as pseudo-guru's that are expected to keep the student "happy". If the student complains because the instructor gave them a reality check - the onus is on the instructor. I do believe that most people can do more than what they perceive, but this article is not promoting a perception that I think is beneficial.
If you put up a job post for a software developer in NYC, you'll get 90% bootcamp graduates with less than 1 year of experience coding and no real passion for it.
Yes, anyone can learn to code and get a job with no formal training. However, this does not make it blue collar work or culture. There are similarities but they are distinct.
Lots of people who don't know how to code talking about how easy it will be for others to learn.
Coding is a creative endeavor, as such very few people will ever be qualified to do it and even fewer will be good at it. If I had to wager a guess, I'd say at most 10% of the population will ever be equipped to write code.
No, it really super isn't. Look, I'm all for teaching CS/programming to toddlers through people in their 90s - but the blunt, brutal reality is that not everyone can do this work. Full stop.
That does not make programming a good candidate for widespread, blue-collar work.
Frameworks will eventually turn most jobs we do now into low-skill office jobs. Maybe not WordPress 6.0, but WordPress 10.0 certainly will be easy enough for just about anybody to use. We won't call them programmers, but they'll be doing all the jobs we used to do, if we're lucky enough to have moved up.
Just how like tasks that used to be done by doctors are now done by nurses, and tasks that used to be done by lawyers are now done by increasingly large staffs of paralegals and secretaries, coding will eventually be stratified like everything else. I would argue it's more inevitable in this one than it ever was in those fields.
No, they won't. Frameworks often introduce new layers of complexity and abstract away important details to the point where either entirely new frameworks are eventually needed, or you need an army of "framework specialists" who understand the subtleties of particular frameworks - and who end up needing to re-specialize on shiny new frameworks when old ones are discarded in an endless cycle of framework insanity.
In my 25 years of programming, I've never seen the ever-progressing march of new frameworks really solve the underlying technical difficulty of engineering software. Sometimes they help, more often than not they hurt, and are more often than not ephemeral in the grand scheme of things.
My point is: frameworks (when they work) simply unlock the next level of complex problems for general "tackle-ability", and those problems require hard engineering to solve. We certainly haven't run out of complex computing/software engineering problems to tackle yet, and I simply do not see that slowing down.
The process of stratification is not driven by inherent complexity. You're absolutely right in that we still have, and will always have, hard problems to solve in software.
What I'm referring to is the fact that businesses do not have to solve all of these problems. And businesses are what ultimately drive the field. Think of all the other really complicated fields out there. Music, law, medicine. Still hard problems to solve in all of them.
Let's take music as the example at hand. We'll never reach the end of what's possible to accomplish with music. Yet there is an entire industry around it that commodifies musical services. You can spend an entire career focused on something exceedingly arcane like mid-sized arena acoustical materials.
We haven't gotten that way yet with information technology, not because we can't get there, but because the field is still so very very young. Music has been an industry for thousands of years. The modern arena builds on technologies developed for theatre in ancient Greece.
You're right, each advance makes for new problems to solve. But unless you can make a credible claim that this time it's different, the field we inhabit and make a good living exploiting will move the same way every single other engineering field throughout history has always moved.
I usually am hampered by frameworks, too limiting, I work better with free to form code and as self contained as possible libraries with flexible "do one thing well" responsabilities
Frameworks probably only make some specific things easier? But given the choice between spending an hour fighting against a framework, or an hour solving the same problem with more elegant tools, the latter is so much more useful in both result and what you learn from it.
I think the author is projecting a bit. After all, the skills needed to write an opinion piece for Wired are darn near universal, and supply has exceeded demand by so much for so long that such writing is practically blue-collar. I contend that the skills needed to make a career out of programming are just a little less accessible or familiar to most people. Being a programmer might be comparable to being a plumber or electrician, which are "blue collar" but also very respectable and often profitable professions worth aspiring to, but it's never going to be like the kind of unskilled labor that people line up at Home Depot - or Wired - to do.
Maybe this forum isn't quite situated to appreciate how dismal coding is for the average coder. Folks here tend to have interesting jobs making new things.
Imagine being one of the masses of coders slaving away at some dinosaur code base in a large company. Working with ghastly C++ code, 1M lines of cruft, moving from one platform to another for the Nth time. Writing a 'unit test' for an 'if' statement buried in some spaghetti code that you yearn to replace but no, your Agile board says change this if and retest.
They outnumber us probably 100-to-1. And they're definitely, totally, blue-collar folks.
1. This is an article from Dec 2016. It should have a (2016) in the title.
2. Those jobs are already getting eaten up by more flexible products and tooling. This will accelerate, because the hiring firms aren't trying to innovate here, just keep up with their industries. As the requirements are relatively stable, some shops will spin off their internal products into separate businesses and others will buy those instead of building their own.
3. The underlying analogy of a blue collar programmer is closer to a plumber or electrician. The difference is that our tools are way smarter and getting smarter than wire or pipe.
I think the notion that coding is 'blue collar' is extremely dangerous. The closest 'traditional' job to software engineering is legal drafting -- anything but blue collar.
The meaning of coding has changed a lot. It somehow changed from cpu, algorithm, data structure, relational model, programming language, http/tcp-ip to whatever latest js frameworks, whatever aws provides, NoSQL-ing everything and neuro-networking everything. And I feel like the way programmer solve problems seems to be evolving into finding whatever framework/SaaS that solves 50% of the problem, and bending the remaining problem at hand to fit the framework/SaaS they chose
I really think the comparison here is apt. Although a more direct comparison would be that coding is a trade. Something that can be self-taught or learned through apprenticeship. Something that doesn't require a degree. Something that can be done for a company or as a freelance gig. Something that pays well relatively speaking.
The article talks about highly skilled “blue collar” job. It compares programming to mining, saying mining requires teamwork, engineering abilities to solve complex problems etc.
If that’s your definition of “blue collar” then yes that makes sense. Coding just won’t be the next low-skilled job.
I get that there's a lot of people here who don't want to think about the work they do becoming commoditized, and I get why. But I've been in the same line of work for twenty years now, and the reality is that it really just isn't that hard or that special.
The only part of it that's uniquely difficult is dealing with complexity, and complexity is something that a skilled senior can largely manage for juniors while they're working their way up the learning curve. In that sense and most others, it's the same as any other skilled trade; it's just a trade that happens to be in very high demand lately.
There seems to be a lot of elitism. Most coding is nothing special or particularly hard. Within a short period of time most people could get up to speed to fill a lot of the roles. You don't even need a college degree of any kind.
Senior level is different but that takes at least ten years in my opinion. And senior requires a lot of mentoring of juniors. Again this is only my opinion, if you aren't actively mentoring. You are a mid
Frontend javascript programming is already blue collar. Very little science left in most tasks, most of the time you are just smashing together packages and declaratively building interfaces to the point that most of the hard work has been done for you.
That's what they said in 1988 when I started my career. Seriously, the same sort as the article writer were saying the exact same thing in the 1990's. Nothing has changed. They were wrong then and are wrong now.
Someday, they may be right, but that doesn't make their "analysis" any more valid. Broken clock and all that, don't ya know.
Even highly trained software engineers can barely get security correct. What makes this journalist think somebody with a few years of high school programming can do any better?
I'm not sure I buy the "blue collar coder" prediction. At least not in the US. That type of work is currently outsourced to India and parts of Eastern Europe. There's an entire industry of code factories that already exists - are these US-based blue-collar coders going to be any more effective than off-shoring?
And within the US, code already permeates other professional roles. Staff accountants and data analysts do lightweight (and sometimes heavyweight) programming in Excel and other business tools. And hobbyists program things like home automation in Lua.