I'm an experienced developer who is really interested in JavaScript frameworks such as Node.js, Backbone, and client side stuff such as Sencha.
However, I'm struggling with them, which I think is because I haven't found the right tooling or a setup that suits my workflow.
On my Java, Rails and C++ projects, I'm equally as happy in emacs as I am in a richer IDE, but this combination of loosely typed JavaScript and poorly documented framework APIs based around massively nested maps means I can barely get a page of moderately complexity to even parse.
When I get past that, my debugger consists of alert().
What am I missing in order to be able to effectively work with JavaScript? Would you recommend any particular APIs, Frameworks, Articles etc to get started?
Check out these videos from Paul Irish on using console effectively:
http://www.youtube.com/watch?v=4mf_yNLlgic
http://www.youtube.com/watch?v=nOEw9iiopwI
Since you are an emacs user, you may want to try mooz's community fork of Yegge's js2-mode https://github.com/mooz/js2-mode
Haven't tried it myself, but you may also want to look at Moz Repl in emacs. http://www.emacswiki.org/emacs/MozRepl
Finally, check out Christian Johansen's and Magnar Sveens .emacs.d for some ideas on how to set up your emacs for javascript.
https://github.com/magnars/.emacs.d
https://github.com/cjohansen/.emacs.d
For TDD, you 3 main options worth checking out are: Buster.js looks really promising and does both server-side and client-side testing.
If you don't like buster.js for whatever reason, Mocha is a popular node.js server-side testing option and Jasmine is a popular client-side testing option.