Inspired by Blaine Osepchuk's collection of books, I'd like to share some books that I am currently reading.
I tend to choose to buy a book very carefully for two main reasons. One, a good book can be very expensive (I remember paying over $100 for a school textbook). Second, it is time-consuming to finish a book and a commitment I don't want to give up.
However, the joy of having a physical book nearby, from opening the Amazon box to touching and smelling the book for the first time is a great feeling and makes it worth an investment.
- Cracking the Coding Interview is a great book for sharping the coding skill and interview preparation. It has always been a Best-seller and recommended for, as the title suggests, cracking the coding interview.
- Elements of Programming Interviews I recently bought this one as part of learning Python and preparing for job interviews. It has 300 interview questions covering a wide range of topics such as sorting, graph, dynamic programming, system designs, etc. I like the book organization. It is available in Python and Java. Must-read.
- Grokking Algorithms. There are a lot of illustrations in the book which makes it fun to read. The author has a way of making a complex problem easy-to-understand.
- Problem Solving with Algorithms and Data Structure with Python. This is a solid book that covers all the basics on algorithms and data structures. It is good for quick reference and to build a strong foundation in CS. I believe without a strong foundation, a complex problem is even harder. There is free online version with interactive code playground.
- Data Abstraction & Problem Solving with C++. This is a book from during university. I have not read it for a while but it is there to remind me learning concepts and principles is transferable in software engineering.
- Head First Design Patterns. I have a love-hate relationship with Head First book series. You know when I am trying to read something serious, but there is a cartoon. I think it is a great book because design patterns is a pretty challenging and important topic. Sometimes the best way to learn is not a hard way but an easy one.
- Clean Architecture: A Craftsman's Guide to Software Structure and Design by Robert C. Martin (Uncle Bob), the author of a very popular book Clean Code. I have only read the first chapter of the book and learn about the complexity of software building. I am looking forward to reading it more.
- Career Builiding This is a book I picked from a library. It contains useful information on building a resume, interview process, workplace culture, burnout, etc. It is a good read to learn from the experiences of those who have been there.
- Soft Skills, the software developer's life manual Unlike many professions, a software developer has to spend a lot of time to keep learning and improving skills, mainly out of passion and/or necessity. However, it can impacts other areas in life in a negative way such as dating, social life, and health issue. This books talks about how to deal with fitness and spiritual well-being, as well as how to balance your finance and market yourself.
- The Quick Python Book, provides a quick reference for python learner such as me.
If you are still here, thank you for reading. What books are your favorites? What are you currently reading?
Most people want to make things perfect. Sometimes we evaluate the complexity of an upcoming goal or a problem. So, the fear to not complete it perfectly or "wrong" (Yeah, who are judges? 🤔) stops us even from trying.