Skip to content

Latest commit

 

History

History
222 lines (164 loc) · 6.16 KB

js-l1-position-requirements.md

File metadata and controls

222 lines (164 loc) · 6.16 KB

Requirements for L1 position

Based on the EPAM Global Competency Framework 2021.

English

A2/B1

Languages

Core JS

  • Strict mode (knows that it exists, basic understanding of its influence)
  • Variables, Values, Types (number, string, boolean, object, null, undefined), declaration (var, let, const, hoisting, temporary dead zone)
  • Expressions (basic of auto type conversions, comparison), Operators, Statements (literals, conditions, loops)
  • Objects (create, modify, built-in methods, Object static methods, calculated props, getter/setter)
  • Arrays (create, modify, indexes, length, built-in methods: sorting, filtering, search, iterating; Array static methods)
  • Functions (create, invoke, arrow functions, rest/spread operator, default parameters, scope, closure, recursion)
  • This/Prototype (execution context, call/apply/bind methods, constructor functions, understanding of prototypes)
  • Classes (constructors, static members)
  • Basic Async JavaScript (Timers, Promise, async/await)
  • JavaScript Errors (try..catch, throw, Error class)

Client-Side JavaScript

  • Global object window (location, history, navigator, screen, document, cookies)
  • DOM Manipulation (selection, traversing, modification, live collections)
  • Nodes Modification (node properties, attributes, data attributes, styling)
  • Classes (constructors, static members)
  • Event Handling (mouse, keyboard, event phases, event listeners, propagation)
  • AJAX (fetch)
  • Web Storage (sessionStorage, localStorage)

HTML

  • HTML structural and semantic tags (body, headers, lists, links, and etc)
  • Layout tags
  • Text formatting tags: bold, italic
  • HTML tag attributes
  • Styles, Scripts:
    • Add inline styles, include internal and external CSS
    • Include internal and external Script
  • Table, Form, Input Tags
    • Table layout tags
    • Table attributes
    • Form tags and attributes
    • Input types

CSS

  • Specificity, inheritance, cascade rules, selector attributes
  • Relative and Absolute Units (em, %, px, pt etc.)
  • Standard and box block model
  • Display property
  • Transition, key frames, transformation, rotation, scaling
  • Pseudo-class and pseudo-elements
  • Media Queries (Syntax and declaration, types, usage)
  • Visual effects (Shadows, rounded corners, gradients)
  • Basics of Web Typography (fonts, font-face)
  • Positioning (Document flow, Position properties, Overflow and z-index)
  • Flexbox (Flex layout, axis, directions) or Grid
  • CSS pre-/post-processor (LESS, SASS/SCSS, Stylus)

TypeScript

  • Basics
  • Types
  • Utility Types
  • Enums
  • Generics
  • Any, unknown

Computer science fundamentals

Basic understanding of:

  • Basic operations: sort, map, filter, reduce
  • Algorithms complexity basics (O(1), O(N), ...)
  • Data structures: array, stack, queue, linked-list, tree, hash table (map), set

Programming Paradigms (OOP, FP, FRP)

Basic understanding of OOP:

  • Encapsulation
  • Abstraction
  • Inheritance
  • Polymorphism
  • Dependency injection

Basic FP notion:

  • Pure functions
  • Immutability
  • Functions as first-class entities
  • Functions composition
  • High order functions
  • Recursion
  • Currying/Memoization

Communication Protocols (HTTP, WS, REST, GraphQL, ...)

Basic understanding of:

  • HTTP
  • HTTPS
  • WS
  • RESTful API

Browser API:

  • Browser API (Console, Fetch, Storage, History)
  • DOM

Tools (NPM, Webpack, Chrome DevTools, ...)

  • Basic knowledge of Webpack
  • Basic knowledge of NPM, package.json configuration
  • Basic knowledge of browser tools for project needs (Chrome DevTools: Elements, Console, Network, Sources)

GIT branching, Release strategies

At least basic understanding of git fundamentals

NodeJS Core

At least basic knowledge of:

  • Node.js CLI (environment variables, command parameters, etc.)
  • Module system (require, JS modules, import weight)
  • Node.js Event Loop (basic observation, main stages)
  • Buffer and Streams
  • Events
  • Node.js logging approaches
  • Working with file system (difference between OS, sync/async/stream use cases)"
  • Express.js

Frameworks and Tools

Basic knowledge of his/her project framework (React OR Angular), libraries and tools

React

  • JSX
  • Class and functional components
  • Class lifecycle events, main hooks
  • Controlled and uncontrolled components, forms
  • State, props and context
  • React event system
  • Prop types
  • Refs
  • Basic understanding of virtual dom, components rendering system (when component re renders, shouldComponentUpdate, keys)
  • React Router
  • React Devtools
  • Used any of state management library (Redux, Mobx, Reflux, etc)

Angular

  • Basic understanding of TypeScript
  • Basic understanding of RxJS
  • Template Syntax
  • Basic understanding of Dependency Injection
  • Basic RouterModule configuration and Router directives
  • main Attribute and Structural Directives
  • Component
    • Component structure (template, styling and etc)
    • Component’s input and output
  • main Lifecycle Hooks, basics of change detection
  • Forms
    • Template-driven Forms
    • Reactive Forms

Design patterns

Nice to have:

  • several design patterns (e.g Decorator, Singleton, Factory)
  • best practices (KISS, DRY, YAGNI)

Quality gates & refactoring

Able to follow and apply project code standards, guidelines.
Basic understanding of:

  • linters
  • code quality notion, good code vs bad code, immutabily, side effects
  • code smells

Code review

Participates in code review process as a reviewer

Automated Testing (TDD, Test Pyramid)

Understanding of unit tests purpose and how to write them Nice to have:

  • Practice with unit testing

CI/CD

Basic understanding of CI goals if used on a project

Methodologies (e.g. SCRUM, Kanban, Waterfall)

Basic understanding of:

  • What is a Sprint?
  • Who is a Scrum Master?
  • How are user stories, epics, and tasks different?
  • How is Estimation Done in a Scrum Project?
  • What happens in Daily Stand-up sessions?
  • Explain what is Kanban?

Soft Skills

  • Able to work effectively under supervision
  • Ability to read, understand and clarify (if needed) task requirements
  • Able to explain thoughts in English
  • Able to present results of his/her work to teammates
  • Understands when advice is needed, able to involve other team members in case of problems
  • Able to plan his/her work time (Self-management, Time-management)