Front End Development
What am I supposed to know as a Front End Engineer?
I found this list of key skills developers at each levels should know. I don't think developers should not learn new skills to pass the interviews, promotion, or whatever but it is helpful to glance all concepts and technologies to master Front End Development.
Junior Front End Engineer
HTML (code a basic structure, understand about semantic and accessibility)
CSS ("code" a layout, copy any website or simple component is a good indicator of your knowledge level)
Logic Programming(not come on tamper with depth in JavaScript before the learning logic!)
JavaScript (insert a script in one screen, using libs, create small things)
Tooling (you gonna need the something like GruntJS, GulpJS, NPM Scripts)
Dependency Management (eg: Bower and NPM)
The Basic responsive (learn do make a layout work in multiple devices)
Git (And know that Git and Github not are the same thing)
Mid-level Front End Engineer
Scalability
Maintainability
Design Patterns applied to JavaScript and CSS
Understand/Work with Frameworks CSS and JS
CSS Preprocessors
Understand Programming Paradigms (OOP, functional, etc)
Serve multiple browsers and their differences
Create a development environment or Boilerplate to start their projects easily
Master your working tools (Editor, S.O., etc)
Performance (Both the JavaScript, as the CSS, yes do CSS)
SEO (HTML structure, solve the list of PageSpeed, Schema.org)
Senior Front End Engineer
Mastered Programming paradigms and JavaScript good practices
May or may not know more than one programming language
Is able to create a 100% JavaScript application
May talk on equal terms with Back End Developer
Mastered Design Patterns
Mastered CSS pre-processors and methodologies (like BEM, SMACSS, Atomic and others) and the best practices
Mastered Front End Performance
May know how to do Continuous Integration or at least know what is
Mastered some workflows with Git
Maybe you've mastered JavaScript in a level that you're already creating NodeJS modules
Knows how to do TDD or at least know what it is
You understand the costs ($$$) of Front End (Architecture, the problems that a bad interface may generate for a company, etc)
At this point you should already know about Generators and how to create them
Knowing about about Docker, AWS and something about infrastructure will be an extra
Topics
HTML
Browser API
DOM
Responsive Design
CSS
Basic knowledge
- Grid systems
CSS design pattern
BEM
CSS modules
CSSOM
PostCSS
Maintainability
Performance
CSS animations
CSS sprites
Semantic markup
Javascript
Basic Javascript
Closure
Scope
ES6 / ES7
Functional Programming
OOP vs Composition
RxJs
Design Pattarn
SEO
HTTP/HTTPS
- HTTP^1
- HTTP2
- HTTPS
- TCP/IP
- HTTP Header
- CORS
Memory
Performance
Asset management
Cache
- Cache Strategy
Algroithm