Prepared exclusively for Jose Luis Loya
gggggggggggggggg
What people are saying about
Pragmatic Thinking and Learning
This book will be the catalyst for your future.
Patrick Elder
Agile Software Developer
By following Andy’s concrete steps, you can make your most pre-
cious asset—your brain—more efficient and productive. Read this
book, and do what Andy tells you to do. You’ll think smarter, work
better, and learn more than ever before.
Bert Bates
Cocreator of Head First, Brain Friendly Books
I’ve always been looking for something to help me improve my
learning skills, but I’ve never found anything as effective as this
book. Pragmatic Thinking and Learning represents the best way
to help you become an expert learner, improve your skills, and
teach you how to improve your work efficiency by learning fast
and easily.
Oscar Del Ben
Software developer
I love books that explain that context matters. This book does—
and helps you understand why. From the Dreyfus model (a source
of many “aha’s” for me) to explaining why experiential training
works (the wall climbing story), Andy writes with humor and with
tact so you can learn from reading and organize your own think-
ing and learning.
Johanna Rothman
Consultant, author and speaker
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
This is an accessible and insightful book that will be useful to readers in many fields. I enjoyed reading it!
Dr. Patricia Benner
Professor and Chair, Department of Social and Behavioral
Sciences, University of California, San Francisco
Finished reading the beta last night. I loved this talk at NFJS
(and the herding racehorses one), and to have it in book form—
spectacular. All of this material has really changed my life!
Matt McKnight
Software developer
This has been fun, and I’ve learned a lot—can’t ask for
more than that.
Linda Rising
International speaker, consultant, and object-oriented
expert
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
Pragmatic Thinking and Learning
Refactor Your “Wetware”
Andy Hunt
The Pragmatic Bookshelf
Raleigh, North Carolina Dallas, Texas
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC.
Information contained in this book is intended as an educational aid only. Information is not intended as medical advice for any individual condition or treatment, and is not a substitute for professional medical care.
Every precaution was taken in the preparation of this book. However, the publisher assumes no responsibility for errors or omissions, or for damages that may result from the use of information (including program listings) contained herein.
Our Pragmatic courses, workshops, and other products can help you and your team create better software and have more fun. For more information, as well as the latest Pragmatic titles, please visit us at
http://www.pragprog.com
Copyright © 2008 Andy Hunt.
All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher.
Printed in the United States of America.
ISBN-10: 1-934356-05-0
ISBN-13: 978-1-934356-05-0
Printed on acid-free paper.
P2.0 printing, January 2009
Version: 2009-3-4
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
For my wife and children,
and for everyone who becomes what they think.
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
CONTENTS
8
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
CONTENTS
9
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
Contents
1
Introduction
13
1.1
Again with the “Pragmatic”? . . . . . . . . . . . . . .
16
1.2
Consider the Context . . . . . . . . . . . . . . . . . .
17
1.3
Everyone Is Talking About This Stuff . . . . . . . . .
18
1.4
Where We’re Going . . . . . . . . . . . . . . . . . . .
19
1.5
Grateful Acknowledgments
. . . . . . . . . . . . . .
23
2
Journey from Novice to Expert
25
2.1
Novices vs. Experts . . . . . . . . . . . . . . . . . . .
27
2.2
The Five Dreyfus Model Stages . . . . . . . . . . . .
29
2.3
Dreyfus at Work: Herding Racehorses and Racing
Sheep . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
2.4
Using the Dreyfus Model Effectively . . . . . . . . .
43
2.5
Beware the Tool Trap . . . . . . . . . . . . . . . . . .
50
2.6
Consider the Context, Again . . . . . . . . . . . . . .
53
2.7
Day-to-Day Dreyfus . . . . . . . . . . . . . . . . . . .
55
3
This Is Your Brain
57
3.1
Your Dual-CPU Modes . . . . . . . . . . . . . . . . .
58
3.2
Capture Insight 24x7 . . . . . . . . . . . . . . . . . .
63
3.3
Linear and Rich Characteristics . . . . . . . . . . . .
67
3.4
Rise of the R-mode . . . . . . . . . . . . . . . . . . .
75
3.5
R-mode Sees Forest; L-mode Sees Trees . . . . . . .
80
3.6
DIY Brain Surgery and Neuroplasticity . . . . . . . .
82
3.7
How Do You Get There? . . . . . . . . . . . . . . . .
83
4
Get
in Your Right Mind
85
4.1
Turn Up the Sensory Input . . . . . . . . . . . . . .
85
4.2
Draw on the Right Side . . . . . . . . . . . . . . . . .
87
4.3
Engage an R-mode to L-mode Flow . . . . . . . . . .
92
4.4
Harvest R-mode Cues . . . . . . . . . . . . . . . . . 104
4.5
Harvesting Patterns . . . . . . . . . . . . . . . . . . . 114
4.6
Get It Right . . . . . . . . . . . . . . . . . . . . . . . . 122
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
CONTENTS
11
5
Debug Your Mind
124
5.1
Meet Your Cognitive Biases . . . . . . . . . . . . . . 126
5.2
Recognize Your Generational Affinity . . . . . . . . . 134
5.3
Codifying Your Personality Tendencies . . . . . . . . 144
5.4
Exposing Hardware Bugs . . . . . . . . . . . . . . . 147
5.5
Now I Don’t Know What to Think . . . . . . . . . . . 151
6
Learn Deliberately
155
6.1
What Learning Is...and Isn’t . . . . . . . . . . . . . . 155
6.2
Target SMART Objectives . . . . . . . . . . . . . . . 159
6.3
Create a Pragmatic Investment Plan . . . . . . . . . 164
6.4
Use Your Primary Learning Mode . . . . . . . . . . . 168
6.5
Work Together, Study Together . . . . . . . . . . . . 174
6.6
Use Enhanced Learning Techniques . . . . . . . . . 176
6.7
Read Deliberately with SQ3R . . . . . . . . . . . . . 177
6.8
Visualize Insight with Mind Maps . . . . . . . . . . . 181
6.9
Harness the Real Power of Documenting
. . . . . . 188
6.10 Learn by Teaching
. . . . . . . . . . . . . . . . . . . 190
6.11 Take It to the Streets . . . . . . . . . . . . . . . . . . 192
7
Gain Experience
193
7.1
Play in Order to Learn . . . . . . . . . . . . . . . . . 193
7.2
Leverage Existing Knowledge . . . . . . . . . . . . . 197
7.3
Embed Failing in Practice . . . . . . . . . . . . . . . 199
7.4
Learn About the Inner Game . . . . . . . . . . . . . 203
7.5
Pressure Kills Cognition . . . . . . . . . . . . . . . . 208
7.6
Imagination Overrides Senses . . . . . . . . . . . . . 212
7.7
Learn It like an Expert . . . . . . . . . . . . . . . . . 216
8
Manage Focus
218
8.1
Increase Focus and Attention . . . . . . . . . . . . . 219
8.2
Defocus to Focus . . . . . . . . . . . . . . . . . . . . 225
8.3
Manage Your Knowledge . . . . . . . . . . . . . . . . 228
8.4
Optimize Your Current Context . . . . . . . . . . . . 235
8.5
Manage Interruptions Deliberately . . . . . . . . . . 241
8.6
Keep a Big Enough Context . . . . . . . . . . . . . . 248
8.7
How to Stay Sharp . . . . . . . . . . . . . . . . . . . 252
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
CONTENTS
12
9
Beyond Expertise
253
9.1
Effective Change . . . . . . . . . . . . . . . . . . . . . 253
9.2
What to Do Tomorrow Morning . . . . . . . . . . . . 255
9.3
Beyond Expertise . . . . . . . . . . . . . . . . . . . . 256
A Photo Credits
260
B Bibliography
261
Index
271
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
Chapter 1
Introduction
Welcome!
Thanks for picking up this book. Together, we’re going to journey
through bits of cognitive science, neuroscience, and learning and
behavioral theory. You’ll see surprising aspects of how our brains
work and see how you can beat the system to improve your own
learning and thinking skills.
We’re going to begin to refactor your wetware—redesign and rewire
your brain—to make you more effective at your job. Whether you’re
a programmer, manager, “knowledge worker,” technogeek, or deep
thinker, or if you just happen to have a human brain you’d like to
crank up, this book will help.
I’m a programmer, so my examples and rants will be directed at the
world of software development. If you’re not a programmer, don’t
worry; programming really has little to do with writing software in
arcane, cryptic languages (although we have a curious attachment
to that habit).
Programming is all about problem solving. It requires creativity,
ingenuity, and invention. Regardless of your profession, you prob-
ably also have to solve problems creatively. However, for program-
mers, combining rich, flexible human thought with the rigid con-
straints of a digital computer exposes the power and the deepest
flaws of both.
Whether you’re a programmer or frustrated user, you may have
already suspected that software development must be the most
difficult endeavor ever envisioned and practiced by humans. Its
complexity strains our best abilities daily, and failures can often
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
CHAPTER 1. INTRODUCTION
14
be spectacular—and newsworthy. We’ve smashed spaceships into
distant planets, blown up expensive rockets filled with irreplace-
able experiments, plagued consumers with automated collection
letters for $0.00, and stranded airline travelers on a semiregular
basis.
But now the good news (sort of): it’s all our fault. We tend to make
programming much harder on ourselves than we need. Because of
the way the industry has evolved over time, it seems we’ve lost track
of some of the most fundamental, most important skills needed by
a software developer.
The good news is that we can fix that right here and right now. This
book will help show you how.
The number of bugs programmers introduce into programs has
remained constant for the past forty years. Despite advances in
programming languages, techniques, project methodologies, and
so on, the defect density has remained fairly constant.1
Maybe that’s because we’ve been focusing on the wrong things.
Despite all these obvious changes in technology, one thing has
remained constant: us. Developers. People.
Software isn’t designed in an IDE or other tool. It’s imagined and
created in our heads.
Ideas and concepts are shared
and com-
Software is created in
municated among a team, including the
your head.
folks who are paying our organization to
develop this software. We’ve spent the time
investing in basic technology—in languages, tools, methodologies.
That was time well spent, but now it’s time to move on.
Now we need to look at the really hard problems of social interac-
tion in and between teams and even at the harder issues of just
plain old thinking. No project is an island; software can’t be built
or perform in isolation.
Frederick Brooks, in his landmark paper “No Silver Bullet–Essence
and Accident in Software Engineering” [Bro86], claimed that “the
software product is embedded in a cultural matrix of applications,
1.
Based on research by Capers Jones via Bob Binder.
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
CHAPTER 1. INTRODUCTION
15
users, laws, and machine vehicles.2 These all change continually,
and their changes inexorably force change upon the software
product.”
Brooks’ observation puts us squarely at the center of the mael-
strom of society itself. Because of this complex interaction of many
interested parties and forces and the constant evolution of change,
it seems to me that the two most important modern skills are these:
• Communication skills
• Learning and thinking skills
Some improvement to communication skills is being addressed by
our industry. Agile methods (see the sidebar on the following page),
in particular, emphasize improved communications between team
members and between the ultimate customer and the development
team. Mass-media books such as Presentation Zen: Simple Ideas on
Presentation Design and Delivery [Rey08] are suddenly best-sellers
as more and more people realize the importance of simple, effective
communication. It’s a good start.
But then there’s learning and thinking, which is a much harder
nut to crack.
Programmers have to learn constantly—not just the stereotypical
new technologies but also the problem domain of the application,
the whims of the user community, the quirks of their teammates,
the shifting sands of the industry, and the evolving characteristics
of the project itself as it is built. We have to learn—and relearn—
constantly. Then we have to apply this learning to the daily barrage
of both old and new problems.
It sounds easy enough in principle perhaps, but learning, criti-
Pragmatic Thinking and Learning Page 1