James Shore writes about JavaScript and test-driven development, and runs the Let's Code JavaScript screencast series.
HN commenters repeatedly recommend his TDD screencasts as excellent for learning to test JavaScript and decide what is worth testing.
Let's Code: Test-Driven JavaScript
- already raised $39,331 on kickstarter [1]
- charging 'early' subscribers $19.95/month, but then it goes up to $24.95/month [2]
OR
Test-Driven JavaScript Development (Developer's Library)
- paperback or pdf for a one time fee of $32.62 [3],[4]
- Kindle for a one time fee of [5] (although the font size appears to be an issue [6])
- subscription based, along with 9 other books for $19.99/month [7]
- subscription based, along with all other Safari digital library offerings for $42.99
- if using the pdf, kindle, or safari subscription versions can be text searched
For a guy trying to learn JavaScript in his spare time, this one's a no brainer
[1] http://www.kickstarter.com/projects/188988365/lets-code-test-driven-javascript
[2] http://www.letscodejavascript.com/v3/subscribe
[3] http://www.amazon.com/dp/0321683919/
[4] http://www.informit.com/store/test-driven-javascript-development-9780321684042
[5] http://www.amazon.com/dp/B004519O02/
[6] http://www.amazon.com/gp/community-content-search/results/ref=cm_srch_q_rtr/?query=Kindle&search-alias=community-reviews&Go.x=0&Go.y=0&idx.asin=B004519O02
[7] https://ssl.safaribooksonline.com/subscribe
EDITED: hopefully paragraph breaks come through this time
Hi Dreeves, here's a partial list of the projects we've seen:
ONLINE VIDEO LECTURES
Let's Code Test Driven JavaScript: http://www.letscodejavascript.com/
One Month Rails: https://onemonthrails.com/
Learnable: https://learnable.com/
Code School: http://www.codeschool.com/
Treehouse: http://teamtreehouse.com/
CodeHS: http://codehs.com/ - "Computer science class in a box" for k-12 schools
Learn Street: http://www.learnstreet.com/
CODE CHALLENGES
Top Coders: http://www.topcoder.com/
Hacker Rank: https://www.hackerrank.com/
Interview Street: https://www.interviewstreet.com/
OTHER
CodeCombat: http://codecombat.com - online game that teaches Javascript
Codecademy: http://codecademy.com/
CodeAvengers: http://www.codeavengers.com/ - Pay-per-module coding game
Hakitzu: http://www.kuatostudios.com/games/hakitzu/ - Paid iPad game that teaches coding
Kodable: http://www.surfscore.com/ - iPad game that teaches coding
Full disclosure, I run CodeCombat.
There are dozens upon dozens of other not-for-profits and pre-monetization projects out there, but this list covers most of the major players.
Not related to the service, but related to your comment about talking while programming: I actually talk continuously when I'm programming (and not only swearing ;-) ). I've been doing pair programming for many years now and having a continuous patter going on is one of the successful strategies I've found. Even things as simple as, "I'm paging up now" helps the other person stay engaged in the session. Of course there are periods where I have to stay silent because I'm thinking of something difficult, but after that I usually conclude with, "I'm thinking about doing x,y, and z. Does that sounds right to you?".
A good example of what is a good level of communication while pair programming is James Shore's Let's Code stuff: http://www.letscodejavascript.com/ Although it is clearly aimed at teaching, I find that good pair programmers say pretty much the same things as they are going along.
Keeping up this kind of patter is a skill that requires some practice, but it's not really so difficult. It's worth developing IMHO.
Personal recommendations:
Egghead [0] if you want to learn JavaScript and some of the most popular / common techniques and frameworks currently used. The videos on this site can help you to get up to speed with frameworks and libraries such as React, Reactive Extensions, Vue, Angular, Redux, Ember and the like pretty quickly (once you get the hang of vanilla JavaScript)
Let's Code: Test-Driven JavaScript [1] if you want to have a great start (and deep dive afterwards) in vanilla JavaScript. I suggest to start with the video tutorials here which will help you to get a solid background not only in JavaScript, but also in application architecture, test driven development and things like build automation. Plus James is a great teacher, with a solid background in all of the above (and more).
[0] https://egghead.io/
[1] http://www.letscodejavascript.com/
One problem is that angular 1.x is considerably more complicated than react. There's John Papa's style guide [0], but IMO it's not great.
There's an angular review [1] that I believe hits the nail on the head:
"Angular wants you to build your application in a particular way, but it’s not very explicit about it. Call it “passive-aggressive architecture.”"
After using angular for over ~2 years, I'm far happier with react (and a flux implementation, if doing something more complicated). You end up with far simpler code and more maintainable code.
The fact that the angular team itself is doing a complete rewrite that throws away almost all the fundamentals of angular 1.x shows a clear recognition of the many flaws present in it.
[0] https://github.com/johnpapa/angular-styleguide
[1] http://www.letscodejavascript.com/v3/blog/2015/01/angular_review
Golang, Python and Ruby all have solutions for this: vendoring. I know first hand that Python and Golang have OPTIONS for how you vendor code... My current Python project and ONE of my Golang projects are "non standard".
The last time I used NPM, vendoring the code wasn't really a viable option, and it seems that things haven't improved. When googling NPM and vendoring, I learned that this isn't the FIRST time that this sort of issue has bitten the NPM user base. This article from 2 years ago http://www.letscodejavascript.com/v3/blog/2014/03/the_npm_debacle makes it clear that the community as a whole hasn't learned. Vendoring still seems much harder than it needs to be and based on my search results is activly discouraged.