/awesome-backend

🚀 A curated and opinionated list of resources (English & Russian) for Backend developers | Структурированный список ресурсов для изучения Backend разработки

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 knowledges. 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
REST API Design Principles Принципы проектирования REST API

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?

Resources (Ресурсы)

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 "Микросервисы. Паттерны разработки и рефакторинга" Крис Ричардсон