Roman Suzi
2 min readJun 25, 2023

--

This topic has puzzled me for many years now. I recall that for me, learning programming was like learning to ride a bike or gaining fluency in a foreign language: there is a clear moment of transition from "I don't" to "I do."

Perhaps the clue is that those who are genuinely interested find programming early in their lives. School kids can learn it.

The skill is... abstract. Concrete syntax is not as transformative as learning "abstract programming." (One important note here, though: it seems like functional programming and logical programming are a different kind of "bicycle." Developers have told me that while they are okay with "normal" programming, they can't quickly wrap their heads around those.)

The difficulties with students probable are due to the expectations of quick rewards, while at the same time lacking the importance of abstraction skills.

Actually, dialogues with ChatGPT have enlightened me about how many (or most) people approach programming. They memorize concrete solutions. Reflecting on my own ways, I do it differently. For some reason, I always generalize things, and after that, I try to find a solution (using abstract heuristics learned) in a more abstract/mathematical "space," and then translate it back. And I suspect this is not how programming is typically taught. I also don't know how it happens in the minds of others, but I am curious.

And this addresses your point number 8. While doing those "4 arithmetic operations," I am not thinking about where I will use them, but I am looking for abstract patterns/heuristics that I can reuse. Somehow, I find it rewarding that the journey through the Platonic World brings forth beautiful solutions and, in the long run, is the quickest way of programming.

--

--

No responses yet