Skip to content

Alzeth/software-engineering-senior-growth-knowledge-base

Repository files navigation

Software engineering senior growth knowledge base

All you need to know to become a Senior Software Engineer in JavaScript

Software Engineering Knowledge & Experience

  1. Data structures
  2. Containerization vs. Virtualization: What's the Difference?
  3. Virtualization technologies compared
  4. Containerization Technology: Types, Advantages, Applications, and More
  5. Best Application Deployment Strategies in 2023

🖥️ Computer Science

  1. Currying
  2. Lodash _.curry() Method
  3. Discover the power of first class functions
  4. Function Composition in JavaScript
  5. Recursion and stack
  6. Functional-Light JavaScript
  7. JavaScript Map, Reduce, and Filter - JS Array Functions Explained with Code Examples
  8. 8 time complexities that every programmer should know

🔁 Communication protocols

  1. What Happens When You Type in a URL
  2. TCP vs. UDP
  3. Layers of OSI Model
  4. Transport Layer Security (TLS)
  5. Consumer-Driven Contracts: A Service Evolution Pattern
  6. Removing HTTP/2 Server Push from Chrome
  7. What is difference between HTTPS and HTTP/2?
  8. Protocol Layers and the Open Systems Interconnection Model
  9. TCP/IP Protocol Architecture Model
  10. Richardson Maturity Model
  11. Representational state transfer
  12. Rest API architectural constraints
  13. REST-full API disadvantages
  14. REST vs. SOAP
  15. 4 Maturity Levels of REST API Design
  16. PUT vx. PATCH
  17. Historical yearly trends in the usage statistics of site elements for websites
  18. Using server-sent events
  19. Long polling
  20. WebSockets
  21. Long Polling vs WebSockets vs Server-Sent Events
  22. Transmission Modes in Computer Networks (Simplex, Half-Duplex and Full-Duplex)
  23. Design First or Code First: What’s the Best Approach to API Development?
  24. What is OpenAPI? OpenAPI Definition & OpenAPI Standards
  25. What is Idempotency?
  26. What Is JSON RPC?
  27. GraphQL
  28. GraphQL disadvantages

🖥️ Programming Paradigms

  1. The Dao of Immutability
  2. Composition vs Inheritance
  3. What is Functional Programming?
  4. Inversion of Control Containers and the Dependency Injection pattern
  5. A quick intro to Dependency Injection: what it is, and when to use it
  6. Totality
  7. The introduction to Reactive Programming you've been missing

🔐 Security

  1. Web security
  2. OWASP Top Ten
  3. HTTP headers
  4. Preflight request
  5. Same-origin policy (SOP)
  6. Cross-site scripting (XSS)
  7. Man in the Middle (MITM) Attacks
  8. What is single sign-on (SSO)?
  9. CORS (Cross-Origin Resource Sharing)
  10. Excess XSS
  11. Refresh access tokens
  12. Secure Software Development Lifecycle (SSDLC)
  13. Authentication vs. Authorization
  14. Stateful and stateless authentication
  15. Costs and benefits of authentication
  16. AJAX Security Cheat Sheet

⌨️ Accessibility

  1. Accessibility (A11Y)
  2. Accessibility Checklist
  3. Section 508: What It Covers and How to Comply
  4. Web Content Accessibility Guidelines (WCAG) 2.1
  5. 2022 ADA Website Requirements & WCAG Compliance Standards for Websites
  6. ARIA
  7. WAVE Web Accessibility Evaluation Tools

📈 Performance Optimizations

  1. https://developer.mozilla.org/en-US/docs/Web/Performance/Critical_rendering_path
  2. Front-End Performance Checklist
  3. How browsers work
  4. Web browsers Series' Articles
  5. Web Vitals
  6. First Contentful Paint (FCP)
  7. Largest Contentful Paint (LCP)
  8. First Input Delay (FID)
  9. Time to Interactive (TTI)
  10. Cumulative Layout Shift (CLS)
  11. RAIL
  12. DOM Performance (Reflow & Repaint) (Summary)
  13. 4 Types of Memory Leaks in JavaScript and How to Get Rid Of Them
  14. V8 Hidden class
  15. Service worker overview
  16. Service Worker API
  17. How To Use Chrome UX Report To Improve Your Site Performance
  18. Window.requestAnimationFrame()
  19. JavaScript Profiling With The Chrome Developer Tools
  20. How to Break Up an Expensive Computation Task in JavaScript
  21. Synthetic vs. Real-User Monitoring: How to Improve Your Customer Experience
  22. Before You memo()

🧰 Browser APIs

  1. Touch events
  2. Creating and triggering events
  3. WebRTC API
  4. FileReader
  5. FileSystem
  6. The ultimate guide to iframes
  7. Page Lifecycle API
  8. The WebSocket API (WebSockets)
  9. Capture audio and video in HTML5
  10. MediaDevices.getUserMedia()
  11. Using Web Workers

JavaScript Advanced

  1. The event loop
  2. Objects — Writable, Configurable & Enumerable
  3. Property flags and descriptors
  4. JavaScript Constructor Function
  5. Property getters and setters
  6. JavaScript: Reviewing Primitive and Non-Primitive Data Types
  7. Inheritance and the prototype chain
  8. A deep dive into ES6 Classes
  9. Novice to Advanced RegEx in Nine Minutes or Less
  10. Binding Arguments with Bind
  11. JavaScript patterns
  12. Using Method Chaining With The Revealing Module Pattern In JavaScript
  13. Currying in JavaScript
  14. Recursion vs Iteration
  15. Memory management
  16. How To Write Fast, Memory-Efficient JavaScript
  17. Memorization in JavaScript

TypeScript

  1. How To Set Up a New TypeScript Project
  2. Setting up a TypeScript Project plus Prettier and ESLint
  3. Generics
  4. Mapped Types
  5. Conditional Types
  6. TypeScript: Adding Custom Type Definitions for Existing Libraries
  7. Flow vs TypeScript: Which Is Better Suited For Your Next Project?
  8. Advanced TypeScript With Code Challenges: Generics
  9. How to use type guards in TypeScript

Angular Advanced

  1. Angular microsyntax gramar
  2. Introduction to ng-template in Angular
  3. The Last Guide For Angular Change Detection You'll Ever Need
  4. Angular Services, providedIn and Lazy Modules
  5. Angular Routing Events
  6. Angular ng-template, ng-container and ngTemplateOutlet - The Complete Guide To Angular Templates
  7. Angulars RouteReuseStrategy
  8. Route preloading strategies in Angular
  9. The Angular 10/9 Router-Outlets: Named and Multiple Outlets (Auxiliary Routes) Example
  10. Angular Debugging "Expression has changed after it was checked": Simple Explanation (and Fix)
  11. AfterContentChecked
  12. AfterViewChecked
  13. DoCheck
  14. Multi Providers in Angular
  15. When to use viewProviders in Angular – Simplified
  16. The magic of RXJS sharing operators and their differences
  17. How runOutsideAngular might reduce change detection calls in your app
  18. Angular 9 Renderer2 with Directives Tutorial by Example
  19. In-Depth guide into animations in Angular
  20. Understanding Angular Views
  21. How to build an Angular App with Server-Side Rendering
  22. How To Use Internationalization (i18n) in Angular
  23. Angular Service Worker - Step-By-Step Guide for turning your Application into a PWA
  24. Web Workers in Angular
  25. RxJS Schedulers
  26. Angular Custom Form Controls: Complete Guide
  27. Injection Token In Angular
  28. Understanding hot vs cold Observables
  29. What are “zones” in Angular?
  30. Angular Dependency Injection Explained with Examples
  31. NGRX VS. NGXS VS. AKITA VS. RXJS: FIGHT!
  32. NgRx Facades: Pros and Cons
  33. The Complete Guide To Angular Performance Tuning
  34. DevTools Overview
  35. 4 Runtime Performance Optimizations

React Advanced

  1. Virtual scrolling: Core principles and basic implementation in React
  2. Three Principles
  3. The difference between Flux and Redux

Web Application Design and Framework

  1. Angular vs React: Which One to Choose for Your App
  2. SPA vs. MPA: Pros, Cons & How To Make Final Choice
  3. Angular vs React: a comparison of both frameworks
  4. Progressive Web Apps: Core Features, Architecture, Pros and Cons
  5. 15 Important Considerations for Choosing A Web Dev Framework
  6. Incremental Static Regeneration
  7. SPA and Server-Side Rendering
  8. Guide to Monorepos for Front-end Code
  9. JS Frameworks Benchmark
  10. Web Components
  11. Micro Frontends
  12. CSS Methodologies rankings
  13. What are CSS Modules and why do we need them?
  14. 5 Methodologies for Architecting CSS
  15. Popular CSS methodologies for scaling web projects

Design Patterns

  1. Learning JavaScript Design Patterns
  2. The Catalog of Design Patterns
  3. JavaScript Patterns Collection
  4. Design Patterns JS
  5. SOLID Design Principles Explained
  6. Relation between CommonJS, AMD and RequireJS?
  7. Single Responsibility Principle

CI/CD/Git

  1. Comparing Git Workflows: What You Should Know
  2. Gitflow Workflow
  3. Forking Workflow
  4. Merging vs. Rebasing
  5. BlueGreenDeployment
  6. Continuous integration vs. delivery vs. deployment
  7. Deployment and release strategies
  8. Git Hooks
  9. GIT branching strategies

Architecture

  1. Software Architecture Guide
  2. Separation of Concerns
  3. Why is the difference between functional and Non-functional requirements important?
  4. What are Functional and Non-Functional Requirements and How to Document These
  5. Non-functional Requirements: Examples, Types, How to Approach
  6. How To Write Great Software Requirements Specification?
  7. 7 Tips to Write Better User Stories

Software Design

  1. 10 Common Software Architectural Patterns in a nutshell
  2. What are cross-cutting concerns?
  3. GRASP – General Responsibility Assignment Software Patterns Explained

Code quality

  1. How to Measure Code Quality: 7 Metrics Every Engineer Should Know
  2. F.I.R.S.T principles of testing
  3. Unit Testing and the Arrange, Act and Assert (AAA) Pattern
  4. Integration Testing: What is, Types with Example
  5. Improving your testing code coverage in Javascript
  6. Snapshot Testing: Benefits and Drawbacks
  7. Technical Debt
  8. TechnicalDebtQuadrant
  9. 7 Top Metrics for Measuring Your Technical Debt
  10. Code Smells
  11. Everything you need to know about Code Smells
  12. 8 Practices to Ensure Better Code Quality
  13. The Practical Test Pyramid
  14. Test Coverage in Software Testing
  15. What is a code review?

Software Engineering Processes

  1. 8 Best Software Development Methodologies
  2. What Are the Best Git Branching Strategies
  3. 6 Stages Of The Software Development Life Cycle (SDLC)
  4. Top 8 Agile Estimation Techniques (Explained with Examples)
  5. 10 reasons why you should use story points
  6. Scrum vs Kanban – Difference Between Them
  7. The 2020 Scrum Guide

JavaScript Development Tools

  1. CI/CD Pipeline – Learn how to Setup a CI/CD Pipeline from Scratch
  2. Yarn vs NPM: A Comprehensive Comparison
  3. esbuild Docs
  4. Running cross-platform tasks via npm package scripts
  5. What's New in DevTools

Responsive Design

  1. Progressive Enhancement vs Graceful Degradation
  2. How Mobile-First Web Design Is Different From Adaptive and Responsive
  3. How is mobile-first web design different from adaptive and responsive design?

Soft Skills

  1. A Simple Guide to Delegation for Devs
  2. The Definition of Done
  3. Definition of Done, или кто за что отвечает

Alternative guide of computer science knowledge related to the Front-end

Front-end Trends 2023 image