Skip to content

Roadmap

  1. паттерны
  2. WebSocket, Http1/2/3, tcp/udp, tcp/ip
  3. Чистая архитектура
  4. postgresql
  5. kafka, шины данных
  6. docker Docker Tutorial for Beginners - A Full DevOps Course on How to Run Applications in Containers #youtube
  7. kubernеtes
  8. ELK stack Complete guide to ELK stack
  9. system design
  10. ОС
  11. 12-Factor apps

в лекциях отус (/D) есть лекции про очередь сообщений на го и udp/tcp Redis, RabbitMQ, ElasticSearch, Cassandra

Ссылки:

Роадмап

  1. Go - Интерфейсы
  2. Горутины
  3. Каналы
  4. Оркестрация горутин
  5. GC
  6. TCP/IP, DNS
  7. HTTP 1/2
  8. REST
  9. Websocket
  10. Механизмы аутентификации
  11. Алгоритмы
  12. Структуры данных
  13. БД - PostgresQL
  14. NoSQL - Mongo
  15. ACID транзакции
  16. Индексирование
  17. Шардинг и репликация
  18. Распределенные системы - CAP теорема
  19. Микросервисы
  20. gRPC
  21. Kafka, RebitMQ, Redis
  22. Инфраструктура - Docker
  23. CI/CD
  24. AWS/GCP/Azure
  25. Безопасность - XSS
  26. SQL инъекции
  27. Хранение паролей
  28. Хранение секретов
  29. Концепции - ООП (Типы в языках программирования | Пирс Бенджамин - ООП глава; 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

Алгоритмы, структуры данных

Принципы разработки

Go Concurrency

Concurrency in Go: Tools and Techniques for Developers

Auth

PostgreSQL

Системный дизайн

  • Grokking the System Design
  • лучший канал по backend топикам, архитектуре сервисов, основам протоколов и т.п.Hussein Nasser #youtube
    Так же у него хорошо собранны плейлисты по топикам

No SQL

  • MongoDB
  • Redis

Search Engines

  • Elastic Search

Message-Broker

RPC

  • gRPC

Caching

  • GCache
  • Go-Redis

Cloud Database

  • Azure Cosmos-db