/learning

Roadmap for software engineer, sandbox, algorithms training, it also contains my daily task dashboard

Primary LanguageJavaScript

Software engineer roadmap

Skills for engineer

Basics Fundamentals

Algorithms

Reading code

Maths for Computer science

Data structures

Key concepts

Design Patterns

Testing

Debug

  • why to debug
  • how to debug
  • practice in langage/ide

Computer world

  • components
    • Database
    • API
    • serveurs
  • how component interacts
  • memory ram
  • stock/data
  • threads
  • serveurs
  • browser
  • bash

Web World

Terminal commands

Performance Big-O

Encoding

Links

cs standford some posts

System/Networking basics

  • OSI

  • HTTP

  • UDP

  • SSL

  • web server

    • Ngnix
    • Apache
  • FTP

  • TLS

  • DNS

  • NTP

  • SDN

  • database

    • MySQL
    • MariaDB
    • PostGres
    • Mongo

Systems middle

  • loadbalancer
  • firewall
  • reverse proxy
  • security
  • coching server
  • forward proxy

Frontend basics

Knowlage

HTML

  • HTML structure
  • Links, buttons
  • forms
  • evolutions
  • good practices

CSS

JavaScript

Javascript projects ideas

  • Card / Accordeon
  • Pagination table
  • Steper
  • Tabs
  • Loader before images
  • Modals
  • Sub/Override words when searching (dom search)

Frontend middle

JavaScript

  • Learn a framework 'React'
    • about super, good blog
    • tools to debug
    • hooks https://blog.logrocket.com/use-hooks-and-context-not-react-and-redux/
    • tips
      • Pouvez-vous la calculer en vous basant sur le reste de l’état ou les props de votre composant ? Si oui, ce n’est pas de l’état.
      • penser react
      • passer etat: Il ne doit y avoir qu’une seule « source de vérité » pour toute donnée qui change dans une application React. En général, l’état est d’abord ajouté au composant qui en a besoin pour s’afficher. Ensuite, si d’autres composants en ont également besoin, vous pouvez faire remonter l’état dans l’ancêtre commun le plus proche. Au lieu d’essayer de synchroniser les états de différents composants, vous devriez vous baser sur des données qui se propagent du haut vers le bas.
  • Testing Unit/Integration/E2E
  • Babel
  • Assyncronous
  • Closures
  • Types
  • TypeScript

CSS

  • Bootstrap
  • Flexbox
  • Bulma
  • Pre processor

Tools

  • light house
  • performance
  • debug in browser

Backend basics

  • GO/Java/Python
  • Testing
  • Debug tools
  • Deployment
  • Packaging
  • create API without frameworks

Backend middle

  • oauth

  • basic authentication

  • JWT

  • openId

  • SSO

  • Take a framework

  • Websockets

  • Dependendy Injection

  • Database

    • ORM
  • security

    • CORS
    • XSS
    • CSRF

Backend advance

  • Serverless
  • Microservices
  • GraphQL

Backend advance

  • Message broker
  • Search engine
  • APNs
  • Location
  • Payments
  • Service workers

Devops

  • Docker
    • Containize
    • Docker composer
    • Manage commands
  • Runners
    • Jenkins
    • Circle CI
  • Configuration
    • Ansible
    • Puppet
  • Concepts
    • Process Management

Devops middle

  • Cloud
    • AWS
    • Google Cloud
    • Heroku
    • Azure
    • Digital Ocean
  • Orchestration
    • Kubernetes
    • Docker Swarm
  • Insfra provisioning
    • Terraform
  • Logs Splunk

Tools basics

Tools middle

  • git

    • reset, rollback
    • conflicts
    • gitflow
  • redux

  • gulp

programming

  • fonctionnal
  • declarative
  • procedural
  • oop
  • patterns
    • MVC

practices

  • Test-driven
  • CI
  • Behavior-driven

Network

Technology

  • Singlepage SPA
  • PWA

Design UX

Useful links