Software engineer book list
20140503
Here is the list of books that I read, and planned to read.
Basics
- Design patterns - Ralph Johnson, John Vlissides, Richard Helm, and Erich Gamma
- Programming Pearls - Jon Bentley - This is a book about algorithms.
Usability
- Don’t Make Me Think - Steve Krug - It’s said to be the one book about usability.
Code design, architecture design
- Refactoring - Fowler, Beck, Brant, Opdyke, Roberts
- Object Oriented Software Engineering: A Use Case Driven Approach - Ivar Jacobson
- Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives - Nick Rozanski, Eóin Woods
- Code Complete - Steve McConnell
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- The Pragmatic Programmer - Andrew Hunt and Dave Thomas
- Design of the UNIX Operating System - Maurice J. Bach
- The Art of Unix Programming - by Eric S. Raymond
Team work, development methodology
- The Mythical Man-Month: Essays on Software Engineering - I am curious about this one.
- Peopleware: Productive Projects and Teams -
- Kanban - David J. Anderson
Soft skills
- 7 habits - Stephen Covey
- Getting things done - David Allen
Need to clear your head?
- Visible Thinking: Unlocking Causal Mapping for Practical Business Results by Bryson, Ackermann, Eden, Finn Causal mapping is not widely know. You will have less bad decisions once you start causal mapping.
Other books that are not on the list, although they are as important as the books above. For example, test driven, and domain driven.
If I have one thing to say to myself 20 years ago, I would say this: “You know nothing yet, learn from everyone. But you won’t know that until you know better. The irony is that you will know how ignorant you are only when you are ready. Some people never will.”
For 20 years, I have been doing software development. It’s a shocking long time, yet went by fast.
When you look at the path of a software professional, a pretty good choice for those enjoy self-torture. Starts the day you graduated, actually it starts event before you step out of your school. You took a whole bunch courses. Back to my days, they were hardware, network, OS, DB, logic, discrete mathematics, etc. Then you learned your first programming language. After a while, it was the second, the third, soon you will stop counting. There will be a lot of ah-ha moments. I enjoyed them immensely.
That’s only the beginning. There are much to learn. Things like being patient while extending your hands to people who need a hand but refuse yours.