I've heard good thing about Clojure for the Brave and True, free online:
I read this book after having programmed C++ with the common "C++ is C with classes" attitude for a while, and it really made me change the way I looked at this language.
It was the book that made me realize how beautiful the RAII idiom is, that the STL was clearly not hacked together by a bunch of crazy monkeys, that you rarely need raw pointers in your code and that -- in contrast to popular belief -- you seldom need to care about memory management.
When I finished that book, and though in the full knowledge that I was dealing with this ugly monster of the Frankenstein kind; just like at the end of "the beauty and the beast", I had somehow come to respect and appreciate that language.
- Lippman et al, C++ Primer, 5th ed
- Stroustrup, The c++ Language, 4th ed (which has earlier version "A Tour of" as 1st 150 pages
- Meyers "Effective C++", 3rd ed and
- "Effective Modern C++" http://www.aristeia.com/books.html (don't dismiss the others cause theyre 14+ years old, either
Great both for people new to the language and those looking to strengthen their foundations.
I've also been enjoying this Modern Java blog series, which is book-ish.
In a similar vein, I really enjoyed Effective Modern C++.
I think The Ruby Way is still the best ruby book, and a new edition just came out earlier this year.
Jon Skeet is immutable. If something's going to change, it's going to have to be the rest of the universe.
Not for Scala beginners, more for people who want to learn functional programming paradigm and how to apply its ideas in Scala. Very clear explanations of immutability, laziness, monads, etc. There are also a lot of interesting programming problems in the book to train yourself.
I haven't been using C++ for a few years now and I needed a quick refresher. While I wouldn't call C++ Primer quick it covers all the basics really well. Great resource for people new to the language.
Only complaint is the same as yours, it's pretty verbose but I guess that's what you get with c++.
https://isocpp.org/tour has PDFs of the first four chapters, which offer something of a breadth-first overview of C++11.
This a good opportunity to say thank you to Anthony J. Dos Reis.
I like the way he writes and when reading his books, I feel like he is in
front of me teaching the subject.
Here are his books that I bought:
Assembly Language and Computer Architecture Using C++ and Java , Course Technology, 2004
By reading this book, I've developed my skills in programming with
C/C++, assembly language and while learning computer architecture all
at the same time. This book contains lots of low level stuffs.
The exercises are easy enough and had really sharpen my skills.
Although the target machine is theoretical, I was able to switch
easily into the real machine.
Compiler Construction Using Java, JavaCC, and Yacc, IEEE/Wiley, 2012
This book taught me how to create compilers. The author started from
simple principles in grammars then slowly introducing a very simple compiler
eventually adding more features to the compiler. I was able to adapt
his method in developing a compiler. In later chapters, the book does
a great job in presenting an application of what was learned from the previous
chapters by implementing grep using automata theory.
I might have forgotten some of the topics after more than a year but I
will not forget the fun it gave to me when reading and learning from
[edited to add more books]
It's mostly focused around Django, but it's great for learning web app stuff in general. Has a chapter about Stripe integration, doing SASS/SCSS stylesheets, fiddling with images, and lots more. :)
It's one of my favorites.
I recommend it to anyone starting to learn Java, with or without any previous programming experience.
Helped me a lot.
A classic is Larry C Paulson's "ML for the Working Programmer", although it's (a) apparently a bit divisive (see e.g. https://news.ycombinator.com/item?id=9667264) and (b) out of print. It's a thoughtful treatment of functional programming that happens to use ML, and a book I enjoy reading rather than just referring to. I appreciate the fact that the second edition introduces modules very early on, and that it's relatively un-mathematical in the way it presents things like module semantics.
Robert Harper's "Programming in Standard ML" (online only I think, at http://www.cs.cmu.edu/~rwh/smlbook/book.pdf) is more thorough. It's modern enough to present the Basis library as part of the language, so you do get a handful of useful existing data structures rather than feeling you're expected to build everything yourself. A pity the Basis library is so slight though.