I had to do a C++ project a while back and got my hands on "Advanced C++ Programming Styles and Idioms" by James Coplien through a friend's recommendation. Best thing I ever did to really understand the soul of the language.
I am sure there is such "soul identifying" book for each language. What would those books be? If you know of one, reply here. I'd love to know them (Go, Haskell). Not just books that show you the syntax, but which show you the soul.
Effective Java — http://www.amazon.com/Effective-Java-Edition-Joshua-Bloch/dp...
POODR (Ruby) — http://www.poodr.com/
Javascript the good parts — http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockfor...
There is of course also the gang of 4 language agnostic classic on design patterns http://www.amazon.com/Design-Patterns-Elements-Reusable-Obje...
http://www.amazon.com/gp/aw/d/0521513383?pc_redir=1404313638...
"Effective Java" is a similar book for Java.
I had this experience when I started working on Karma's Android app. I basically started out by copying the entire iOS architecture to Java. It helped me get started quickly without having to make too many hard decisions early on, but I did have to rewrite some things after I became more experienced and learned there was a better, more Android idiomatic, way of doing it.
The thing that helped me the most is that I became part of the community. Some of them explained to me why I was wrong and then taught me a better approach.
My opinion on the idioms, best design practices, etc... when learning a new language may differ. I almost always feel like some people just understand everything and I am always running to catch up. It turns out no one was born to think in base2 and these individuals just spend a lot of time reading the docs, hacking around on small apps and really taking the time to understand not the how but the why. So I often have to convince myself, you will get there too it just takes time and practice. Rarely does anyone learn a new language in a weekend and put out top notch, idiomatic code, and if you do come work for me so I can sit back on the beach all day. No one picks up a guitar and shreds out Eruption from Eddie on day one, they play some basic Nirvana chords.
If you start to rely on frameworks, it's entirely possible you'll bypass some pretty spectacular features built right in to your new language.
Thanks for clearing it up, I think standard library is a better term :)
Should be up again.