In 1984, when I was working on Balance of Power, the Macintosh had just been released and was equipped with 128KB of RAM. This was twice what most computers had in those days, but I couldn't seem to fit the game into the available space. The graphics weren't the primary factor: they cost only about 15K. Part of the problem lay in the number of countries and the vast amounts of information I maintained about each country: the text strings for the country name, capital, leader, insurgency, and so forth. The code itself was also sizable, and of course, some of the RAM was taken up by the operating system.
Before the Macintosh, programmers simply took over the machine and all its RAM. The operating system was really nothing more than a set of utilities. But the Mac changed all that. We cowboy programmers had to learn to live under the operating system, abiding by its rules and using its systems. It was hard on us; the same mentality that enabled us to succeed in the Wild West atmosphere of early personal computers now chafed under the rules and regulations of the Mac operating system. Many of the cowboy hotshots of the 8-bit era couldn't adjust to the new regime and dropped away. Fortunately, I was blessed with the intellectual and psychological agility to adjust to the New Order.
Take no pride in facts memorized, but in ideas grasped.
An important lesson lies buried in this experience. My advantage lay in an unorthodox approach to technology. Most technical people take a shotgun approach to technology, memorizing mountains of technical details. That huge heap of knowledge constitutes the expertise on which they build their careers. Since that expertise is their basis of competitive advantage, technical people, and especially programmers, take much pride in the size of the pile of facts that they have stuffed into their heads. This has the pernicious effect of rendering programmers insensitive to the demands that technology makes upon its users. Programmers revel in the arcana that torture users. But what goes around comes around; the mind that is stuffed with bucketsful of technological trivia becomes bloated and slow-moving; the inertia created by all that expertise retards further learning. Programmers are mostly young because they reach their mental capacity sometime after their 30th birthday, after which they ossify.
My advantage I owe to my physics professors, who ground into my stubborn skull the single question, "What is the essence of the problem?" Always dive down into a problem and get your hands on the deepest issue behind the problem. All other considerations are to dismissed as "engineering details"; they can be sorted out after the basic problem has been solved. And so I have equipped myself with a bloodthirsty drive to purge all facts from my mind. If it's a principle, I want to understand it; if it's a fact, I want to forget it. Facts clutter the mind; ideas organize it. If I can fit a fact into the larger structure of my understanding, then I can retain it; otherwise, it slips from my mind like water from a steel cage. I can't remember names, faces, or telephone numbers, but I can absorb new ideas even into my fifties (although I'm starting to slip).