TL;DR Tech bashing is harmful and deters novice programmers from becoming developers.

When I first started programming, 2.5 years ago, it was like the world changed colors. From one moment to the next, my laptop transformed from a glorified typewriter into a powerful tool. The possibilities seemed endless. At the same time, I also felt intimidated. This new field I had entered was gigantic. There was so much to know, so much I didn't know. I was convinced it would be impossible to ever learn enough to make it as a working developer, even at a junior level.

But I kept going, kept learning. This was in part due to a remark made by another developer, during a tech meetup I attended:

“I've met people who started programming after 30 and became great developers and I have met those who started in their teenage years, graduated in Computer Science, but still could not build a decent app.”

That one piece of encouragement proved a tremendous source of motivation. It was do-able, others had done it, and so could I.

Now consider a different scenario. You are at this same point, where you know just enough to grasp the magnitude of the learning challenge before you. Pretty overwhelmed, you are almost ready to give up and go home. However, instead of meeting this helpful, encouraging person, you run into someone who, upon hearing what you are learning, simply starts laughing at you.

Because,

“what could possibly possess you to learn X, when <insert their chosen technology here> is clearly so much more appropriate for, well, just about everything. Their technology will cure Ebola, turn your database into a princess on LSD and do so in a way that is far more revolutionary than <insert last supposedly revolutionary thing they were promoting>. Meanwhile, your technology is a shit piece of crap that's good for exactly nothing.”

As the verbal attack continues and the CS jargon piles up, you start doubting yourself even more and by the time they are done, you have given up altogether.

This scenario is not some ‘fantasy-other-world-situation’. Sadly, technology bashing happens quite a lot and it doesn't just harm the novice programmer. It harms us all. Because, let's face it, in our ever expanding field, we are all ignorant about something. There will always be a technology we know little about. Whether we decide to brush up on that technology and continue learning, or just hide our shortcomings, may well depend on the absence, or presence of tech-bashers.

Context Matters

Now, I'm not suggesting we should stop discussing technologies. On the contrary, I think that debating the merits, or dangers of a technology is healthy and a great way to learn about them. But its just not a great way to learn to actually program. Remember the last time you learned something totally new, perhaps like learning to drive. Would you want to hear how inferior your engine cooler system was whilst mastering clutch control and steering at the same time?

Healthy debate versus tech bashing

In addition, there's a difference between a constructive debate and my-tech-is-better- than-your-tech ranting. In the case of the first, the goal is to convince each other of a certain position, by providing rational arguments (which have their basis in fact, not emotion). Debate encourages critical thinking and, with a little luck, results in a deeper understanding of the discussed technology. Both parties are open to have their opinion changed, open to learn.

In case of technology bashing, the basher is simply trying to pressure the 'bashee' out of using technology X. They won't ask questions, or care about your specific case. They won't feel a particular need to explain themselves either, since they think the point they're making is self-evident.

This is not to say that all tech bashers are incredibly mean people. Most of the time they are just insecure and themselves scared of the size of the field. As a result, they become more aggressive about their choices and defend them beyond what's reasonable.

Even so, at the end of the day, a good debate will leave both parties feeling inspired or educated (regardless of whether your argument won the day), whereas tech bashing leaves the bashee feeling stupid, confused, angry, or all of the above.

To all learners out there:

Some people will have you believe that deciding on a language or framework is the most important decision you will ever make. It really isn't. Especially when you're just starting out, it's far more important to go for a technology with a friendly community (so that you can ask questions) and to just get started! Don't fall for the 'I-will-start-writing-code-when-I-find-the-perfect-language' trap and don't let anyone else push you into it. Let discussions about languages be a fun pastime, but don't let them derail you. *

Next up, always remember: different technologies are good for different purposes. You would not use a knife to brush your teeth, so if someone tells you that knives are very bad cause they suck at brushing teeth, then your reply should be: so what? Same goes for technologies. Yes, X is very bad at doing Y, but if your intention is to do Z, then so what? Just file these not-so-helpful suggestions under 'may be useful later' and carry on.

Finally, as a learner, you're in a unique position: you're not only allowed, but in fact expected to ask questions. Use that power! You'll soon find many a basher will be unable to answer them!

To all hackers:

It is actually pretty easy to become an accidental tech-basher. Comparing the merits of different technologies, especially aggressively and to novices, easily intimidates and scares people away from programming. So consider ‘time and place’ in these conversations.

Style of delivery can matter as much, or more, than what you actually say. Don't roll your eyes at someone for using what you think is bad technology. Ask them questions, explain things, help them!

Finally, being a <technology X> developer is what you do, not who you are. So no need to feel offended when someone decides to use <not X>.

Note: At Hackership we have coaching guidelines to prevent tech bashing and promote a safe learning environment. Feel free to take a look!

*Should things get ugly, just remember, you may not yet have the reply that will shut up the basher, but your future self will. Just hang in there, continue learning and soon enough you'll find yourself putting a basher in their place!

Special thanks to Tam Le for making this image available under Creative Commons.