LogoJust Any Tools

Full Stack JavaScript Roadmap

JavaScript is one of the most popular programming languages, known for its versatility. It is used to develop websites, mobile applications, servers, as well as games and artificial intelligence.

If you dream of becoming a full stack JavaScript developer, this guide will help you identify the key steps and necessary skills. In it, we will tell you in order where to start, what tools to master and what topics to focus on the most, as they are asked in interviews.


Notations:

πŸ‘ β€” recommended technology for study.

πŸ’¬ β€” this point is often asked in interviews.

Fundamentals

1. Git

  • Repository
  • Branch
  • Pull Request
  • Merge and Rebase
  • Merge Queue
  • Repository Strategies (Monorepo, Multirepo)
  • Branching Strategies
  • Git Flow

2. JavaScript programming language πŸ’¬

  • Strict and Sloppy modes
  • Data Types: boolean, number, string, object
  • Variables: var, let, const
  • Object
  • Function (function, function expression (unnamed function), arrow function)
  • Class
  • Async programming (async, await, Promise)
  • Generator
  • Exception handling (try catch finally, throw, Error)
  • Module
  • Symbol
  • Event Loop
  • Garbage Collector
  • Built-in objects
    • Date
    • Math

3. Concurrency

  • Thread
  • Atomic operations
  • Critical Sections
  • Mutex
  • Semaphore

4. Best Practices πŸ’¬

  • Principles (SOLID, DRY, KISS etc.)
  • Design Patterns
    • Creational (Abstract Factory, Factory Method, Builder, Prototype, Singleton, Dependency Injection)
    • Structural (Adapter, Bridge, Composite, Decorator, Facade, Flyweight (Cache), Proxy)
    • Behavioral (Chain of Responsibility, Command, Iterator, Visitor, Unit of Work, Observer, Strategy)
    • Concurrency
  • Architecture Design Patterns (MVC, HMVC, MVVM, MVP, VIPER)

5. Typing β€” TypeScript πŸ‘πŸ’¬

  • Interface
  • Types
  • Type operations
  • Class member access modifiers (public, protected, private)
  • Utility types
  • Generics
  • Mapped types
  • Conditional types
  • Type guards
  • Type asserts?
  • Namespaces
  • Declarations
  • Tuple
  • Infer
  • Enum
  • Using
  • Satisfy

Other technologies: JSDoc, Flow.

6. Package Management

  • package.json
  • node_modules and lock file
  • Workspaces
  • Patching
  • Technologies: npm πŸ‘, pnpm, yarn, bun install πŸ‘, deno
  • Monorepos (turborepo πŸ‘, Nx)

7. Bundlers

  • bun bundler πŸ‘
  • Vite πŸ‘
  • Webpack πŸ’¬
  • esbuild
  • Turbopack
  • Parcel
  • Rollup

8. Development Tools

  • Linter (ESLint πŸ‘, oxlint)
  • Formatter (Prettier πŸ‘, Biome)
  • AI tools
    • Chat: ChatGPT
    • In editor: GitHub Copilot, Cursor
    • In terminal: Cursor
    • Frontend component generator: v0
    • Full development cycle: ?

9. Algorithms and Data Structures πŸ’¬

  • Array
  • Linked List (one direction, two directions, looped)
  • Stack
  • Queue
  • Set
  • Map
  • Dictionary
  • Heap
  • Sort (Bubble, Selection, Insertion, Heap, Merge, Quicksort)
  • Clustering (k-means algroithm)
  • Search in list (linear search, binary search)
  • Search in graph (breadth-first search, depth-first search, Bellman-Ford algorithm, Dijkstras algrithm, AStar algorithm)
  • Data compression (run-length encoding, Huffman coding)
  • Page rank
  • Tower of Hanoi

10. OS

  • Process
  • Thread
  • Memory
    • Static
    • Stack
    • Heap
  • File System

11. Networking πŸ’¬

  • Socket
  • IP
  • TCP
  • UDP
  • HTTP
  • TLS/SSL
  • DNS
  • WiFi
  • REST
  • RPC
  • WebSocket

12. Processes

  • Development
  • Testing
  • Fixing and Debugging
  • Refactoring
  • Performance Improving

13. Testing πŸ’¬

  • Functional testing
  • Non-functional testing
  • Unit testing (jest πŸ‘, bun test πŸ‘, mocha)
    • AAA (arrange, act, assert)
    • F.I.R.S.T Principles
  • Integration testing
  • E2E testing (Cypress πŸ‘, Playwright, WebdriverIO)
  • Benchmark
  • Stress testing
  • Load testing
  • TDD
  • BDD

14. CI CD πŸ’¬

  • Quality Gates
  • Virtualalization and Virtual Machines
  • Containerization and Containers
  • Technologies: GitHub Actions πŸ‘, Jenkins πŸ‘, BuildMaster.
  • Docker Ecosystem πŸ‘
    • Docker
    • Docker Compose

15. Access control πŸ’¬

  • Identification, Authentication, Authorizaton
  • Schema
  • JWT based
  • Cookies based
  • SSO
  • OAuth (v1, v2)
  • OpenID (OpenID Connect)
  • Session
  • Auth0
  • Access token, Refresh token
  • Crypt

16. Additional

  • Text Editors or IDE (VS Code, WebStorm)
  • Date and Time (Date API πŸ‘, Temporal API πŸ‘, date-fns πŸ‘, date-js, moment)
  • Configs (lib ''config)
  • Schema Validators
  • Data Formats (JSON, YAML, TOML, XML)
  • Regular Expressions
  • Functional Programming
  • Reactive Programming
  • Programming domains
    • Frontend
    • Backend
    • Shell Scripting (bun shell, zx)
    • Terminal (inteaction: inquirer, vorpal; styling: chalk; components: progress)
    • Abstract Syntax Tree
    • Task Scheduler
  • Python in JS

Frontend

1. Layout

  • HTML
    • Semantic HTML
  • CSS
  • CSS Preprocessors (SASS πŸ‘, PostCSS)
  • Media
    • Image (jpeg, png, webp)
    • Icons
    • Font
    • Video (webm)
    • Audio

2. Browser Env API

  • Web API
  • DOM (Native Rendering)
  • PWA
  • Cache
  • View Transition API

3. Rendering

  • React πŸ‘
  • Vue
  • Angular
  • Preact
  • Lit
  • Svelte
  • Solid
  • Qwik
  • HTMX
  • Vanilla
  • Atomic Design

4. React-based Server Side Rendering

  • Next.js πŸ‘
  • Remix πŸ‘

5. State Managers

  • Redux
  • Zustand πŸ‘
  • MobX

6. Advanced Features

  • Forms and Validation
  • Animations (CSS transition, CSS animation, native JS animation, JS library animation (framer motion πŸ‘, GSAP), lottie πŸ‘) (anim types: event-based (hover, click, in view), scrolling, infinity, appear, disapear, anim chains)
  • Charts (Rechart, chart.js, plotly.js)
  • Drag and Drop
  • Virtual Scroller
  • URL-based state
  • Themes (color schemes) (next-theme)
  • Text Editor
  • Geo Map
  • Accessability
  • Internationalization
  • Localization
  • Video and Audio
  • 2D
  • 3D (WebGL, ThreeJSπŸ‘)

7. Mobile Rendering

  • ReactNative πŸ‘
  • React Ionic
  • Tauri

8. Desktop Rendering

  • Tauri
  • Electron

9. Additional

  • SPA, MPA
  • WebAssembly
  • Markdown
  • SEO
  • UI\UX

Backend

1. Server Env API (Runtimes)

  • Node πŸ‘
  • Bun πŸ‘
  • Deno
  • JavaScript Engine (V8, JavaScriptCore etc.)
  • Module Resolution

2. Servers

  • Express
  • Fastify
  • Nest.js πŸ‘
  • OpenAPI
  • Swagger

3. Databases

  • PostgreSQL πŸ‘
  • MS SQL
  • MongoDB πŸ‘
  • Redis
  • Neo4j
  • Index
  • Transaction (ACID)

4. ORMs

  • Drizzle πŸ‘
  • Sequelize πŸ‘
  • Prisma
  • TypeORM
  • knex

5. Popular Tasks

  • Payments
  • Mailing
  • File download and upload

Soft Skills

1. Development Methodologies

  • SCRUM
  • SAFE
  • Kanban

2. Soft Skills

  • Code Review
  • Requirments
  • Team Playing
  • Team Leading

Conclusions

Mastering Full Stack JavaScript takes time, dedication, and practice. It is important to understand that the path to professional level is not fast. Learning the basics of the language, mastering frameworks, developing projects, and constantly updating your knowledge will take months, and possibly years.

Take your time: focus on each step, laying a solid foundation for further development. Constant practice, participation in real projects, and interaction with the community will help you grow as a developer. Remember that success comes to those who do not rest on their laurels. Good luck on your journey to mastery in Full Stack JavaScript!