A list of skills and technologies
level | description |
---|---|
πΆ junior | has a little commercial web development experience |
π· middle | can implement typical* projects without external supervision; can decompose a typical project and provide a detailed estimate to complete it |
π senior | is able to decompose any type of complex project into feasible tasks, has experience in different domains; can organize development, integration and delivery flows in a team |
-
General
-
CS?
Materials:
Expected result:
- Big O (time & space); why do we need this notation?; how to use? be able to to determine big O of operations of main data structures
- Data structures: linked list, stack, queue, tree, graph, hash table (know pros and cons, be able to choose most suitable one to solve a given problem)
- Know how base data structures is implemented in your language of choice
- Know about algorithms on base data structures (is not required to remember in details, but undertand pros & cons)
- Know and avoid N+1 problem
- Recursion (stack overflow)
-
Testing
Material:
Expected result:
-
Git
Materials:
Expected result:
- πΆ Have an own github account
- πΆ Understood how Git (or other Version control system) helps in development
- πΆ How to clone an existing project/ How to create a new project
- πΆ How to add new or/and changed files and create a commit
- πΆ How to write a proper message to commit
- πΆ How to create a branch, how to switch between branches
- πΆ How to update a branch from remote repository
- πΆ How to merge changes from one branch to another
- πΆ How to publish your changes to a remote repository
- πΆ How to create a Pull request (understood the idea behind the pull request)
- πΆ Know tools to see a diff, and resolve possible merge conflicts
- πΆ stash, cherry-pick
-
Network
Materials
Expected result:
- πΆ HTTP vs HTTPS
- πΆ CDN (content delivery networks) - why it can be useful
- πΆ Know how to use ssh, dig, ping, curl, wget (no need to now all available parameters but know how these tools can help)
- π· HTTP/2 - what is new, and what problems it tries to solve
- π· Awareness about OSI model
- π· How DNS works, A, CNAME, MX...
- π· Know how to use different HTTP headers (caching, auth, content type, ...)
-
Security
Expected result:
- πΆ CORS, Why is it necessary?
- πΆ XSS, CSRF
- πΆ How to send a sensitive data securily via network
- πΆ Know in general how authentication (session, token based) works
- π· Know in details how authentication, authorization works (session, tokens, JWT, OAuth...)
-
Extra
Expected result:
- π· Docker usage (choose a proper base image, add required libs, soft, configs, code; build, run, attach to it, see logs...)
- π· scp, rsync, sftp
-
-
Backend
-
Auth
Materials:
- πΆ Json Web Tokens
- πΆ Safe password resets with JWT
-
Databases
Materials:
Expected result:
- πΆ SQL vs noSQL
- πΆ SQL common commands (select, insert, delete, transaction, bulk load, dump, restore)
- π· Be able to understand the output of EXPLAIN command
- π· ACID
- π· OLTP vs OLAP
- π· Be able to build a database schema for a project (correct data types, indexes, foreign keys, data normalization)
- π· key-value databases: Redis, memcache; what they are applicable for?
-
Microsevices
Materials:
- π· 12 factors
-
Specific to programming language
-
NodeJS
Materials:
Expected result:
- ES6+ basics
- nvm, npm, package.json, package-lock.json - how to install and use
- event loop, async/await, promises, try catch
- understanding why static typing is useful
-
-
-
Frontend
-
HTML5
Materials:
- Mozilla HTML
- How browsers render page
- Can I Use
- UI frameworks
- Twitter Bootstrap
- Google Material
- Whatever is popular now
Expected result:
- πΆ Be able to build a layout from picture (PSD, sketch) - the result must be "Pixel Perfect" - using correct fonts, sizes, colors, margins, paddings
- πΆ How to build and use Forms (radio, checkboxes, inputs, especialy file uploading)
- πΆ Trying different UI frameworks
- πΆ Know why to make a semantic markup (SEO just simple understandig)
-
CSS3
Materials:
- CSS tutotrial from Mozilla
- A guide to Flexbox
- [SASS] https://tokar.ua/read/6672
- Pre-,post-processors:
- CSS Tricks - useful articles
Expected result:
- πΆ How to include CSS into HTML
- πΆ CSS selectors, pseudoselectors
- πΆ How to use Media queries and why (responsive design)
- πΆ Mobile first
- πΆ CSS animation
- πΆ Webfonts
- πΆ Flexbox / Grid
- πΆ Crossbrowser validation
- πΆ Try to use any CSS pre/post processors and why they might be useful
-
Javascript
Materials:
- Cheatsheat - to quickly refresh knowledge
- JavaScript. Π―Π΄ΡΠΎ
- Basics
- Tutorial from Mozilla
- Web API
Expected result:
- πΆ How to include a javascript code into your HTML page
- πΆ Data types; const, let, var
- πΆ Syntax: conditions, iterations, functions, classes...
- πΆ Variable scope, hoisting, IIFE, modules, "this", closures
- πΆ Sync and async code execution (callbacks, promises, async/await)
- πΆ JSON, XML
- πΆ Cookie
- πΆ Web API:
- πΆ Manipulating DOM elements: create, update, remove, move
- πΆ Handling DOM events: click, hover, onKey...
- πΆ Local and sesion storage, what is a difference
- πΆ XMLHttpRequest, fetch
- π· Web API in more details:
- π· geolocation
- π· media (camera access)
- π· canvas
- π· web workers
- π· service workers
- π· web sockets
- πΆ Work with one popular js framework: angular, react, vue...
- π· Be able to build an app from scratch by using some popular js framework
-
Chrome dev tools
Materials:
Expected result:
- πΆ debugging code (debugger, console.log,...)
- πΆ inspecting DOM elements
- πΆ testing a layout on different screens (responsive design)
- π· debug application performance (memory usage/leaks, cpu intensive operations)
-