I've tried consulting a couple times. The most recent of those, I tried it with a partner. He didn't know much about web development. I had to teach him a lot. He got significantly better, but he was still what I'd consider junior. At some point after we gave up on consulting, he was applying for a web dev job..
Him: "They asked me to rate my CSS skills. I told them I was probably at about a 9 out of 10."
Me: "You're kidding."
Him: "No, why?"
I told him I'd been doing CSS for around a decade, compared to his single year, and I'd only give myself maybe an 8 out of 10. I told him it seemed intensely arrogant to be hand-fed knowledge by someone else, without ever having had to fend for yourself within that skillset, and decide that your own knowledge had become equivalent. I told him the things I'd been wanting to say to overconfident developers for years.
Thing is, it's not primarily arrogant developers who annoy me. It's the industry that rewards them. I can't count the number of times I've seen dipshits be elevated to positions of authority on the strength of their bluster alone, while people who've paid their dues and acquired the rare and genuine ability to discern their ass from a hole in the ground continue going around in circles, being tested over and over again and never being credited with the substantial work they've already done. I'm finding myself exhausted by open source projects that attempt to solve the same problem again and again, attract a lot of attention, yet do nothing to move the craft of writing code forward, just provide a shorter shortcut. I'm more exhausted by seeing the young white men who often helm these projects, fresh out of school or some completely different paradigm, exalted. For nothing. For deploying buzzwords. I'm exhausted by conversations with people who aspire to be and probably someday will be those exalted young white men about how they've thrown over the previous trendy shortcut in favor of the flavor of the month and it's improved their development process so much.
Like a lot of people who've been doing this for fifteen years, I feel I've paid some dues. When that's not recognized, it's frustrating. When the rules I followed don't seem to apply to other people, it can be maddening.
"but we're special"I read a lot of bullshit about how engineers are so much better than other industries, or are so similar to revered creative classes. We like to paint ourselves as though we are, no seriously you guys, exempt from the rules the rest of the working world abides by. I can even sort of imagine how a person ends up believing that. I imagine growing up in a big middle class home, someone else feeding me and cleaning up after me, no pressures in life except to go to school every day and get good grades. I imagine being rewarded that whole time for my staggering intellect because OMG I was able to type a computer program into a big beige luxury abacus. I imagine graduating high school with community recognition, the connections that people in middle class society seem to develop with no more effort than breathing, and a degree - a key that opens a door that's never been locked to me to begin with - being completely optional. I imagine moving from my parents' home to my own apartment, easily affordable on my "starting" salary of $50k/year. I imagine this being my first job. I imagine the successive accolades, salary increases, and headhunter wooing seeming like the most natural thing in the world. And then I wish like hell I were in any other industry.
Of course, the number one privilege of privilege is being ignorant of it, so it's probable that no one to whom that paragraph applies actually read it, or they read it and believe it doesn't apply to them because they completed half a liberal arts degree but felt unfulfilled, or have credit card debt, or some other hardship. So whatever. Of course I'm not talking about you, dear reader. I'm sure you didn't just show up in this industry out of nowhere five years ago and expect it to lay its wreaths at your feet. I bet the summer you spent troubleshooting modem problems part-time in your uncle's friend's computer shop were really eye-opening, and are a completely adequate substitute for a formal education in computer science history and software patterns when you jump into MVC debates.
For real this time, though, I'm sure that's not you. I can tell because you're still reading.
I write a lot of stuff about gender diversity here, but I think this is more an issue of class, if that wasn't evident. Sadly, though, you don't avoid the glass ceiling just by being a rich girl. There are a lot of factors that seem to leave people out of the group of engineers entitled to positions of authority, because while we're usually at least superficially happy to embrace engineers of all stripes, we retain the expectation that the best engineers will be young, straight, white males from a middle- or upper-class background. That's what authority looks like in this field. Those are the people capable of innovation. Those are the people whose open source projects can be relied upon to be informed by the most current best practices. Those are the eccentric geniuses. Other people can come along and, you know, fix their bugs or something.
There was a woman at hack night last night who's making a career change. She was taking programming aptitude tests. We asked what they were measuring, and she said there were a lot of general logic problems. It's ironic that an industry of people who value our aptitude for logical reasoning so highly would fail to notice that there's a completely illogical conviction that we're a meritocracy, yet our leaders fail utterly to represent anyone in the industry outside of a very narrow demographic.
Also, I don't want to hear any shit about how women are represented. Speaking at conferences is one measure of authority. Most conferences have one or two women speak in a nod to diversity and then feel free to relax and fill up the other slots with men. After all, they don't want to look like they're picking women instead of the best person for the job. If you ask anyone to choose the best developer in their particular niche, absent the context of what I'm talking about here - ask them to choose just one person - I think the name you'll always be given will be a man's. Because it's fine to throw a few women in to be PC, but come on, if the future of JavaScript rested in the hands of one person, we want the most qualified, right? And we don't challenge the assumption that's it's natural for the most qualified person to in all cases match the profile above.
In the context of all that, it becomes unsurprising that paying your dues means fuck-all. There are people who will pay the same dues their entire careers, and there are people who will never pay any. There will be exceptions, but over the lifetime of a person's career the industry will probably correct for that. And, to a degree, it explains the at-times staggering arrogance of newbie developers. If your heroes had succeeded without ever having dirtied their hands with legacy mainframe code, you might expect the same to happen to you. The only heroes you're likely to see when you're starting out, of course, match that same young-straight-middle-class-white-guy profile. If they wrote mainframe code, it was for funzies.
the industry has to fix thisWe have an old-boys club, but with young boys. We keep people down. We frustrate people who want to and are uniquely qualified to do great things. We ignore their contributions and their knowledge. They do leave because of it. We should want to stop that.
As an industry, we need to learn to mistrust arrogance. We need to stop being afraid we'll be remembered as the person who said no to the next Steve Jobs. Most people are not Steve Jobs and are never going to be. And if you treat all those people like Steve Jobs, you're going to get a lot of spoiled brats without the discipline to check themselves or the humility to take criticism. That's extremely bad. It means circle-jerks instead of progress. It means we don't learn from our own short history.
We also need to reward the paying of dues. Yeah, it's snarky when someone says something like, "NoSQL? Oh, you mean what we did before we had SQL?" It's also a fair fucking point. People are going to shit all over your parade sometimes, and sometimes they're going to be right. The solution is to not go planning parades through streets somebody else paved without asking them for directions. Seeking out established expertise is something that happens all-too-rarely. Rather than finding and asking someone from outside our teams who's already solved a problem, we often ask the person with the greatest authority within it. Hilariously, it tends to be the most skilled people who make the biggest point of asking for the experience of others before diving right into a problem. They don't necessarily emphasize that fact to their bosses, however, which leads to the perception that one young cowboy or cowgirl can be just so goddamned smart that he or she is right about literally everything, even with no experience. He or she probably is not.
the industry is made of peopleI can't make your boss stop hiring people who spew buzzwords and talk about how they were too smart to get a diploma. I can't make conferences start booking the person who fixed the most onerous bug to speak, instead of the author of the library. I probably can't even get a post about what writing COBOL for the state taught me about how you should run your stupid fucking startup at the top of Hacker News. But if I managed not to lose you yet, maybe I can get you, personally, to stop encouraging this shit. Don't degrade yourself and your profession with dick-measuring contests with your peers. Especially don't do it with your juniors, who may take the example to heart. By the same token, don't "test" other engineers. Don't condescend to them. Shit, assume that they know more than you do. They almost certainly do, about something. I mocked people from a certain demographic up above, and you probably recognized instantly how foolish that was. Those people have paid dues, too, just not the same ones I have. They can learn from me, but I can also learn from them.
As individuals, we need to stop expecting shortcuts. We need to learn to reject rewards we haven't earned. When someone asks us something we don't know, we need to be confident enough to say so, and suggest someone who might. Because we all want a meritocracy, and the only way we get one is by being brave enough to believe it can actually happen. If we keep acting like an industry of frauds who would be thrown out were it not for our self-aggrandizement and our politicking, we will have exactly that industry. As individuals, we'll be better hustlers than we will developers. Fuck that shit. Pay your dues, and ask the same of your peers. When they do it, offer them the same respect you'd want. Simple.