Go. Подготовка к интервью

Что стоит повторить

🔹 Go

Мы проверяем знания возможностей языка и устройства runtime. И оцениваем варианты решения задач в различных ситуациях. Например, когда лучше использовать mutex’ы или каналы, как понять, почему приложение использует так много памяти, и т. д. 

Этот блок обязательно включает задачи на написание кода в онлайне. 

🔹 Архитектура


Задачи на проектирование масштабируемых и отказоустойчивых решений из реальной практики Ozon.

🔹 Алгоритмы*


Знание стандартных алгоритмов, включая разные методы сортировки и обхода графов. Оценка сложности алгоритма в нотации big O.

🔹 Базы данных*


Понимание реляционных и нереляционных БД, их отличий, сценариев использования, проектирования схем, основ оптимизации под высокие нагрузки (репликация/шардинг).

🔹 ОС и сети*


Представление о работе в терминале, сетевом стеке linux, базовом troubleshooting’e (чем заняты ресурсы, просмотр логов и т. д.).


* Для некоторых департаментов Ozon

📚 Полезные ресурсы для подготовки 

Статьи

  • Джей Макгаврен «Head First. Изучаем Go» 

  • Калеб Докси «Введение в программирование на Go», «Introducing Go: Build Reliable, Scalable Programs» 

  • Максим Жашкевич «Язык Go для начинающих» 

  • Nathan Youngman Roger Peppe «Get Programming with Go»

  • Adam Freeman «Pro Go: The Complete Guide to Programming Reliable and Efficient Software Using Golang» 

  • Kevin Cunningham «For the Love of Go» 

  • Тейва Харшани «100 ошибок Go и как их избежать» 

Для мидлов 

  • Алан Донован, Брайан Керниган «Язык программирования Go» 

  • Vladimir Vivien «Learning to Go» 

  • Мэтт Батчер, Мэтт Фарина «Go на практике» 

  • Марк Саммерфильд «Программирование на языке Go» 

  • William Kennedy, Brian Ketelsen, Erik St. Martin «Go in Action»

  • М. Клеппман «Высоконагруженные приложения. Программирование, 

    масштабирование, поддержка» 

  • К. Индрасири, Д. Курупу «gRPC. Запуск и эксплуатация облачных приложений. Go и Java для Docker и Kubernetes» 

  • John Arundel «The Power of Go: Tools» 

Для сеньоров

  • Nathan Cozyra «Mastering Concurrency in Go» 

  • Джон Боднер «Go: идиомы и паттерны проектирования» 

  • Jan Newmarch «Network Programming with Go» 

  • Bartlomej Plotka «Efficient Go» 

  • Gayle Laakmann McDowell «Cracking the Coding Interview: 189 Programming Questions and Solutions 6th Edition» 

  • Alex Xu «System Design Interview – An insider's guide» 

  • А. Петров «Распределенные данные. Алгоритмы работы современных систем хранения информации» 

Статьи

Ozon Tech Community Go Meetup