Kitchen-Sink of Skills
I few weeks ago I was interviewing developers. One of the candidates asked what I/we look for when hiring. Writing it down ended up to be an interesting exercise. It ended up being a kitchen sink list of developer skills.
Side read: Here are a couple interesting reads on the topic * The Myth of the Full-stack Developer * The Kitchen Sink of Developer Productivity
This is rough list of the technologies for the full stack developer. It’s not terribly well organized, But I’m sure I’ll be revisiting it soon.
- JS “Now”: current ECMA script standard
- Syntax, Data Types, built-in methods etc
- Prototype and prototypal inheritance
- Lambdas/Anonymous functions
- Closures, variable and function hoisting
- Class-like structures in Javascript
- JS.Next:
- learning ES6 Harmony
- Browser Env:
- DOM, CSS and Event Model
- Ajax, JSON, and services,
- DOM fragments
- Shadow DOM
- Components
- HTML5:
- storage
- geo-location
- video
- etc.
- HTTP - packets, headers, error codes
- CSS:
- box-model
- flex box
- animations
- Toolkits: jQuery, Underscore/LoDash
- TDD/BDD: Test-Driven and Behavior-Driven Development
- Jasmine
- Mocha
- Karma
- Istanbul
- Build
- Grunt
- Gulp
- Webpack
- CI/CD:
- Continuous Integration/Delivery/Deployment
- Docker
- Vagrant
- CoreOS
- TravisCI/CircleCI
- Load Testing
- Data:
- NoSQL
- MongoDB
- PostgreSQL
- Authenticaion
- OAuth2.0
- Passport
- Serving:
- NGINX
- Apache
- Node
- Hosting Services:
- DigitialOcean
- Linode
- AWS
- RESTful Services
- Swagger
- API Gateways
- OOP:
- GoF OO Design Patterns:
- Factory
- Singleton
- Mixins
- Observer
- etc…
- Architectural “Patterns”:
- MVC/MVVM
- separation of concerns
- dependency injection
- Coding Best Practices:
- Linting
- Code Style
- Hybrid Apps
- Cordova
- Electron
- NWJS (node-webkit)
- Source Control - Git, of course
- basics
- merging
- branching
- etc…
- Site Performance
- YSlow, PageSpeed, Caching, CDNs, Big O
- Development and Debugging:
- Chrome Dev Tools
- Templating Languages:
- Mustache/Handlebars
- Performance
- Big O Notation: 0(1), O(N), O(log N), O(N log N), O(N^2) etc…
- Loops and recursion