Библиотека Go для собеса | вопросы с собеседований
الذهاب إلى القناة على Telegram
Вопросы с собеседований по Go и ответы на них. Учиться у нас: clc.to/iEeaZw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197
إظهار المزيد7 421
المشتركون
-224 ساعات
-107 أيام
+530 أيام
أرشيف المشاركات
🫣 Устали от HR-сказок про «дружный коллектив» и «печеньки в офисе»?
Давайте честно поговорим о том, что действительно происходит на IT-рынке. Не в розовых презентациях, а в реальной жизни разработчиков, тестировщиков, аналитиков и всех, кто живет кодом.
🧐 Мы проводим исследование, чтобы выяснить:
— Как часто мы прыгаем между компаниями (и почему)
— Какие красные флаги заставляют бежать без оглядки
— Где реально находят работу
— Что бесит в HR больше всего
— Сколько кругов собеседований — это уже перебор
Результаты покажут реальную картину рынка. Без приукрашиваний. Может, компании поймут, что нужно менять, а специалисты — куда двигаться дальше.
😈 Опрос займет 5 минут, но результаты будут работать на всех нас → https://clc.to/9aaXVg
❓ Как обработать сразу несколько ошибок
Помимо поочерёдной обработки ошибок с Go 1.20 можно объединить ошибки в одну. Это позволяет создать агрегированную ошибку с несколькими вложенными ошибками.
Пример:
err = errors.Join(function1(), function2())
🐸 Библиотека Go для собеса
❓ Что такое паттерн Mediator
Паттерн Медиатор — это способ организовать общение между разными частями программы через одного «посредника».
Вместо того, чтобы все объекты напрямую друг с другом разговаривали и зависели друг от друга, они общаются только с этим посредником. Посредник принимает сообщения от одного объекта и решает, кому их передать дальше.
Это упрощает код, потому что объекты меньше завязаны друг на друга — они знают только медиатора, а не всех сразу. Если надо изменить логику общения, меняешь только медиатора, а не все объекты.
🐸 Библиотека Go для собеса
❓ В чем основное отличие между пакетами os и syscall в контексте работы с файлами
Пакет
syscall предоставляет низкоуровневый доступ к системным вызовам операционной системы, напрямую взаимодействуя с файловыми дескрипторами и системными функциями.
Пакет os предлагает высокоуровневую, удобную обертку над этими вызовами, предоставляя типы и методы, которые скрывают сложность системных вызовов и делают работу с файлами более безопасной и простой.
🐸 Библиотека Go для собеса❓ Что такое пакет
syscall в Go и для чего он используется
Пакет syscall предоставляет низкоуровневые интерфейсы для работы с операционной системой, такими как вызовы системных функций (например, работа с файлами, процессы, сигналы и пр.).
Он позволяет взаимодействовать с операционной системой напрямую без использования специальных библиотек.
🐸 Библиотека Go для собеса🚨 Что на самом деле происходит с увольнениями в ИТ
Каждый день в чатах разработчиков появляются сообщения «ищу работу», «команду сократили», «проект закрыли». Но никто не говорит о причинах и масштабах катастрофы. Мы запустили большое исследование, чтобы раскрыть правду!
🎯 Что мы выясним:
→ Реальные причины увольнений
→ Сколько времени нужно на поиск работы
→ Самые безумные истории смены работы
Понимая реальную ситуацию, мы сможем принимать взвешенные решения о карьере и не попасться на удочку HR-сказок.
👉 Пройдите опрос за 3 минуты и помогите всему сообществу: https://clc.to/yJ5krg
❓ Как вам вопросы этой недели
Оцените их по шкале 🔥,❤️,👍,😢, 🥱,
где 🔥 — это супер, а 🥱 — это скучно.
Также приветствуется фидбек в комментариях.
🐸 Библиотека Go для собеса
❓ Приведите пример, как можно использовать пустые структуры в мапе
В этом примере
map[string]struct{} хранит только ключи — значения пустые и занимают 0 байт, что эффективно для реализации множества.
🐸 Библиотека Go для собеса⏰ Последние 2 дня скидки на курс «AI-агенты для DS-специалистов»
Пока большинство дата-сайентистов строят модели и делают аналитику, рынок уже требует специалистов, которые создают автономные системы на базе ИИ-агентов.
Для этого мы подготовили специальный курс и собрали кучу дополнительного контента, который поможет погрузиться в тему еще глубже. Но чтобы получить все плюшки, успевайте до 1 июня.
🎁 Что вы получите при оплате курса до 1 июня:
— Промокод PROGLIBAIна 10 000 ₽ на курс, чтобы изучать AI-агентов еще выгоднее
— Эксклюзивный лонгрид по API и ML от Proglib
💡Что разберем на курсе «AI-агенты для DS-специалистов»:
— Реализацию памяти в цепочках langchain
— Полный пайплайн RAG-системы с оценкой качества
— Основы мультиагентных систем (MAS)
— Протокол MCP и фреймворк FastMCP
Промокод также действует на курсы «Математика для Data Science» и «Алгоритмы и структуры данных».
👉 Успейте до 1 июня: https://clc.to/Cttu7A
⏰ Последние 3 дня скидки на курс «AI-агенты для DS-специалистов»
Пока большинство дата-сайентистов строят модели и делают аналитику, рынок уже требует специалистов, которые создают автономные системы с AI-агентами.
Для этого мы подготовили специальный курс и собрали кучу дополнительного контента, который поможет погрузиться в тему еще глубже. Но торопитесь — получить все плюшки можно только до 1 июня.
🎁 Что вы получите при оплате курса до 1 июня:
— Промокод PROGLIBAI на скидку в 10 000 ₽, чтобы изучать AI-агентов еще выгоднее
— Эксклюзивный лонгрид по API и ML от Proglib
Промокод также действует на курсы «Математика для Data Science» и «Алгоритмы и структуры данных».
💡Что разберем на курсе «AI-агенты для DS»
— Реализацию памяти в цепочках langchain
— Полный пайплайн RAG-системы с оценкой качества
— Основы мультиагентных систем (MAS)
— Протокол MCP и фреймворк FastMCP
👉 Успейте до 1 июня: https://clc.to/Cttu7A
❓ Чем конкурентность отличается от параллельности
Конкурентность и параллельность — это разные, хотя и связанные понятия:
Конкурентность — это способность системы управлять несколькими задачами одновременно, то есть они могут переключаться друг с другом, но не обязательно выполняются в один момент времени. Например, одна задача может приостанавливаться, чтобы дать ресурсы другой, и так поочерёдно.
Параллельность — это одновременное выполнение нескольких задач в один и тот же момент времени, например, когда есть несколько процессорных ядер, и каждое ядро выполняет свою задачу одновременно.
🐸 Библиотека Go для собеса
❓ Как расширяется ёмкость у слайсов
Ёмкость слайса расширяется динамически при добавлении элементов, если текущая длина достигает ёмкости. Обычно, когда нужно увеличить ёмкость, она удваивается — то есть становится примерно в 2 раза больше прежней. Однако этот удвоенный рост действует только до определённого предела (около 256 элементов). После этого Go увеличивает ёмкость не в два раза, а примерно на 1.25 (то есть на четверть от текущей емкости). Такое поведение связано с оптимизацией использования памяти и выравниванием данных.
🐸 Библиотека Go для собеса
👾 AI-агенты — настоящее, о котором все говорят
На днях мы анонсировали наш новый курс AI-агенты для DS-специалистов 🎉
Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи!
На обучении вы соберете полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.
🎓 В рамках курса вы научитесь:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Разберете реальные кейсы и научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.
Старт 5 июля, а при оплате до 1 июня действует дополнительная скидка и бонус — эксклюзивный лонгрид по API и ML от Proglib.
Начните осваивать тему уже сейчас 👉 https://clc.to/Cttu7A
❓ Какой файл является обязательным в корне директории, чтобы Go проект считался модулем
Обязательным файлом в корне директории, чтобы Go проект считался модулем, является файл go.mod.
Наличие файла go.mod позволяет инструментам Go понимать, что данный каталог — корень модуля, и использовать его для поиска зависимостей, разрешения импортов и управления версиями пакетов. Без этого файла Go не сможет правильно определить границы модуля и будет рассматривать проект как GOPATH-проект или не модуль вовсе.
🐸 Библиотека Go для собеса
😱 Вся правда об увольнениях в IT в 2025-м
Пока все молчат о том, что происходит на рынке, мы решили выяснить реальную картину. Без прикрас и корпоративного пиара.
Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:
— реальных причинах массовых увольнений
— судьбе тех, кто остался за бортом IT-рынка
— том, сколько времени сейчас нужно на поиск работы
Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.
⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg
❓ Что будет выводится в таком цикле
for first, second := range str
, если str это строка
В цикле такого вида first это индекс символа в строке, а second это руна
🐸 Библиотека Go для собеса❓ Что такое IIFE Immediately Invoked Function Expression
Это анонимная функция, которая определяется и вызывается сразу же, без явного имени и без предварительного присваивания переменной.
🐸 Библиотека Go для собеса
❓ Как можно использовать анонимную функцию в Go
Анонимная функция — это функция,, которую можно определить прямо там, где она нужна. В Go анонимные функции очень гибкие и применяются в нескольких случаях:
• Присвоение переменной
Анонимную функцию можно присвоить переменной и вызывать её позже. Например:
add := func(a, b int) int {
return a + b
}
result := add(2, 3) // result будет равен 5
• Вызов сразу после определения
Можно объявить анонимную функцию и сразу же вызвать её, обернув в скобки и добавив () в конце:
result := func(a, b int) int {
return a + b
}(2, 3)
• Передача в качестве аргумента
Анонимные функции часто используют для передачи в другие функции, например, для обработки событий, сортировки, или работы с коллекциями:
nums := []int{1, 3, 2}
sort.Slice(nums, func(i, j int) bool {
return nums[i] < nums[j]
})
🐸 Библиотека Go для собеса❓ Как влияет порядок defer-вызовов на поведение программы
Конструкция
defer в Go вызывает функции в обратном порядке, по принципу стека (LIFO — Last In, First Out). То есть последняя отложенная функция будет выполнена первой при выходе из текущей функции.
Пример:
func demo() {
defer fmt.Println("Первый")
defer fmt.Println("Второй")
defer fmt.Println("Третий")
}
Вывод:
Третий Второй Первый• Корректное освобождение ресурсов: При работе с вложенными ресурсами defer автоматически освобождает их в правильном порядке:
f1, _ := os.Open("a.txt")
defer f1.Close()
f2, _ := os.Open("b.txt")
defer f2.Close()
Сначала закроется b.txt, потом a.txt — что логично.
• Откат операций в нужной последовательности:
При выполнении нескольких шагов (например, в транзакции), можно отложить откат в порядке, обратном их применению.
• Отладка и читаемость:
Если defer-вызовов много, особенно внутри циклов и функций, легко запутаться в порядке их выполнения. Это стоит учитывать при разработке.
🐸 Библиотека Go для собеса❓ Как компилятор Go обрабатывает константы во время компиляции
Компилятор Go обрабатывает константы на этапе компиляции, подставляя их значения напрямую в код вместо выделения памяти под переменные.
Это значит, что константы не занимают память во время выполнения, а используются как литеральные значения, что позволяет оптимизировать производительность и уменьшить размер бинарника.
Кроме того, компилятор проверяет корректность и типовую совместимость констант ещё до сборки, предотвращая ошибки времени выполнения.
🐸 Библиотека Go для собеса
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
