In the past two years, I have been seeing multiple initiatives to enable non-coders to automate their processes through AI. The general perception among organizational leaders is that, with AI and vibe coding, anyone can build programs that do exactly what they want without prior coding knowledge.
While that could be true to some extent, I think this is shortsighted. Yes, prior coding knowledge may no longer be required, but computational thinking will always be crucial.
I would argue that people with strong computational thinking would have been great programmers if they had gone through the practice. On the other hand, those who are bad at it will never be good at building systems – no matter how much AI we put at their fingertips.
Formally, computational thinking refers to the four processes: decomposition, pattern recognition, abstraction, and algorithmic thinking. Decomposition is the process of dissecting a problem into smaller sub-problems. Pattern recognition is all about putting things into systems. Abstraction is the art of hiding complexity. Algorithmic thinking is about putting the previous three things together in a sequence of steps.
It is obvious that none of these is quite coding. You can decompose a problem, find patterns, abstract details, and create an algorithm all in your head or on a piece of paper. In fact, we do that all the time outside the context of computer programs. When someone says I am optimizing a process at work, they are finding patterns and creating algorithms. They would start by noticing the steps that consume the most time and effort, then understand the bottlenecks, and design the new process. This is computational thinking in the real world.
The individuals with that mindset are the ones who are excelling today with coding agents, and those who lack it are struggling—though the majority do not realize it, mostly thinking they are crushing it. That is why many great technical product managers have been making very good use of agents to augment their work with their engineering teams or even push product changes on their own[1][2].
Agents do NOT think for you. Agents do things for you. Understanding this is critical to how we approach teaching people to use LLMs in general and agents specifically. LLMs will very confidently be completely wrong, and we assume that they “think” in the sense that we commonly refer to “thinking,” that is going to result in a very fun f*** up to deal with.
Note that I am not saying that the only skill missing at this point is the coding itself. We are still far from that. Building a software system at scale still requires technical domain knowledge about how computers work. P.S. I am surprised we got this far without footnotes. ↩︎
عدد عظيم من أفضل المبرمجين الذين عملت معهم هم ممن درسوا أصول الفقه بشكل أو بآخر، وقد يستغرب ذلك البعض لكن أنا أعتقد أن كثير من مبادئ الأصول في مسألة استنباط الأحكام من تعيين محل الحكم وتتبع الأدلة وجمع القرائن وغيرها من الأساليب الأصولية هي مطابقة للتفكير الحسابي. ↩︎