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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
7 429
Obunachilar
+224 soatlar
-87 kunlar
+730 kunlar
Postlar arxiv
❓ Чем отличаются crypto/rand и math/rand? Когда использовать каждый из них? Цель и применение:crypto/rand: Предназначен для генерации криптографически стойких случайных чисел. Используется в задачах, связанных с безопасностью, где важно исключить возможность предсказания результата. ✅ math/rand: Предоставляет генератор псевдослучайных чисел, который быстрее, но менее стойкий к предсказанию. Используется в сценариях, где безопасность не критична, например, для симуляций, тестов или игровых алгоритмов. Генератор случайных чисел: ⚙️ crypto/rand: Использует системный источник случайности (например, /dev/urandom в Linux или CryptGenRandom в Windows). Это делает его надежным, но медленным. ⚙️ math/rand: Использует алгоритм генерации псевдослучайных чисел, который основывается на фиксированном начальном значении (seed). Повторение одинакового сида приводит к генерации одинаковой последовательности чисел. Предсказуемость: ⚙️ crypto/rand: Случайные числа практически невозможно предсказать. ⚙️ math/rand: Если известен seed, последовательность чисел легко воспроизвести.

❓ Как работает sync.WaitGroup? 1️⃣ Создаётся экземпляр sync.WaitGroup, который отслеживает количество горутин. 2️⃣ Перед запуском горутин вызывается метод Add(n), где n — количество горутин, которые нужно отследить. 3️⃣ Внутри каждой горутины вызывается метод Done(), который уменьшает счётчик WaitGroup на 1 после завершения работы. 4️⃣ Основной поток вызывает метод Wait(), который блокируется до тех пор, пока счётчик не станет равным нулю.

❓Как вы будете ждать завершения нескольких горутин, чтобы продолжить выполнение основного потока? Для ожидания завершения нескольких горутин и продолжения выполнения основного потока в Go можно использовать sync.WaitGroup. Этот инструмент позволяет координировать выполнение горутин и гарантировать, что основной поток дождётся завершения всех задач.

🦫 Самоучитель по Go для начинающих. Часть 18. Протокол HTTP. Создание HTTP-сервера и клиента. Пакет net/http Погружаемся в м
🦫 Самоучитель по Go для начинающих. Часть 18. Протокол HTTP. Создание HTTP-сервера и клиента. Пакет net/http Погружаемся в мир сетевых технологий с Go! В этой части самоучителя рассматриваются основы работы с HTTP в Go: устройство HTTP-запросов и ответов, ключевые способы взаимодействия клиента и сервера. Также подробно разбираются возможности пакета net/http, включая отправку запросов, обработку ответов и настройку параметров HTTP-сервера для веб-приложений. 📎 Читать новую часть самоучителя

❓Что выведет следующий код и почему?
package main

import "fmt"

func main() {
    i := 0
    defer fmt.Println("Result:", i)
    i++
}
Выведется 0, потому что defer захватывает значение переменных на момент объявления, а не на момент выполнения отложенной функции.

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

❓ Что будет, если использовать пакет из _ импорта? Если попытаться использовать функции, переменные или типы из пакета, который импортирован с помощью _, это вызовет ошибку компиляции. Пустой идентификатор (_) означает, что пакет подключён исключительно для выполнения побочных эффектов (например, init()). Сам пакет становится «неактивным» для остального кода программы.

Что делает _ — импорт? В Go _-импорт используется для подключения пакета только ради выполнения его побочных эффектов (например, функций init()) без дальнейшего использования самого пакета в коде. Таким образом, компилятор не будет требовать обращения к пакетным функциям или переменным, но все действия в init() будут выполнены. Этот подход часто используется для регистрации драйверов, плагинов или настройки глобальных зависимостей.

Самые полезные каналы для программистов в одной подборке! Сохраняйте себе, чтобы не потерять 💾 🔥Для всех Библиотека программиста — новости, статьи, досуг, фундаментальные темы Книги для программистов IT-мемы Proglib Academy — тут мы рассказываем про обучение и курсы Азбука айтишника — здесь мы познаем азы из мира программирования 🤖Про нейросети Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка Библиотека нейротекста | ChatGPT, Gemini, Bing Библиотека нейровидео | Sora AI, Runway ML, дипфейки Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion #️⃣C# Книги для шарпистов | C#, .NET, F# Библиотека шарписта — полезные статьи, новости и обучающие материалы по C# Библиотека задач по C# — код, квизы и тесты Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel ☁️DevOps Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps Вакансии по DevOps & SRE Библиотека задач по DevOps — код, квизы и тесты Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования 🐘PHP Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP Вакансии по PHP, Symfony, Laravel Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по PHP — код, квизы и тесты 🐍Python Библиотека питониста — полезные статьи, новости и обучающие материалы по Python Вакансии по питону, Django, Flask Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Python — код, квизы и тесты ☕Java Книги для джавистов | Java Библиотека джависта — полезные статьи по Java, новости и обучающие материалы Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Java — код, квизы и тесты Вакансии для java-разработчиков 👾Data Science Книги для дата сайентистов | Data Science Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Data Science — код, квизы и тесты Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту 🦫Go Книги для Go разработчиков Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Go — код, квизы и тесты Вакансии по Go 🧠C++ Книги для C/C++ разработчиков Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++ Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по C++ — код, квизы и тесты Вакансии по C++ 💻Другие каналы Библиотека фронтендера Библиотека мобильного разработчика Библиотека хакера Библиотека тестировщика Библиотека разработчика игр | Gamedev, Unity, Unreal Engine Вакансии по фронтенду, джаваскрипт, React, Angular, Vue Вакансии для мобильных разработчиков Вакансии по QA тестированию InfoSec Jobs — вакансии по информационной безопасности 📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈 Также у нас есть боты: Бот с IT-вакансиями Бот с мероприятиями в сфере IT Мы в других соцсетях: 🔸VK 🔸YouTube 🔸Дзен 🔸Facebook * 🔸Instagram * * Организация Meta запрещена на территории РФ

❓Что происходит, если между пакетами есть циклические зависимости? Циклические зависимости возникают, когда два или более пакета зависят друг от друга напрямую или косвенно. Например, пакет A импортирует пакет B, а пакет B импортирует обратно пакет A. Циклические зависимости недопустимы в Go. Компилятор обнаружит их и выдаст ошибку. Это сделано для упрощения структуры кода и предотвращения сложных проблем с порядком инициализации.

❓ Как slice устроен под капотом? В Go slice — это структура данных, представляющая собой динамически изменяемый массив. Slice строится на основе массива, но в отличие от массива, его размер может изменяться в процессе работы программы. Под капотом slice включает три основных компонента: Указатель (pointer): Это указатель на первый элемент массива, на основе которого создаётся slice. Это может быть любой внутренний массив или часть массива. Длина (length): Длина slice определяет количество элементов, доступных для работы в slice. Эта длина может изменяться в процессе добавления или удаления элементов. Ёмкость (capacity): Ёмкость slice — это максимальное количество элементов, которые могут быть размещены в текущем выделенном массиве без перераспределения памяти. Когда slice расширяется (например, при добавлении новых элементов), если ёмкость превышена, Go автоматически увеличивает ёмкость, выделяя новый массив и копируя туда элементы старого массива.

💾 CDC vs Outbox: как решить проблему двойной записи в распределенной системе В распределённых системах согласованность данны
💾 CDC vs Outbox: как решить проблему двойной записи в распределенной системе В распределённых системах согласованность данных часто становится настоящим вызовом. Особенно это касается сценариев, где требуется выполнить несколько операций в разных системах одновременно. Как избежать проблем двойной записи? Современные подходы, такие как захват изменений данных (CDC) и паттерн Outbox, предлагают интересные решения. Эти методики позволяют поддерживать целостность данных, избегать сбоев и минимизировать риски. Хотите узнать, как внедрить такие подходы и выбрать оптимальный для своей системы? Загляните в захватывающее руководство, чтобы разобраться в тонкостях. 🔗 Читать статью 🔗 Зеркало

❓Что такое defer в Go и какие варианты использования существуют? defer в Go — это ключевое слово, которое используется для отложенного выполнения функции. Функция, указанная в defer, будет выполнена непосредственно перед тем, как функция, содержащая defer, завершит свое выполнение Как его можно использовать? 🎯 defer часто используется для освобождения ресурсов, таких как закрытие файлов, соединений с базой данных или освобождение памяти. 🎯 defer полезен для выполнения кода, который должен быть выполнен независимо от того, произошла ли ошибка в функции или нет.

Почему использование uintptr может быть опасным? ❗ Потеря информации о типе: преобразование указателя в uintptr теряет информацию о типе, что может привести к ошибкам при неправильном доступе к памяти, если указатель используется с другим типом данных. ❗ Сборщик мусора: go использует сборщик мусора, который не отслеживает указатели, преобразованные в uintptr. Это может привести к ошибкам, если память была освобождена или перемещена. ❗ Низкоуровневый доступ: uintptr представляет собой «сырой» адрес памяти, что делает операции с ним небезопасными, так как компилятор не может проверять правильность обращения к памяти. ❗Гонки данных: в многозадачных приложениях использование uintptr может привести к гонкам данных, поскольку не обеспечивается синхронизация или безопасность типов.

⚡️Самые полезные каналы по Go в одной папке В ней: ➖канал для подготовки к собеседованиям ➖интересные задачи ➖основной канал (этот) ➖книги по Go ➖лучшие вакансии из сферы ➖и наш чат, в котором можно общаться и задавать вопросы Добавляйте 👉 тык сюда

Подготовься к собеседованию на позицию Data Scientist! Профессия Data Scientist становится все более востребованной, и компан
Подготовься к собеседованию на позицию Data Scientist! Профессия Data Scientist становится все более востребованной, и компании ищут специалистов, способных превращать данные в ценные инсайты. Но как успешно пройти техническое собеседование? Мы собрали 10 типичных задач, которые могут встретиться на собеседовании, и эффективные подходы к их решению: 1. Внешнее и тензорное произведение 2. One-hot кодировка 3. Мониторинг осадков 4. Симуляция бросков кубиков в «Монополии» 5. Бурение скважин для добычи золота 6. Вычисление свертки 7. Бэктестинг торговой стратегии 8. Прогноз оттока клиентов с помощью логистической регрессии 9. Обнаружение спама с использованием дерева решений 10. Предсказание цен на квартиры с помощью линейной регрессии Чтобы начать решать задачи, достаточно ответить на четыре простых вопроса по этой ссылке и получить доступ к вводным занятиям курса Математика для Data Science и 10 задачам.

Что такое uintptr, когда его следует использовать? uintptr — это тип в Go, который представляет собой целое число, используемое для хранения значений указателей как чисел, то есть для представления адресов памяти в виде целых чисел. Он позволяет выполнять низкоуровневые операции с указателями, такие как арифметика указателей или преобразование указателя в числовое значение и обратно Когда следует использовать uintptr: 🛠️ Низкоуровневые операции: uintptr используется, когда необходимо работать с указателями на уровне адресов, например, для выполнения арифметики указателей (сдвиг по памяти) или для взаимодействия с C-библиотеками через cgo, где указатели часто обрабатываются как целые числа. 🛠️ Преобразование указателя в целое число: иногда необходимо преобразовать указатель в целочисленное значение (например, для передачи в системные вызовы или манипуляции с памятью). В таких случаях uintptr может быть полезен для хранения числового представления указателя. 🛠️ Взаимодействие с аппаратным обеспечением: в некоторых случаях работы с аппаратным обеспечением или низкоуровневыми системами можно использовать uintptr для работы с памятью напрямую.

❓ Как контексты используются для отмены операций в многозадачных приложениях? Контексты в Go предоставляют механизм для отмены операций в многозадачных приложениях за счет передачи сигнала отмены через объект context.Context. Это особенно полезно в сценариях, где горутины выполняют связанные задачи, такие как обработка HTTP-запросов или долгие вычисления. Принцип работы: 1. Создаётся контекст с функцией отмены (context.WithCancel или context.WithTimeout). 2. Все горутины получают этот контекст и периодически проверяют ctx.Done(). 3. Когда вызвана отмена (например, через cancel()), канал ctx.Done() закрывается. 4. Каждая горутина обрабатывает сигнал отмены, например, освобождая ресурсы и завершая выполнение.

Save the date: 21 декабря проводим Я.Субботник по Golang Будем слушать доклады ведущих разработчиков Яндекса из Игр, Екома и
Save the date: 21 декабря проводим Я.Субботник по Golang Будем слушать доклады ведущих разработчиков Яндекса из Игр, Екома и Райдтеха и Поиска. Готовьте вопросы на Q&A-сессию! Обсудим внедрение Golang, перформанс-бенчмаркинг и реализацию сервисов через стейтмашины. А ещё посмотрим на текущие проекты Яндекса в опенсорсе. После займёмся нетворкингом: будем общаться, отдыхать и пробовать разное вкусное. Приходите в Москве или подключайтесь онлайн! Зарегистрироваться

🗃️ Анатомия SQL-запроса: как работают запросы к базе данных ❓ Как разработчику эффективно работать с базами данных? Один из
🗃️ Анатомия SQL-запроса: как работают запросы к базе данных ❓ Как разработчику эффективно работать с базами данных? Один из ключевых навыков — понимание, как именно выполняются SQL-запросы. В этой статье разобраны все этапы работы запросов с базой данных: от парсинга до оптимизации. Это поможет не только улучшить производительность приложений, но и избежать частых ошибок при взаимодействии с БД. 📎 Погружаемся в анатомию SQL-запросов по ссылке!