One of the most heard words, if not the most heard word, in the programming scenery is ‘create’, along with its inflections. However, only a programmer with some academic/theoretical background may grasp the real sense of the word: creation, as in creation. A Programmer’s use of the word may give the impression as if the programmer were a god busy with creation all day long, exhibiting an ego that is extremely inflated to the degree of explosion. It was not sufficient for the programmer to brag about creation all day long, the general public has the impression as if the kind of profession the programmer exercises is of Devine nature, glorifying the programmer and the achievements. (I, personally, remember hearing people saying literally “programmers are gods!” in many languages.) In fact, the programmer claims to be a member of the smartest species in existence, the species of programmers, and the general public seems to agree.
However, contrary to popular beliefs, a programmer is in most cases a bureaucratic, capitalist clerk that does not even bother to think. The programmer lifts fingers all day long, however, typing on the keyboard and clicking the mouse buttons. Then, “how are programs written if the programmer does not think at all? and isn’t programming the kind of profession that requires intense thinking?” the reader might wonder, and the programmer may object. A walk into any programming office would certainly reveal the secret recipe for success that every programmer possesses: Google it up!
The average programmer, that is found in all kinds of places, including so-called Big Tech, spends the day searching for answers to the problems on the internet, and the number one source for answers is, for certain, Stack Overflow. Besides Stack Overflow, there are other famous sources for answers, blogs, fora, tutorial websites, and the like, all of which are accessible via Google, and all of which the programmer is aware due to Google. Note that the programmer searches for answers online, the programmer does not even ask questions online (remember that the programmer does not even bother to think), not mentioning that a few handful of programmers do answer questions online! Then, who is doing all the heavy thinking on behalf of mankind? Well, I, myself, do not have the answer to the question, but I would rather guess it is indeed a very few tiny small handful of programmers.
Google, therefore, may be said to be facilitating the very frustrating kind of profession the programmer suffers on a daily basis sitting on a fancy occupational health chair searching for answers online on huge, fancy screens, the reader might argue, and the programmer would agree. However, does it pay off on the long run? In terms of skills, certainly not! In fact, searching on the internet instead of formulating own answers kills the programmer’s creativity. Searching on the internet would ultimately yield the desired answer. However, was the question the right one in the first place? Are there alternative or better questions? Two questions of which the programmer do not bother to think. A programmer’s ego is utterly inflated such that once the programer thinks of a solution (in terms of questions and/or answers), the programmer sticks to it no matter what, and may spend hours, if not days, or even weeks, searching for the solution, as imagined, to the problem. The exaggerated amount of time that is wasted on finding an answer could have been, instead, invested in reading a few pages that may reveal some secrets of which the programmer was not aware in the first place. A programmer is, thus, simply a Ctrl+C, Ctrl+V machine, copying all kinds of answers found on the internet and pasting them into the source code without any further considerations. A behaviour that is facilitated by Google.
The lack of creativity on the part of the programmer has its reflections on code quality: simply copy-pasting answers yields inconsistent code that is full of bugs (another most-used term in the programming scenery is ‘bug’: a flaw in the program, a mistake, that causes the program to behave rather unexpectedly). There are various programming styles and formats out there on the internet, and those code styles and formats are not necessarily consistent with one another, and simply copy-pasting answers results into a certain, extremely poor code quality that is unreadable, which, in turn, leads to more bugs. Moreover, the programmer may be tempted to simply copy-paste an answer that is judged to be the best fit, regardless of whether the original requirements for the program under construction match those of the question/answer that is found online. Google, then, may be said to be contributing to the degradation of programming, instead of enriching the programming scenery.
In fact, and which sounds nothing but contradictory, in every programming environment, it is strongly recommended to use Google to find answers in order to speed up the capitalist process of selling consciously-made-broken products. However, in any job interview, the programmer’s googling-up-stuff-online skills are never assessed; a taboo subject in any job interview. A programmer may explicitly declare the intention to search for answers online when facing a challenging task, as an answer to the question of what methodologies would be applied while facing a challenging task. However, Google is never mentioned. Although, every participant in the job interview is totally aware of the implicit answer. Google may, then, be said to be deeply incorporated in the programming scenery, while at the same time contributing to the degradation of programming.
This practice is further promoted due to a famous quote from Bill Gates, whose source I could not discern, easily found online however, stating something along the lines of: “I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it” (A Quote by Bill Gates, n.d.). And what would be the easiest way to solve a programming problem? Googling up stuff online, for certain. It may, therefore, sound to the reader as if the lazy programmer is of higher value in the world of programming, as opposed to the non-lazy programmer, a statement which is totally true. (Supposedly extremely well educated capitalists (well, they do read management books every now and then) are still having a very hard time trying to understand one of the most important principals in psychology: Speed-Accuracy Trade-Off.)
Now, the reader and the programmer alike may wonder: what to do then when facing a challenging task? Well, simply read the official documentation, a virtue that is rarely found among programmers. It should be noted that most products, especially the successful ones, are shipped with an extensive amount of documentation, in terms of technical documentation, functional documentation, tutorials, sample projects, and more. However, no programmer has the time to read: the programmer is a lazy person, and capitalist policies are strongly against such practices. (I have been told twice during my previous job not to bother with quality too much, because all I have to do is to deliver. Although I was strongly against it and I was engaged in a very hot debate, deliver I did, till the customer got fed up with our low quality product and eventually ended the contract. This is a known business practice in the programming scenery that is aimed at forcing the customer to maintain contact with the company, and to force the customer to pay for maintenance/reparation work! In fact, this is a known capitalist manner of conducting business that I encountered when I was an export area manager, were the managers used to exclude some items from the shipment, because the customer will come back and ask for the missing piece plus some more.) If the programmer were to think in the first place, the programmer would have been a nuclear physicist, a mathematician, or a surgeon. Or a true computer scientist maybe!
As a final remark, it should be noted that while searching for answers online the official documentation websites seldom, if ever, appear among the first results on the very first page, as demonstrated in figures 2, 3, and 4. If the official documentation website were to appear among the very first results on the first results page, the programmer would have been forced to browse the content of the official documentation, and, eventually, truly learn the programming language.
References
A quote by Bill Gates. (n.d.). Retrieved September 27, 2024, from https://www.goodreads.com/quotes/568877-i-choose-a-lazy-person-to-do-a-hard-job
It is interesting to read that it is normal to keep a customer ‘hooked’ by not delivering everything and trying to keep them for maintenance work. I agree that a lot of time is spent looking things up in programming. I have the same experience when I work with Excel and want to do something that I do not normally do. This will probably not change for the better since ChatGPT can help even faster. Do you see a solution to stop this degradation?
I do not claim to have the solution to the problem. I am just pointing at the problem and its consequences.
However, something that I think of once in a while: I think that programming should be turned into some kind of protected profession. In the Netherlands and other countries, for example, the title “Engineer” is a protected one, yet, there is a huge number of programmers practicing this profession with no degrees whatsoever. I have lots of examples, but if I want to go over all the examples, I might take days to name and explain the examples. If not weeks.
In any case, not all graduates are capable of writing even the simplest programs. Many programmers switch their jobs because they simply cannot even write a simple piece of code.
I would argue that there’s an upside to the practice of programmers searching for answers online: uniformity. When code is built in a similar way, it becomes easier for others to read and modify. This mirrors the academic process, where we constantly copy and build upon previously established knowledge or code structures.
I am not sure whether I understood your comment correctly, but according to my experience uniformity is the problem. Something that I have mentioned in my post. Not all programmers write the same way, and that lies in the core of the issue, because this causes other programmers to copy pieces of code that are written in different styles. Forcing all programmers follow the same practices might help lower the severity of the issue, but not totally eliminate the issue, yet.
I agree that it is wrong for programmers to copy entire pieces of code without understanding them, but I wouldn’t say that searching for answers on Stackexchange, for example, is wrong. You mention that using official documentation of languages really forces someone to learn the language, but I disagree. I took a C++ class a few years ago, and they made us write programs with only two libraries included: iostream and fstream. C++ doesn’t even have official documentation I think, just the C++ Standard, which is a really hard to read document and not useful to learn the language at all in my opinion. So for the course, we all used Stackexchange as our main source. We really had to look for coding examples that didn’t use any libraries though, so we were not able to just copy everything we found. So I think that as long as you look critically at what you’re copying, googling pieces of code is a valid way to build programs.
Understood. It’s not the first time that I am confronted with such arguments, and it does not sound as if I have the chance to convince you. We disagree already so we do not have to proceed with the discussion.
However, have you ever considered buying a programming book? The real tutorial. A 1000 pages tutorial book. Not the online tutorials that take a few hours to finish. A real tutorial book takes weeks or months to read. I learned C++ by reading Deitel and Deitel books by the way. Another way of learning programming the real way: patiently. Note that programming books are mostly 1000 pages long, and, therefore, are more suitable for workouts :-).
I haven’t being doing C++ for a while now, I am busy with Java programming. I have two books 1000 pages each, 2000 pages in total, and I learned a lot from these books. I learned things that you can barely find online.