Skip to content

Instantly share code, notes, and snippets.

@ivantm
Last active August 29, 2015 14:23
Show Gist options
  • Save ivantm/ff9fbee76427fca4e237 to your computer and use it in GitHub Desktop.
Save ivantm/ff9fbee76427fca4e237 to your computer and use it in GitHub Desktop.
Technical Concepts for a Good FED
This is a list of technical concepts that a good Front-End Developer would know
* Language Basics
* syntax
* types (what JavaScript's basic types are; how to check if a value is a particular type)
* equality (the concept of truthy/falsy; the difference between `==` and `===`)
* objects and arrays (when to use one over the other)
* Debugging effectively with developer tools
* Breakpoints
* Profiling
* Networking
* Modifying requests/responses with a proxy
* How browsers render the page
* repaints and reflows
* how assets are loaded, and where they block vs. load in parallel
* Understand 'this' and scope
* Asynchronous operations
* Callback style vs Promises
* Flow control: chaining promises, running async in serial and parallel (with and without limits), etc.
* Error handling
* Writing unit tests and integration tests (and knowing the difference between them)
* Events
* custom and native
* what events bubble, and in which direction
* how to avoid memory leaks with events
* DOM APIs (Working with Nodes, localstorage, etc)
* HTTP: making AJAX requests, status codes, HTTP headers, etc.
* Build tools (grunt, eslint, continuous integration) and build steps – why do we minify, what are source maps, etc
* How to write maintainable code
* The importance of APIs as contracts
* How to version code appropriately (semver)
* Node.js
* how to write "backend" JS using basic node APIs
* using npm to install modules and run scripts
* Challenges of CSS at scale (and how to address them)
* Thinking functionally: e.g. the difference between a for loop and .forEach: pros and cons of each; writing functions with no side-effects, composing functions/higher order functions
* Security: How to deal with user input to prevent HTML and script injection
* An understanding of responsive and adaptive design
* Being able to think of applications as a composition of components - not just the DOM.
## Bonus Future-facing Points
* ES2015 syntax
* Transpiling with Babel (or some other language to JS)
* HTTP2 (and how it affects what the best practice is around bundling assets)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment