Roadmap
- паттерны
- WebSocket, Http1/2/3, tcp/udp, tcp/ip
- Чистая архитектура
- postgresql
- kafka, шины данных
- docker Docker Tutorial for Beginners - A Full DevOps Course on How to Run Applications in Containers #youtube
- kubernеtes
- ELK stack Complete guide to ELK stack
- system design
- ОС
- 12-Factor apps
в лекциях отус (/D) есть лекции про очередь сообщений на го и udp/tcp Redis, RabbitMQ, ElasticSearch, Cassandra
Ссылки:
- Как я сделал релокейт на Кипр самостоятельно #youtube
- Шаблон распределенных транзакций Saga
- Что такое паттерны программирования [Хекслет] #youtube
- Golang developer roadmap github.com #github
- Oh My BackEnd - список навыков который часто требуется backend разработчику #github
- Introduction to Linear Data Structures
Роадмап
- Go - Интерфейсы
- Горутины
- Каналы
- Оркестрация горутин
- GC
- TCP/IP, DNS
- HTTP 1/2
- REST
- Websocket
- Механизмы аутентификации
- Алгоритмы
- Структуры данных
- БД - PostgresQL
- NoSQL - Mongo
- ACID транзакции
- Индексирование
- Шардинг и репликация
- Распределенные системы - CAP теорема
- Микросервисы
- gRPC
- Kafka, RebitMQ, Redis
- Инфраструктура - Docker
- CI/CD
- AWS/GCP/Azure
- Безопасность - XSS
- SQL инъекции
- Хранение паролей
- Хранение секретов
- Концепции - ООП (Типы в языках программирования | Пирс Бенджамин - ООП глава; Dependency injection; Dependency inversion), SOLID, DRY, KISS, YAGNI, TDD, DDD
Список вопросов
Фундаментальная теория CS
- Устройство компьютера. Зачем нужны процессор, ОЗУ, видеокарта и постоянное хранилище данных?
- Что такое ОС и зачем она нужна?
- Как ОС запускает программы? Что такое процессы?
- Что такое потоки? Как компьютер способен выполнять несколько задач одновременно?
- Что такое язык программирование и зачем он нужен? Какие ЯП бывают? В чем разница между компилируемым и интерпретируемым языком?
- Алгоритмы и структуры данных. Какие бывают, зачем нужны, когда и где применяются?
Теория веб-разработки
- Что такое клиент-серверная архитектура? Что такое p2p сеть? В чем разница этих подходов?
- Как происходит общение ****по сети? Что такое стек протоколов TCP/IP? Что такое IP адрес? Как происходит маршрутизация запросов и при чем тут DNS?
- Анатомия протокола HTTP
- Какая разница между TCP и UDP? Когда какой протокол стоит выбрать?
- Что такое аутентификация и авторизация в веб-приложениях? Какая между ними разница ? Какие существуют механизмы реализации?
- Что означает S в HTTPS? Зачем нужны сертификаты?
- Как веб-браузер посылает и обрабатывает запросы?
Базы Данных и Распределенные Системы
- Как компьютер хранит информацию? Какая разница между ОЗУ и персистентным хранилищем?
- Зачем нужны БД? Почему бы не хранить все в обычных файлах?
- Какие БД бывают? В чем разница между SQL и NoSQL подходами?
- Что такое SQL?
- Синтаксис языка SQL, практические навыки
- Когда стоит выбирать NoSQL? В чем их отличия и преимущества? Каких видов бывают?
- Что такое in-memory хранилище? Какие есть решения? Зачем они нужны?
- Что такое ACID транзакции? Зачем они нужны? Как реализовываются?
- Что такое CAP теорема и какое отношение она имеет к распределенным БД?
- Какие есть подходы к масштабированию?
- Что такое шардинг и репликация?
С собеса в стартап - "Простые вещи бро от этого обидно, про промисы и асинк авэйт в жс, про треды и кластеризацию в ноде, «что такое рест апи» с уточняющими вопросами на правила рест апи, что такое хттпс а я не помню как точно там хэдеры шифруются и расшифровываются, про транзакции ебаные что такое изоляция транзакции я ему правильно ответил что снэпшот таблицы просто удаляется если куэри в транзакции провалится, а он надавил встречным вопросом «то есть другие транзакции видят изменения?» я под нос пробубнил нет там у других транзакций свои снэпшоты но засомневался чето и сказал что не помню, потом про уровни транзакций я это не помню, потом спросил че будет если провалится транзакция в которой куэри поменял схему базы, например создал таблицу, а я с таким дел не имел бро не помню бро, в итоге ответ такой что в постгресе такое разрешено и он норм откатит если чо, а в других такое в транзакцию пихать нельзя вроде"
Паттерны
Go пакеты, best practices
Go Cookbook - книга чела из Riot Games, есть в чате mts.golang - Go kit is a programming toolkit for building microservices #github - Блог о языке программирования Go
Алгоритмы, структуры данных
- Algorithms implemented in Go (for education) #github
- лучший ютуб канал по алгритмам/структурам данных WilliamFiset channel about algorithms #youtube
Принципы разработки
- 10 Crucial Software Development Principles to Live By
- DRY
- KISS
- YAGNI
- SOLID
Go Concurrency
Concurrency in Go: Tools and Techniques for Developers
Auth
- Обзор способов и протоколов аутентификации в веб-приложениях
- Basic Auth
- OAuth
- JWT
- Token
- Работа с группами пользователей
PostgreSQL
Системный дизайн
- Grokking the System Design
- лучший канал по backend топикам, архитектуре сервисов, основам протоколов и т.п.Hussein Nasser #youtube
Так же у него хорошо собранны плейлисты по топикам
No SQL
- MongoDB
- Redis
Search Engines
- Elastic Search
Message-Broker
- Apache Kafka Про Kafka (основы) #youtube
- RabbitMQ
RPC
- gRPC
Caching
- GCache
- Go-Redis
Cloud Database
- Azure Cosmos-db