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.
Programming languages
- 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.
Other technologies
- 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
Introduction to Algorithms
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.
The Algorithm Design Manual
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.
Cracking the Coding Interview.
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.
Blockchain
- My course on cryptocurrencies. You will find a link here to my upcoming Solidity course too.
Online presence
- The Twitter guide that got me started.
- Here is where I buy domain names for my projects.
Miscellanea
- The Phoenix project. A novel about IT and DevOps. I saw myself in many of the situations described in this novel. A fun read.