I’m a notorious parallel reader, jumping between books all the time.
Here I give a couple opinions on the books currently in my pipeline:
- Deep Learning, Ian Goodfellow and Yoshua Bengio and Aaron Courville
- Fluent Python, Luciano Ramalho
- Seven Languages in Seven Weeks, Bruce Tate
- Clojure for the Brave and True, Daniel Higginbotham
- A Tour of C++, Bjarne Stroustrup
- The Rust Programming Language, Steve Klabnik and Carol Nichols
- (Hyperion, Dan Simmons)
I’ve actually bought a physical copy of Deep Learning by Ian Goodfellow and Yoshua Bengio and Aaron Courville and didn’t regret it. While it’s probably not the type of book you read from front to back, it’s certainly the type of book you can take out into the Garden and ponder on a couple of pages for half an hour. While it’s not the easiest read, it’s well-written and understandable. No riddles or equations you’ll spend hours contemplating on.
I recommend taking some online course like https://www.deeplearning.ai/ to get a good overview and then the book to go more into depth. It packs a lot of knowledge you’d otherwise have to gather from dozens of papers, tutorials or other resources.
It covers all (currently) essential topics of deep learning in a single read.
Please note that this is a book on background knowledge: You won’t find any Tensorflow/PyTorch/whatever code in it.
Highly recommended for getting into deep learning.
Fluent Python by Luciano Ramalho is a pretty cool intermediate Python book that sports a couple Python tricks you might not know. Python is the kind of language many start to learn and are soon happy with their level of expertise, especially if just used as a tool for e.g. Data Science. This was also true for me, so I was happy to find this book to give me a bit deeper insight into the language.
My main issue with it is that you’ll most likely know some subset of it already and have to skip/skim around to find the interesting parts.
Recommended if you want to deepen your Python skills.
Seven Languages in Seven Weeks
I’ve seen quite of lot of recommendations for Seven Languages in Seven Weeks by Bruce Tate on reddit, Quora etc., so I gave it a shot. The book gives you a tour through Ruby, Io, Prolog, Scala, Erlang, Clojure and Haskell. This is a cool thing because you can pick up the core concepts of very different languages in a short time-span. Yet, if you really want to work hands-on, you’d probably have to spend some time on it. And you probably have to be the type of person who enjoys writing toy examples in different languages. Personally I couldn’t keep up the motivation for the time being. Especially because I like to read books in the Garden, in the bed or in public transport. Not while sitting in front of the screen (this is generally an issue I have with books on programming).
It covers pretty interesting languages and can probably teach you a lot, so I’m pretty sure I’ll revisit this book later.
Recommended if you want to learn about lots of different programming language concepts.
Oh, and there is a sequel: Seven More Languages in Seven Weeks.
Clojure for the Brave and True
This book by Daniel Higginbotham is a nice read in general, quickly covering lots of Clojure.
I’ve dabbled with Clojure (and Scheme and Racket) a couple of times but never really got into it. This book took me a bit deeper a year ago, then I stopped reading it and seemingly forgot most of it. You’ll really have to get a project running while reading it, otherwise you’ll probably not gain much from it. So calculate in some screen-time if you really want to tackle it (which, as stated above, is typically not how I read books…). With its lighthearted writing style, it’s generally an easy and good read compared to many other books.
Recommended if you want to get into Clojure, but make sure you’ll have the time for doing some actual project with it.
A Tour of C++
I bought A Tour of C++ by Bjarne Stroustrup because I wanted to revisit modern C++ from ground up. I’ve started with C++ roughly in 1998 and lot of things have changed during that time. While I tried to keep up, I always felt I never had a structured way to progress to a more modern C++ style. Also, I’ve settled with a subset of C++ that works for me – as most C++ developers do, others typically give up in frustration. As the title suggests, this book quickly covers all the important aspects of C++ without going into detail for each of them. Which is exactly what I was searching for.
Recommended if you’re searching for a a quick overview on modern C++, probably not enough to get started with the language as a beginner.
The Rust Programming Language
I admit it, it was mostly those annoying language evangelists (“Rewrite It In Rust”: https://transitiontech.ca/random/RIIR) who kept me from trying this over-hyped language.
What actually convinced me to give it a try was:
It's finally happening – after >30 years of pro use, 20 of which quite reluctantly, I am officially DONE with C/C++. Only maintenance from now on, everything new will be in @rustlang. THANKS Rust team for refining modern concepts into such a practical, elegant system. I love it.
— Andrea Pessino (@AndreaPessino) July 23, 2018
and Rust at Chucklefish.
So I started reading the (free) online edition of the book here: https://doc.rust-lang.org/book/2018-edition/index.html
It’s great to have such a high-quality resource freely available and it certainly helped me to start out quickly. It even brought me to reading it on-screen and trying out the code myself :), which I usually shun.
I’m not too deep into it yet, so I can’t comment too much on the details, but as it’s free you can just take a look at the first chapters and get started.
Recommended for starting out Rust 🙂
This book by Dan Simmons is obviously not a tech-book and I don’t want to review it here – there are thousands of well-written reviews on Amazon etc. If you’re into… errr… weird-fantasy-science-fiction-whatever it’s worth checking it out.