Bumper Sticker Computer Science
A few of my favorites, not found in the linked article: "There are two ways of constructing software. One way is to make it so simple that there are obviously no deficiencies. The other is to make it so complex that there are no obvious deficiencies." C.A.R. Hoare "The purpose of software engineering is to control complexity, not to create it." Dr. Pamela Zave "The most important single aspect of software development is to be clear about what you are trying to build." Bjarne Stroustrup "T...Why We Can't Have "Intuitive" Programming Languages
If a procedure named INSIGHT has been defined and then called seventeen times in the program, and the eighteenth time it is misspelled as INSIHGT, woe to the programmer. The compiler will balk and print a rigidly unsympathetic error message, saying that it has never heard of INSIHGT. Often, when such an error is detected by a compiler, the compiler tries to continue, but because of its lack of insihgt, it has not understood what the programmer meant. In fact, it may very well suppose that som...The Consensus of Cyberspace
In the real world the empty page might scare the writer. as the blank screen might intimidate the programmer, but now individuals found themselves in the position of having to "boot up" an entire universe of meaning, without any easy reference to the constellation of familiar objects that tend to reinforce the tentative definitions obf newly ereated artifacts. Say, for example, one wished to create a chair in cyberspace, circa 1985. The most that can be said is that this "chair" won't look ve...Thinking Means Understanding in More Than One Way
Thus, your knowledge is represented in various forms that are stored in different regions of the brain, to be used by different processes. What are those representations like? In the brain, we do not yet know. However, in the field of Artificial Intelligence, researchers have found several useful ways to represent knowledge, each better suited to some purposes than to others. The most popular ones use collections of "If-Then" rules. Other systems use structures called 'frames'--which resemble...The Curse of the Gifted
When you were in college, did you ever meet bright kids who graduated top of their class in high-school and then floundered freshman year in college because they had never learned how to study? It's a common trap. A friend of mine calls it "the curse of the gifted" -- a tendency to lean on your native ability too much, because you've always been rewarded for doing that and self-discipline would take actual work. You are a brilliant implementor, more able than me and possibly (I say this a...Because some people grew on their own talent, they never learned to appreciate the reasons for overhead.
Eric S. Raymond writing to Linus Torvalds.
The World is a Function
Kakeru Seki: A fact is somehow related to another fact. Unless you understand these relationships, you won't be a real reporter. Noriko Hikima: True journalism! Kakeru Seki: Well, you majored in the humanities. Noriko Hikima: Yes! That's true--I've studied literature since I was in high school. Kakeru Seki: You havea lot of catching up to do, then. Let's begin with functions. Noriko Hikima: Fu...functions? Math? What? Kakeru Seki: When one thing changes, it influences another thing. A ...As a programmer I know that algorithms can relate to the real world, and since these algorithms are constructed in computers that ultimately run on bits and boolean logic, then the real world may be imagined to deconstruct to pure mathematics.
Brad Fitzpatrick on What Makes a Great Programmer
Seibel: What do you think is the most important skill for a programmer to have? Fitzpatrick: Thinking like a scientist; changing one thing at a time. Patience and trying to understand the root cause of things. Especially when you're debugging something or designing something that's not quite working. I've seen young programmers say, "Oh, shit, it doesn't work," and then rewrite it all. Stop. Try to figure out what's going on. Learn how to write things incrementally so that at each stage you...A programmer must think like a scientist.
Spend 20 Percent of Your Time Learning New Things
He says things like, "Do good stuff." He says, "If you don't do good stuff, in good areas, it doesn't matter what you do." And Hamming said, "I always spend a day a week learning new stuff. That means I spend 20 percent more of my time than my colleagues learning new stuff. Now 20 percent at compound interest means that after four and a half years I will know twice as much as them. And because of compound interest, this 20 percent extra, one day a week, after five years I will know three time...From Joe Armstrong, the "compound interest" on this learning will result in big gains in the future.
Fran Allen Sees Computer Science as Science
Seibel: Do you think of yourself as a scientist, an engineer, an artist, or a draftsman? Allen: I think of myself as a computer scientist I was involved in my corner of the field in helping it develop. And those were interesting times—the emergence of computer science—because there was a Ic lot of question about, "Is this a science? Anything that has to have science in its name n't a science." And it was certainly unclear to me what it meant. But compilers were a very old field—olde...Allen started out as a programmer, but became a scientist to perform her job well.
Bernie Cosell on the Complexity of Modern Programming
So I don't envy modern programmers, and It's going to get worse. The simple things are getting packaged into libraries, leaving only the hard things. That stuff is getting so complicated, but the standards that people are expecting are stunning. One of the ones ^i^ey showed me stunned me. He was showing me Google Maps that will do I routes for you. One of the things you can Jo is you can grab a piece of the route with ^our mouse and drag that piece of the route somewhere else to tell Google t...Provides a great example of complexity in Google Maps functionality and being thankful that he no longer must contend with such increasing difficulty.