Ingénieur backend génial
En une liste organisée et avisée des ressources (anglais et russe) pour les développeurs backend qui vous aideront à orginiser et à structurer votre chemin d'apprentissage et vos connaissances. Inspiré par le CTO génial.
RU Liste structurée des ressources pour étudier le développement du backend, qui vous aidera à systématiser vos connaissances et à élaborer un plan de formation. Il est basé sur une expérience personnelle et une étude indépendante de ce domaine. CTO génial inspiré.
Sur la publicité, si vous êtes intéressé à Beckind et que vous souhaitez pomper la base théorique, je vous conseille de vous familiariser avec le cours "Architecture des applications Web modernes"
Contenu
- Bases
- L'informatique
- Développement et réseautage Web
- Bases de données
- Sécurité
- Architecture et infrastracture
- Liens connexes
- Livres
Bases
- Feuille de route du développeur
- Comment devenir un bon ingénieur backend (fondamentaux)
- Apprenez à devenir un développeur backend (2018)
- Conseils pour les ingénieurs backend débutants qui viennent de commencer leurs nouveaux emplois dans des sociétés de logiciels
L'informatique
| Sujets principaux | Les principaux sujets |
|---|
| Qu'est-ce que l'ordinateur et comment cela fonctionne? | Qu'est-ce qu'un ordinateur et comment cela fonctionne? |
| Qui fait les langages de programmation des mauvaises herbes? Quels types de langages de programmation existent? | Pourquoi les langages de programmation? Quels types y a-t-il? |
| Algorithmes et structures de données | Algorithmes et structures de données |
| Pavillon | Programmation orientée vers l'objet |
| Concurrence et parallélisme | Compétitivité et parallélisme |
Resouus (ressources)
- Qu'est-ce que l'informatique
- Carte de l'informatique
- CS50 par Harvard. En / ru
- Cours crash de l'informatique
- Comment les ordinateurs lisent-ils le code?
- L'histoire oubliée de OOP
- La concurrence n'est pas le parallélisme
- Structures de données pour le plus petit
- Algorithmes et structures de données. Cours préparatoire (printemps 2016)
- OOP en images
- Multiprocesseness, multi-plaque, asynchronisme dans Python et pas seulement. Qu'est-ce que c'est et comment ça marche?
- Compétitivité et parallélisme. À peu près le difficile
Développement et réseautage Web
| Sujets principaux | Les principaux sujets |
|---|
| Qu'est-ce que l'architecture client-serveur et HTTP? | Qu'est-ce qu'une architecture client-serveur et HTTP? |
| Qu'est-ce que TCP / IP? | Qu'est-ce que la pile TCP / IP? |
| Qu'est-ce que DNS? | Qu'est-ce que DNS? |
| La hurchorisation et l'authentification fonctionnent? Qu'est-ce que JWT? | Comment fonctionne l'autorisation et l'authentification? Qu'est-ce que JWT? |
| Proxy et proxy inversé | Proxy et proxy inversé |
| Serveurs Web. Nginx. | Serveur Web. Nginx |
| Principes de conception de l'API REST | Principes de conception de l'API REST |
Resouus (ressources)
- Développement Web en 2021 - Un guide pratique
- Qu'est-ce que TCP / IP?
- Protocole de transfert de texte hyper
- HTTP Crash Course & Exploration
- TCP vs UDP Crash Course
- Concepts et exemples de l'API REST
- API RESTFUL
- 2 heures Nginx Crash Course + Contenu bonus
- JWT - Cours crash de JSON Web Token (Nodejs & Postgres)
- Proxy vs Reverse Inverse Proxy Server expliqué
- Comment HTTP / 2 fonctionne, les performances, les avantages et les inconvénients et plus
- Comment fonctionne DNS - ComputerPhile
- GRPC Crash Course - Modes, exemples, avantages et inconvénients et plus
- Bien. Langages de programmation Web
- 6. Technologies Web. Protocole HTTP | Technostrum
- Développement Web pour les débutants Comment les applications Web sont-elles organisées? (Frontend / backend)
- Architecture d'application Web / de simple à très chargé
- Authentification dans les applications Web?
- Introduction aux services Web de repos de l'API REST
Bases de données
| Sujets principaux | Les principaux sujets |
|---|
| Que sont la base de données et les SGBD? | Qu'est-ce qu'une base de données et un SGBD? |
| Qu'est-ce qu'une base de données relationnelle? Qu'est-ce que SQL? | Qu'est-ce qu'une base de données relationnelle et SQL? |
| Que sont les index et transactions? | Que sont les indices et les transactions? |
| Que sont les propriétés acides? Quels niveaux d'isolement sont là-bas? | Que sont les propriétés acides? Quels sont les niveaux d'isolation des transactions? |
| Quelles sont les bases de données NoSQL? Quelles sont les différences entre NOSQL & SQL? | Qu'est-ce que Nosql? Quelles sont les différences entre Nosql et SQL? |
| Qu'est-ce que la normalisation des bases de données? | Quelle est la normalisation de la base de données? |
Resouus (ressources)
- Qu'est-ce qu'une base de données?
- Qu'est-ce que la base de données et SQL?
- Tutoriel SQL - Cours de base de données complète pour les débutants
- Cours de conception de base de données - Apprenez à concevoir et à planifier une base de données pour les débutants
- Indexation de la base de données expliquée (avec PostgreSQL)
- SQL VS NOSQL ou MYSQL VS MONGODB
- Introduction aux bases de données NoSQL
- Bases de mongodb
- MongoDB pour SQL Pros
- Acide
- Nous démontons le SQL à l'aide de PostgreSQL - Sélectionnez, joignez, groupe, ayant, fusionnez, etc.
- Cours "Utilisation de bases de données" (2019)
- Cours "Base de données. Laboratoire de Tarantool" (2018)
- Guide pour les débutants: transactions acides et à base de données
- Comment pourrais-je maintenant expliquer à un jeune homme pourquoi y a-t-il des exigences acides pour les bases de données?
- Bases des règles de conception de la base de données
- Normalisation des relations. Six formes normales
- Guide de conception de la base de données (1-3 partie sur 15)
Sécurité
| Sujets principaux | Les principaux sujets |
|---|
| Qu'est-ce que HTTPS et comment ça marche? | Qu'est-ce que HTTPS et comment ça marche? |
| Quels sont les principaux types d'attaques et de vulnurabilites dans les applications Web? | Quels sont les principaux types d'attaques et de vulnérabilités dans les applications Web? |
| Qu'est-ce que l'injection SQL? Comment l'empêcher? | Qu'est-ce que l'injection SQL? Comment l'empêcher? |
| Qu'est-ce que l'attaque XSS? Comment l'empêcher? | Qu'est-ce que l'attaque XSS? Comment l'empêcher? |
| Comment stocker les mots de passe / secrets dans l'application Web? | Comment stocker des mots de passe / secrets dans l'application Web? |
Resouus (ressources)
- 9. sécuriser les applications Web
- Comment fonctionnent les sages HTTPS? Qu'est-ce qu'un CA? Qu'est-ce qu'un certificat auto-signé?
- Crackage de mot de passe - ComputerPhile
- Exécution d'une attaque d'injection SQL - ComputerPhile
- Comment ne pas stocker les mots de passe! - ComputerPhile
- Sites Web de craquage avec script de site croisé - ComputerPhile
- Les scripts croisés (XSS) ont expliqué
- Pourquoi LocalStorage est vulnérable aux XS (et les cookies aussi)
- Owasp Cheat Sheat
- Comment fonctionne HTTPS?
- Sécurité des applications Internet (2020)
- Comment stocker les mots de passe et les clés dans le code du projet? Tout sur les variables de l'environnement. Un exemple avec Django
- Injection SQL. Défense et attaque (partie 1)
- Qu'est-ce que XSS-Vain et comment ne pas le manquer en tant que testeur
Architecture et infrastracture
| Sujets principaux | Les principaux sujets |
|---|
| Que sont les systèmes distribués? | Que sont les systèmes distribués? |
| Qu'est-ce que la mise à l'échelle? Échelle horizontale vs verticale? Comment évoluer les applications Web et les bases de données? | Qu'est-ce que la mise à l'échelle? Échelle horizontale vs verticale? Comment évoluer les applications Web et les bases de données? |
| Qu'est-ce que le théorème CAP? Que sont les systèmes CP et AP? | Qu'est-ce que le théorème CAP? À quoi ressemblent les systèmes CP et AP? |
| Que sont les microservices? Quels modèles utilisent-ils? Comment concevoir l'architecture des microservices? | Que sont les microservices? Quels modèles utilisent-ils? Comment les concevoir? |
| Quelle architecture axée sur l'ISES? | Qu'est-ce que l'architecture axée sur l'événement? |
| Qu'est-ce que l'architecture propre? Comment l'implémenter à l'aide de votre langue / framework de promotion? | Qu'est-ce que l'architecture pure? Comment l'implémenter dans votre JAP / Framework? |
| Comment déployer des applications Web? Qu'est-ce que les VP? Qu'est-ce que SSH? | Comment déployer une application Web? Qu'est-ce que les VP? Qu'est-ce que SSH? |
| Qu'est-ce que Docker? Qui en avons-nous besoin? | Qu'est-ce que Docker? Pourquoi est-ce nécessaire? |
| Que sont les fournisseurs de cloud? Comment les utilisez-vous? | Qu'est-ce que les fournisseurs de Claud et pourquoi sont-ils nécessaires? |
| Comment automatiser les tests et le déploiement? Qu'est-ce que CI / CD? Comment l'implémenter? | Comment automatiser les tests et la tenue? Qu'est-ce que CI / CD et comment le configurer? |
| Qu'est-ce que le certificat SSL? Comment le configurer pour votre application Web? | Qu'est-ce que le certificat SSL? Comment le configurer? |
| Qu'est-ce que Kubernetes? Quand vous utilisez-vous? | Qu'est-ce que c'est et pourquoi Kubernetes a-t-il besoin? |
| Qu'est-ce que DDD? | Qu'est-ce que la conception axée sur le domaine? |
Ressources (ressources)
- Approchant des systèmes distribués
- Concepts et design d'architectures Web évolutives
- Comment mettre à l'échelle des bases de données SQL et NOSQL
- Échec de votre application Web
- Théorème de plafond dans les systèmes distribués
- Comment concevoir une application Web: Architecture logicielle 101
- Introduction aux microservices
- Architecture de microservice à Medium
- Mastering Chaos - Un Guide Netflix des microservices
- Goto 2020 • Quand utiliser les microservices (et quand pas le faire!) • Sam Newman & Martin Fowler
- Banque moderne dans 1500 microservices
- Gestion des données dans les microservices
- Qu'est-ce que DDD - Eric Evans - DDD Europe 2019
- L'architecture propre
- Apprendre Docker en 12 minutes?
- Tutoriel Docker pour les débutants - Un DevOps complet Couurse sur la façon d'exécuter des applications dans des conteneurs
- Qu'est-ce qu'une architecture multiples et va-t-elle devenir peuplier?
- L'application à douze facteurs
- Blog de haute charge
- Architecture de charge élevée
- Cap Theoma est une langue simple et accessible
- Création de l'architecture de programme ou comment concevoir un tabouret
- Comment obtenir et configurer le certificat SSL LETSECCRYPT pour le site?
- Richer le serveur Debian pour Python / Django - Installation et réglage à partir de zéro. Comment configurer le serveur?
- Deet Fullstack Applications [Golang + JS]. CI / CD, DigitalOcean, GitHub Actions
- Architecture pure
- Fondamentaux de Docker. Grande libération pratique
- Artyom Antonenko "Design axé sur le domaine"
- Nous avons configuré l'autorisation de SSH par Key dans Linux / Unix
- Nous collectons l'architecture évolutive de l'application Web. Échelle horizontale et verticale
Liens connexes
- Bon englober l'ingénierie pour démarrer une entreprise Internet
- La technologie ennuyeuse derrière une entreprise Internet d'une personne
- API comme produit. Comment vendre votrek quand tout ce que vous savez est un back-end
- Uml pour les débutants
- L'autre côté de la compétence technique: connaissance du domaine et vision à long terme
- Passer du développeur au CTO
- Ce qui fait vraiment un développeur principal
- Ce qui est derrière un simple chargement de pages Web dans un navigateur
Livres
| |
|---|
| Algorithmes de gêne | Algorithmes grognement |
| "Clean Code" par Robert Martin | "Code pur" Robert Martin |
| "Architecture propre" par Robert Martin | "Pure Architecture" Robert Martin |
| "Développement de logiciels professionnels" par Steve McConnel | "Développement professionnel du logiciel" Steve Maccconle |
| "Construire des microservices" par Sam Newman | "Création de microservice" Sam Newman |
| "Microservices Patterns" par Chris Richardson | "Microservice. Modèles de développement et de refactorisation" Chris Richardson |