Andy Hunt’s Pragmatic Thinking and Learning is fun and interesting, but the topics within often leaned on the obvious. The central theme throughout Pragmatic Thinking and Learning revolves around harnessing brain modes (linear mode and rich mode), self improvement, and the Dreyfus Model – a model, where skills are ranked by five stages (Novice, Advanced Beginner, Competent, Proficient, and Expert). Throughout the text Andy works through the stages of the Dreyfus Model within the context of the software realm. He offers advice on how we can progress as developers, and discusses learning techniques that have worked for him.
Andy offers many interesting tips, stories, and draws in external research. For example, did you know, that research suggests that: “if you constantly interrupt your task to check email [Twitter, Facebook] or respond to an IM text message, your effective IQ drops by ten points” or “the leading predictor of a tendency for road rage was the amount of personalization on a vehicle”?
However, I felt that many of the concepts discussed have become common knowledge (part of popular developer culture) and were somewhat obvious. To borrow from the Dreyfus Model; this book is probably best suited for Novices or Advanced Beginner. It’s also fair to mention that I thought Andy’s other book The Pragmatic Programmer suffered this same problem, but also keep in mind that “the obvious … is never seen until someone expresses it simply” (Kahlil Gibran). In the end, I do recommend this book. It’s a fun read, excellent for those who are new to the software industry. It would make a great addition to College / University programs.
I found the Dreyfus Model of Skill Acquisition neat. It’s a central theme throughout Pragmatic Thinking and Learning by Andy Hunt.
Here’s how Wikipedia describes the Dreyfus Model:
The Dreyfus Model of Skill Acquisition postulates that when individuals acquire a skill through external instruction, they normally pass through five stages. … the five stages of skill acquisition are: Novice, Advanced beginner, Competent, Proficient and Expert - Dreyfus model of skill acquisition
We have different skills and are at different stages simultaneously in each skill – for example, someone might be an Expert at underwater basket weaving and a Novice at cooking. As we cultivate our experience we progress through these stages.
The categories (again, from Wikipedia) are as follows:
- Advanced beginner
- situational perception still limited
- all aspects of work are treated separately and given equal importance
- coping with crowdedness (multiple activity, information)
- now partially sees action as part of longer term goals
- conscious , deliberate planning
- holistic view of situation, rather than in terms of aspects
- sees what is most important in a situation
- uses maxims for guidance, meaning of maxims may vary according to situation
- no longer reliant on rules, guidelines, maxims
- intuitive grasp of situation, based on tacit knowledge
- vision of what is possible
Presented with these categories we can draw some parallels with the software realm. Like say, create a list of events that you’d most likely find these different categories of software developers hanging out.
Developer Event Attendance and Developer Skill Categories:
- Vendor or Technology Specific: User Groups / Code Camps / Corporate Training / Evangelistic Events
- Many Novices
- Many Advanced beginners
- A small number of Competents that are transitioning to Proficients
- Proficients and Experts might be leading the group or may have been mandated to go by their organization
- Open Book Clubs / Non Specific Technology Meetings / Non Specific Bar Camp Type Events
- Mostly Competents, Proficients, and Experts
Of course, this is just my opinion. I’ve noticed that my attendance to the events listed above continually shift. Initially I thought I was becoming a curmudgeon, but instead I shifted a couple Dreyfus categories.
I found Andy Hunt’s description of Sheep Dip Training funny:
A sheep dip is a large tank in which you dunk the unsuspecting sheep to clean them up and rid them of parasites. The sheep line up; you grab one and dunk it in the tank … It wears off, of course, so you have to dip them again.
Sheep dip training follows the same model. You lineup unsuspecting employees, dunk them in an intensive, three-to-five day event … and proclaim them to be Java developers, .NET developers, or what have you. It wears off, of course, so next year you need to have a “refresher” course – another dip.
Companies love standardized “sheep dip” training … There’s only one drawback. This naive approach doesn’t work … – Pragmatic Thinking and Learning by Andy Hunt