He is spot on to the fact that we learn traditional Computer Science in a weird way.
In the classes that I had at uni, we were always asked too:
Write a program which uses Bubble Sort to do X…. Then compare with a Quick Sort version.
Each time, we got to start from scratch and write code for the task.
I don’t know if things have changed recently (I am sure it is different in some good schools), but we never had to do the task that you end up doing most of the time:
Maintenance: Starting from the given application, fix 5 of the 10 bugs located in this JIRA instance. Then, add the following 2 features into the application.
Now THAT would be more realistic and useful. Part of this process requires that we are good at reading code. However, as the book states, we never get taught HOW to read peoples code.
With the advent of opensource, we now even have the luxury of being able to look at good and bad code. It is all out there. Rather than having someone come talk at a Java User Group, wouldn’t it be nice to have a group get together to analyze some code? Each time someone could be the CM (Code Master) and have looked through for choice design decisions.
This all comes down to my entry: Read The Source, Luke