## Sunday, May 27, 2018

### Most programmers think like folks in humanities, not natural scientists

Coders as a community ceased to be STEM people

A disagreement about the teaching of mathematics with several people – whom I noticed to be programmers of some kind – has led me to systematically revise my views about the "geeky and/or scientific character" of the generic coders.

I came to the college in Fall 1992 – when Czechoslovakia was just being scheduled for dissolution and when the Internet started to penetrate to the Academia. So since Fall 1992, I was using e-mail, FTP, telnet, and gopher, among other services that sound partly obsolete today.

In those times, my Alma Mater – Faculty of Mathematics and Physics at the Charles University in Prague – was a classic example of a "geeky" college, one where hard science rules. No one doubted it. On top of that, everyone rightfully assumed that these people of the STEM type were also in charge of the department and they were the most important ones, too.

But almost since the beginning, the large department – it's called Faculty... because by its size, it may be more comparable to the Faculty of Arts and Sciences at Harvard and similar entities than to a physics department – was composed of four sections: mathematics, physics, computer science, and teaching (mainly of the previous three subjects). There are clear differences between the cultures of these four fields but these differences are still smaller and were always smaller than the differences between these STEM fields and the rest.

Clearly, the pedagogic section of the school was the most social-science-oriented. After all, the students learn some things related to psychology and similar stuff over there. It has always been agreed that the students of the teaching were the least talented ones in average – a statement that may be supported by particular data – and the people in that section weren't considered the essential folks that "make" the school what it was. Needless to say, the fact that the pedagogic section had the highest fraction of female students is a fact that isn't quite independent from the content of the previous sentences.

The three "main" sections – mathematics, physics, and computer science – were comparably geeky in their own ways. I was recently led to believe that the computer science folks, not particularly at that school but probably also at that school, have drifted most quickly towards the "ordinary people" that are increasingly incorporated into the cultural Marxist scheme of the world.

You know, in 1992, the Internet wasn't a mass phenomenon. It was only used by the bosses of the U.S. military, many scientific institutions in the developed world, and some colleges. It was still used mostly for stuff related to science and there were serious discussions whether CERN and the Academia etc. would "allow" the general public and the commercial sector to join the Internet at all. These days, it sounds utterly funny because the scholarly activities only represent a negligible fraction of the Internet traffic. And I think that it wouldn't have been legally or physically possible to prevent the ordinary commercial world and the public from "joining" the Internet – or from creating a new one, for that matter. Even if we agreed that this serving of the Internet to the masses were a net negative thing, and I don't think so, it was probably unavoidable, anyway.

So I think that everyone realizes that the typical composition of the activities done with the Internet has changed dramatically in the recent 25 years. In the early 1990s, working with preprints at xxx.lanl.gov (today primarily called arXiv.org), was really a substantial part of the traffic on the Internet. A relaxed photograph or a song were just cherries on a pie. These days, the typical packets transfer the information such as comments and photographs from social networks
My 3rd baby Rebecca has just created her 17th poop. Look how sweet it is. I mean Rebecca. But so is the poop.
And 2,018 friends of that user click at "like" because they like the sweet poop, and so on. This is a somewhat different type of an activity than reading or submitting a paper about superstring dualities. Can you tell the difference?

Those 25 years ago (and maybe even much more recently), the Internet could have looked like a domain of the geeks. It's no longer the case. In fact, it's plausible that nowadays, very ordinary people spend more time with the Internet every day than the geeks. The Internet gadgets and services have been made sufficiently intuitive and easy to use which is why the ordinary people do it all the time, indeed.

I think that all of us understand this transformation – we're seeing the new Internet for the masses all the time. However, what I haven't quite thought about was the transformation of the community of programmers.

Half a century ago, computers were used to calculate some serious problems that required physics. Computers and "similar computing" done with lots of human calculators were used to design the first nuclear weapons. And a computer that was as large as a big room – but less powerful than your smartphone – was used to land the first men on the Moon. I've mentioned that because computers mostly transfer pictures of 17th poops today, the composition of the typical computers' duties has changed.

But so has the composition of the programmers' work.

You know, most programmers no longer do any things that are similar to the nuclear weapons or the landing on the Moon. What most programmers do isn't even remotely similar. In fact, I believe that most programmers don't even deal with real, continuous numbers most of the time. A more radical claim may be made:
It seems to me that most programmers play the role of translators or interpreters operating between computers and humans – but otherwise doing similar mundane tasks.
This has a far-reaching impact on their way of thinking – and also on the preferences and skills that are expected from average programmers today. A typical programmer is supposed to know how to persuade a computer to open a window, force a server to add an entry to a database, and stuff like that. If you think about it, they know some computer languages and their usage of these computer languages isn't too different from the usage of human languages by translators and interpreters.

A Slavist may learn that "open a window" is translated as "otevři okno" into Czech. Similar, a C programmer translates "open a window" into a similar, albeit more technical, sequence of characters. Is the opening of the window in C a more mathematical activity than the translation from English to Czech? Well, slightly. But once programming becomes a routine repetition of the pieces of code such as "open a window", the logic of the work becomes similar to the logic of translators' and interpreters' work.

Another part of the programmer's job is to deal with permissions. A coder has to write down a code that checks whether the Facebook user has the permissions to post the 17th poop on a particular Facebook friend's timeline. And this coder's duty is rather similar to the stuff that lawyers have to deal with (lawyers have to study the question who has or had the right to do something all the time) – and lawyers, while they need some sharp logical thinking, haven't been considered a STEM occupation, either.

You know, there is nothing really mathematically deep or difficult in these things – and there are no real numbers and the calculus, geometry, and more advanced branches of mathematics that depend on the continuum. That's what arguably makes a programmer – who writes a new communication app or something like that – closer to a secretary who knows several human languages than to a mechanical engineer or physicist.

The word "engineer" is still used as a title and there were very good reasons why the word began to be used for economists as well as programmers. After all, programmers were working with an "engine", namely a computer (and/or its parts). But journalists and writers are also working with a computer when they write a new essay or a book – most folks in that occupation use computers these days. Does it mean that writers are engineers? Not really. They may be using an engine – the computer – but they don't really understand how it works. The further they are from being able to fix problems with the engine, and the closer they are to consumers who are being sold the computers because they're useful, the less they deserve to be called engineers.

But the point I am making is that the same "Not really" mostly applies to typical contemporary coders simply because their work is often closer to that of secretaries, translators, and interpreters than to physicists or mechanical engineers. Their relationship to the computers makes them mostly users although they're still closer to "how the computer works" than their clients (e.g. the users who post the pictures of the poops at the end of the line). You know, these people, just like those from the humanities, typically end up thinking the following thing about mathematics:
There's nothing in mathematics except for conventions. One may use one convention or another. And then one needs some common sense and he may do anything and everything.
That's why so many programmers I have met have basically supported Hejný's method. There's nothing to learn, nothing important to memorize in mathematics (and other subjects such as physics), children may find everything important by themselves, we must just support the children's desire to play by making them solve lots of tasks in recreational mathematics – while teaching them no theory at all.

And this dismissive attitude towards mathematics and "theory" in general may be enough to do some things in humanities – and, as I have argued, in most of the coding, too. The only problem is that our civilization stands on lots of other things, the actual beef of the modern technology, where this "sufficiency of language-like conventions plus common sense" simply doesn't work. There is a huge amount of vital "theory" – mathematical identities, laws of physics, and stuff like that – that someone simply has to know (and some kids have to learn it) for our civilization to be even maintained – and surely for it to keep on advancing.

And the laws of physics represent a major part of the true culture of our epoch. One needs lots of theory – whole subdisciplines or subjects that are placed on top of each other, like a skyscraper with many floors (I am talking about calculus, classical mechanics, field theory, quantum mechanics, quantum field theory, string theory, and the real picture is more complex) – to master them. Everyone who is an expert in a natural science appreciates the utter stupidity of the people who claim that there's no important theory that kids and students should learn.

Let me also mention the relationship with the satirical video about Alternative Math (click). The old-fashioned teacher is being harassed by the post-truth system when she tries to correct Danny, a kid, who "calculated" that 2+2=22. (The movie suggests that the post-truth people promoting the validity of 2+2=22 are American conservatives and patriots – in the real world, almost all of them are extreme leftwingers.) Now, it's just wrong and 2+2=4 is just right, she insists – up to the moment when she cleverly calculates her final salary package to be 2+2=22 thousand dollars. ;-)

But you know, a comment that appears very many times in the comment section is that 2+2=22 is indeed correct in the JavaScript or other languages – because they add the "numbers" as if they were strings by default, indeed. Now, it seems very likely to me that many of the authors of this comment are professional coders who may have a college degree.

So is it right that 2+2=22 is as correct as 2+2=4 because both results appear in some programming languages?

Well, I may have leaned towards a similar "pluralistic" answer when I was 9 and I was excited about some new programming languages we were taught at the Station of Young Technologists etc. It was natural to think that 2+2=22 could be a pretty important result, after all – and to think similar things – because the programming was very important for me at some moment. (In some more special contexts, one could also add 2+2 in base-three system, or modulo 7, or any other "less important system" than the real numbers and ordinary integers. This increases the number of "potentially correct values" of 2+2.)

You know, I would surely not answer that 2+2=22 is as good as 2+2=4 when I was older than 15. It's just not equally good. Even if we agreed that the result may be 22 or 4 depending on the context or "conventions that may differ at different places", it is still true that the mathematics classes are those where 2+2=4 is the preferred answer. The mathematics classes also have some conventions at every moment – some rules of the game – and the students should simply respect them to avoid complete chaos. Just because kids learn JavaScript elsewhere, doesn't mean that they should correct the teacher whenever she says 2+2=4, does it?

The statement that "mathematics classes have their own axioms and conventions" isn't the most important justification of the uniqueness of 2+2=4. A much more important fact is that the rules and conventions that imply 2+2=4 and that lead to the whole mathematics based on regular integers, rational, real, and complex numbers, among other extensions, are extremely important.

Mathematics classes don't teach just something. They teach something important – the type of mathematics that all of Nature is built upon (and it's not just Nature but lots of man-made things, too) – and the minimum thing that the kids should learn is that the mathematics in which 2+2=4 holds is important. So someone claiming that 2+2=22 is as good as 2+2=4 is wrong according to the usual rules of the mathematics classes. But he is also morally wrong because his other rules that he promotes – the addition of strings – simply aren't as important and creative as the rules of conventional mathematics (with integers, real, and complex numbers).

At the end, the people – and coders – who promote mathematics classes with repetitive puzzles in recreational mathematics and with animal codes for small integers – are sending a message about their values. Doing jobs like translation and interpreting is good enough – and the skills needed for that are the only ones that the kids should be taught. They can survive so why shouldn't the kids? Well, there is a good answer. As adults, the kids are unlikely to survive (at least they won't maintain the GDP growth) because these kids, like the humanities-oriented coders themselves, actually existentially depend on the people who know things like 2+2=4 plus dozens of extra floors of the skyscraper of mathematical knowledge, of the "theory" that they don't want to teach at all.

You know, if someone is doing information services, he doesn't even belong to the tertiary [3rd] sector of the economy. He belongs to the quaternary [4th] sector – and the human services are the quinary [5th] sector. A sensible person still acknowledges the existence and importance of the primary, secondary, or at least tertiary sector of the economy. There still needs to be some material beef! People doing human services – the quinary [5th] sector – are just cherries on a pie. It's atrocious when these people are encouraged to think that they're the heart or the bulk of the civilization. The human society was adding "increasingly derived" sectors of the economy but it's just wrong to think that the "most derived" sector at a given moment is the key one.

What really annoys me about these people isn't that they're only wrong. They're wrong, they miss something very important – and they miss most of the human knowledge and its organization – but they seem to constantly brag about their stupidity. Hejný's method is also openly declaring that it wants to turn these mathematically illiterate kids – who only know some codes plus common sense, but who know no real theory (and the Hejný's method textbooks don't teach any theory – the textbooks are just collections of recreational puzzles with no theory included) – into self-confident adults. I think it is a terrible idea to turn uneducated people – and people who know no theory of this kind surely are uneducated – into self-confident individuals. So at the end, I am driven to fight against this junk because I am allergic to pompous fools in the standard Feynmanesque sense.

If they don't know even the basics of the first floors of the modern understanding of the world through mathematics and physics, they are uneducated, and they have absolutely no justifiable reason to be self-confident. When a teacher lacks the discipline, such arrogant spoiled kids – and the corresponding arrogant stupid adults that grew out of them – may talk their way through any problem they experience because at the end, all their lives are about the manipulation with other people. But the whole society suffers when people like that are allowed to get away with their tricks. When you don't know that 2+2=4, then you're stupid. I am terrified by the society that worships such people and their "intellectual independence". One part of the stupidity is not to know the multiplication table; another part is that these people don't even "know" that there's some important (and highly structured, dependent on other parts) knowledge accumulated by the mankind that they're totally unfamiliar with.

At the end, in such situations, the actual puppet masters usually know how much 2+2 is. But they just love to manipulate millions of people and millions of people who don't really know anything – not even the multiplication table and sometimes even 2+2=4 – are just easier to be manipulated. These people may be told 2+2=22. They may be trained to repeat how deep, ingenious, and intellectually independent they are when they parrot that 2+2=22 (while not getting the irony of those claims at all). And they usually parrot some social and political clichés as well – which are tightly incorporated into their pathetic group think. What I see is a uniform mass of brainwashed morons who know nothing that is both correct and important – but who claim something completely different. I am terrified by millions of self-confident morons. I am terrified even by two of them whenever they team up – and it's a rather frequent phenomenon.

So I don't really agree even with the seemingly most "innocent" theses underlying the teaching method, e.g. the statement that the mathematics classes should nurture the kids' self-confidence even if they haven't learn any real stuff yet. They just shouldn't be. Schools shouldn't be growing spoiled brats. When one doesn't know any theoretical stuff in mathematics, he or she shouldn't be self-confident during mathematics classes. Self-confidence of the people who don't really know much is harmful or dangerous for the whole civilization. A kid should learn that there's way more wisdom in the world than he or she will ever learn. The kid should be actively persuaded that this is the case. When the kid is actively persuaded about this important truth, it becomes more humble and respectful towards the mathematics, science, and wisdom that the mankind has accumulated, and that's exactly what should happen!

In the good old times, this kind of humility was widespread and many things were OK because of that – even though the degree of required discipline was excessive at most places, no doubt about it. Humility and respect for the actual knowledge and achievements of the mankind have been declared politically incorrect. The only thing that the people are demanded to be humble towards is the politically correct group think itself. It's a lethal combination.