DEV Community

Cover image for Developer is the next blue collar job
stereobooster
stereobooster

Posted on • Edited on • Originally published at stereobooster.com

Developer is the next blue collar job

blue collar
People who generally do not have a college education, and go straight into a physical, or modest working-class job after high school.

urban dictionary

Blue collars sometimes defined as low skill job, often a manual labor. I would define it a bit another way - it is job which requires low training (at least up front), so people who can not afford university go to this job, or people who get into complicated situation or lost their previous job, basically when you tight on the budget and you need money right now, and you need to start now or ASAP and you don't have time, or better say privilege, to spent 5 years in university.

Side note: there is an article with similar title by Wired, I found it after I started to write mine.

Demand

Everybody needs a website today or do some basic business intelligence (even if it is done with Excel) or do some email delivery to the clients. There are, for sure, PaaS solutions, but sometimes it is not enough and companies hire tech-savvy people to manage all those things, which may not even appear as a programming in first place.

A number of tech companies are growing, there are tech companies whose clients other tech companies - that is how big the market is. From what I can see the demand for developers (also QAs, designers, UX experts) is growing every day.

Same time other professions are on the way to extinction, especially monotonic manual labor which is being slowly replaced by robots, drones, and automation.

It would be nice to open development for a wider audience, but to do this we need to change some practices in the industry.

Education

Does the software developer need a university degree? It depends. If developers are responsible for some critical system, then yes they need to study some math and formal methods, because the price of the bug can be a life, a very expensive rocket, a lot of money etc.

But if a developer needs to do Wordpress theme, I don't think they need to spend 5 years in university, 1/2 year in coding bootcamp will be enough (10 times less). Don't get me wrong it doesn't mean that Wordpress theme isn't a "real programming" (it is), or it is not cool (it can be). It just needs a bit different skill set, visual design will be more useful than mathematical statistics. And you can start with less knowledge upfront and learn while you are working.

Don't take this argument as if consider education bad or redundant - if you have time and money and ability, go ahead and learn all the things. Knowledge is a virtue.

It would be nice to have programming as school discipline, the same way as reading, writing, and arithmetics.

On the other side, you can learn at university some combinatorial math and other computer sciences. Then you graduate, try to find a job and it appears that companies are looking for PHP or Rails or React developers or other technology that didn't even exist when you studied. They didn't teach me web a11y, or graphical design basics, which would be useful for my web developer career.

For sure there are companies which are looking for theoretical knowledge (like computer science) rather than practical skills (like React), but I guess there are less of them and it is harder to get in.

Interviews

Interviews are a mess.

They ask computer science questions, like build LRU cache or what is the O(N), but hire for frontend developer position to move pixels on the screen (no disrespect, I'm front-end developer myself).

They ask to solve some puzzles on the Interview, but you end up working with requirements, which is not about puzzle solving, but rather about a patience, and communication.

So many times I was hired for one position, but end up doing something different, for example, I was hired as backend Ruby developer, but later switched to frontend as React developer.

I "like" when position lists all technologies ever used by company, and it is expected that you would know every one of it, like frontend position, but it lists as a "nice to have": kubernetes, java spring boot, Kafka, MongoDB, Angular 1 and obviously you need to know all React RFCs which Dan Abramov showed yesterday in a conference.

Gatekeepers

Gatekeeping is wrong on so many levels, I even not sure where to start.

In some countries, developers are getting 10-100 times more than any other profession. For those people, developer position is a ticket for a new life. They can feed the whole family for one salary.

Should they be stopped by the fact, that "if you do not feel like you are painting when coding you are not a real developer"? No. Do your thing, don't pay attention to gatekeepers.

The software developer is one of the professions which allows working remotely. This can be so helpful for single parents or people who need to take care of someone with a disability.

Nobody should take away this opportunity from people. Shaming people because "they use 1000s of npm modules to deliver simple website" is inappropriate. This is not their guilt, this is a problem of the platform, of the tools. Give people better tools, give people accessible education (without the steep curve).

Ergonomics

We can not do tools the old way anymore. (By tools I mean programming languages, platforms, libraries, frameworks etc.) We need to start thinking about ergonomics upfront.

Before programming was a profession for some, now it includes hundreds of thousands of people. Each "hiccup" in the flow will cost 1000s of work-hours (even if it is 5 min per person).

  • Error messages should be clear, like in Elm
  • Frameworks and languages should provide codemods and upgrade path, like Ember.js
  • Languages should come with package and version manager, like rbenv and bundler
  • Choose convention over configuration, like Rails and Create React App
  • Languages should come with formatter, like gofmt or prettier
  • Languages should not include footguns, for example, prefer GC over manual memory management
  • Languages with footguns should include linters to warn against tricky parts of the language
  • Languages should come with static analyzers to prevent bugs at runtime, like advanced type systems or borrow checkers
  • All tools, like test runner, static analyzer, compiler or transpiler should have watch mode
  • All tools should have a short time to re-run, like OCaml and go compilers
  • There should be official starter projects and easy way to set up a development environment, maybe with docker or with one simple command

Side note: if you about to argue that it is not possible to write real-time programs in GCed languages, it is not true with the latest research, for example, Pony have non-stop garbage collector it combines actor model (like Erlang) and borrow-checker (similar to Rust).

Platforms should be designed without a steep learning curve, it should be easy to start and possibly learn on the go. Everything should be sandboxed and secure by default. It supposes to be hard to do the wrong thing.

Unions

A number of workers in the industry grow every day. More and more people with different backgrounds, more and more vulnerable people - people with a desperate need for money or people from minorities. Those people not always have powers to stand against companies, to get their rights protected. They need protection - unions.

Unions could help to fight against unethical decisions of companies.

By looking on those arguments at twitter about frameworks or where to put semicolon I hardly can imagine programmers joining unions, but who knows.

Photo by Randy Fath on Unsplash

Latest comments (43)

Collapse
 
desolosubhumus profile image
Desolo Sub Humus 🌎🌍

I tend to think of gatekeeping as more like my resume getting shredded because I don't match the programmer stereotype. I don't have a CS degree, or any degree, for that matter, I didn't go to the right college, or any college at all, really, I'm not the right sort of guy, or a guy at all (I'm a woman), really, I don't live in the right city, or even a city at all (I'm rural), I'm too old and therefore not a good match (even if I keep getting mistaken for someone over 10 years younger when people actually meet me), I don't make enough money to live close enough to any job openings and remote working is only available to senior developers, and on and on. It's hard to convince an employer that I'm passionate about code or that I have soft skills when they won't look at my resume or take my calls, much less give me an interview.

Collapse
 
stereobooster profile image
stereobooster

There are companies which ready to take juniors remotely - remote first companies. I hope you will get through this barrier. Hang in there. It will get better

Collapse
 
desolosubhumus profile image
Desolo Sub Humus 🌎🌍 • Edited

I've seen companies like that, but they generally require that people live in the same state (in the US) or in the same country (outside the US) for that to happen. Due to the specific state in the US I live in, I'm rather screwed for that.

I do hope it gets better, though after over a decade of rejection before I can even get to the stage where a human looks at my resume (Booking.com was the one exception, but I was still rejected well before the interview stage), I'm not holding my breath. Gatekeepers are the worst; even more so when the gatekeeper is a faceless bot.

What disappoints me the most is that while code itself isn't sexist, racist, classist, or any other -ist, but algorithms can be written to mimic such -ists. I truly do hate seeing code used like that.

Collapse
 
schmowser profile image
Victor Warno

Thank you for this insighful article! I frequently wonder whether software development is a simple job - able to be done by everyone who is willing to learn systematically - or a hard job - requiring everyone to have a scientific degree. Really depends on what you are working on.

Especially scary are the stories you provided about the impact a bug can have. That such a machine for radiation therapy can be programmed by only one (!) developer is astounding if not utterly dangerous. That just shows how important communication and teamwork can be in the development world. Pair programming, peer reviews and thorough testing could have prevented some accidents. But surely, there have been holes in different parts of the conception.

You just made me want to reread Clean Code! You just made me think about possible ethical discussions developers will face! :)

Collapse
 
david_j_eddy profile image
David J Eddy

"...there are tech companies whose clients other tech companies - that is how big the market is." I have a friend that works for a small support center than is a client of a domestic support help desk that is a client of an international on-site service provider than is a client of a global hardware manufacturer.

Yea, like programming the computer field is abstracted all the way down.

Collapse
 
primercuervo profile image
Nicolas Cuervo

The main thought I had while reading this article: Developer != Web Developer. I had the impression during the whole article that it was written only having in mind that the interested reader is doing front-end, which is clearly not the case for the case of reading or the whole generalization of saying "developer is the new blue collar job".

Developing is, as you state correctly, more than just knowing how to code. I develop for a living and I certainly didn't spend get my bachelor's and Master's degree in computer science, because for me learning a computer language is like learning any other language: I need to communicate to the computer so that I does what I need it to do. I don't do front-end, but certainly I'm in the position I do now thanks to the education I've had.

I've seen this over-generalization a lot in dev.to, and I normally don't care about it because, well, there are just a lot of people making amazing posts that are interesting for me. But I believe the title is misleading to the point that new developers (or even some experienced ones) should know that there is a whole world out there that needs capable problem-solvers with a strong theoretical background solving everyday problems, which are engineers (not necessarily, almost rarely, computational engineers/computer scientists) who develop, ergo developers as well.

 
stereobooster profile image
stereobooster

I'm not sure if you realise this or not, but we were arguing about "if puzzles are good way to do interviews or not" and arrived to the place where you incriminate me committing discrimination. Which is ad hominem by definition:

You attacked your opponent's character or personal traits in an attempt to undermine their argument.
-- yourlogicalfallacyis.com

I generally don't mind, I just want to point iconicity of the situation.

 
stereobooster profile image
stereobooster

These two sentences are mutually exclusive.

No, they are not. There are some acceptable behavior and some unacceptable behavior, for example, you can't kill, torture or rape people (exaggerated example). One person's freedom ends where another's begins. So being different, as different race or sex or sexual preference or being disabled doesn't limit other's freedom, but being a jerk is.

You tend to judge people by your own standards,

Those are only standards I have. Do you have like some additional set?

which basically means you discriminate and oppress them in the first place.

Discrimination would be, for example, if I would say that every woman is... If I'm saying that this person is a jerk this is not a discrimination (and if I'm sure I don't have any hidden biases).

 
stereobooster profile image
stereobooster

If this is not a discrimination, I don’t know what is.

Discrimination is the unjust or prejudicial treatment of different categories of people, especially on the grounds of race, age, or sex.

Jerk is not something person was born with, jerk is how a person behaves. So no this is not a discrimination. They can choose to stop being jerks.

But even despite all the above, I’d prefer to have a professional jerk in my team rather than stupid guru of intercommunication. I am working in CS, not in the shelter for aggrieved.

I don't need to add anything to that. Exactly why I wrote my article. I'm saying we need to open doors for people who typically discriminated and oppressed and you suggest to hire more jerks who will discriminate and oppress people.

Jerk is somebody with lower empathy level - they don't feel when they offense people, they believe because they can solve puzzle or two they better than others. We all people, we are different but this doesn't make one person better than another.

Thread Thread
 
rkfg profile image
rkfg

But even despite all the above, I’d prefer to have a professional jerk in my team rather than stupid guru of intercommunication. I am working in CS, not in the shelter for aggrieved.

It's so refreshing to see an actual adult person in IT, focused on the job. I believe this is the right mindset required to invent and push the industry forward. And no, I'm not being ironic or anything, I'm pleasantly surprised that not babysitting people in a huge curated IT-kindergarten is still a thing. Best of luck to you and your company.

Collapse
 
stereobooster profile image
stereobooster

I am the one asking to solve puzzles on interviews. This is the best approach to know the candidate’s way of thinking.

1) Imagine you hired a person who excelled in puzzle solving. Now they work in a company and product manager ask to add another feature. It doesn't fit in the current architecture, a good solution would say no or plan out propper refactoring and later implement the feature, but PM insists and it is possible to hack around it (a person can and like to solve puzzles)...

2) People who like puzzles often have a blind spot for complexity. They can and like to solve puzzles so they barrier for complexity is higher, they can create a pretty complex solution without realizing it. So I would test candidate for simplicity "tooth"

3) The interview is a stressful experience already, asking this kind of things makes it even worth

4) If I would be asked puzzle questions on an interview, but actual job ends up being not that "puzzly" I would be disappointed. I don't know what you interview for, maybe it is justified, but in most cases not

Patience level and communication skills are not ever checkable during the interview process.

When I said communication, I meant basic levels, like simply not being a jerk, don't insult people, don't create a hostile atmosphere. And this is pretty easy to spot, just ask them to remember something, like about their previous job or similar. I don't know why, but jerks can't hold it, they will show it.

Collapse
 
kayis profile image
K

We are just moving on.

Ten years ago I built websites, today I develop mobile apps and design serverless systems.

Ten years ago I was a dev hired in marketing, today the marketing people do this work by themselves.

Sure the development field gets broader and broader, and looking at the masses of 3-6month code-camp devs flooding the market, there is much blue-collar-ish dev work to be done than in the past, but this doesn't mean that there will be enough white-collar-ish dev work to do :)

Collapse
 
offendingcommit profile image
Jonathan Irvin

But if a developer needs to do Wordpress theme, I don't think they need to spend 5 years in university, 1/2 year in coding bootcamp will be enough (10 times less). Don't get me wrong it doesn't mean that Wordpress theme isn't a "real programming" (it is), or it is not cool (it can be). It just needs a bit different skill set, visual design will be more useful than mathematical statistics. And you can start with less knowledge upfront and learn while you are working.

This stuck out to me. The analogy I'll use here is you don't need to be a mechanic to drive a car, you need to be one to fix it.

In lieu of this, you don't need to be a developer to operate a Wordpress site. Several engineers and developers came before to make that process ultra simple.

You don't need a design degree to download a template you purchased on a marketplace and start adding content, but it helps make your site easy to navigate.

If the site breaks, you should know how to fix it. You should know where it's hosted and how Wordpress gets its configuration. You should know where the database is hosted and how to manipulate the options table.

My main point is you should never minimize the work going into something. People's training and experience make their profession what it is.

Collapse
 
stereobooster profile image
stereobooster

I'm sorry I didn't understand what you want to say - you started with one analogy, but end up with different conclusion.