Skip to content

Technical Background, Concepts, and Reading List

Jack Reed edited this page May 19, 2020 · 1 revision

Describing UI State with Data - very idea-based tutorial. Lengthy, but one of the few tutorials worth going through in detail.

Flux:

  • Architecture Docs
  • Flux Video 1 - overview by Facebook engineers of the problems "React" is responding to, with good diagrams well explained in the context of a real example: Facebook's messages system. More important than the code or libraries is just the ideas, patterns, or problems they talk about.
  • Flux Video 2 (you can skim up to around 9:30 minutes and watch it at 2x speed to get past all the filler he throws in) - Some guy who's used react a lot talking about it from a more practical and in-depth perspective. Again, more an "ideas" talk.

JavaScript Concurrency Model (MDN) - how and why race conditions occur in JavaScript's asynchronous environment.

10 Things I Learned From the jQuery Source - I found this video from Paul Irish really helpful in breaking down the black box of jQuery (Paul Irish may have been drunk while making this, but it is easy to follow). You might also have a look at these gotchas, performance tips, and Koans.

Other Informative Candy:
D3 Joins - how "joins" and "selections" work in D3. This was the first time I really understood what "declarative" meant.

Reusable Charts in D3 - just a good and straightforward look at encapsulation and closures in JS in general.

Journey from Procedural to Reactive JavaScript with Stops - step-by-step tutorial talking about different ways of dealing with events and state changes in JavaScript.

The Introduction to Reactive Programming You've been Missing - definitely crossing the line into "look at this new hotness!" territory, but I learned a thing or two form this. The diagrams are very helpful.

A Baseline For Front-End Developers - an article describing some tools and practices that have become commonplace for front-end developers. It links out to many other resources, and I would suggest exploring those.

js-assessment - a series of failing mocha tests. If you can quickly make these pass and explain how you did so, you likely understand JavaScript fairly well. I don't believe in riddles, so here are the answers. This will enable you to learn in the way you think is best for you. IRC is a good place to get guidance on each answer and explanations of the language features that contribute to a successful solution.

For deeper background, the three "basic" books on JavaScript:

Douglas Crockford's articles and videos - helpful after having assimilated these other resources, though some believe his ideas are becoming outdated.

JavaScript Garden and Dmitri Soshnikov's series "JavaScript: the Core" are good reference resources.

The next stage following this is learning architecture and design patterns, and other matters specific to application development in javascript. Along these lines, I have found these to be very helpful:

Just as with learning to write, it is necessary to read a great deal first. The todomvc repo is a good place to read different implementations of an application using various JS MV* frameworks. For understanding how these frameworks work, I have found the source of underscore, backbone, and stapes (not a useful framework, but very small and focused, thus edifying) helpful.