Skip to content

Latest commit

 

History

History
197 lines (176 loc) · 19.1 KB

README.md

File metadata and controls

197 lines (176 loc) · 19.1 KB

Awesome Backend Engineer

EN A curated and opinionated list of resources (English & Russian) for Backend developers that will help you orginize & structure your learning path and knowledge. Inspired by Awesome CTO.

RU Структурированный список ресурсов для изучения Backend разработки, который поможет систематизировать свои знания и составить план обучение. Основан на личном опыте и самостоятельном изучении данной области. Вдохновленно Awesome CTO.

На правах рекламы Если вы интересуетесь бекендом и хотите прокачать теоретическую базу, советую познакомится с курсом "Арихитектура Современных Веб-Приложений"

Contents

Basics

Computer Science

Main topics (Основные темы)

  • What is computer and how it works? (Что такое компьютер и как он работает?)
  • Why do we need programming languages? What types of programming languages are out there? (Зачем нужны языки программирования? Какие типы бывают?)
  • Algorithms & Data Structures (Алгоритмы и структуры данных)
  • OOP
  • Concurrency & Parallelism (Конкурентность и параллелизм)

Resouses (Ресурсы)

Web Development & Networking

Main topics (Основные темы)

  • What is client-server architecture and HTTP? (Что такое клиент-серверная архитектура и HTTP?)
  • What is TCP/IP? (Что такое стек TCP/IP?)
  • What is DNS? (Что такое DNS?)
  • How authorization & authentication works? What is JWT? (Как работает авторизация и аутентификация? Что такое JWT?)
  • Proxy & Reverse Proxy (Прокси и обратный прокси)
  • Web servers. Nginx. (Веб-сервер. Nginx)

Resouses (Ресурсы)

Databases

Main topics (Основные темы)

  • What are database and DBMS? (Что такое база данных и СУБД?)
  • What is a relational database? What is SQL? (Что такое реляционная БД и SQL?)
  • What are indexes & transactions? (Что такое индексы и транзакции?)
  • What are ACID properties? Which Isolation levels are out there? (Что такое свойства ACID? Какие есть уровни изоляции транзакций?)
  • What are NoSQL Databases? What are the differences between NoSQL & SQL? (Что такое NoSQL? Какие различия между NoSQL и SQL?)
  • What is databases normalization? (Что такое нормализация БД?)

Resouses (Ресурсы)

Security

Main topics (Основные темы)

  • What is HTTPS and how does it work? (Что такое HTTPS и как он работает?)
  • What are main types of attacks and vulnurabilities in web applications? (Какие существуют основные типы атак и уязвимостей в веб-приложениях?)
  • What is SQL Injection? How to prevent it? (Что такое SQL инъекция? Как ее предотвратить?)
  • What is XSS Attack? How to prevent it? (Что такое XSS атака? Как ее предотвратить?)
  • How to store passwords/secrets in web app? (Как хранить пароли/секреты в веб приложении?)

Resouses (Ресурсы)

Architecture & Infrastracture

Main topics (Основные темы)

  • What are distributed systems? (Что такое распределеные системы?)
  • What is scaling? Horizontal vs Vertical scaling? How to scale web apps and databases? (Что такое масштабирование? Горизонтальное vs Вертикальное масштабирование? Как масштабировать веб-приложения и базы данных?)
  • What is CAP Theorem? What are CP and AP systems? (Что такое CAP теорема? Как выглядят CP и AP системы?)
  • What are Microservices? What patterns do they use? How to design microservices architecture? (Что такое микросервисы? Какие паттерны они используют? Как их проектировать?)
  • What is Event-Driven Architecture? (Что такое Event-Driven архитектура?)
  • What is Clean Architecture? How to implement it using your programming language / framework? (Что такое Чистая Архитектура? Как имплеменировать ее в вашем ЯП / фреймворке?)
  • How to deploy web applications? What is VPS? What is SSH? (Как развертывать веб-приложения? Что такое VPS? Что такое SSH?)
  • What is Docker? Why do we need it? (Что такое Docker? Зачем он нужен?)
  • What are cloud providers? How do you use them? (Что такое клауд провайдеры и зачем они нужны?)
  • How to automize testing & deployment? What is CI/CD? How to implement it? (Как автоматизировать тестирование и деплоймент? Что такое CI/CD и как его настроить?)
  • What is SSL Certificate? How to set it up for your web app? (Что такое SSL сертификат? Как его настроить?)
  • What is Kubernetes? When should you use it? (Что такое и зачем нужен Kubernetes?)
  • What is DDD? (Что такое Domain Driven Design?)

Resouses (Ресурсы)

Related Links

Books

  • Grokking Algorithms / Грокаем Алгоритмы
  • "Clean Code" by Robert Martin / "Чистый Код" Роберт Мартин
  • "Clean Architecture" by Robert Martin / "Чистая Архитектура" Роберт Мартин
  • "Professional Software Development" by Steve McConnel / “Профессиональная Разработка ПО” Стив Макконел
  • "Building Microservices" by Sam Newman / "Создание Микросервисов" Сэм Ньюман
  • "Microservices Patterns" by Chris Richardson / "Микросервисы. Паттерны разработки и рефакторинга" Крис Ричардсон