This is a rage post. It may trigger those who are prone to triggers. Kinda like “warning, contents may be hot” on a McDonald's Hot Chocolate.
I’d like to share my views on tech people and learning stuff. There was a question recently about why one should learn grunt / gulp if CodeKit does the same thing and that’s the status quo?
My answer to this was that if they’re the only person to ever touch that codebase, by all means keep using CK. However if at any point that code will be handled by someone else, grunt / gulp is probably a better fit. Also, as an aside, I added that I don’t take developers seriously who don’t know what grunt / gulp is.
I have been called out on that. So let’s go through all of those points.
- developers: are people who write code for the benefit of other people. Yes, they might* get paid (yay, own benefit!), but only because they’re providing valuable services to other people / organizations. “Valuable” in this context is anything that the other party is willing to part money for.
- seriously: to the point where I know they know what they’re doing. Like, REALLY know. No, the mechanic who can tell you where the camshaft is on your car is not necessarily a good mechanic. One that can listen to your car’s engine for a minute and tell you what’s wrong with it, and then repair it, and then verify that yes, that was indeed what was wrong with it, and it is no longer broken, IS a good mechanic. A great one even!
”But Gabor, you’re being an ass, why do you put down people?”
I don’t. I assume that the reason people ask questions and participate in groups on Facebook or wherever is because they want to get better. It might not be the actual case (the other one is getting validation), but I choose my assumption as such. If I can’t tell you you can improve upon a thing, there’s no point of you being there. Conversely, if I’m doing something wrong, by all means tell me. I’m there to learn.
I do not believe in the “everyone is wonderful and everyone does awesome code, although have you tried this other way? :3” kind of teaching. Sometimes what we write is just shit. There’s no better way to put it. Software is hard. It’s also broken. It’s also in control of a LOT of people’s finances / medical data / blogs / livelihoods / ramblings / cat pictures / nude photos. And it’s incredibly scary when I meet some of the industry (not you, obviously) only to learn how big of a responsibility they have, and yet cruicial skills are missing, such as what the hell XSS is.
I didn’t start out knowing this much. I do not, in fact, know much. But I know I don’t know, and if someone tells me, “hey, how dare you do X when you don’t even know Y?!”, you can be sure as hell a week from that point I will know what Y is, how to implement it, and I will agree with the original person calling me out on my deficiency and wonder how on Earth I even dared touch code without knowing that. And I’ll use Y in everything from that point on where it’s applicable. I probably don’t need XSS stuff in a purely server side application where I feed the data, and there’s nothing user submitted.
What I don’t do is call the one telling me I don’t know something an ass. It might hurt, but that’s my ego. If you’re a developer, and you put your ego before your craft, you probably have a few more steps to go in getting better. Once your ego no longer has an important role in your day to day activities, then you can focus on getting better AGAIN.
Why I wrote this?
And because I’m under the delusion that if I tell people that what they’re doing might not necessarily be the right solution, I get to leave the world better than I found it.
Your job, lucky person, is to help others less lucky than you to improve their odds.— Dylan Wilbanks (@dylanw) October 14, 2014
Please ignore all the fuck yous. Own picture, took it in San Francisco on 5th November.
* “might” in this case means that there’s also the thing that they do get paid, but that’s not the point here. I really hope they DO get paid, 99.99% of the time (except OSS contributions). I also bloody hate adding these so people don’t take the words the wrong, unintended ways. I’m sure there’ll be people who’ll do it nonetheless.