Библиотека Go для собеса | вопросы с собеседований
الذهاب إلى القناة على Telegram
Вопросы с собеседований по Go и ответы на них. Покажем, как запустить своего ии-агента: https://clc.to/tvpmD По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197
إظهار المزيد7 430
المشتركون
-124 ساعات
-137 أيام
+730 أيام
أرشيف المشاركات
❓ Как работает система пакетов в Go
➖ В начале каждого .go файла указывается, к какому пакету он принадлежит
➖ Если в коде есть package main, то этот пакет может быть скомпилирован в исполняемый файл. В противном случае это библиотечный пакет.
➖ Пакеты импортируются явно, указывая полный путь.
➖ Ограниченная область видимости
• Если идентификатор (переменная, функция, структура) начинается с заглавной буквы, он доступен за пределами пакета.
• Если начинается с маленькой буквы, он доступен только внутри пакета.
🐸Библиотека Go для собеса
❓ Чем CGO_ENABLED=0 полезен при сборке Go-приложений
Переменная окружения CGO_ENABLED=0 отключает поддержку CGo при компиляции Go-кода. Это означает, что все зависимости компилируются исключительно на чистом Go, без использования C-библиотек.
Если CGO_ENABLED=1, компилятору Go могут понадобиться инструменты и заголовочные файлы C для целевой платформы. С CGO_ENABLED=0 можно без проблем собирать бинарники для других архитектур и ОС.
Отключение CGo позволяет Go-компилятору использовать статическую компоновку, что уменьшает размер бинарного файла и исключает динамические зависимости.
Приложение не зависит от внешних C-библиотек, что делает его легче для развертывания, особенно в контейнерах или в средах с минимальным окружением.
Исключение C-кода уменьшает вероятность уязвимостей, связанных с управлением памятью в C, и делает код более платформонезависимым.
🐸Библиотека Go для собеса
💔 Ваша backend-разработка уже не та?
😔 Микросервисы плохо масштабируются, API перегружены, а REST уже не справляется?
🚀 Решение есть – gRPC! Быстрое и эффективное взаимодействие сервисов без лишних накладных расходов.
Как освоить? 18 марта в 20:00 на открытом вебинаре разберем gRPC, Protocol Buffers, совместимость API и создание серверов.
➡️ Запишитесь сейчас и 🎁 получите скидку на большое обучение «Golang Developer. Professional»: https://clck.ru/3HPpRf
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
❓ Что делает CGO_ENABLED
CGO_ENABLED — это переменная окружения, которая управляет использованием CGo при компиляции Go-приложений.
CGo — это механизм в Go, который позволяет взаимодействовать с C-кодом, вызывать C-функции и использовать C-библиотеки внутри Go-программ.
🐸Библиотека Go для собеса
❓ Что такое Table-Driven тестирование
Табличное тестирование (table-driven tests)— это популярный подход к написанию тестов, при котором определяется набор тестовых случаев в виде таблицы или слайса структур, а затем каждый случай прогоняется через одну и ту же тестовую логику.
🐸Библиотека Go для собеса
🤔 Хотите писать гибкий, эффективный и чистый код, но дженерики в Go всё ещё кажутся чем-то непонятным? На бумаге всё выглядит просто, но на практике возникают вопросы: когда их использовать, какие подводные камни и как правильно применять? 🧐
🚀 На открытом вебинаре «Дженерики в Go» 11 марта в 20:00 (мск) разберём:
— Как работают дженерики в Go на практике
— Когда их использовать, а когда не нужно
— Как читать и писать код с дженериками без боли
💡 Хватит обходиться без мощного инструмента!
🎁 Всем участникам — скидка на большое обучение «Golang Developer. Professional».
📌 Регистрируйтесь и переходите на следующий уровень разработки: https://clck.ru/3GyLva
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🏃♀️ 40+ каналов, которые должен читать каждый разработчик
Отобрали для вас полезные и проверенные каналы для программистов — в них вы найдете все самое интересное, от технических новостей до практических гайдов.
IT Job Hub | Работа и вакансии в IT — избранные IT-вакансии
Библиотека программиста — новости из мира IT и технологий
Книги для программистов — самые годные книги по любым языкам и стекам
IT-мемы — мемы про жизу айтишника
Proglib Academy — обучение и курсы, чтобы стать топовым специалистом
Азбука айтишника — азы из мира разработки
Библиотека нейросетей — лайфхаки и промпты для разных задач, баттлы нейронок и новости из мира ИИ
Библиотека фронтендера — все о JS, React, Angular и не только
Библиотека мобильного разработчика — лайфхаки и новости из мира Swift и Kotlin
Библиотека хакера — уязвимости, атаки, бэкдоры и как от них защититься
Библиотека тестировщика — самое интересное о том, как крашить код
🦫 Go
Библиотека Go-разработчика
Библиотека задач по Go
Библиотека Go для собеса
Вакансии по Go
#️⃣ C#
Библиотека шарписта
Библиотека задач по C#
Библиотека собеса по C#
Вакансии по C#
🔧 DevOps
Библиотека devops’а
Библиотека задач по DevOps
Библиотека собеса по DevOps
Вакансии по DevOps & SRE
🐘 PHP
Библиотека пхпшника
Библиотека задач по PHP
Библиотека PHP для собеса
Вакансии по PHP, Symfony, Laravel
🐍 Python
Библиотека питониста
Библиотека Python для собеса
Библиотека задач по Python
Вакансии по питону, Django, Flask
☕️ Java
Библиотека джависта
Библиотека задач по Java
Библиотека Java для собеса
Вакансии по Java
📊 Data Science
Библиотека дата-сайентиста
Библиотека задач по Data Science
Библиотека Data Science для собеса
Вакансии по Data Science
🎮 C++
Библиотека C/C++ разработчика
Библиотека задач по C++
Библиотека C++ для собеса
Вакансии по C++
Подписывайтесь на интересные вам каналы и сохраняйте пост в закладки, чтобы не потерять 🔑
❓ Что такое Cache contention
Cache contention возникает, когда несколько горутин одновременно обращаются к одной и той же структуре данных, что приводит к конкуренции за доступ к данным и снижению производительности.
🐸Библиотека Go для собеса
❓ Что такое Starvation
Это ситуация в многопоточном программировании, когда один поток не получает доступа к ресурсу из-за приоритетного обслуживания других потоков. В результате этот "обделённый" поток не может завершить свою работу или выполняется крайне редко.
🐸Библиотека Go для собеса
⚙️ Как работает API
Proglib рассказывает базу в формате рилса
❓ Что такое канареечный релиз/тестирование
Это метод развертывания программного обеспечения, при котором новая версия выпускается только для ограниченного числа пользователей перед глобальным запуском.
🐸Библиотека Go для собеса
❓ Как отличается управление памятью в Go от С++
Управление памятью в Go и C++ различается по подходу. Go использует автоматический сборщик мусора, который упрощает написание кода и уменьшает риск утечек памяти, но может влиять на производительность. C++ же требует ручного управления памятью с помощью операторов new и delete, что дает низкоуровневый контроль и высокую производительность, но увеличивает сложность и риск ошибок.
🐸Библиотека Go для собеса
❓ Что такое префиксная сумма
Префиксная сумма — это массив, в котором каждый элемент содержит сумму всех предыдущих элементов исходного массива до текущего индекса.
Это позволяет быстро вычислять сумму любого подмассива за O(1) после предварительной обработки.
Используется в задачах на подмассивы, обработке изображений, анализе данных и алгоритмах на графах.
🐸Библиотека Go для собеса
❓ Что делает переменная окружения GOOS в Go
Переменная окружения GOOS определяет операционную систему, для которой будет скомпилировано Go-приложение. Она используется при кросс-компиляции, когда код пишется на одной платформе, но компилируется для другой.
➖ Поддерживаемые значения GOOS:
• Linux
• Windows
• macOS
• FreeBSD
• OpenBSD
• NetBSD
• Android
• iOS
• Plan 9
🐸Библиотека Go для собеса
❓ У вас есть код на Go версии 1.20, который использует map. Что нужно сделать, чтобы мигрировать на версию 1.24, которая принесла Swiss Table в Go
Делать ничего не нужно, потому что внешне map не изменилась. Методы работают также, как и до обновления.
❓ Что такое fuzzing?
Fuzzing (фаззинг) — это метод тестирования программного обеспечения, при котором на вход программы подаются случайные, невалидные или некорректные данные с целью выявления уязвимостей, сбоев или неожиданного поведения.
🤔 Основы математики в Machine Learning / Deep Learning
🗓 6 марта приглашаем вас на прямой эфир, где мы подробно разберем ряд Тейлора, собственные векторы и другие ключевые понятия в ML.
(ссылка)
🌟 Спикер: *Мария Горденко* – Старший преподаватель ФКН НИУ ВШЭ, НИТУ МИСИС, аспирант департамента анализа данных и искусственного интеллекта ФКН НИУ ВШЭ, а также преподаватель на курсе Алгоритмы и структуры данных в proglib academy.
Место работы: Инженер-программист, ведущий эксперт НИУ ВШЭ, цифровой ассистент и цифровой консультант НИУ ВШЭ.
😮 На вебинаре вы узнаете:
🔵 Теорию вероятностей: обсудим случайные величины, вероятность, математическое ожидание и дисперсию.
🔵 Линейную алгебру: изучим векторы, матрицы, собственные векторы и собственные значения.
🔵 Математический анализ: разберем производные и разложение функций в ряд Тейлора.
🔵 Практику: применим полученные знания на реальных кейсах из области Machine Learning и Deep Learning.
🎯 Почему это важно?
Понимание математических основ помогает глубже разобраться в работающих под капотом алгоритмах ML/DL и эффективно применять их на практике.
👉 Присоединяйтесь к нам и совершенствуйте свои навыки в машинном обучении!
📌 Регистрация по ссылке: https://proglib.io/w/01d4b6df
❓ В чём разница между Query() и QueryRow()?
Query() — выполняет SQL-запрос, который возвращает несколько строк (например, SELECT * FROM users). Возвращает *Rows, требует итерации через rows.Next().
QueryRow() — выполняет SQL-запрос, который возвращает одну строку (например, SELECT name FROM users WHERE id = 1). Возвращает *Row, требует вызова .Scan().
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❓ Как map ищет элементы (value, ok := m[key])
1️⃣ Находим bucket по hash % 2^B.
2️⃣ Сравниваем tophash (если совпадает — проверяем ключ).
3️⃣ Если не нашли — идём в overflow (если есть).
4️⃣ Если ключ отсутствует — возвращаем ok = false.
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
