Библиотека Go для собеса | вопросы с собеседований – Telegram
Библиотека Go для собеса | вопросы с собеседований
6.91K subscribers
249 photos
10 videos
1 file
574 links
Вопросы с собеседований по Go и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/0b524a15

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://news.1rj.ru/str/proglibrary/9197
Download Telegram
Как регулируется сборка мусора в Go

В Go управление запуском сборщика мусора задаётся параметром GOGC. Этот параметр определяет, насколько увеличится используемая память с момента последней очистки, прежде чем запустится следующий процесс сборки мусора.

Что означают разные значения GOGC:

• Значение по умолчанию — 100 — запускает сборку, когда память удваивается по сравнению с после-очисточным состоянием.

• Если поставить 0, автосборка мусора отключается полностью.

• Числа меньше 100 заставляют сборщик работать чаще, сокращая использование памяти, но увеличивая нагрузку на процессор.

• Значения больше 100 — запускают сборку реже, что снижает нагрузку CPU, но увеличивает объём занятой памяти.

🔹 Специалист по ИИ
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Как вам вопросы прошедшей недели

Оцените их по шкале 🔥,❤️,👍,😢, 🥱,
где 🔥 — это супер, а 🥱 — это скучно.

Также приветствуется фидбек в комментах.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥192🥱2👍1
В чём разница между sync.Pool и ручной реализацией object pool через chan или []T + sync.Mutex

sync.Pool ничего не гарантирует: объект, который положили в пул, может быть в любой момент выкинут GC и никогда не вернуться из Get. Это «лучше есть, чем хранить», а не кэш с гарантией.

Пул на chan или []T+Mutex ведёт себя как обычная очередь/стек: пока вы сами не выбросите объект, он будет там лежать и обязательно вернётся, если его взять.

🔹 Экспресс-курс «Математика для Data Science»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔3
В каких случаях применение sync.Pool будет неэффективным или даже вредным для производительности

Когда sync.Pool не нужен

Объекты создаются редко или их создание дешёвое: накладные расходы на Get/Put и внутреннюю механику пула могут оказаться дороже, чем простая новая аллокация.

Объектов мало и они живут долго: в этом случае они и так нормально переживаются в heap, а пул только усложняет код и увеличивает удерживаемый объём памяти.

Когда sync.Pool вредит производительности:

Высокая конкуренция, но мало реюза: если горутин много, а «хитов» по пулу мало, вы платите за синхронизацию и усложнение GC, почти не снижая количество аллокаций.

Объекты большие: удерживание крупных структур в пуле раздувает память и увеличивает нагрузку на GC, иногда сильнее, чем выгода от экономии аллокаций.

🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎄 С Нового года начну учиться — знакомо?

А потом январь — освоюсь после праздников, февраль — доделаю текущие дела... Не откладывай на следующий год то, что можно начать уже в этом.

🗓️ 4 декабря стартует экспресс-курс «Математика для Data Science»— всё, что нужно для уверенных ответов на собесах:

→ 2 месяца без воды;
→ обновлённая программа (ноябрь 2025);
→ живые вебинары с экспертами;
→ записи всех занятий;
→ практика на Python + финальный проект с фидбэком.

Формат: 2 месяца интенсива и к началу следующего года ты готов к собесам.

Пока другие будут собираться с мыслями после НГ, ты уже будешь на полпути к офферу мечты.

🎁 Только до 30 ноября:

→ скидка 40% на курс;
→ курс «Базовая математика» в подарок;
→ бесплатный тест уровня математики.

👉🏻 Хочешь на курс → пиши менеджеру
🤔1
Расскажите про поля и методы sync.Pool. Для чего используется поле New, как ведёт себя Get, если пул пуст

Поле New — это функция func() any, которую можно задать, чтобы пул умел сам создавать новые объекты, когда внутри ничего нет.

Если New не задано и пул пуст, то Get вернёт nil, и код, который этим пользуется, обязан это корректно обработать.


🔹 AI-агенты для DS-специалистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🎉1
Что произойдёт, если класть в один и тот же sync.Pool объекты разных типов

Пул примет значения разных типов: Put не проверяет тип, а Get вернёт any, который вы потом приведёте к конкретному типу через type assertion.

Если из пула вернётся объект не того типа, type assertion даст panic в рантайме, причём воспроизвести и отладить это будет сложно из‑за конкуренции и недетерминизма.

🔹 Основы IT для непрограммистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
Нужно ли как‑то очищать объект перед возвратом в пул и почему это важно с точки зрения безопасности и багов

При реюзе можно получить грязное состояние: старые поля структуры, неочищенный bytes.Buffer, кусок старого JSON в []byte и т.д. Это может привести к трудноотлавливаемым багам.

Если в объекте были чувствительные данные, возврат объекта без очистки даёт риск утечки: другой код может прочитать их при следующем Get.

🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Какие стандартные инструменты для сортировки есть в пакете sort в Go

Пакет sort предоставляет готовые функции для базовых типов: sort.Ints для слайсов целых чисел, sort.Strings для слайсов строк и sort.Float64s для слайсов чисел с плавающей запятой.

Для проверки, отсортирован ли слайс, есть функции IntsAreSorted, StringsAreSorted и Float64sAreSorted, которые возвращают bool.

🔹 AI-агенты для DS-специалистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🤖 Раньше в AI мог попасть любой, кто осилил пару туториалов.

Теперь нужны те, кто может объяснить:

→ почему эта архитектура сработает, а та — нет;
→ что происходит внутри модели, когда она не сходится;
→ как найти решение, а не перебирать гиперпараметры наугад.

Все эти навыки требуют понимания того, как и почему работают модели. А это чистая математика.

🔥 Proglib Academy запускает курс «Математика для разработки AI-моделей». Ведут эксперты из SberAI, ВШЭ, Т-Банк, Wildberries.

📝 Что внутри?

→ 2 месяца живых занятий с возможностью задавать вопросы напрямую.
→ Практика на Python. Не теория в вакууме, а применение.
→ 3 домашних задания + финальный проект с детальным разбором.

Старт 4 декабря

Только до конца ноября:
→ Скидка 40%;
→ Курс «Школьная математика» в подарок;
Тест на определение уровня математики.

🎄 Сделай себе подарок на Новый год
1
Что использовать, если нужно сортировать не только числа и строки, а пользовательские структуры

Для сортировки кастомных типов используется интерфейс sort.Interface, который можно реализовать для собственного типа коллекции.

Это позволяет описать произвольный порядок элементов, например по полю или по нескольким полям подряд.

🔹 Специалист по ИИ
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉1
Как вам вопросы прошедшей недели

Оцените их по шкале 🔥,❤️,👍,😢, 🥱,
где 🔥 — это супер, а 🥱 — это скучно.

Также приветствуется фидбек в комментах.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍61
Какие методы нужно реализовать, чтобы тип удовлетворял sort.Interface

Нужно три метода: Len() intколичество элементов в коллекции, Less(i, j int) bool — должен ли элемент i идти перед j, и Swap(i, j int) — как поменять местами элементы по индексам i и j.

После этого такой тип можно передавать в sort.Sort или sort.Stable.

🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉1
Когда стоит использовать sort.Sort, а когда sort.Stable

sort.Sort не гарантирует сохранение относительного порядка равных элементов и обычно быстрее за счёт менее строгих требований.

sort.Stable
обеспечивает стабильную сортировку, то есть элементы с одинаковым ключом остаются в исходном порядке, что важно при многократной сортировке по разным полям.

🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🔬 Вы когда-нибудь смотрели на код и думали: «Работает, но почему?»

А теперь представьте, что вы:

→ понимаете, почему модель учится слишком медленно или слишком быстро;
→ видите, какие данные реально влияют на предсказание, а какие — шум;
→ знаете, что происходит внутри нейронки.

4 декабря стартует курс «Математика для разработки AI-моделей».

Линал, оптимизация, матан, статистика — всё, что происходит внутри модели между input и output. Практика на Python. Живые разборы с экспертами из SberAI, ВШЭ, Wildberries&Russ.

3 задания + финальный проект. Без теории ради теории — только то, что реально используется в моделях.

🎁 Бонус: курс по школьной математике + тест уровня математики

👉 Записаться
Как в Go отсортировать слайс структур без явной реализации sort.Interface

Для этого есть функции sort.Slice и sort.SliceStable, которые принимают любой слайс и функцию less с сигнатурой func(i, j int) bool. Внутри функции less можно описать логику сравнения элементов слайса по нужным полям.

🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
Как с помощью пакета sort можно проверить, отсортирован ли произвольный слайс по своей кастомной less-функции

Для этого есть функция SliceIsSorted, которая принимает слайс и функцию less, аналогичную той, что используется в sort.Slice. Она возвращает true, если слайс уже отсортирован согласно переданному компаратору.

🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
Когда между идеей и продом — преград нет!


В VK любят решать сложные и масштабные задачи, а ещё — быстро реализовывать идеи. Компания рассказала, каких принципов придерживается команда в работе и какими результатами гордится. Переходите по ссылке, там много интересного!
Напишите функцию сортировки массива без использования встроенных методов

Сортировка пузырьком:
package main

import "fmt"

func BubbleSort(nums []int) {
n := len(nums)
if n < 2 {
return
}

for i := 0; i < n; i++ {
swapped := false

for j := 0; j < n-1-i; j++ {
if nums[j] > nums[j+1] {
nums[j], nums[j+1] = nums[j+1], nums[j]
swapped = true
}
}

if !swapped {
break
}
}
}

func main() {
data := []int{5, 2, 6, 3, 1, 4}
BubbleSort(data)
fmt.Println(data)
}


🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
5
В чём разница между t.Error(), t.Fail(), t.Fatal() и t.FailNow() в тестах

t.Error(), t.Fail(), t.Fatal() и t.FailNow() используются для обозначения неудачи теста, но различаются по поведению после вызова.

t.Fail() и t.Error() помечают тест как неудачный, но позволяют коду выполняться дальше, включая subtests через t.Run().
t.Error() дополнительно логирует сообщение об ошибке

t.FailNow() и t.Fatal() сначала вызывают Fail(), затем останавливают текущую горутину теста через runtime.Goexit(), выполняя все defer, но не прерывая другие горутины.

t.Fatal() логирует сообщение перед остановкой.

t.FailNow() вызывается только из горутины основного теста.

🔹 Основы IT для непрограммистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5