Deep Engineering

Подготовка к собеседованию

Go

13 уроков в линии

  1. 1СрезыСрез в Go: окно над чужим массивом, два пути append и правило роста, которое все помнят неверно35 МИН
  2. 2КартыКарта в Go: группа из восьми, порог 7/8 и промах, который дороже попадания35 МИН
  3. 3Строки и руныСтроки, руны и байты: почему len не считает символы, а подстрока держит мегабайтыПонятнее после: Срезы30 МИН
  4. 4ИнтерфейсыИнтерфейс в Go: два слова, nil, который не nil, и вызов дороже в четыре раза30 МИН
  5. 5Получатель метода в Go: копия, которой не видно, и «указатель быстрее», которое неверноПонятнее после: Интерфейсы25 МИН
  6. 6Ошибки в Go: одна буква, которая рвёт цепочку, и утверждение типа, которое перестанет работатьПонятнее после: Интерфейсы25 МИН
  7. 7defer, panic, recoverdefer, panic и recover в Go: три момента вместо одного и recover, который молча не работаетПонятнее после: Ошибки35 МИН
  8. 8Context в Go: отмена только вниз, cancel, который не про отмену, и Value, который дорожает с глубинойПонятнее после: Каналы · Планировщик30 МИН
  9. 9ПланировщикГорутины и планировщик Go: две тысячи байт, вытеснение и GOMAXPROCS, который ограничивает не то, что думают30 МИН
  10. 10КаналыКанал в Go: значение мимо буфера, select без приоритетов и цена, которую платят парковкойПонятнее после: Планировщик25 МИН
  11. 11sync и atomic в Go: два совета, которые разваливаются при замереПонятнее после: Каналы · Планировщик30 МИН
  12. 12Стек и кучаСтек, куча и escape-анализ: почему указатель ещё ничего не значитПонятнее после: Срезы · Интерфейсы25 МИН
  13. 13Сборщик мусораПочему пауза не растёт вместе с кучей, а GOGC ничего не ускоряетПонятнее после: Стек и куча25 МИН

Финальная проверка: линия Go

По одному вопросу на каждый урок линии. Здесь не пересказ уроков, а те места, где механизм даёт ответ, которого не ждут: общий массив после append, порядок обхода карты, select без приоритетов и nil, который не nil.

Финальная проверка1 / 13

s := make([]int, 0, 4); a := append(s, 1); b := append(s, 2). Чему равно a[0]?