> According to a recent study by Course Report, 36 percent of academy attendees are female, and women who graduate from academies actually earn higher average salaries than men.
Can we please put to rest that women can't make it in this industry?
The number of women in the software industry when they join it might be roughly equal to the number of men, and their salaries might well be higher, but after a few years a lot of the women have left. That's the problem. The industry is set up in a way that isn't inclusive, doesn't treat people equally, and in a lot of cases is actively anti-women because hiring practises don't deal with things like pregnancy well enough. Looking at people who're entering the industry is interesting, but looking at people who've been there for 5, 10 or 20 years is more interesting.
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.
> The number of women in the software industry when they join it might be roughly equal to the number of men, and their salaries might well be higher, but after a few years a lot of the women have left.
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?
Not at all. They're paid more because the only companies that hire them are good ones, who pay well, and who understand women are just as good as men. In order to have equality the bad companies need to start being equal too. That doesn't make men victims. Men have many more opportunities than women, but mainly at the bottom where companies pay badly.
Now this is a nice thing to believe - the only companies that hire women are the good companies. I assume they're good by virtue of hiring women. So, company + hires women + pays them well => good company, good company => does well on the market. I don't think it stands to scrutiny. I'm not sure if you mean that those companies are morally good, therefore successful on the market (generally, the reverse is true), so I'll ignore this point, but I propose another interpretation:
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.
Whenever I see these sort of topics discussed, I rhetorically think: why is there no initiatives to make careers like HR, veterinary work and other areas more inclusive.
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.
> Whenever I see these sort of topics discussed, I rhetorically think: why is there no initiatives to make careers like HR, veterinary work and other areas more inclusive.
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.
> 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.
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.
Project this a decade into the future and I envision all sorts of talk-radioish belly-aching from middle-aged GamerGaters who pretty much did it to themselves by sticking strictly to the easy bits and building MVPs without ever diving deep and building something great.
I'm not quite sure why this is happening, but I have noticed the trend. Future Shock maybe?
The "not enough women in tech" thing is driven by tech CEO donations, I think (over the last 3-4 years anyway). That's why those articles about it and institutions keep popping far more often.
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 :)
Your analogy is a good one for types of programmers - that disciplines of construction/software worker are not interchangeable (though lots of crane drivers can also drive a forklift).
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.
> 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?
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.
> But they’re solving a very real and important problem, and they’ll get better at it.
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.
> But it is always disappointing to see how much of the apologia is supported by tech workers themselves.
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.
Part of the elitism is just immaturity and childishness. It's a field dominated by younger people and with that comes some childish benavior. Not all young people, but overall you get more of it.
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.
>Is a front-end developer not a “real” developer if she can’t describe what a bubble sort is or does?
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?
Software development is my profession, and I welcome everyone and anyone willing to learn. Trying to hold onto it like it's some sort of exclusive club is ridiculous and childish.
> I remember being laughed at when I told more experienced colleagues in 2004 that the only programming language I knew was JavaScript. I wasn’t a “real” programmer yet, according to them, because I hadn’t learned how to write assembly code.
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.
I would, in fact, argue that computer science is in fact deeply anti-elitist; there are no formal barriers to entry, the discipline has no hidden knowledge, there are no licensing and accreditation requirements. Difficult is not the same as elitist, and it's an abuse of the language to conflate the two.
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!
When a technical interview happens, two (of many) competing motivations arise within the programmer who interviews a candidate:
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.
This isn't unique to software. You'll find similar criticism of education institutions that offer quasi-substitutes for four years of education in a few weeks, with almost universally lower standards. E.g. Phoenix.
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.
What a clickbait, provocative article with nothing beyond a single anecdote, not even a second one other than the generic "you've never written assembly so you're not a programmer" comment. Seriously has anyone heard a programmer say this in the last 10 years?
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.
Almost every time a PHP or JavaScript project is brought up here, the fact that it's written in PHP or JavaScript is always used to negatively comment on the project and author. Just because someone doesn't like a language, they see fit to demean the author.
It is extremely hard to maintain good and safe codebase in both languages. Which is important when you make code that other people use. Above couple of hundred lines of code you need either some form of type safety or very talented and disciplined programmers.
You're commiting the same exact mistake the article is. This is the vocal minority who is, you know, vocal and unrepresentative of all software developers, the majority of whom have little to say about the religious battles on online forums and don't give a damn about programming except to feed their families.
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.
> 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?
Not really. Doctors are part of a very science/research heavy industry so most of the serious research is focused on them but the relatively few sources available on lawyers have the same conclusions about competitive, economic, and intellectual incentives selecting for a very narrow class of people. The really interesting part comes when you expand your outlook beyond the Western research world (which very few metastudies in psychology do, unfortunately) where these results aren't always so clear cut. It appears that a culture such as the one in India or Cuba, which heavily emphasizes education in family life, can have turn a lot of that arrogance into humility.
I think people can write good code in PHP and JS and I think those standards for what is "good" have been elevated a lot in the past 5 years. PHP and JS still seem to carry this tarnished reputation with a lot of people and so many (especially in IRC) immediately discredit it with some hyperbole. Yeah both languages have their shortcomings, but there are so many patterns in place to use that can make the code well structured, perform well, maintain well, etc. If there is one thing that drives me up the wall a bit, it's people who go on sites like this one and internalize all the PHP and JS hate without hardly ever using them. By the time they have to at some point they already hate it so much that any part of the language that is "different" is now a negative quality.
Swap the meaningless "real programmer" to a much better defined "efficient programmer", and all the seemingly "elitist" comments will start to make a lot of sense.
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).
It might have been an effective thesis if it didn't start off by defending coding academies. I think it's a given today that your ability to do the job trumps your ability to generate credentials for the job, but stripping specialized developers is setting yourself up for failure. Also, in many cases it makes sense to have at least someone on the team with some academic exposure to specific problem domains. Most people can write some code to accomplish the task, some people can be clever about it, but sometimes you also need people who can refer back to their <data structures, algorithms, math, whatever> classes so they can either write some performance critical code, solve a hard math problem, or assess the engineering design decisions from a more trained perspective -- especially in an industry dominated by egos, is ego + lack of specialized knowledge always the best approach? Certainly it gets stuff done. Also, as devs get older (years more experience picking up specialized knowledge along the way), this problem can obviously be mitigated.
Edit: to be fair, I mean stratification is appropriate at a project level of organization level, clearly you should be pigeonholed.
I think the elitism problem is with people in the technology media specifically like the person who wrote this drivel. What companies are being mean by telling the truth about a 6 week 'boot camp' that will make a liberal arts major code like linus torvalds? Maybe theres a shred of truth to that... as someone else said, should we have medical bootcamps for open heart surgery? How about for flying airplanes? Or designing boeing engines? Good idea or would that not be adequate? I think people see magic around computers and somehow think its "simple and easy" to code if you just learn a few key phrase as if it were a spanish course or something. We know otherwise.
Instead of proving the thesis, the article merely describes what elitism is. Ironically, this definition proves that programming is probably the least elitist field there is.
> 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.
There's a certain degree of irony in a man who pens an article to complain about elitism in his industry who bakes his social climbing right into his title ("engineer turned founder-CEO").
"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?
> We should not stratify programmers into classes. A flood of newcomers into many related yet very different programming careers should be welcomed and encouraged. Code is a medium to solve problems, and we should applaud when we see so many novices eager to find tools to solve problems.
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?
Here are all the sentences where the author talks about people using the term "real" programmer:
> 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.
53 comments
[ 4.4 ms ] story [ 124 ms ] threadCan 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).
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.
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.
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?
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!
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.
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 :/
Edit: to be fair, I mean stratification is appropriate at a project level of organization level, clearly you should be pigeonholed.
> 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.
"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?
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?
> 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.