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?