1. You read the source to build a model (theory) of the application in your head.
2. You use the model (theory) to work out a solution.
3. You then translate the abstract solution into actual code.
My experience:
Mastering step 2 makes all the difference when it comes to writing high quality software fast. The best developers I have ever worked with master step 2 and typically spend more time doing step 2 than inexperienced/bad developers. The result is typically much simpler solutions that can be built fast and require less maintenance. Basically the more time you spend on step 2, the faster you write high quality code.
1. You read the source to build a model (theory) of the application in your head.
2. You use the model (theory) to work out a solution.
3. You then translate the abstract solution into actual code.
My experience:
Mastering step 2 makes all the difference when it comes to writing high quality software fast. The best developers I have ever worked with master step 2 and typically spend more time doing step 2 than inexperienced/bad developers. The result is typically much simpler solutions that can be built fast and require less maintenance. Basically the more time you spend on step 2, the faster you write high quality code.