Favorite Quotes

What hackers and painters have in common is that they're both makers. Along with composers, architects, and writers, what hackers and painters are trying to do is make good things.

Paul Graham - Hackers & Painters

Those who avoid the sin of intellectual sloth could be called "engaged". They are more alert, more intellectually active, less willing to be satisfied with superficially attractive answers, more skeptical about their intuitions.

Daniel Kahneman - Thinking Fast and Slow

Good design is hard. If you look at the people who've done great work, one thing they all seem to have in common is that they worked very hard. If you're not working hard, you're probably wasting your time.

Paul Graham - Hackers & Painters

People who are committed to constant learning are people who know what they don't know. They know their own weaknesses, and they're not insecure in talking about them.

Eric Sink - Eric Sink on the Business of Software

Don't stop the proceedings with idiocy.

Alan Cooper & Robert Reimann - About Face 2.0

Creating an interface is much like building a house: If you don't get the foundations right, no amount of decorating can fix the resulting structure.

Jef Raskin - The Humane Interface

Good design can help tame the complexity, not by making things less complex--for the complexity is required--but by managing the complexity.

Donald A. Norman - Living with Complexity

It seems to me that the two most important modern skills are these: communication skills, learning and thinking skills.

Andy Hunt - Pragmatic Thinking & Learning

Why is programming fun? ... First is the sheer joy of making things. ... Second is the pleasure of making things that are useful to other people. ... Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. ... Fourth is the joy of always learning, which springs from the nonrepeating nature of the task. ... Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination.

Fred Brooks - The Mythical Man-Month

When good tools support creative activities, the activities can induce a state of "flow" in the user. This is a state of full absorption in the activity, during which time distorts, other distractions fall away, and the person can remain engaged for hours--the enjoyment of the activity is its own reward. Artists, athletes, and programmers all know this state.

Jenifer Tidwell - Designing Interfaces

Each one of us has, somewhere in his heart, the dream to make a living world, a universe.

Christopher Alexander - The Timeless Way of Building

Software development is a discovery process in which technical people make continual tradeoff decisions in order to reach what they consider an optimal result.

Mary Poppendieck, Tom Poppendieck - Lean Software Development

Where humans are concerned, context is everything.

Erika Hall - Just Enough Research

Stress the importance of thinking hard, not working hard.

Steve Maguire - Debugging The Development Process

Never lose sight of why software is being developed: to satisfy real needs, to solve real problems.

Alan M. Davis - 201 Principles of Software Development

Eighty percent of software work is intellectual. A fair amount of it is creative. Little of it is clerical.

Robert L. Glass - Facts and Fallacies of Software Engineering

Rosenberg's Law: Software is easy to make, except when you want it to do something new. And then, of course, there is a corollary: The only software that's worth making is software that does something new.

Scott Rosenberg - Dreaming in Code

I don't believe in simple, prescriptive formulas for success. I wanted this book to acknowledge the complexity that creativity requires.

Ed Catmll - Creativity, Inc.

Software development as both a thinking-intensive and communication-intensive activity presents an interesting dichotomy.

Alistair Cockburn - Agile Software Development

Intrinsic motivation comes from the work we do, from pride in workmanship and a sense of helping a customer. Purpose is what makes work energizing and engaging.

Mary Poppendieck, Tom Poppendieck - Lean Software Development

Creating a program often means that you have to create a small universe.

Donald E. Knuth - Things a Computer Scientist Rarely Talks About

Maybe this is the key to productivity: just getting started.

Joel Spolsky - Joel On Software

Writing the code is the easy part of software development.

Pete McBreen - Software Craftsmanship

You have to believe that software design is a craft worth all the intelligence, creativity, and passion you can muster.

Eric Steven Raymond - The Art of Unix Programming

In software development, "perfect" is a verb, not an adjective.

Kent Beck with Cynthia Andres - Extreme Programming Explained

For most of us, it doesn't matter to us whether we understand how things work, as long as we can use them. It's not for lack of intelligence, but for lack of caring. In the great scheme of things, it's just not important to us. Web developers often have a particularly hard time understanding--or even believing--that people might feel this way, since they themselves are usually keenly interested in how things work.

Steve Krug - Don't Make Me Think

Someday I will learn that nobody cares about my technology whims.

Eric Sink - Eric Sink on the Business of Software

Agile implies being effective and maneuverable. An agile process is both light and sufficient. The lightness is a means of staying maneuverable. The sufficiency is a matter of staying in the game. The question for using agile methodologies is not, "Can an agile methodology be used in this situation?" but "How can we remain agile in this situation?"

Alistair Cockburn - Agile Software Development

The purpose of each activity is to move the game forward. Work products of every sort are sufficiently good as soon as they permit the next move.

Alistair Cockburn - Agile Software Development

Homo logicus are driven by an irresistible desire to understand how things work. By contrast, Homo sapiens have a strong desire for success.

Alan Cooper - The Inmates Are Running the Asylum

The human mind is exquisitely tailored to make sense of the world. Give it the slightest clue and off it goes, providing explanation, rationalization, understanding.

Donald A. Norman - The Design of Everyday Things

For Homo logicus, control is the goal and complexity is the price they will pay for it. For normal humans, simplicity is the goal, and relinquishing control is the price they will pay.

Alan Cooper - The Inmates Are Running the Asylum

We find ourselves in a thicket of strategic complexity, surrounded by a dense mist of uncertainty.

Nick Bostrom - Superintelligence

Irrespective of what type of work you do, the craftsman mindset is crucial for building a career you love.

Cal Newport - So Good They Can't Ignore You

Every good work of software starts by scratching a developer's personal itch.

Eric S. Raymond - The Cathedral & The Bazaar

The importance of a more considered approach goes up sharply as the stakes increase. It's when the truly Herculean effort is called for that we have to learn to do work less of the time and think about the work more.

Tom DeMarco, Timothy Lister - Peopleware

Einstein repeatedly argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer. Much of the complexity he must master is arbitrary complexity, forced without rhyme or reason by the many human institutions and system to which his interfaces must conform.

Fred Brooks - The Mythical Man-Month

Whatever I do, I try to do it in a way that has some elegance; I try to create something that I think is beautiful. Instead of just getting the job done, I prefer to do my work in a way that pleases me in as many senses as possible.

Donald E. Knuth - Things a Computer Scientist Rarely Talks About

When a person is able to organize his or her consciousness so as to experience flow as often as possible, the quality of life is inevitably going to improve, because, even the usually boring routines of work become purposeful and enjoyable.

Mihaly Csikszentmihalyi - Flow

Programming is a craft skill. Regardless of the amount of arcane and detailed technical knowledge that a person has, in the end, application development comes down to feel and experience.