es
Feedback
Библиотека Go для собеса | вопросы с собеседований

Библиотека Go для собеса | вопросы с собеседований

Ir al canal en Telegram

Вопросы с собеседований по Go и ответы на них. Покажем, как запустить своего ии-агента: https://clc.to/tvpmD По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197

Mostrar más
7 429
Suscriptores
+224 horas
-87 días
+730 días
Archivo de publicaciones
🎄 Начни 2025-й с апгрейдом навыков, которые откроют двери в мир IT! Ты можешь собрать свой персональный план обучения с помо
🎄 Начни 2025-й с апгрейдом навыков, которые откроют двери в мир IT! Ты можешь собрать свой персональный план обучения с помощью нашего новогоднего конструктора. Это шанс не просто начать год с полезных знаний, но и сделать инвестицию в своё будущее, которая окупится многократно. 🔗 Собери свой план и начни путь в IT Почему это выгодно? 📚 Несколько программ по цене одной — максимальная эффективность: учишься сразу тому, что действительно нужно. 💾 Бессрочный доступ — все материалы всегда под рукой, чтобы учиться в своём темпе. 💸 Знания, которые окупятся — навыки, востребованные в любой точке мира. Какие навыки ты можешь прокачать? 💡 Математика для Data Science + Алгоритмы и структуры данных — Подготовка к собеседованиям в FAANG и поступлению в ШАД. Решай сложные задачи, работай с данными и моделями на профессиональном уровне. 💡 Алгоритмы и структуры данных + ML — Улучшай своё алгоритмическое мышление и изучай базовые методы машинного обучения, чтобы создавать интеллектуальные приложения. 💡 Frontend Basic + Базовые модели ML — Построй свою первую веб-страницу и погрузись в мир ML: от нейросетей до ML-бустинга. 💡 Архитектуры и шаблоны проектирования + Математика для Data Science — Развивай аналитическое мышление и учись проектировать устойчивые системы. 💡 Алгоритмы и структуры данных + Frontend Basic — Получи полный набор навыков: от оптимизации алгоритмов до создания современных веб-приложений. Не упусти шанс сделать шаг в будущее! Новый год — это время обновлений, и твоя карьера может стать одним из них. 🔗 Составь свой IT-маршрут сейчас или выбери курс по новогодней скидке

Что такое GOGC? GOGC (Garbage Collection Goal) — это переменная окружения или настройка, управляющая частотой работы сборщика мусора в Go. GOGC определяет процентный прирост памяти, который допускается перед запуском очередного цикла GC. Значение GOGC: 100 (по умолчанию): GC запускается, когда используемая память увеличивается на 100% по сравнению с памятью, оставшейся после последнего цикла GC. 0: отключает автоматическую сборку мусора. <100: увеличивает частоту работы GC (более агрессивная сборка). >100: снижает частоту работы GC (редкие сборки).

Чем отличается память в куче от памяти в стеке? Память в стеке: Используется для хранения данных с коротким временем жизни (локальные переменные функции). Быстро выделяется и освобождается, поскольку происходит по принципу LIFO (Last-In-First-Out). Управляется автоматически при выходе из области видимости функции. Ограничена по размеру. Память в куче: Используется для объектов, срок жизни которых не определён заранее. Выделение и освобождение сложнее и медленнее, так как управляется сборщиком мусора (GC). Не ограничена жёсткими рамками, зависит от доступной оперативной памяти. Подходит для глобальных и длительно живущих объектов.

❓ Можно ли модифицировать map внутри цикла range? Почему? Нет, модифицировать map во время итерации через range в Go нельзя, так как это может привести к панике (runtime panic). В документации языка указано, что параллельное изменение карты во время итерации не допускается, поскольку внутренняя структура map в Go не поддерживает такие операции. Причина заключается в том, что изменение map во время итерации может нарушить внутреннюю структуру данных, вызывая неконсистентность или некорректное поведение.

❓Как проверить, пуст ли интерфейс (interface{})? Интерфейс (interface{}) в Go считается пустым, только если его значение и тип равны nil. Для точной проверки можно использовать reflect.ValueOf(i).IsZero(), чтобы учесть случаи с nil-значением, но заданным типом. 📎 Подробнее можно почитать здесь

🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хо
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом. Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций. Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах. 👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

❓Что произойдет, если в defer использовать анонимную функцию, изменяющую внешнюю переменную? Изменения произойдут в момент выполнения отложенной функции (а не в момент ее определения)

🗺 Привычка "срезать углы" при ходьбе – это интуитивное применение алгоритмов? Так работает жадный алгоритм: вы выбираете наи
🗺 Привычка "срезать углы" при ходьбе – это интуитивное применение алгоритмов? Так работает жадный алгоритм: вы выбираете наиболее выгодный шаг в каждый момент времени, чтобы минимизировать общий путь. То же самое применяют разработчики, создавая маршруты для такси или доставок. С нашим курсом «Алгоритмы и структуры данных» вы научитесь решать любые сложные задачи так же эффективно. 🎄Начните свой 2025 со скидкой 35% на все курсы. Это лучшее вложении уходящего года – https://proglib.io/w/014fe6d8

🎨 Новый канал для вдохновения — UX in GIF Мы запустили свежий канал, где делимся идеями для дизайна интерфейсов. Всё самое с
🎨 Новый канал для вдохновения — UX in GIF Мы запустили свежий канал, где делимся идеями для дизайна интерфейсов. Всё самое стильное, оригинальное и вдохновляющее теперь в одном месте. 📌 Чем полезен канал? → Идеи для дизайна интерфейсов. → Анимации, которые можно повторить или адаптировать. → Лёгкий способ искать вдохновение перед новым проектом. 👉 Подписывайтесь и вдохновляйтесь: UX in GIF

❓ В каких случаях деление на ноль в языке Go не приводит к панике (panic), и какой результат возвращается в этих случаях? Деление на ноль в Go не приводит к панике в случаях, когда используются числа с плавающей запятой (float64). В зависимости от знака делимого, результат будет: ❗Положительное число делится на ноль: результатом будет положительная бесконечность (+Inf). ❗Отрицательное число делится на ноль: результатом будет отрицательная бесконечность (-Inf). ❗Ноль делится на ноль: результатом будет «not-a-number» (NaN).

❓ Может ли одна горутина заблокировать мьютекс, а другая его разблокировать? Мьютексы в Go не отслеживают, какая конкретно горутина вызвала Lock или Unlock. Это означает, что мьютекс может быть заблокирован одной горутиной и разблокирован другой. Такое поведение допускается на уровне реализации, чтобы мьютексы были максимально простыми и эффективными. Однако это крайне не рекомендуется, так как приводит к сложностям в управлении состоянием мьютекса и повышает риск возникновения ошибок.

❓ Что такое «магическая дата» в Go? «Магическая дата» в Go — это фиксированная дата и время: 2006-01-02 15:04:05, выбранная для демонстрации форматов даты и времени. Она служит эталоном для указания шаблонов при работе с функциями форматирования и парсинга времени. ❓ Почему выбрана именно эта дата? Go использует числовую комбинацию, отражающую порядок элементов даты и времени: 2006 — год, состоящий из 4 цифр. 01 — месяц. 02 — день. 15 — часы в 24-часовом формате. 04 — минуты. 05 — секунды. Из этой даты получается набор цифр — 1,2,3,4,5,6

Как работает iota в случае переопределения значений❓ const ( A = iota // 0 B = «Hello» // Переопределение строки C = iota // 2 (счёт продолжается) D = 100 // Явное значение E = iota // 4 ) Когда в блоке const происходит явное переопределение значений, поведение iota остаётся последовательным, но его значение продолжает увеличиваться на каждой строке, независимо от того, используется ли iota явно или задаются другие значения вручную.

❓ Что такое iota и как он работает в Go? iota — это встроенный идентификатор, используемый для генерации последовательных числовых значений внутри блока const. Он начинается с 0 и увеличивается на 1 с каждой строкой

🤨 Как сравнить два слайса в Go? В Go для сравнения двух слайсов нужно вручную или с помощью готовых решений проверить их содержимое, так как оператор == не поддерживает сравнение слайсов 1️⃣ Через циклы
func slicesEqual(a, b []int) bool {
    if len(a) != len(b) {
        return false
    }
    for i := range a {
        if a[i] != b[i] {
            return false
        }
    }
    return true
}
2️⃣ Библиотека reflect
import "reflect"

func slicesEqual(a, b []int) bool {
    return reflect.DeepEqual(a, b)
}
3️⃣Использование cmp из google/go-cmp Для более сложных сравнений, например, со структурой или кастомными правилами:
import (
    "fmt"
    "github.com/google/go-cmp/cmp"
)

func main() {
    slice1 := []int{1, 2, 3}
    slice2 := []int{1, 2, 3}

    fmt.Println(cmp.Equal(slice1, slice2)) // true
}
4️⃣Сравнение через сериализацию (для сложных данных)
import (
    "encoding/json"
    "log"
)

func slicesEqualJSON(a, b []int) bool {
    aJSON, _ := json.Marshal(a)
    bJSON, _ := json.Marshal(b)
    return string(aJSON) == string(bJSON)
}

🌟 Хочешь писать код, который решает конкурентные задачи без багов? Начни с каналов в Go. Разберём устройство и применение на
🌟 Хочешь писать код, который решает конкурентные задачи без багов? Начни с каналов в Go. Разберём устройство и применение на практике. 🗓 Открытый урок уже 25 декабря! Не упусти шанс наконец-то сделать свой код лучше. 🔍 Освоишь лучшие практики и научишься избегать ошибок, которые разрушают продуктивность приложений. 👨‍💻 Вебинар для Golang-разработчиков — и новичков, и практиков. Регистрируйся, если не хочешь стоять на месте: https://clck.ru/3FJCGG Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

❓ Почему в Go функции всегда возвращают error, даже если оно равно nil? В Go функции всегда возвращают error, чтобы обеспечить явную обработку ошибок. Даже если error == nil, его наличие заставляет разработчика проверить результат выполнения. Это делает код предсказуемым, читабельным и снижает вероятность игнорирования ошибок, сохраняя простоту интерфейса и гибкость дизайна функций.

❓ Что делает функция io.TeeReader? Приведите примеры использования Функция io.TeeReader из пакета io создаёт Reader, который выполняет двойную работу: 1️⃣ Читает данные из исходного io.Reader. 2️⃣ Одновременно записывает эти данные в заданный io.Writer. Иными словами, она «разветвляет» поток данных: каждый байт, который читается, также записывается в другой поток, указанный через io.Writer. ❓ Где может быть полезен io.TeeReader? Логирование данных: Когда нужно сохранять или анализировать данные, одновременно читая их. Например, записывать HTTP-запросы или ответы в лог, не прерывая основной процесс обработки. Параллельная обработка данных: Когда нужно передать данные для анализа или трансформации в другой поток, сохраняя их доступными для основного потребителя. Создание копий данных: Например, при загрузке файла вы можете сохранить копию на диск и одновременно передать её в сетевой поток. Диагностика и отладка: Можно использовать TeeReader для перехвата и анализа данных в реальном времени.

Новый год — время для новых начинаний! Пока все строят планы на будущее, подумайте, что поможет вам двигаться вперёд в карьер
Новый год — время для новых начинаний! Пока все строят планы на будущее, подумайте, что поможет вам двигаться вперёд в карьере. Мы знаем, что навыки в IT открывают огромные возможности — и мы готовы помочь вам начать! 🔹 Почему IT? - Большинство компаний активно ищут специалистов. - Вы можете работать из любой точки мира — с гибким графиком и интересными задачами. - А ещё IT — это высокий доход и стремительный карьерный рост. Возможно, именно сейчас тот момент, когда стоит инвестировать в себя и развить востребованные навыки. У нас есть конструктор курсов, с помощью которого вы сможете составить свой идеальный план обучения — под свои цели и интересы. 📚 Как это работает? - Несколько программ по цене одной — выбирайте всё, что вам нужно. - Бессрочный доступ — учитесь в своём ритме и когда удобно. - Это выгодно — вы получаете навыки, которые помогут вам расти профессионально и зарабатывать больше. А для тех, кто решит сделать шаг в будущее до конца года, у нас есть кое-что особенное… 🎁 Узнайте больше Как выбрать свой путь? Мы предлагаем несколько уникальных комбинаций курсов, которые помогут вам стать настоящим экспертом: 🔵 Математика для Data Science + Алгоритмы и структуры данных — для тех, кто хочет готовиться к собеседованиям в топовые компании. 🔵 Алгоритмы + ML — чтобы не просто решать задачи, а понимать, как работают современные технологии. 🔵 Frontend + ML — создавайте приложения и учитесь работать с нейросетями. 🔵 И другие комбинации для разных целей. Новогодний подарок, который будет работать на вас весь год — это отличная идея! 🎁 Начните сейчас Развивайтесь в IT — и будущее уже будет в ваших руках!

❓ Как работать с временно неиспользуемыми переменными? Если переменная временно не используется, её можно явно игнорировать с помощью _ (пустого идентификатора). Это указывает на то, что разработчик осознанно отказывается от значения.