Библиотека Go для собеса | вопросы с собеседований
7.42K subscribers
270 photos
10 videos
1 file
827 links
Вопросы с собеседований по Go и ответы на них.

Учиться у нас: clc.to/iEeaZw

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Как получить действительную и мнимую части обратно из комплексного числа

Встроенными функциями real и imag. Первая возвращает действительную часть, вторая мнимую. Тип результата совпадает с базовым типом числа, то есть float32 для complex64 и float64 для complex128:
n := complex(2.0, 3.0)
fmt.Println(real(n), imag(n)) // 2 3


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

➡️ Поток создаёт и планирует операционная система через своё ядро. Горутиной управляет рантайм Go. Его планировщик работает в пользовательском пространстве и не дёргает ядро на каждое переключение.

➡️ Поток получает фиксированный стек, обычно от 1 до 8 МБ. Горутина стартует со стеком примерно в 2 КБ, и этот стек растёт и сжимается по мере надобности. Поэтому горутин можно держать сотни тысяч, а потоков столько вы не создадите.
 
➡️ Создание потока дорогое, оно идёт через системный вызов. Горутина создаётся дёшево, это по сути структура в памяти рантайма. Отсюда и разница в количестве.

➡️ Переключение потоков делает ядро, это полноценный контекстный свич с заметными затратами. Переключение горутин происходит в пользовательском пространстве и стоит дешевле.

➡️ Потоки чаще общаются через разделяемую память и примитивы синхронизации вроде мьютексов. В Go принят другой подход, общение через каналы. Формулируют это так, не разделяйте память ради общения, общайтесь, чтобы разделять данные.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🥱1
В чём основная разница между new и make

new(T) выделяет память под обнулённое значение типа T и возвращает указатель на него, то есть *T.

make создаёт и инициализирует значение и возвращает само значение, а не указатель.

Ещё одно отличие в области применения. new работает с любым типом, а make только со слайсами, мапами и каналами.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Освойте разработку AI-агентов и получите доступ ещё к двум курсам Академии бесплатно!

В 2026 году просто писать код мало. Компании ищут инженеров, умеющих проектировать автономные системы и закрывать задачи бизнеса в разы быстрее.

Чтобы вы вышли на рынок с максимальным преимуществом, мы подготовили специальное предложение: покупаете курс по AI-агентам и ещё 2 курса Академии получаете бесплатно!

Соберите свой стек под оффер:

🔹 AI-агенты + AgentOps + Архитектура — комбо для бэкендеров и техлидов, чтобы внедрять ИИ без боли для прода.
🔹 AI-агенты + Математика + ML — для тех, кто хочет войти в Data Science.
🔹 AI-агенты + Алгоритмы — чтобы уверенно проходить хардкорные технические собесы.

Как это работает: вы оставляете заявку на курс по разработке AI-агентов и указываете еще два курса, которые хотите открыть в подарок.

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

👉 Забрать предложение и освоить ИИ-агентов
Что вернёт new(int)

Указатель на ноль. Память под int выделится, значение будет 0, а на руках окажется *int.

p := new(int)
fmt.Println(*p) // 0


🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
Что вернёт new([]int) и можно ли с этим работать

Вернётся указатель на nil слайс. Записать по индексу нельзя, будет паника, потому что под массив память ещё не выделена.

А вот append сработает, так как он сам создаёт массив при необходимости. Но на практике так почти никто не пишет, для слайсов берут make или литерал.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🎬 Где ломаются архитектуры ИИ-агентов и как этого избежать: запись урока от Proglib.Academy и cloud․ru

Proglib.аcademy вместе с cloud․ru провели вебинар, где разобрали реальные боли проектирования автономных систем. Вы просили запись встречи — она уже в открытом доступе!

Что внутри:

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

👉 Посмотреть запись можно тут:
VK
YouTube
Что означают аргументы в make([]int, 10, 15)

Первое число это длина, второе ёмкость. Здесь создаётся слайс из десяти элементов, обнулённых, с запасом памяти под пятнадцать. Ёмкость можно не указывать, тогда она равна длине.

s := make([]int, 10, 15)
fmt.Println(len(s), cap(s)) // 10 15


🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱9
⭐️ Dream Team 5-го потока: научитесь строить ИИ-агентов у практиков из BigTech

14 июля стартует новый поток курса по разработке ИИ-агентов, и в этот раз мы собрали по-настоящему звездный состав менторов. Это эксперты, которые прямо сейчас определяют развитие AI в России: Yandex Cloud, Avito AI Lab, cloud․ru и НИУ ВШЭ.

Чтобы ваш вход в ИИ-инженерию был максимально мощным, мы подготовили специальное предложение: до 30 июня при покупке курса по ИИ-агентам вы получаете еще 2 любых курса Академии в подарок! 🔥

Как это работает: вы оставляете заявку на курс по разработке ИИ-агентов и указываете менеджеру ещё два курса, которые хотите забрать бесплатно.

👉Заберите 3 курса по цене 1 на звездном потоке по ИИ-агентам
Как функция в Go возвращает несколько значений

Типы возвращаемых значений перечисляются в круглых скобках после списка аргументов, а в return передаются сами значения через запятую:
func calculateStats(numbers []int) (int, int, float64) {
sum, max := 0, numbers[0]
for _, n := range numbers {
sum += n
if n > max {
max = n
}
}
avg := float64(sum) / float64(len(numbers))
return sum, max, avg
}


🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱6
🚀 Не уверены, стоит ли переходить на зрелую ИИ-инженерию? Начните с демо-урока!

Вот-вот стартует наш курс AgentOps. Если вы сомневаетесь в формате, просто оставьте заявку и получите бесплатный демо-урок «AI-инструменты в разработке: как писать код быстрее с помощью ассистентов».

Для тех, кто готов мощно прокачать портфолио, прямо сейчас действует предложение «3 любых курса по цене 1»:
— При покупке VIP-тарифа (осталось 4 места) нового потока «ИИ-агенты» вы получаете в подарок доступ к курсу «AgentOps» + ещё один любой курс Академии на выбор

— В деньгах это два топовых курса по автоматизации и контролю ИИ всего за 134.000 ₽ вместо 263.000 ₽ 🔥 А за счет третьего курса (например, можно выбрать «Математику») вы соберете мощный стек и освоите целое востребованное направление.

— Платеж можно разбить на несколько частей с помощью беспроцентной рассрочки.


👉 Получить демо-урок и зафиксировать спецпредложение 3 в 1
😁2
Какой самый распространённый паттерн множественного возврата

Пара значение и ошибка. Функция возвращает результат и error, который вызывающий код обязан проверить. Это основа идиоматичной обработки ошибок в Go.

func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("деление на ноль")
}
return a / b, nil
}


🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3🥱2
⚠️ Уже завтра стартует курс AgentOps!

Мы собрали на потоке сборную из мастеров IT-рынка. Практики из BigTech научат вас контролировать и отлаживать ИИ-агентов, чтобы они работали предсказуемо и не сливали бюджет на API.

🔥 Заберите 3 курса по цене 1:
● При покупке VIP-тарифа (осталось 4 места) нового потока «Разработка ИИ-агентов» получаете в подарок курс «AgentOps» + ещё один любой курс Академии (например, «Математика для разработки AI», чтобы глубже освоить направление).

● Три курса обойдутся вам всего в 134.000 ₽ вместо 263.000 ₽.

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


Хотите прокачать свое портфолио продакшн-кейсом, но пока сомневаетесь? Пройдите наш бесплатный демо-урок, чтобы протестировать формат перед покупкой.

👉 Забрать 3 курса по цене 1 и получить демо-урок
Что такое голый return и когда он опасен

Это return без перечисления значений при именованных возвратах. В коротких функциях он читается нормально, но в длинных мешает понять, что именно вернётся, потому что значения задаются где то выше по телу. Поэтому голый возврат держат для небольших функций.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚1
ОПРОС: Ответьте на пару вопросов и получите промокод на все наши курсы! 🎁

Команда Prоglib.аcаdemy готовит к запуску новые продукты, и нам нужна ваша помощь. Мы хотим создавать обучение, которое будет решать ваши реальные карьерные задачи и бить точно в цель.

Поделитесь своим опытом и ожиданиями, чтобы мы сделали наши курсы еще полезнее именно для вас! Заполнение анкеты займет буквально 2–3 минуты, а с нас — скидка на любой наш курс!

👉 Пройти опрос в Яндекс Формах и забрать промокод