Critical Thinking in the Age of the Internet Guru
The Sum of all Knowledge at our Fingertips
I love the internet age. I use Google, Twitter, Instagram, Medium, Quora, Pinterest and Facebook as much as any Millennial despite technically being a silver surfer (i.e. my beard is grey). That so much information is instantly and freely available is wonderful and reassuring. The Internet has become an extension of my memory. In the past, I had to commit every piece of information of value to memory, disk or paper. I used to collect, file and hoard academic papers and computer science articles that I thought might one day be of use. My study was stuffed with lever arch files containing carefully curated collections of photocopied documents I thought might be needed at some indeterminate point in the future. It has taken me a good decade to get over this habit of hoarding. It is only in the last five years that I have had sufficient confidence in the ubiquitous availability of an internet connection to abandon my information hoarding habits completely. So Google is a good thing, right? Well, yes, and no.
A few years back I took a very young millennial friend of mine, let’s call him Peter, down to a country town in Mpumalanga. It was winter and cold for that part of the world. The friend we were staying with asked Peter to go into the lounge and light a fire. My friend and I stayed on in the kitchen to continue preparing dinner. Peter disappeared into the lounge, presumably to light the fire. It became very quiet in the lounge and after about fifteen minutes, I decided to check on the status of the incendiary effort. I found my young millennial friend standing in front of the fireplace staring intently at his smartphone. I asked Peter what the problem was. He proceeded to tell me that he was Googling how to light a fire. To my chagrin, I have to admit I laughed.
I couldn’t believe that someone as intelligent and confident as he, needed to query Google on how to light a fire. Believe me, I too suffer from fire anxiety. I’m not the greatest braaier in the world when I am forced to get a fire going in front of a crowd. I tend to err on the side of caution by using an entire packet of firelighters. I know adept fire makers who can get a braai fire going with only a box of matches and a few sheets of newspaper. I’m not one of them, unfortunately. Clearly, neither was my Googling young millennial friend Peter. Let me make my concern clear here. That Peter was Googling is not the issue. In fact, it shows his intelligence and a can-do attitude in that he decided to Google for help. What does concern me is that he did not know something as basic as making a fire and that he chose to use Google rather than another human being for assistance.
Google Doesn’t Grade Information
Why should I dislike Google? I don’t. It’s an amazing free service that adds value, but there are a couple of problems with Google which many people fail to realise. Google by its very nature is incapable of establishing the veracity of any information it serves up. It can’t. We don’t yet have algorithms that can check and verify the facts contained in some random online document. There are some reasons for this but the main one being information on the web is not yet annotated in a way that algorithms can process. Web content is mostly in some sort of markup language like HTML, XML or perhaps even plain text. None of these languages has semantic annotations. What we mean by a semantic annotation is a piece of meta information that attaches meaning to the content in such a way that it can be processed by a machine. Yes, AI is coming, and yes, there are efforts underway in this regard, but at this point, assimilation of large tracts of text, XML or HTML by machines in such a way as to extract meaning is not yet feasible. Hence Google can only regurgitate content according to some fairly sophisticated but essentially troubling rules:-
- How many references are there to this piece of content?
- How many relevant keywords are contained in this piece of content?
- How many other people searched for this content?
- How many people read this piece of content?
None of these heuristics allows Google to attach any veracity index to the content it regurgitates, nor do they allow Google to assign any confidence as to the relevance of what is returned. This is quite unfortunate because somehow people attribute validity to material merely because it was returned by Google. People form opinions based on this content yet they never stop to critically analyse what they have been fed.
Might Does not Make Right
The biggest problem with the content served up by Google is that it attaches value to content by virtue of how many other sites refer to the content in question. In essence then, the more places that refer to a piece of content the more Google “believes” that content. Unfortunately, this sort of algorithm relies very heavily on people only placing valid content on the internet (which we know is not true) and on people being honest and not trying to intentionally skew the curve (which we also know is not true). So a piece of junk written by some dimwit with an agenda referred to by several other dimwits is more likely to be gauged by Google as being “valid”, than a lone correct and truthful article which is either not understood by the dimwits above or is not known by the selfsame dimwits.
We all know the fallacy of “might makes right”. Just because a lot of people agree on something makes it neither correct nor true. We have only to look at recent human history to see the lunacy of that argument. At some stage, Apple was considered a “loser” company by the mainstream. Java was viewed as a silly upstart language by the masses. Before that, a little-known networking protocol called TCP/IP was regarded as not having a future by people who told me SPX/IPX was the way to go. (Have you even heard of SPX/IPX?). Very clearly, might does not make right, just because a plethora of people ascribe to a point of view, does not, of itself, validate that point of view. Critical thinking is vital to correctly assessing and establishing how to use the information presented by a service such as Google.
Stack Overflow Considered Harmful
Most, if not all developers know of Stack Overflow. For those not in the know, Stack Overflow is a website, beloved of novice developers everywhere. If you don’t know how to move the position of a UIView in an iOS app, typing that question into a Google search field will probably point you at an answer on Stack Overflow. Now don’t get me wrong, I use Stack Overflow as much as the next developer. The difference is I have been plying my trade as a developer for many decades, and as an iOS developer for close on a decade. That means I have a pre-existing knowledge base in my head. It implies I can usually (but not always) gauge whether an answer on Stack Overflow is correct (on many occasions the answers are not) and whether it encompasses good coding practice (often the answers are hacks). As a person who earns their living using intellectual capital, I am respectful of other people’s intellectual property. I do not copy code unless it is with attribution. I try to understand what the answer on Stack Overflow embodies, then I rewrite it myself, my way, in my own code. Unfortunately, many developers do not have the same scruples that I do, and often just cut and paste code from Stack Overflow into their own code. This is not good for a number of reasons. It’s disrespectful to the person who originated the solution. It means the copying developer never learns basic principles that will stand them in good stead going forward, and it stifles innovation.
Innovation results when different people approach the same problem in different ways and arrive at different solutions in isolation. If Apple had tried to solve the same problems as Nokia by copying Nokia’s solutions, we would never have had the iPhone, iOS and consequently Android. If Alan Kay had tried the same solutions as everyone else at the time, we would never have had Smalltalk, and thus true Object Orientation. If Xerox PARC had not rethought interfaces, we would not have had the Macintosh, and thus the first commercial GUI with WYSIWYG printing. When developers just copy solutions, we end up with hackneyed software that is not innovative, that does the same thing in the same way, and we never move forward. Critical evaluation of content is imperative.
The Age of the Internet Guru
Another sign of the times is the rise of what I call the “Internet Guru”. These are individuals who set themselves up as experts on various topics and disseminate their opinions using the Internet. This is not to say that many of these people are not gurus. A number of them are very knowledgeable, contribute huge amounts to their respective developer communities and talk a great deal of sense. From this perspective, they are welcome members of the development community and are often voices of reason. The problem arises when they achieve cult status. People follow them and their teachings, not because they have validated those teachings, or critically thought about what the gurus are saying, but merely because the gurus are saying it. This leads to situations where one is argued down about matters of architecture and code, not because of what one is saying, but merely because an Internet Guru espouses a different perspective. In many situations, I have found developers who do certain things in certain ways merely because that is what a guru says. This leads to inappropriate architectures, design patterns that are misapplied, and once again, a lack of innovation. Developers become too afraid to think for themselves. Consequently, they won’t consider a path less travelled, but perhaps more appropriate.
Sadly not all these gurus know what they are talking about. Some of them are totally self-aggrandising. All they care about are the number of Twitter followers they have, or how many people are subscribing to their podcasts or blogs. I have been shocked numerous times with how much incorrect drivel these self-proclaimed gurus spout. If developers were a little more self-confident and realised that they too could make novel and innovative contributions to their craft, and if they practised some critical thinking in evaluating what they read online, then the development community would advance more quickly.
Some time back when discussing architectural patterns with a few fellow practitioners, I suggested the use of a novel (novel as in not well known) design pattern that might potentially solve some issues they were experiencing. There was a spectrum of negative reactions ranging from complete horror because what I suggested did not follow canon (canon according to some Internet Guru that is), to high dudgeon at my suggestion that common practice might not be best practice. Critical thinking never let anyone down. Testing the hypotheses made by a favourite Internet Guru will never get you into trouble - if anything it will lead you to the promised land.
Critical Thinking Is Always Good
What happened to the pioneering spirit, where every developer thought they could do it better than any other developer? This is not to say that best practice is not best, but best practice became best practice because somewhere at some time a developer asked whether there was a better way of doing things. If those developers had not asked those tough and uncomfortable questions, then we wouldn’t be where we are today. Many of the open source libraries we have access to these days arose in precisely this manner. Many of the languages we write in today came to be because someone thought they could write a better mousetrap.
A well known innovative financial institution I once worked for has a very large blue book in the company foyer, on the cover is embossed “Company X Book of Rules”. When one pages through the book, one finds blank page after blank page; there are no rules, there are no holy cows. That is the only way one can innovate and excel, by leaving prejudice at the door, and asking why all the time. That company not only tolerates mavericks, it actively encourages them, which is why they are now the cornerstone of the largest financial services group in SA. I am reminded of a quote by Guy Kawasaki — now the CEO of Garage.com — but then the primary evangelist for the Macintosh, “If you only ever compare yourself to your competition, you can only ever be as good as they are”. This is a maxim I think innovative developers need to take to heart. Gird yourself with best practice, but always be prepared to analyse it critically, and possibly throw it away if you can do better.
I won’t always agree with your opinion, but please, at least have one of your own. Disagree with me because you have thought through your position, have asked the uncomfortable questions, and have arrived at your perspective through the determined application of hard critical thought.