A novice came to master Bawan. “What is the most important thing to master in Computer Science?”
Replied the master: “The oldest common denominator, for it will survive us as it has survived the assaults of time ; History will enlighten you about what has been, so you can judge what will be. Indeed, learn about the low-level bits, for if you despise them they will byte you back.”
— — —
A monk came to master Bawan. “What is the most important thing to master in Computer Science?”
Replied the master: “The most common recipes, for we all have to read others’ code, and they ours ; understanding the common patterns helps you understand without reading every single line. Indeed, learn about the flaws and edges of each pattern, for each context will require a different tradeoff.”
— — —
A senior monk came to master Bawan. “What is the most important thing to master in Computer Science?”
Replied the master: “The most abstract thing, for we labor every day on abstractions, and need to share them ; you need to make every intention obvious even to the novice, or your own memory. Indeed, learn to compare languages, frameworks, principles, or methods, for each abstraction freely chosen today is our shackles of tomorrow.”
— — —
A nun was standing nearby, and couldn’t help but notice the answers are different. “Three monks came with the same question, yet the answer changed each time. Why?”
Replied the master: “Learning is a path.
“This young monk is dizzy with too many roads. I chose for him a well-traveled path so he gets challenged but not lost.
“This monk is getting too confident walking a few paths again and again. I sent him exploring so he comes back with experience.
“This old monk is comfortable enough with many roads. I sent him where there is no path, so he might make one.
“This lesson is what I now deem the most important in Computer Science, and rests well out of Computer Science’s domain: code is done by people, and only by understanding them and their flaws can we rely on the code their brains and hands produced.”