10 Books I am reading (NOT at the same time)
Tags: discuss, learning, career
Published: 2018-11-19 23:00:31

---
title: 10 Books I am reading (NOT at the same time)
published: true
description: Favorites books on my reading list
cover_image: https://thepracticaldev.s3.amazonaws.com/i/w41ls0p1u5daw35e2v7o.jpg
tags: #discuss, #learning, #career
---

Inspired by Blaine Osepchuk's collection of books {% link https://dev.to/bosepchuk/29-must-read-programming-books-2n45 %}, 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.

1. **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**.
2. **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.
3. **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.
4. **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](http://interactivepython.org/runestone/static/pythonds/index.html) with interactive code playground.
5. **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.
6. **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.
7. **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.
8. **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.
9. **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.
10. **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?