I will publish my own courses in the future on Python, data structures and algorithms, Solidity and decentralized apps, and more. Here is a list of books and courses that I recommend to learn more about the technologies we have discussed in the book.
- Learning Python. Great book to learn Python from scratch.
- Effective Python. This book will take your Python skills to the next level.
- Head First Java. A good introduction to programming in Java.
- Effective Java. A long collection of tips to write more effective Java applications.
- A Tour of C++. This was the first book I read on C++. Totally recommended.
- Effective C++. This is a must. You will learn a lot about C++ and programming in general. There are more books on this line by the same author that I can recommend: More Effective C++ and Effective Modern C++.
Writing good code
- Code complete, 2nd edition. The first book I read about writing good code. It completely blew my mind.
- Clean code. A very good book on writing quality code, with plenty of examples in Java. The same author wrote The clean coder, discussing how to act like a professional software developer.
- Head first design patterns. The easiest way to understand design patterns, in Java. For a reference book, check Design Patterns: Elements of Reusable Object-Oriented Software.
- Programming pearls. One of my favorite programming books. It will help you think like a programmer. Google recommends this book to prepare the technical part of their interviews.
- The pragmatic programmer. Another classic.
- Learning SQL and NoSQL Distilled to learn more about different types of databases.
- Designing Data Intensive Applications. I learned a lot about distributed systems, which made it easier to dive deep into cloud and blockchain technologies.
Data structures, algorithms and FAANG technical preparation
This book has everything you may need – and much more. Focus on the topics I have listed in Part 3. Everything else is nice to know but the chances of it coming up in an interview are slim to none. However, I didn’t want to fail my interview because I didn’t spend a couple of hours studying some sections of this book in detail, so I ended up learning about 90% of the book.
This is a fun book by Steven Skiena. Very practical. It contains plenty of exercises and “war stories” where he shares experiences implementing the algorithms. There is also a catalog of the common problems that arise in practice and how to tackle them.
I did not start here though. I only completed the problems in the last 2 sections (medium and hard), after I finished the next book.
Elements of Programming Interviews
This is an excellent book. I keep coming back to it before every interview. The questions are hard, so you will be very well prepared. There are C++, Python, and Java versions. Most of the questions I have seen in interviews were similar or at the same level of difficulty as the questions you will find in this book.
- My course on cryptocurrencies. You will find a link here to my upcoming Solidity course too.
- The Phoenix project. A novel about IT and DevOps. I saw myself in many of the situations described in this novel. A fun read.