-
Notifications
You must be signed in to change notification settings - Fork 0
FE Internship Skill List (deprecated)
Vojtech Mašek edited this page Aug 15, 2023
·
3 revisions
⚠️ This list is deprecated, please use the copy of google doc template.
- everything listed in ES2015+ workshop slides
- declarations: const/let/var
- immutability
- template literals
-
{ prop }
,{ [key]: value }
- spread — array, object
- destructuring — array, object (defaults)
- arguments — spread, defaults, rest
- arrow functions (this — optional?)
- lazy evaluation patterns (
&&
,||
)
- Node, NPM,
package.json
(basic understanding)
- basics (type annotations; primitive types and
void
) - string literal types
- enums and union types
- classes (
private
,static
andreadonly
qualifiers; using decorators) - interfaces, generics,
keyof
- built in utility types
- Tuples vs Arrays
- TypeGuards
- Null and Undefined checking (in addition to lazy evaluation)
- Jest
- test-driven development
- mocking, etc.
- project setup and maintenance (Angular CLI,
angular.json
) - modules
- Angular vs TypeScript modules
- declaration, providers, export, import
- components
- data-binding (
()
,[]
,[()]
) - usage of common directives (
*ngIf
,*ngFor
,[ngClass]
,[ngStyle]
) - inputs, outputs; implementation of 2-way-binding
- using
@Input()
decorated setters
- data-binding (
- directives
- attribute vs structural directives (passively)
- implementation of attribute directives
-
@HostBinding()
,@HostListener()
- services
- basics (reactive design and implementation; providers and injection)
-
HttpClient
usage
- reactive forms
- building (using
FormBuilder
and without it) and binding - management (setting and getting state, subscription)
- using and implementing validators
- custom controls (
ControlValueAccesor
implementation)
- building (using
- pipes
- usage and implementation
- difference between pure/impure
- useful impure pipes explanation (async, ...)
- interceptors
- guards
- routing
- routing module configuration
- router events; listening to route changes
- basics of Promises (manual creation; creation from Observables)
-
async
,await
- creation of Observables (
from[Event|Promise]
,of
,pipe
) - (un-)subscription (
[un]subscribe
,takeUntil
,async
pipe) - common observable operators (
map
,filter
,switchMap
,mergeMap
,combineLatest
,forkJoin
,debounceTime
,withLatestFrom
,take
,distinctUntilChanged
,tap
...) -
Subject
,ReplaySubject
,BehaviorSubject
- Nx CLI
- modular architecture, organizing code into libraries
- ability to design useful state models
- ability to implement action classes, reducers, effects and selectors
- subscription (
subscribe
/async
); dispatching - chaining with other observables
- GraphQL concepts, GraphQL Playground
- GraphQL Code Generator
- configuring cache, HTTP middleware
- CSS basics (common CSS3 selectors and properties)
- flex-box layout and absolute/relative positioning
- grid layout
- transitions
- common SCSS features (nesting, variables, mixins, compile-time expressions)
- knowledge of commonly used design/implementation patterns at FlowUp
- active knowledge of functional constructs in JS/TS
- intuitive theoretical understanding of:
- OOP basics (classes, encapsulation, inheritance, polymorphism)
- smart and dumb components
- observer pattern and reactive programming
- flux pattern
- Git flow (commit messages, PRs, feature branch flow)
- code review etiquette (see Google guidelines)
- working in a Scrum team (standups, estimations, etc.)
- Angular Quick start
- Tour of Heroes
- Angular Complete Guide (ask for credentials)
- ReactiveJS (ask for credentials)
- NgRx Docs
- ECMAScript 2015+ Workshop Slides