Learning JavaScript
For the essay that used to be here, view revision #468751 of this page. |
Below is reference material about JavaScript that is recommended for learning about performance, good practices and advanced patterns.
BasicsEdit
Just got started learning to program, or want to start now? Then these may be more relevant for you instead.
Title | Author | Date | Link |
---|---|---|---|
Code.org | Code.org | start here » | |
jQuery Code School | jQuery Foundation / Code School | 2014 | start here » |
jQuery Learning Center | jQuery Foundation | read it » | |
Learn Programming | Khan Academy | 2014 | start here » |
Learn Web Fundamentals | Codecademy | 2013 | start here » |
IntermediateEdit
Title | Author | Date | Link |
---|---|---|---|
You Don't Know JS | Kyle Simpson | 2014 | read it » |
Maintainable JavaScript (Fluent Conference) | Nicholas C. Zakas | 2012-05 | watch it » |
WAT: This is a sarcastic demo of surprising features in Ruby and JavaScript | Gary Bernhardt | 2012 | watch it » |
Fixing These jQuery (Debugging front-end applications) | adam j. sontag | 2010 | start here » |
AdvancedEdit
Performance optimizationEdit
- Optimization killers in V8: Pitfalls the bluebird library encountered.
- Grokking V8 closures for fun (and profit?) (September 2012), @mraleph.
See http://mrale.ph/ for more resources that give a good understanding of how V8 optimizations work internally. - v8-perf: Notes, slides and videos about inner workings of V8 (including GC and JIT).
- Jank Free, a collection of "must-see" resources to pinpoint bottlenecks, and eliminate stuttering from animations and scroll rendering.
- "Not optimized" warnings explained (2014), Paul Irish, Chrome Dev Tools
ProfilingEdit
- Chrome's timeline feature: File:Demonstration of Chromium's timeline feature.webm.
- chrome2calltree allows you to use the excellent KCachegrind profile viewer, which has call graphs, relative call frequency, grouping by file & other useful features. It works with profiles generated by V8, including Chrome.
- nodegrind makes it really easy to profile node projects by just calling 'nodegrind script.js' instead of 'node script.js'. It produces KCachegrind-compatible output.
ECMAScript 6Edit
Learn about the next version of the ECMAScript standard (which JavaScript implements).
- ES6-learning: An overview of resources about ES6.
- New OOP features in ES6 (December 2014), Dr. Axel Rauschmayer
DocumentationEdit
Check out DevDocs. It provides a central (and offline) interface for documentation of many Web APIs and libraries (MDN, Node.js, PHPUnit, and more).
Further readingEdit
- superherojs.com: Collection of great articles, videos and presentations. Learn about developing, testing and maintaining a large JavaScript code base.
- edabit.com: Learn to think like a programmer by completing small interactive challenges.
Staying up to dateEdit
- Web Platform News
- Frontend Feeds to Follow, Paul Irish