πŸ“š ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ собСсСдованию: Senior Go Developer#

Π‘Π°Π·Π° для повторСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ собСсСдованиями Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Senior Go Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Один Ρ‚ΠΎΠΏΠΈΠΊ = ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ». Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅: объяснСниС Β«Π½Π° ΠΏΠ°Π»ΡŒΡ†Π°Ρ…Β», тСория для повторСния, вопросы ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽΠ΅Ρ€Π° с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ ΠΈ Ρ€Π°Π·Π±ΠΎΡ€ Β«Π½Π° Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΏΠ°ΡŽΡ‚ Π½Π° senior+Β».

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» рассчитан ΠΈ Π½Π° Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Go с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ языка: Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π΅ΡΡ‚ΡŒ Π±Π»ΠΎΠΊ ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами с аналогиями, Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΎΠΉ ΠΆΠ°Ρ€Π³ΠΎΠ½Π° ΠΈ сравнСниСм с Java, Python, C# ΠΈ JS.

Как ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ#

  1. Π˜Π΄Ρ‘ΡˆΡŒ ΠΏΠΎ модулям свСрху Π²Π½ΠΈΠ· ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΡˆΡŒ слабыС мСста. Π’Π½ΡƒΡ‚Ρ€ΠΈ модуля ΡΡ‚Π°Ρ‚ΡŒΠΈ отсортированы Π² порядкС чтСния β€” ΠΎΡ‚ Π±Π°Π·Ρ‹ ΠΊ дСталям.
  2. НСзнакомая Ρ‚Π΅ΠΌΠ°: Ρ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ TL;DR β†’ ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами β†’ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ. Знакомая Ρ‚Π΅ΠΌΠ°: сразу TL;DR β†’ Вопросы Π½Π° собСсСдовании, ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅ΡˆΡŒ вслух, Π½Π΅ подглядывая.
  3. ΠŸΠ΅Ρ€Π΅Π΄ самим собСсом достаточно ΠΏΡ€ΠΎΠ³Π½Π°Ρ‚ΡŒ TL;DR + вопросы ΠΏΠΎ всСм Ρ„Π°ΠΉΠ»Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°:

# Π’Π΅ΠΌΠ°
> ΠœΠΎΠ΄ΡƒΠ»ΡŒ Β· Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ
## TL;DR
## ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами          (аналогия, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², «Ссли Ρ‚Ρ‹ с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ языка»)
## ВСория
## ΠŸΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ / gotchas
## Вопросы Π½Π° собСсСдовании  (Π’: / О:)
## На Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΏΠ°ΡŽΡ‚ Π½Π° senior+

ΠœΠΎΠ΄ΡƒΠ»ΠΈ#

01. Core Go β€” 01-core-go/#

Π―Π·Ρ‹ΠΊ: Ρ‚ΠΈΠΏΡ‹, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, слайсы, ΠΌΠ°ΠΏΡ‹, интСрфСйсы, ошибки, замыкания, Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ, JSON, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

02. Concurrency β€” 02-concurrency/#

Π“ΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ GMP, ΠΊΠ°Π½Π°Π»Ρ‹, context, ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ синхронизации, errgroup, ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹.

03. Runtime ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ β€” 03-runtime-memory/#

Stack vs heap, escape analysis, GC, ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (pprof).

04. ВСстированиС β€” 04-testing/#

Table-driven, Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ, fuzzing, ΠΌΠΎΠΊΠΈ, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты.

05. Backend β€” 05-backend/#

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, net/http, middleware, REST, gRPC, protobuf, auth, JWT/OAuth2, чистая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

06. Π‘Π΅Ρ‚ΠΈ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ β€” 06-networking/#

TCP/IP, HTTP/1.1/2/3, TLS, WebSocket, DNS, connection pooling.

07. Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… β€” 07-databases/#

PostgreSQL, индСксы, isolation levels, MVCC, рСпликация, ΡˆΠ°Ρ€Π΄ΠΈΠ½Π³.

08. РаспрСдСлённыС систСмы β€” 08-distributed-systems/#

CAP, consistency, ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ, saga, outbox, Kafka, RabbitMQ.

09. Observability β€” 09-observability/#

OpenTelemetry, Prometheus, Grafana, трСйсинг, ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

10. System Design β€” 10-system-design/#

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ проСктирования + Ρ€Π°Π·Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ (URL shortener, chat, rate limiter, payment…).

11. DevOps β€” 11-devops/#

Docker, Kubernetes, CI/CD, ΠΎΠ±Π»Π°ΠΊΠ°, Terraform.

12. Алгоритмы β€” 12-algorithms/#

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, структуры Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, спСцифика Π½Π° Go.

13. Behavioral β€” 13-behavioral/#

Soft skills, лидСрство, Ρ„Π»ΠΎΡƒ system design ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ.


ЧСклист готовности#

  • Core Go β€” ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽ Π±Π΅Π· Π·Π°ΠΏΠΈΠ½ΠΊΠΈ
  • Concurrency β€” channel vs mutex, GMP, context
  • Runtime β€” escape analysis, GC, Π½Π°ΡˆΡ‘Π» Π±Ρ‹ ΡƒΡ‚Π΅Ρ‡ΠΊΡƒ Ρ‡Π΅Ρ€Π΅Π· pprof
  • Databases β€” isolation levels, индСксы, EXPLAIN
  • Distributed β€” CAP, ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ, delivery guarantees
  • System Design β€” ΠΌΠΎΠ³Ρƒ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 3+ систСмы ΠΈΠ· модуля 10
  • DevOps β€” Docker/k8s Π±Π°Π·ΠΎΠ²ΠΎ