Software Developers’ Growing Elitism Problem
techcrunch.com
techcrunch.com
Elitism exists everywhere and I don't see how software development is any better or worse than the rest. We have an arrogant vocal minority just like everyone else, it just so happens they are the people for whom blogging and displaying their arrogance has a lower barrier to entry than for other groups.
》 Coding academies have opened new doors for people with a variety of backgrounds, many who couldn’t afford a more traditional four-year computer science degree, or may have been steered clear of a technical degree in college (or younger) due to societal pressures or family culture, just to name a couple.
BAM. 'nuff said. Why bring elitism into this?
Edit: Even better, someone has already done that in the comments here on HN for this article: https://news.ycombinator.com/item?id=10637947
If you want an example of a real problem of elitism go look at the metastudies on narcissism, which talk about how the selection process for surgeons (brain surgeons especially) tends to select for egomaniacs and results in a very politically charged industry.
Are there any surprising findings there, or is it just what you could reasonably expect after putting people through 10+ years of life-sucking training, deep in debt, to work on the most complicated thing humans ever had to deal with - but under time pressure and tremendous emotional load?
And now everybody learns the same way?
I can tell you that for a self-taught person, learning by yourself is much faster and deeper than being taught by someone.
Tell that to John Carmack.
I guess because the author feels insecure about the accusations leveled against his company - that they toss out underqualified developers.
He wants it to be made clear that his type of elitism (running a big important software company) trumps your kind of elitism (knowing all about pointers, assembly, big O notation and data structures).
Something like that anyway :/
Yes. The "very real and important problem" is not what we're supposed to think it is - diversity - but it is real nonetheless. The "very real and important problem" is that capital hates high labor costs, and needs to find a way to slow or stop the rise in developer salaries.
All these articles about the terrible, terrible shortage of developers, about the importance of diversity in tech, about the necessity of lifting immigration restrictions, about how we need need need more developers in software engineering programs right now, about how actually screw it, just more developers in boot camps would be good enough - it's fundamentally not about any of those things, it's about how capital can control labor costs. It's about how to make software developers a) cheap b) plentiful and c) interchangeable.
And now you understand why articles breathless about developer elitism and coding academies and articles that discuss ageism in tech are almost without exception disparate sets. Older developers ask (or are expected to ask) for more money.
This is no surprise; this kind of behavior was well-known and documented even as far back as Adam Smith. But it is always disappointing to see how much of the apologia is supported by tech workers themselves. Or at best, we accept the framing of the problem and then argue about whether developers are actually elitist or not, and about whether people who graduate from code academies are good developers.
It's insane how quickly we forget history, even our own internal history, in this industry. Just as a small unrelated example, take the monopolistic cases of IBM, followed by Microsoft, followed by Apple. I've often wondered if it's a cost of the rapid pace of development of technological power, or just that the industry is still so (relatively) young.
However, people do need to respect the craft.
The demand for skills is massive, and so now everyone should learn to code. You don't become an expert from taking a 6-week bootcamp. It's a profession. You study the field. It takes years to master.
For those who actually care about the craft, there's no condescension toward someone starting out - but let's not pretend the bootcamp grad is already deeply skilled.
"Elitism grows out of arrogance mixed with insecurity. Elitists aren’t interested in sharing knowledge, they’re interested in being the source of the knowledge. Elitists are only interested in disseminating their knowledge to the larger population if they are the authority."
Like, say, if they're the engineer-turned-founder-turned-CEO of a coding academy for instance?
In that case - objectively yes - one of the disciplines is better than the other. If you know C and Haskell everything else is trivial in the language world. Also anyone that demands of you knowing about O(n^2) sorting algorithm is not a person you want to work on any serious task with. So she of case given should run away as fast as possible from that company.
From an old joel spolsky post:
I have never met anyone who can do Scheme, Haskell, and C pointers who can't pick up Java in two days, and create better Java code than people with five years of experience in Java
The coding ability is the least valuable you have. We live in the real world - there are no spherical cows in vacuum here. You must know what blocking script are and how to avoid them, you must know how the data gets from your server to the browser - (I had a case once where the connection was closed prematurely due to overwriting HTTP 1.1 header with HTTP 1.0 from one of the servers - ngnix I think - so content encoding chunked was ignored so the file was half read), you must be ready for lag spikes in any of the scripts you load, you must know how the VM manages memory, how the DOM behaves, some of the dark corners of javascript where the unindentified behaviors lurks. Or the counter-intuitive ones.
Elitism is saying - "you are not capable of learning that". Saying "you must learn that so I can give you my recognition" is not elitism. What the folks given in the article are saying is "Kid, you must know a lot more to be able to do your job properly".
Graduating coding academy teaches you how to code. It does not teach you how to be engineer or developer.
Edit: Just to be elitist jerk - If I want to torture someone on sorting I will say - i have a file with 1000000000 int16, sort it in O(n) while using less than 512K of RAM.
> I wasn’t a “real” programmer yet, according to them, because I hadn’t learned how to write assembly code.
> They are essentially told that if they didn’t learn code for the express purpose of loving the most obtuse and bizarre aspects of a language, then they are not “real” programmers.
> Is one discipline better than the other? Is a front-end developer not a “real” developer if she can’t describe what a bubble sort is or does?
I mostly agree that it is wrong to say that people are not "real" programmers if they don't know assembly or don't love the most obtuse and bizarre language aspects or only do front end and are deficient in theory. Saying they are not "real" implies they are "fake", and there is nothing fake about simply being narrowly focused.
There's an interesting word that "real" can be replaced with that makes the sentiment in those sentences much more reasonable: "master".
I'd say that a "master" programmer should know assembly [1] and should have more experience than just front end development and should know a decent amount of theory. I wouldn't say that a "master" programmer has to be motivated by love for obtuse and bizarre language features, though...but I would say that a "master" programmer should know of those features and when to use them and when not to.
I wonder how many people who use the term "real programmer" are using it in the demeaning sense, and how many are using it in the sense of "master programmer"? I'm going to try to be careful to say "master programmer" in the future so as to not inadvertently put someone down by using "real programmer" (although I'm not sure I've ever actually used "real programmer" other than in obvious joking contexts).
[1] I wouldn't say they need to be able to actually write assembly, though. They just need to be familiar with what goes on at that level so that they can better understand what goes on with their code when it is compiled.
> Elitists aren’t interested in sharing knowledge, they’re interested in being the source of the knowledge.
Compare how easy it is to learn programming on the web to any other profession. Oh! And you can use only content that was created by professional programmers in their spare time (SO answers, forum posts, RTFMs and FAQs, all the free software), without actually using any content that was created by people who were paid for that (all the code academies) — and still learn pretty much everything.
> these novices have access to tools and shortcuts that the elitist never had
I don't think a lot of programmers actually think like that. I've never seen a programmer who declared that "if you never wrote a compiler, you're not a true programmer". This actually seems like a ridiculous strawman.
But regardless if you like it or not, there are "real" and "not-real" programmers, yes. Unfortunately, "not-real" programmers can actually have titles like "Lead Developer" and even "IT Director", but not be able to solve a FizzBuzz problem in a way that doesn't make hair stand up on your head. And for some reason, the quality of writing good code is correlated with such things as "learning programming for it's own merit", or "getting a CS degree from a good school", or "having a good understanding of mathematical logic and set theory".
(Once again, I have to repeat myself: _correlation_. If you decide that I'm saying that people without CS degrees aren't real programmers, it means that you don't know how to understand what you read).
So, I would never say that "coding academies are nonsense". Any loud, non-compromising statement of this kind is anti-intellectual and most of the time blatantly false. Even the concept of "realness" of a programmer as a binary trait is already oversimplified. But scepticism that IT professionals have about code academy graduates has a very serious root in reality.
It's not about being "threatened". It's about maintaining bad programmer's code.
Edit: to be fair, I mean stratification is appropriate at a project level of organization level, clearly you should be pigeonholed.
Can we please put to rest that women can't make it in this industry?
Something to note about the average salary - the fact women are paid more is probably a function of them being hired by more progressive and successful companies that pay more. I doubt they're being paid more because they're better - developer quality isn't related to gender as far as I know. Ideally if women had an equal chance of being hired across the industry, including the poorer companies with rubbish wages, then the average pay would be the same.
Note: we've just shifted the goalpost from "women don't join the industry because its misogynist and elitist" - as it used to be for the past year or two with those discussions - to "women join the industry about just as men do, but later (5-20 years!) leave because industry is misogynist and elitist".
Also note: women are being paid more on average.
Ok, so feminists have won, right? Can we stop with the gender threads before people realize that:
> I doubt they're being paid more because they're better - developer quality isn't related to gender as far as I know.
literally means men are being victims of sexism in the field?
The companies that hire women are the ones that can afford it. Seems more likely, but it would imply that women are less capable than men in this field. Assuming this is not true, with less women than men in the industry, you should expect proportional amounts of them in both "bad" and "good" companies. It should average out to equal pay.
Since it's not virtue, and not good companies being charitable, I smell only one other likely explanation: maybe it's profitable for companies to hire women as programmers now? If it's not because of merit, then how could it be? Maybe it's because it is fashionable nowadays to go out of your way to make it good for women, and you risk PR flop if you don't? Here. I smell sexism.
Both genders have strengths and weaknesses due to their biological and genetic differences, so it's only natural for one side to dominate certain fields.
Pushing equality to the point of progressive politics is just going to harm people. They won't be able to get into careers that they are naturally good at, for example, because it's no longer fashionable to hire them.
The answer I believe is actually quite simple: because IT is a hot field, HR is not. HR is "just a job", while IT is now recognized as easy money - you just have to spend few months learning how to bang on your keyboard, and you're off to be a next Zuckerberg or at least to be earning in your first year more than 50% of the population of your country. When the supply finally catches up with demand and average wages go down, I expect IT will be just like medicine or law - boring to talk about.
This is exactly why it's so hard to have a conversation about this issue. That statement alone pisses off a lot of people who don't believe there are differences between gender - even biological.
When they become more common, and their graduates are becoming more common in the industry, we can put it to rest.
I'm not quite sure why this is happening, but I have noticed the trend. Future Shock maybe?
It seems to be working, too.
I'll not posit why tech CEOs might be trying to drive a flood of new developers into the industry... I'll get accused of being elitist :)
Of course. Any crane operator can be easily swapped for a forklift driver. When the latter are in shortage too, replace them with the bricklayers.
It misses the point of the article though. The article is tired of people saying "forklift driver's aren't real construction workers"... which sounds pretty silly. I think very few of us drive past a construction zone and question the validity of who's on site. But we do it in tech all the time.
People and skills aren't interchangeable 1:1. Some jobs require far more ability than others. Still - if you're in the field, you're one of us.
Both do "construction", but the difference in skill and market supply/demand.
There are many very different professions. It is not silly to say that "a midwife is not a real dentist" (and the other way around).
1. I don't want my company to hire someone smarter than I am -- eventually they'll make me look bad and I'll be relegated to uninteresting work or made redundant. (Also, that person will end up condescending to me and that's simply not allowed; I'm the only genius in the village...)
2. I don't want my company to hire someone dumber than I am -- we cannot work with some half-productive person whose work needs constant fixes/rewriting/maintenance -- don't waste this brilliant team's time. (Plus, what would we talk about at lunch with this kind of person -- old episodes of Little Britain? You must be joking.)
Now, maybe this is wrong, but it seems that situation #2 arises a lot more often than situation #1. It only looks like a "growing elitism problem" to some observers, but maybe the level of elitism is the same as always. Maybe what's happening is that a lot more applicants are encountering situation #2 than in previous years.
It will always seem less common because #1 is always disguised with bullshit. "Bad cultural fit" or whatever.
#2 is never disguised.
In the US there are stringent and often legally enforced requirements for doctors, lawyers, and engineers, that programmers do not have.
That's not necessarily a bad thing, but it does mean that there will be informal restraints to counteract the lack of formal ones. Hence, "elitism".
The problem with code academies is that they offer an experience at almost the cost of a formal education, but with a fraction of the benefit (necessarily so, due to their duration).
Next time you receive services from a professional (tax accountant, architect, dentist, auto mechanic, attorney, electrician), consider whether you would be comfortable if the duration of their training was one tenth of the industry norm.
Yes.
Being able to accomplish one specific thing in a field, does not make you skilled in that trade. It makes you skilled at doing that specific thing.
A farrier is not a blacksmith. A blacksmith would probably know how to forge a horseshoe but find it difficult to actually shoe the horse. They are not really in the same profession though their professions are related.
And software development is not my profession but if it were I'd be equally protective of it and I would not welcome any mass influx of newcomers to the labour pool. Why would I?
Why can't we do both? Applaud when people reach a new level of skill (including entry level) and recognize that there are still levels beyond that which we can encourage them to strive for?
And they'd be right. You're not a real programmer until you understand how the machine functions. This is usually achieved by learning a low-level language like C, Pascal, Fortran, etc. Although I guess you could read a book on computer architecture instead.
Elitism is not the same as having basic standards. I wouldn't trust a doctor who didn't know where my elbow is, and I wouldn't trust a programmer who doesn't know what malloc() is.
As a rejoinder to the author, I would say that one can be a programmer and only know JavaScript, but one should not be a programmer and wish to only know JavaScript. Go ye forth and read some Wirth!