Computing today involves many different kinds of paradigms and many different kinds of talents. I can speak only to people who happen to have grown up with the strange kind of “brain-organization” that I seem to have somehow acquired; for lack of a better word, let me simply say that I’m a “geek.” I haven’t got a good definition or a good litmus test for geekhood, but I definitely know it when I see it; and I see it in about 2% of the world’s population. The main characteristic is an ability to understand many levels of abstraction simultaneously, and to shift effortlessly between in-the-large and in-the-small. A geek knows that, to achieve a certain high-level goal, you need to add one to a certain counter at a certain time.
Dear young person, if you are a geek, the world needs you, and you will never run out of opportunities to apply your talents. I urge you to take a close look at “literate programming”; it’s a way to write programs that makes me incredibly happy, several times each week. My book The Stanford GraphBase contains several dozen short examples of programs written in that style, intended to be read by humans first and machines next.
Dear young person, if you are not a geek, please ask somebody else for advice.
– Donald Ervin Knuth.
Amazingly inspirational words from the legendary Prof. Donald Knuth, featured in People of ACM, dt. Thursday, 5th June, 2014.