What I learned from reading << The Clean Coder >> Book (Reading notes)

 

Chapter 1

1. You should plan to work 60 hours per week. 40 hours for your employer, the other 20 hours for yourself, you should work on your career in these 20 hours.

2. Santayana's curse: "Those who cannot remember the past are condemned to repeat it." . True for software development as well.

3. Continuous learning. Woe to the developers who fail to learn new disciplines and techniques- their peers will excel as they decline. Woe to the architects who stop coding – they will rapidly find themselves irrelevant.

4. Practice is when you specifically exercise your skills outside of the performance of your job for the sole purpose of refining and enhancing those skills.

5. The best way to learn is to teach. Professionals take personal responsibility for mentoring juniors. 


Chapter 4

Creative output depends on creative input. Creativity breeds creativity. (read a lot and read all kinds of material!). 

Watching TV does not usually help the author create, probably won't for me either.

It is incumbent upon you as a professional to reduce your debugging time as close to zero as you can get. (Doctors don't like to reopen patients to fix something they did wrong. who did that too often would not be considered professional). Similarly, too much debugging and re-fix the code you claim is done makes you as a developer unprofessional.


Chapter 5

The Three Laws of TDD

1 You are not allowed to write any production code until you have first written a failing unit test.

2 You are not allowed to write more of a unit test than is sufficient to fail – and not compiling is failing

3 You are not allowed to write more production code that is sufficient to pass the currently failing unit test.


Chapter 9 Time Management

You don't have to attend every meeting to which you are invited. Indeed, it is unprofessional to attend too many meetings.

Remaining in a meeting that has become a waste of time for you, and to which you can no longer significantly contribute, is unprofessional.


Any Argument that can't be settled in 5 minutes can't be settled by arguing. 

You can disagree, but if you agree, then you must engage. Even if you don't agree, if the team or Management decided that then you have to do it, unless it is something you think it is inhuman to do, in which case you can quit, if not, then you have to engage as agreed.


Priority Inversion

Sometimes you raise the priority of one task so that you can postpone the task that has the true priority. Clearly this is unprofessional behaviour. You are really procrastinating on the important things. It is unprofessional. Professionals evaluate the priority of each task, disregarding their personal fears and desires, and execute these tasks in priority order (I know this is hard, you may get stuck with what you are doing, you may want to finish that simpler task so that you are instantly gratified by your brain dopamine, but being professional is never easy, you have to act counter-naturally sometimes). 


The Rule of Holes, when you are in one, stop digging.


Estimation

Do not commit unless you know for certain


Chapter 11: Pressure

Professionals do not succumb to the temptation to create a mess in order to move quickly.

Professionals realized that "quick and dirty" is an oxymoron. Dirty always means slow!


Tooling

Programmers are detail managers.

Comments

Popular posts from this blog

zhitongguigu

Array Part2

Two pointers (Part 1)