Skip to content

Programming is Inhumane

I often get the chance to observe people who have only recently started programming, and a few common patterns stand out. Rather than being these people’s problem, it seems more that programming itself as a field (or its current practice) is excessively inhumane.

Reading the Signals Sent by the Computer

They often miss the signals sent by the computer.

For example, they debug without carefully reading the error message. Presumably there are just so many signals coming from the computer that they cannot distinguish which ones are important. It feels like improving the various interfaces in the development environment might reduce the burden a little.

Searching for Information

They search on Naver, or even if they use Google, they search in Korean, or even when they use English keywords they fail to include the proper terms, or the appropriate document appears on the search results page but they click on the wrong document, or they click on the appropriate document but read the wrong part, and so on.

Some of these problems can be corrected easily right away (searching on Google, not using Korean search terms), but the rest seem to require quite a bit of training. It is not easy to already know the search keywords that express the problem appropriately, and it must also be difficult to judge which sites are relatively trustworthy and what metadata is important.

Static Structure and Dynamic Process

They are not very good at visualizing the static structure of code and the dynamic process. (See also: Static Programs and Dynamic Processes)

When a problem arises in logic that uses a variable obtained as the result of executing function A, it seems to take them longer to realize that they need to examine function A. Once the dependency relationships among modules become even a little complex, they often seem to lose their way.

This problem, too, seems like something that can improve only after some time has passed. Still, I wonder whether explicitly teaching a few concepts (dependency graphs, loop invariants, contracts, responsibility, and so on) might shorten the time it takes to improve, even if only a little.

Cognitive Load

All of the problems listed above are probably also closely related to cognitive load. From the standpoint of an experienced developer, many actions in programming have undergone habit formation and are so-called automatic processing, but beginners still lack that, so perhaps their cognitive load is basically in a constantly high state.

If an experienced developer wants to experience even a little of what a beginner goes through, this might be worth trying: developing with a new editor, a new programming language, a new operating system, a new technical domain, and a new business domain. Just thinking about it makes me sweat. I respect beginner developers who are doing all of this.

See also

By
ak
Created
Updated

Machine-translated from the Korean original.

2026 © ak | markdown | 한국어