Мы проверяем знания возможностей языка и устройства 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»
А. Петров «Распределенные данные. Алгоритмы работы современных систем хранения информации»
Статьи
Своё кастомное межсервисное взаимодействие с блекджеком и gRPC
Отранжированные и смешные: создаем систему выстраивания пользовательской ленты
Как построить систему, способную выдерживать нагрузку в 5 млн rps
Go, Allure и HTTP, или Как мило тестировать HTTP-сервисы на Go (часть 2)
Ozon Tech Community Go Meetup