Win Your Copy: Pragmatic Thinking & Learning: Refactor Your Wetware
ISBN: 1934356050
Reviewer Ratings
Relevance:Readability:
Overall:
Buy it now
One Minute Bottom Line
If you design and/or develop software then you should buy this book and read it right away. |
Review
1 Introduction
This is chapter does a nice job of introducing you to the book and giving you an idea of what to expect in the chapters that follow. While this book isn’t specifically for programmers, Andy assumes that most of the readers are either programmers or “frustrated users” and takes the opportunity to talk about his view on why software development is difficult to do properly and what this book can do to correct the problem.
2 Journey from Novice to Expert
This chapter introduces you to the Dreyfus model of skill acquisition and uses it to explain the five levels of skill mastery you’ll go through on the way from being a novice to an expert. It also discusses some of the problems that arise when the people designing processes do not understand the difference between levels, and why giving a novice a tool won’t make them as good as an expert.
3 This Is Your Brain
You get your first peek at the brain and an introduction to the model of how it works that is used throughout the rest of the book. Andy also introduces to the two styles of thinking the brain uses; the Linear and Rich modes. Andy prefers using these descriptions instead of the more traditional “Left brain” and “Right brain” because it is “more correct.” (If you want to know why, find a copy of the book and read the sidebar on page 58.) For now think of Linear mode as being like a computer (logically a following instructions step by step), and Rich mode as using intuition to go beyond your “programming” and begin “thinking outside the box.”
In any case, Andy provides some ideas on what each mode excels at and a way to begin refactoring your wetware.
4 Get in Your Right Mind
This is one of the longer chapters in the book and focuses on Rich mode thinking; what it is, how to encourage it, and how to integrate it with our more often used Linear mode of thought. It also includes several interesting exercises to help you experience R-mode thinking.
5 Debug Your Mind
Chapter five offers the opportunity to look at many of the known bugs in the human brain. These include the following:
- Cognitive biases - things that unconsciously sway your decision making.
- Generational affinity - biases formed as you grew up. This bug is called “generational” because people in the same generation share many of the same biases.
- Personality tendencies - the quirky things that make perfect sense to you but seem odd or confusing to others.
- Hardware bugs - things in the “legacy brain” (as Kathy Sierra refers to it) that operate at a very low level; for example fight or flight behavior, and the need to know where we fit in the social hierarchy. These biases are very powerful but once you’re aware of them, it is possible to take steps to counteract them or at least notice when they’re operating and try to take them into account and minimize they’re effect on you.
6 Learn Deliberately
Here’s where you start to learn about learning; what it is, the difference between effective and ineffective learning methods, and some techniques (like having SMART goals, creating a Pragmatic Investment Plan for your “knowledge portfolio”, “learn by teaching”, and using a mind map) that you can use to make your learning sessions more efficient and effective.
7 Gain Experience
Experiential learning, aka learn by doing, is one of the most effective ways to learn something. It’s how you learn most things (like riding a bike or programming a computer) and there are things you can do to make your learning environment more efficient. You’ll also learn about the importance of failing and the need for good feedback.
8 Manage Focus
You may find this may be hard to believe, but it’s harder for you to learn new things when you’re constantly being interrupted. This chapter points out some of the most common interruptions and ways of minimizing or eliminating them so you can focus your attention on what you are trying to learn. Andy also shows you how to use a Wiki as an Exo-Cortex so you can capture and manage information instead of losing it.
9 Beyond Expertise
Now that you know all this stuff, what are you going to do about it? This chapter acknowledges that sometimes it is difficult to make changes and offers some suggestions on how to get started with debugging and refactoring your wetware.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





Comments
Zaheer Paracha replied on Thu, 2009/04/23 - 12:14pm
Ch Nu replied on Thu, 2009/04/23 - 12:16pm
Sudhakar Ramasamy replied on Thu, 2009/04/23 - 1:01pm
Jim Bethancourt replied on Thu, 2009/04/23 - 1:48pm
Another way to really learn something well that you're interested in is to set a goal to write an article about it, or to volunteer to make a presentation about it (or both). If it's about an open source framework or tool, have the tool author proofread your article, as this benefits both of you greatly -- you learn even more and the information about the tool is sure to be correct.
Craig Dickson replied on Thu, 2009/04/23 - 2:11pm
I have found that collaborative learning can be productive.
Whenever I am working with a team that is attempting to adopt a new technology, the first thing I do is create a learning schedule based on a book usually and encourage people to commit to present one chapter in each session.
That way each person is at least on the hook to learn one chapter really well. However, I have found that most people put the effort in to read each chapter so that they can participate in the conversations.
Pascal Lalonde replied on Thu, 2009/04/23 - 3:36pm
On my side, I found out that my learning curve is good when I stimulate myself to new content. Since a year or so, I now take time during the day to read and browse about new things, new methods. And this is how I ended up here.
Also, during development, if I get to a point were I'm getting close to a new concept. I take a break and get documentation about it and try to find best practices that will guide me through the process.
Burk Hufnagel replied on Thu, 2009/04/23 - 9:15pm
I'm glad to see so many of you sharing the things that help you to learn.
One of my favorites it to volunterr to teach whatever it is so that I have extra motivation - not only do I have to learn it, but I have to know it well enough that I can describe it to someone else in such a way that it makes sense to them too.
Burk
John Lindwall replied on Fri, 2009/04/24 - 1:01am
Maybe I'm getting old or maybe it was the stress of the new job, but I found my retention of new knowledge to be less then it used to be. What helped me was writing down what I learned, almost as though I was writing the manual for the subject I was learning. Some of this information I have since added to the corporate wiki to share with others. It gives me a place to review my knowledge and refine it as I learn more details.
My latest challenge was learning git which was quite frustrating at first. My initial approach was "learn by doing" but that quickly got me in trouble. I realized that I needed to learn the core concepts by reading books and articles before I could apply them. This reduced my frustration and made me successful at "learning by reading and then doing".
Nello Sgambato replied on Fri, 2009/04/24 - 3:11am
Gian Franco Casula replied on Fri, 2009/04/24 - 6:34am
...what helps for me is repetition, not in the first sense that comes in mind, but more like repetitive poking a (hard) subject from different perspectives, reading different articles, books etc...
Another effective way of learning for me is having an audience (of one person is enough) to explain things to...
But by far the best way is listening to presentations (when available), and mentally mapping the insights given to the concepts I learn from a book...that's why I love youtube, google techtalks, infoq, etc. etc.
Thamizh Arasu replied on Fri, 2009/04/24 - 7:18am
Adam Pohorecki replied on Fri, 2009/04/24 - 7:23am
Jared Nope replied on Fri, 2009/04/24 - 10:05am
I learn through experience so I generally like to make small project for myself and dive right in with a new technology. Here are a few things I do to help me with this
Xianghui Dong replied on Fri, 2009/04/24 - 6:01pm
There are different learning situations for me. If I learn by practical needs, I will just find the quickest method to solve my problem, that usually start from some good google search phrases. Depends on the case of the teniques, sometimes I'll spend more times to get a better understanding. For example, I knew regular expressions can be very useful, once I decided to devote some time after many cases in which regular expressions can really help, I can read and understand it better. When the basics are grasped, regular expressions are not difficulties anymore.
If I learn by interest, there are often enough time for me to learn systematically. I'll start from introductionary articles, then maybe some good books. This could be a long time task, so I'll make notes on details I found, and outline what I got, thus I can pick them up quickly later. I also will try to use them as much as I can, such as Groovy, which make regular scripting task a really treat.
dennis sellinger replied on Sat, 2009/04/25 - 2:30am
Andrew McVeigh replied on Mon, 2009/04/27 - 2:00pm
(this topic/competition is soooo much better than the usual "say how good our book is, and maybe win a copy". kudos)
i find that I don't learn something properly unless I use it "in anger". i have to have a meaty, tough problem to solve and one that lets me see the value of the subject/language/technology being learnt.
p.s. I have a copy of the book, please don't consider me for the copy...
Chuck Bedekovich replied on Mon, 2009/04/27 - 8:14pm
All along, from my early days "learning" to code, through my more experienced years "improving" my skills up through today, I have relied on asking myself one very simple question, then adapting my behavior to whatever happened to be the answer to the question:
"What happens if I do this?"
Whatever "this" turns out to be, whether it is a new piece of code, a change to existing code, trying to code an algorithm in a new language, working with new hardware or software, any and everything - trying and then experiencing the results of that trial has taught me the most - and in so many different ways.
I am now a Certified Scrum Master, working towards Certification as a Scrum Practicioner, and am doing so because Agile and Scrum have embraced *my* philosopy of "What happens if I do this?" Empirical rather than predictive, "inspect and adapt", ask the team rather than know (or presume to know) all the answers.
What could be more rewarding and more fun?
Sandesh Tattitali replied on Tue, 2009/04/28 - 9:22am
Wei Ling Chen replied on Tue, 2009/04/28 - 9:41am
in response to:
Andrew McVeigh
Christian Voller replied on Tue, 2009/04/28 - 11:15pm
Brad Parks replied on Wed, 2009/04/29 - 9:54am
Paolo Antinori replied on Thu, 2009/04/30 - 5:32pm
my answer is "wasting time".
i explain that. the way modern comunication works. reading an excerpt, sometimes just a title, other times a little more.
micro-reading. passive reading. feed titles.
they are all convenient ways to stimulate half-passively my brain. it's just like when you learn secret "adult" stuff when you are a pre-teen. you do'nt ask. just listen to a few words. try to figure. start to use the words without a true comprehension. until you find your self knowing these ideas as you had always known them.
i think that i don't always want to open a new thick book. but if i read useful concepts as i read comic strips while having breakfast, well, i'm learning without even know that.
Marcelo Lopez replied on Sun, 2009/05/03 - 5:20pm
For me, what helps is to take a problem based approach. Tackle a concrete example of something you'd encounter in a "real life" situation. Not just some abstract concept about some technology product or language. Putting the concept that's being conveyed into a meaningful context to the issues and problems that are faced in the day-to-day flow of work, has always made more sense to me.
Burk Hufnagel replied on Fri, 2009/05/15 - 9:20pm
Hi gang,
Sorry for the delay in getting the free copies out to folks, but we're getting back on track.
I've entered the names of everyone who's posted a comment on this review - with the exception of Wei Ling (Community Manager for DZone), Anrew McVeigh (asked not to be included) and me (author) - and entered them into a program I call the FickleFingerOfFate, whick picked three names using the best random numbers money can buy.
The winners should have all been contacted by now, but I'm posting the names here so you can all marvel at their winningness. Congratulations to sonica, sellingerd, and Jim Bethancourt! If you haven't been contacted by a DZone representative yet, please email me and I'll get things straightened out.
Thanks for all the posts! Even though the contest is over, it's OK to keep posting your thoughts, ideas, and questions.
Burk
Sachin Raverkar replied on Mon, 2009/05/25 - 5:26am
1. OPEN EYES, EARS, MIND: Keep updated about new technologies by using various means like blobs, RSS feeds, forums, newsletters, popular sites like DZone, peer network, Googleing
2. KNOW IT. TRY IT: Use Google to search about What's New, HOW-TO, Get Started tutorials, technology provider's dedicated website and start reading and experimenting
3. BENCHMARK. OWN EVALUATION: Try new technology in sandbox project. Understand pros and cons. Compare it with old and latest competing technologies and understand which one to use in given scenario. Discuss with peers, netizens. Use questions and polls to know what others think about it.
4.UNBIASED: Don't get obsessed with particular technology category (Java vs. .NET), vendor, OS platforms (windows vs. *nix). See the real strengths and weaknesses of technology. Don't be devotee.
5. UNLEARN: Technologies become better and better. Unlearn older ways to use given technology and learn the latest ones.
6. TEACH WHAT YOU KNOW: I order to teach others, I need to master the technology. Thus I learn a lot. In process of teaching, I also learn from others.
7. ITS MIND GAME: Last but not the list. Keep my mind young ever. Learning happens in mind. Learning is continuous thing. Never quit it.