Don’t Make a Fool of Yourself
Uncle Bob recently posted pictures of his book shelves on Twitter. He’s got all of the classics close at hand. His collection looks fairly similar to mine, but I no longer keep the books handy since everything is pretty much available with a few keystrokes.
Back in the stone age, if you wanted to learn computer science concepts you made a trip to the book store. Whenever I made a trip to the bay area during the 1990s I tried fly out of SJC because there was an awesome computer science bookstore fairly near the airport. I’d bring along an extra suitcase just so I could fill it with books for the trip home. That place didn’t survive Amazon and the pilgrimage was replaced with trips to Frye’s Electronics. Alas, they didn’t survive Covid.
Getting your writing published back then wasn’t so easy. You had to produce an actual book, you needed the appropriate credentials, and then you needed a publisher to actually publish your book. Or if you wanted to write an article you had to submit it to a journal for publication. The bar was pretty high to get your ideas out, although I guess we also had Usenet to publish the noise. But even Usenet wasn’t indexed very well. Someone had to be specifically looking for what you were saying to get exposed to it.
Idiots Now Have a Megaphone
Today, things are different. You don’t have to commit to writing a complete book. You don’t have to worry about getting your articles published. All you need is an account somewhere and you can become a content creator.
This is great for the free exchange of ideas. We’re living in a golden age. New knowledge can spread across the globe overnight.
I’m sure this is true in other fields, but in computer software there is a phenomenon of very new programmers “learning” a concept and then publishing an article refuting that concept in order to be “edgy” and get clicks. The problem is that 99% of the time they don’t understand the concept to begin with and their entire argument is pure misinformation.
The greater problem is that these same authors have learned how to build a larger distribution channel, so their material is read by many other beginners that don’t know any better. And thus an entire generation of software developers is “learning” things such as “The Single Responsibility Principle is Garbage.” Go ahead, do a search on “Single Responsibility Principle Bad” and you’ll see a lot of misguided articles. Almost all of them conflate the SRP with “a class should only do one thing” instead of “a class or module should have one, and only one, reason to be changed.” It’s a crucial difference, but if you didn’t understand SRP to begin with it’s easy to make that mistake.
The best answer to one of these articles was by the master himself, Uncle Bob: “Be very cautious when assisting superiority to Dijkstra, Dahl, Liskov, Parnas, and Hoare. You risk making a fool of yourself.”
I’m guessing the author of that particular article doesn’t even know who those people are. If you’re a newer developer and you’re reading those articles and think there is something to them, please go back to the original sources. Seriously, it’s not possible for them to be more wrong.
I don’t know what the answer to this problem is. I certainly don’t want Big Tech stepping in to determine what is misinformation and what isn’t. I suppose the best we can hope for is that the more senior and experienced developers keep stepping in and pointing out where these articles have gone wrong, but it’s an exhausting task. There’s just some much noise to deal with.