QIAOPANG.COM · SELECTED ESSAYS (2013–2026) · 260 ESSAYSBrowse Chronologically (2013 → 2026) ↗
QiaoPang · Programmers LifeSelected Essays · Systems, Craft & Agentic Era
Timeline ↗

On Programming

On Programming

In the future, not knowing how to program may not determine your ability to survive, but it will affect it.

Let’s think carefully about what programming is. Programming is building a system that turns a series of inputs into a series of outputs; in plain terms, it is the ability to take a given problem and solve it efficiently with a computer. Put into some everyday scenarios:

Your boss gives you a pile of data, and you need to sift through it and organize it into a report;

Your digital files at home keep growing, and you want to find a video shot in a certain place;

At work, you sit in front of a computer doing repetitive labor, such as copying content from one file and pasting it into another according to a format;

…

These are scenarios almost everyone encounters, and they can all be solved with programming. Some can even save you a day of hard work with a few lines of code.

Modern programming languages are trending toward becoming simpler and easier to learn. For someone without a formal CS background, as long as they have some basic computer literacy, it is not hard to follow a language’s documentation and tutorials, learn it within a few weeks, and use it to solve problems. Don’t believe me? Let me give you an ex(am)ple—or, as we say, a bowl of chicken soup. Since I first heard this story, I have often used it to encourage people around me to learn programming.

The protagonist of this example is a 15-year-old boy (well, I imagine many people already know whom I’m about to talk about), roughly the age of a Chinese student just starting high school. He loved programming and built an iOS app called Trimit, using machine learning / natural language processing methods to condense large texts into short passages—for example, a 140-character tweet. In an era of constantly eroding attention, when people are increasingly unwilling to read at length, the kid’s app drew a lot of notice and became quite a topic on the App Store. Li Ka-shing noticed him and gave him a USD300k investment. With money in hand, and guided by user feedback, the kid rewrote the entire app and renamed it Summly (later receiving another USD1M investment). Then, at 17, Yahoo’s Marissa Mayer spent USD30M to buy him and Summly.

None of that is the point of the story. He was a high-school student. The entire software was built in his bedroom in his spare time. He still had to attend class like other kids, do homework, and try to graduate.

The kid’s name is Nick D’Aloisio. Even if Nick has an extraordinarily high IQ, he was still only a teenager. Even if he started learning programming at 12, how much greater could his comprehension be than that of us adults? If he could do machine learning / natural language understanding, then as adults, how hard can it be for us to write a few scripts?

Chicken-soup time is over.

Earlier I said that programming actually reflects an ability to solve problems. On this point, people without a formal CS background have an advantage—the advantage of cross-domain experience. Because they have real business problems, while CS-trained people do not and must actively seek them out. It is the same logic as majoring in English: no matter how well you study, when you reach a real application scenario you may still be lost. Ask an English major to translate The Art of Computer Programming and see—they will probably want to die. Ask a CS person to build software for the chemical industry (not MIS) and see. Without a period of immersion, he cannot do it.

With a non-CS background, if you understand the business and also know some programming, enough to solve problems at work, you become very marketable. A day’s work for someone else takes you half an hour with a script; you spend the rest of the time studying, chasing girls, and still stay in the boss’s good graces—why not?

Being formally trained is actually quite frustrating. My wife often chats with me about trivial matters at work. As I listen, I think, hmm, this could be automated with a script; that could be simplified a lot with VBA—but I don’t know how. Her invoices, vouchers, reports, inventory—my head aches just hearing about them and my eyes blur just looking at them. I have a heart full of programming passion but no way to unleash it.

Today’s so-called Internet entrepreneurship—before you reach a certain scale, people with a formal CS background have no particular advantage. The tools and technologies in use are actually not that difficult; non-CS people can master them too, and cross-domain thinking often sparks more ideas. After doing Internet work myself, I went back to working on hardware firewalls, and I see opportunities everywhere (of course, many are ones I cannot grasp myself). That is still cross-domain within the industry; cross-industry is even more so. I believe a person who has done fast-moving consumer goods and can program will be far stronger at building a related SaaS than a formally trained coder.

How hard is programming? How easy? No need to debate all day. Roll up your sleeves, roll up your pant legs, charge into the swamp, and figure it out yourself.

MORE IN Languages & Craft

Further Reading in This Column

View all essays in “Languages & Craft” →

Time to Meet jj: Git's Next Evolutionary Step

Git has ruled version control for twenty years, but its staging area, brittle rebases, and blocking merge conflicts are becoming liabilities in the AI era. jj rebuilds the mental model from the ground up — while staying fully Git-compatible. Here's why it deserves your attention.

New Hope (2025–2026)5,588 chars · 12 min read