superherojs / superherojs

Superhero JavaScript

Home Page:http://superherojs.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Review of resources

mikaelbr opened this issue · comments

I've started on some reviewing of the resources. Read through the resources and written some notes on them.

I've only gotten as far as doing the "understanding" part.

Understanding JavaScript: syntax, style and gotchas

Common JavaScript "Gotchas”

Can still be relevant. Covers some introduction to scopes, contexts, SIAFs. Has some ES3 vs ES5 specific information, that might feel outdated, but it’s really just handling polyfills, which is still relevant. There might be better more modern resources, and if we find something we might consider to replace this, but it is fine as a placeholder.

Prototypes and Inheritance in JavaScript

A more deeper description of how prototypes works. This was before all the class syntactic sugar, so it doesn’t address that in any way. Which is fine. I think it’s important to know how they really work. Difficult to say if this is the best resource. It has some, now outdated, concepts like proto, but it gives a good understanding of prototypes. You Don’t Know JS does it in a different and more “verbose/lengthy” way. I think it’s room for both.

Preparing Yourself for Modern JavaScript Development

Covers SIAFs/IIFEs, and module pattern. Should we still have resources for module pattern or patterns for code without module systems? For instance, this article talks about namespacing, but I feel that’s not an approach we shouldn’t promote. But it’s still better than now having separated your code – as in some cases it’s not easy to introduce build steps. Unsure about this one, but a resource with modules (either commonjs or new ES2015 modules) as a pattern might be better? But again, the topic has “historic significance” and it’s smart to know how we got there and the basic patterns. Threshold between progressiveness and conservatism is hard. I’d maybe say drop this.

Understanding JavaScript Function Invocation and "this"

An easy-to-understand classic intro to contexts. It’s lacking some specifics and detailed information, but that might not be a bad thing for a introductory article for the more novice skill levelled. Similar approach as You Don’t Know JS (this and objects I think), but that is a lot more more detailed and probably for a different audience. Room for both I think.

Style Guide: A mostly reasonable approach to JavaScript

This is probably fine. I don’t know what I feel about having a style guide as “understanding”. We should probably stay away from politics around this, but I see the value to have a guide like this for new people to have some reference for how to write code without “finding their own way” or making their own style guide. This is probably less political than the alternatives https://github.com/feross/standard and https://github.com/Flet/semistandard

Code School: The JavaScript Path

I think this is a good easy-to-get started practical approach for learning the basics of javascript. Bad parts: Costs money.

Eloquent JavaScript

Probably still very relevant and a no-brainer? Good for more in-depth coverage. Not “just” an article.

Effective JavaScript

Probably still very relevant and a no-brainer? Good for more in-depth coverage. Not “just” an article.

Additions:

  • You Don’t Know Javascript. The entire series is top notch, I think.

Should we have some understanding functional javascript here? For books, Allongé or Functional Javascript using Underscore is good. Eloquent Javascript also have a section for it.

Some other topics that can be relevant for “understanding”/intro:

  • Scope (let, const, var - hoist, closures, try/catch, etc)
  • Functions (may overlap with functional programming and YDKJS)
  • Some ES2015 stuff? Or is that too “temporary”/not lasting enough for what we try to do on this site?

Let me know what you think, @kjbekkelund , @mollerse and @olav .

The above resources as data:

[
  {
   "title": "Common JavaScript \"Gotchas\"",
   "link": "http://www.jblotus.com/2013/01/13/common-javascript-gotchas/",
   "author": ["James Fuller"],
   "level": "beginner",
   "description": "Covers some introduction to scopes, contexts and other common gotchas when moving to javascript from a different language. Also covers how to do polyfills to fallback to non-native implementations of language features",
   "type": "article",
   "topic": "understanding",
   "keywords": ["context", "scope", "async", "structuring"]
  },
  {
   "title": "Prototypes and Inheritance in JavaScript",
   "link": "http://msdn.microsoft.com/en-us/magazine/ff852808.aspx",
   "author": ["Scott Allen"],
   "level": "intermediate",
   "description": "Introduction to how prototypes works. Comes with nice illustrations and code examples.",
   "type": "article",
   "topic": "understanding",
   "keywords": ["prototypes", "inheritance"]
  },
  {
   "title": "Understanding JavaScript Function Invocation and \"this\"",
   "link": "http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/",
   "author": ["Yehuda Katz"],
   "level": "beginner",
   "description": "A basic introduction to what `this` (context) can be in javascript and how to use apply, bind and call to set the context.",
   "type": "article",
   "topic": "understanding",
   "keywords": ["context", "this", "bind", "call", "apply"]
  },
  {
   "title": "Style Guide: A mostly reasonable approach to JavaScript",
   "link": "https://github.com/airbnb/javascript",
   "author": ["Airbnb"],
   "level": "beginner",
   "description": "A style guide for writing javascript. Covers how to name, when to use whitespace or punctuations, when and how to do comments, etc. Is continuously updated and includes style guide for the latest version of the standard.",
   "type": "courses",
   "topic": "understanding",
   "keywords": ["style guide", "how-to write"]
  },
  {
   "title": "Eloquent JavaScript",
   "link": "http://eloquentjavascript.net/",
   "author": ["Marijn Haverbeke"],
   "level": "beginner",
   "description": "A very good, free, book on a modern approach to programming. Covers topics such as modules, data structures, (higher order) functions, the browser, Node.js and much more.",
   "type": "book",
   "topic": "understanding",
   "keywords": ["ebook", "regex", "modules", "node", "objects", "functions"]
  },
  {
   "title": "Effective JavaScript",
   "link": "http://effectivejs.com/",
   "author": ["David Herman"],
   "level": "intermediate",
   "description": "This book is not free. It aims to be a in-depth look at the JavaScript programming language and how to use it effectively to write more portable, robust, and maintainable applications and libraries",
   "type": "book",
   "topic": "understanding",
   "keywords": ["language fundamentals", "api design", "arrays", "objects", "functions", "scope", "coercions"]
  }
]