Библиотека Go для собеса | вопросы с собеседований
6.85K subscribers
235 photos
9 videos
1 file
486 links
Вопросы с собеседований по Go и ответы на них.

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
🎮 КВЕСТОВАЯ ЛИНИЯ: «Путь Data Scientist'а»

⮕ Твой стартовый набор искателя данных:
Python — твое легендарное оружие (урон по багам +∞)
Математика — твой базовый интеллект (влияет на понимание алгоритмов)
Машинное обучение — твое дерево навыков (открывает новые способности)


⚡️ АКТИВЕН ВРЕМЕННЫЙ БАФФ: «Щедрость наставника»

Эффект: –30% к цене полного набора ДСника
Было: 121.800 ₽ → Стало: 84.900 ₽

☞ Что ждет тебя в этом квесте

— Получение артефактов: портфолио проектов и сертификаты
— Прокачка от новичка до Senior Data Scientist
— Босс-файты с реальными задачами из индустрии
— Доступ к гильдии единомышленников

📎 Забрать бафф
Рассрочки: 3 мес | 6 мес | 12 мес
1🥱1
Как увеличение уровня изоляции транзакций влияет на производительность системы

С повышением уровня изоляции транзакций увеличивается вероятность блокировок и конкуренции за ресурсы.

Например, на уровне Serializable может быть больше блокировок, так как транзакции должны выполнять операции последовательно. Это может снизить производительность системы, особенно при высоком уровне параллелизма.

Напротив, на более низких уровнях изоляции (например, Read Uncommitted) транзакции могут работать быстрее, но есть риск несогласованности данных.

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

Serializable заставляет транзакции выполняться логически последовательно, блокируя строки или таблицы. Это повышает задержки и снижает параллелизм. Применять только там, где критична целостность данных.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
⚡️ Будь как этот гений с картинки — предлагай свои условия работодателю, а не наоборот!

Кто нужен?
Senior ML-Engineer с опытом работы более 6 месяцев в FAANG компаниях. Требование: разработать кросс-платформенное приложение-трекер зарплат с AI-распознаванием вакансий по резюме.


Но если вы пока джун — я бы предложил:

- Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях
- Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL

🔗 Старт 9 сентября
🥱32
Что такое алгоритм Round Robin и где он применяется

Round Robin — это алгоритм планирования процессов в операционных системах, который циклично распределяет процессорное время между всеми задачами в очереди.

Каждый процесс получает фиксированное время (квант времени), после чего он возвращается в конец очереди, если он не завершил выполнение.

Применяется в многозадачных системах, например, для планирования потоков в операционных системах или управления запросами в сетевых системах.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱3👍1
Иногда реально ощущение, что нас держат в Матрице.

Большинство сидит, читает статьи про ML, смотрит ролики «как это работает» — и всё.

Сегодня последний день промокода Lastcall (−5000 ₽).
Уже завтра стартует первый вебинар по Машинному обучению — полный набор для выхода из Матрицы.

Кто готов вырваться из симуляции и ворваться в сезон найма?

👾 — я уже в команде Нео
👍 — хочу красную таблетку
🤔 — пока думаю, но интересно

👉 Забронируй место сейчас
Как вам вопросы прошедшей недели

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

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

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥4🥱3
Как зависит производительность алгоритма Round Robin от величины кванта времени

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

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
Что произойдёт при попытке присвоить значение переменной, если она уже была объявлена ранее с использованием оператора :=

Попытка использовать := для переменной, которая уже была объявлена в текущей области видимости, приведёт к ошибке компиляции.

a := 5
a := 10 // Ошибка компиляции: переменная 'a' уже объявлена


Для повторного присваивания значений переменной нужно использовать просто = без :=, если переменная была уже объявлена.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Что такое Starvation в многозадачной системе

Starvation (голодание) — это состояние в многозадачной системе, когда один или несколько процессов или горутин не могут получить доступ к необходимым ресурсам из-за того, что другие процессы имеют более высокий приоритет или постоянно захватывают эти ресурсы.

Это может привести к тому, что заблокированные горутины не выполняются вообще, что снижает эффективность работы системы.

Примеры:

• В системе, где процессы или горутины имеют разные приоритеты, процесс с низким приоритетом может никогда не получить доступ к процессору, если процесс с более высоким приоритетом постоянно использует ресурсы (например, в случае планировщика с фиксированными приоритетами).

• Если несколько горутин постоянно захватывают мьютекс или каналы, а другие горутины не могут их освободить, это может привести к голоданию. Например, одна горутина может блокировать доступ к общим данным, в то время как другие горутины пытаются захватить этот ресурс, но не могут этого сделать.

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

Строки в Go неизменяемы, и нельзя получить прямой доступ к их байтам через указатели. Однако можно получить адреса байтов строки через срезы или с использованием пакета unsafe.

Пример с использованием unsafe:
package main

import (
"fmt"
"reflect"
"unsafe"
)

func main() {
s := "hello"
strHeader := (*reflect.StringHeader)(unsafe.Pointer(&s))
ptr := unsafe.Pointer(strHeader.Data)
for i := 0; i < len(s); i++ {
b := *(*byte)(unsafe.Pointer(uintptr(ptr) + uintptr(i)))
fmt.Printf("Byte %d: %c, address = %p\n", i, b, unsafe.Pointer(uintptr(ptr)+uintptr(i)))
}
}


🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
2👏1
Что такое волшебное (магическое) число

Волшебное число — это число, которое захардкожено в программе и не имеет комментариев к его использованию.

Пример:
// Плохой вариант с волшебным числом
if statusCode == 200 {
// Выполняем код
}

// Хороший вариант с именованной константой
const OK = 200
if statusCode == OK {
// Выполняем код
}


🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
Объясните разницу между безопасным доступом к байтам строки через срез и использованием unsafe

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

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

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Что такое Escape-последовательность

Escape-последовательности обычно начинаются с символа обратной косой черты (\)специальные символы, управляющие символы или символы, имеющие особое значение.

Примеры:
\n — символ новой строки (Line Feed, LF)
\t — символ табуляции (Tab)
\\ — обратная косая черта
\' — одинарная кавычка
\" — двойная кавычка
\r — возврат каретки (Carriage Return, CR)
\b — удаление предыдущего символа (backspace)
\f — сивол перехода на новую страницу (Form Feed)
\u или \U — Unicode символ (например, \u0041 — для 'A')


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

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

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

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4🥱4😢2
Что будет, если использовать пакет из _ импорта?

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

Если попытаться обратиться к элементам этого пакета, компилятор Go выдаст ошибку, так как они не были явно экспортированы и доступны для использования.

Однако сам пакет всё равно будет выполнен, и его инициализация произойдёт.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👏1
Почему структура struct{ int; string } может быть ключом в мапе, а []byte — нет

Go требует, чтобы типы данных, используемые как ключи в map, были сравнимыми. Это означает, что для них должно быть определено сравнение на равенство.

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

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

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔2
Почему nil-интерфейс может вести себя неожиданно при сравнении с nil

В Go nil-интерфейс не содержит ни значения, ни типа. Он представлен внутренне как структура с двумя полями: type и value. Если оба поля равны nil, то интерфейс считается nil.

Однако поведение может быть неожиданным, когда интерфейс содержит указатель на nil-объект, который реализует интерфейс. В этом случае сам интерфейс не равен nil, потому что поле type заполнено, хотя поле value равно nil.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
📅 24 сентября в 19:00 МСК — бесплатный вебинар с Максимом Шаланкиным.

Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта».

🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций.
🔹 Чем они отличаются от ChatGPT и обычных ботов.
🔹 Как работает цикл агента: восприятие → планирование → действие → обучение.
🔹 Живое демо простого агента.
🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%.

Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏

👉 Регистрируйтесь через форму на лендинге
⚡️ Бесплатный вебинар — ИИ-агенты: новая фаза развития AI

24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале.

Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».


На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского.

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