In the last post I introduced 5 “books” from beginner to intermediate, this time I’d like to add more stuff. Beware, they would hurt your brain permanently, take care and be prepared!
I recommend this book to you so that I can hurt you as I’ve been hurt, possibly permanently:) The good thing is that all the algorithms introduced in this book provide Java implementations. You can even access them in GitHub. There is also an open online course there for free, which I’ve been enrolled in and struggling with the assignments. Algorithms, Part I and Algorithms, Part II are definitely awesome and would help you a lot besides reading the book.
I know that programmers have different opinions against algorithms, some said this kind of stuff was rarely used in their daily work, some said that it’s super important - at least for interviews. I leave the answer to you and IMHO it’s up to you and only up to you. Life is short, learn what you want and love first, and learn some stuff later if needed. However, if you still have much time available, then just jump into this deep ocean and, ENJOY!
If sometimes you are doubtful regarding the value of this learning process, read the scripts in the below of a movie - a real movie.
And ask yourself, “Does that help you with ladies?”. For me, I want to ask Professor Robert Sedgwick this question also, as he is one of the inventors of Red-Black-Tree. The inventor himself explain the data structure and algorithms to you, really exciting, right?
Last but not least, if you got stuck and depressed, come here and check my painful submission history - just one of them, and you will find that you are not alone, and you will never walk alone.
So the journey of brain hurt continues. Algorithms 4th edition is good enough, but surprisingly it doesn’t cover some important topics such as Dynamic Programming, I don’t know why but I know that many programmers have the same feeling. This book from MIT covered that and more than that, some even said that it’s better than Knuth’s Art of Programming series, as they are relatively too old and outdated. I’m not able to give any comment on this opinion, I just want to tell you that till now I never touched Knuth’s books, and so I won’t recommend them to you, even though they are said to be super good.
After two cold and cruel books on algorithms, I think it’s time to relax for a while. This book on software engineering will not hurt your brain that much - at least I didn’t. Take a cup of coffee and enjoy the reading, it’s thoughtful and also interesting.
You will be interested in how JVM works, right? If not then just skip to No.10. There are many books with title like “Inside Java Virtual Machine”, but I would say the specification is more definitive and accurate. You can even try to implement these specifications if you want and dare - I know someone learns C++ like this. It’s reasonable as JVM is implemented in C++, this kind of ridiculous learning style is really impressive, but I have to honestly admit that I just can’t.
If you found this book is too boring to read, then stop immediately, the best time for you to read this book might not be fulfilled, however, please remember this book and come back later.
No.10 GitHub and Awesome Java
Apparently, GitHub is not a book, but the most popular Java projects are out there and it’s really easy for you to learn the best practices from these awesome projects, or from some most popular projects. Since talk is cheap, being involved in some good projects will be even more important than just reading books.
There are many other good books, but I don’t want to pretend that I know all of them very well and make some general comments so that it won’t be wrong. IMHO it’s enough for you to read and practice even only one of them thoroughly, rather than just read and never put them into practice seriously.
Happy Reading and Happy Coding!