I am ASP.NET/C# developer and all of a sudden I needed to write a mostly client-side line of business web-app. So I started reading. This has taken up much of my train time for the last half year.
Books I recommend.
High Performance JavasScript AND Even Faster Websites. Intermediate. Team books– I now confuse them in my memory, chapters of various quality, some advice is not so general (well what if you aren’t doing many pictures)
The Art of Readable code. Not JS specific, but it was a good book.
Books I don’t recommend
(Where is Definitive Guide and the Good Parts?)
I use jslint, which imho, is a substitute for actually reading the Good Parts. Definitive Guide, last time I read it was like reading machine generated javadoc. I don’t know if that is still fair, but it kept me from buying an updated version.
Pluralsight Videos I’ve watched
I never know what sort of input will make my brain understand something in IT. Will it be hands on development? A book? A screencast? An audio podcast? So I try them all. If I sound lukewarm about some of these (the Knockout and Underscore videos), its because these libraries aren’t going to sink in for me until I work with them. But if I didn’t watch the video, I probably would have a painful time of getting started in the first place. And I find watching training videos to be work. This isn’t Game of Thrones.
JsRender by John Papa. Watch it. After it, you will understand what clientside templating is about. I don’t care if JsRender wins market or mindshare, it sounds like the templating technologies are all similar, so learn one, and you have a vague idea of how they all work.
Underscore Fundamentals. I wanted to benefit more from this than I did. I don’t know if there is a way to absorb the underscore library except through constant attempts to use it. I recommend taking breaks (watch it over a period of days) with coding time in between, to increase the odds of all those methods sinking in.
Knockout fundamentals. I think I get why these client side databinding engines exist now.