Golang вопросы собеседований
13.6K subscribers
643 photos
6 videos
1 file
452 links
@notxxx1 - админ

@Golang_google - Golang для разработчиков

@itchannels_telegram - 🔥лучшие из ит

@golangl - chat

@golangtests - golang tests

@golang_jobsgo - go chat jobs

@ai_machinelearning_big_data - AI

@data_analysis_ml

РКН: clck.ru/3FmtKd
加入频道
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Как составить резюме, чтобы попасть в Magnificent 7: анализ кейса

Недавно инженер поделился своим резюме, которое помогло ему получить предложение работы от одной из rjvgfybb Magnificent 7 (Apple, Microsoft, Google, Amazon, Meta, Nvidia, Tesla).

Magnificent 7 (в переводе — «Великолепная семёрка») — это современное неофициальное название семи крупнейших и самых влиятельных технологических компаний США, которые лидируют на фондовом рынке, в инновациях и в масштабе бизнеса.

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

📌 Главные выводы из резюме:

1. Фокус на достижениях, а не обязанностях.

Многие кандидаты в резюме просто перечисляют, *что они делали*, например:

- “Разрабатывал API”
- “Поддерживал базу данных”
- “Писал скрипты для автоматизации”

⚠️ Это описывает обязанности, но не показывает ценность или результат работы.

В успешном резюме инженер вместо этого написал, чего он достиг благодаря своей работе:

“Разработал API, который сократил время обработки данных на 30%”
“Оптимизировал запросы к базе данных, уменьшив среднее время ответа с 2 секунд до 0.5 секунд”
“Автоматизировал процесс деплоя, снизив количество ошибок на 15%”

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

💡 Почему это важно?

Big Tech-компании ищут инженеров, которые:

- Умеют оценивать влияние своей работы
- Думают о метриках успеха
- Приносят измеримый результат

Если в резюме нет цифр, улучшений или влияния на процесс — работодатель сам должен это додумывать.
А успешное резюме снимает вопросы и сразу показывает: “Вот что я сделал, вот как я улучшил продукт/процесс/результат.”


2. Лаконичность и компактность.

1 страница
Чёткая структура: “Опыт”, “Навыки”, “Образование”
Без фото, графиков, цветных рамок — чистый текст

3. Цифры везде, где это возможно.

Любое достижение сопровождается конкретной метрикой: улучшение производительности, сокращение времени, рост количества пользователей.
Даже небольшие улучшения указаны численно.

4. Поддержка через проекты с открытым кодом.

Инженер приложил ссылку на GitHub с реальными проектами — это усилило доверие к нему Как с специалисту.

5. Навыки — только релевантные вакансии.

В разделе Skills нет «MS Word» или «PowerPoint».
Только языки, технологии, инструменты, которые нужны для позиции (Python, Kubernetes, CI/CD, etc.).

6. Интерншипы и стажировки — это опыт.

Каждый опыт, даже в рамках стажировки, описан с результатами.
Вакансии в топ-компаниях ценят любую практику в реальной команде.

---

🎯 Что важно для Big Tech:

Результаты > Задачи.
Цифры.
1 страница.
GitHub/портфолио.
Релевантные навыки.

---

🔥 Совет:

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

➡️ Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🐿️ Gin-Swagger — автоматическая документация для Gin API. Этот инструмент генерирует OpenAPI-спецификацию прямо из аннотаций в коде — достаточно добавить специальные комментарии к обработчикам роутов.

После установки и запуска swag init в проекте появляется папка docs с готовой спецификацией. Достаточно подключить роут /swagger/*any и интерактивная документация будет доступна через браузер. Особенно инструмент будет удобен для проектов, где API часто меняется: документация обновляется автоматически при изменении кода.

🤖 GitHub

@golang_interview
⚙️ Option Pattern в Go: гибкая и читаемая настройка объектов

В статье Leapcell ["Option Pattern in Go: Advanced Parameter Handling"](https://dev.to/leapcell/option-pattern-in-go-advanced-parameter-handling-15hf) рассматривается эффективный способ управления параметрами функций и конструкторов в Go.:contentReference[oaicite:7]{index=7}

## 🧩 Проблема

:contentReference[oaicite:9]{index=9}:contentReference[oaicite:11]{index=11}


func NewServer(addr string, port int, timeout time.Duration, maxConn int, protocol string) *Server {
// ...
}


Недостатки:
- :contentReference[oaicite:13]{index=13}
- :contentReference[oaicite:16]{index=16}
- :contentReference[oaicite:19]{index=19}
- :contentReference[oaicite:22]{index=22}:contentReference[oaicite:24]{index=24}

## 💡 Решение: Option Pattern

:contentReference[oaicite:26]{index=26}:contentReference[oaicite:28]{index=28}


type Server struct {
addr string
port int
timeout time.Duration
maxConn int
protocol string
}

type Option func(*Server)

func WithTimeout(t time.Duration) Option {
return func(s *Server) {
s.timeout = t
}
}

func WithMaxConn(max int) Option {
return func(s *Server) {
s.maxConn = max
}
}



:contentReference[oaicite:30]{index=30}:contentReference[oaicite:32]{index=32}


func NewServer(addr string, opts ...Option) *Server {
s := &Server{
addr: addr,
port: 8080,
timeout: 30 * time.Second,
maxConn: 100,
protocol: "tcp",
}

for _, opt := range opts {
opt(s)
}
return s
}


Использование:


server := NewServer("localhost",
WithTimeout(60*time.Second),
WithMaxConn(500),
)


## 🛠️ Дополнительные возможности

- Валидация параметров:


func WithPort(port int) Option {
return func(s *Server) {
if port < 0 || port > 65535 {
panic("invalid port number")
}
s.port = port
}
}


- Группировка опций:


type NetworkOptions struct {
Protocol string
Timeout time.Duration
}

func WithNetworkOptions(opts NetworkOptions) Option {
return func(s *Server) {
s.protocol = opts.Protocol
s.timeout = opts.Timeout
}
}


Преимущества

- :contentReference[oaicite:34]{index=34}
- :contentReference[oaicite:37]{index=37}
- :contentReference[oaicite:40]{index=40}
- :contentReference[oaicite:43]{index=43}:contentReference[oaicite:45]{index=45}

:contentReference[oaicite:47]{index=47}:contentReference[oaicite:49]{index=49}

📌 Читать
👣 В Go 1.24 есть много поводов для восторга: поддержка постквантовой криптографии, полноценная поддержка псевдонимов для обобщённых типов, а также ряд улучшений производительности в рантайме Go, которые значительно снижают нагрузку на CPU в большинстве приложений.

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

https://io.google/2025/explore/pa-keynote-17

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Полный гид по GPU-экосистеме — без воды и маркетинга

Если ты путаешься в CUDA, OpenCL, SYCL и HIP — этот гайд от ENCCS расставит всё по полочкам. Это не просто обзор, а чёткое объяснение, как устроен мир GPU-программирования сегодня.

🧠 Что ты узнаешь:

🔹 Как и почему GPU радикально отличается от CPU
🔹 Из чего состоит стек GPU-технологий:
 — CUDA и его аналоги (HIP, SYCL, OpenCL)
 — Директивы: OpenMP, OpenACC
🔹 Какие языки и стандарты поддерживают какую архитектуру
🔹 NVIDIA, AMD, Intel — кто что умеет и чем отличается
🔹 Модели памяти, исполнения, и что влияет на производительность

📌 Гайд подходит для:
• Разработчиков HPC и научных расчётов
• Инженеров ML/AI, желающих копнуть глубже
• Всех, кто хочет разобраться в низкоуровневом GPU-стеке без маркетингового тумана

📖 Читать:
https://enccs.github.io/gpu-programming/2-gpu-ecosystem/

🔥 Один из самых понятных и системных разборов GPU-мира на сегодня.

#GPU #CUDA #OpenCL #HIP #SYCL #HPC #AI #HighPerformanceComputing
Media is too big
VIEW IN TELEGRAM
МТС приглашает разработчиков на масштабную ИТ-конференцию True Tech Day 6 июня. Участие бесплатное.

В программе — спикеры российского и международного ИИ-рынка, лидеры бигтехов и ученые.

Тебя ждут 4 трека и 40+ докладов. Какие темы будем обсуждать:
— GPT для роботов: как ИИ учится взаимодействовать с реальным миром.
— Мультиагенты — главный AI-тренд 2025. Речь не просто о чат-ботах, а о системах, которые умеют спорить, сотрудничать и достигать целей.
— Автоматизация архитектурных аудитов с помощью ИИ: создание архитектурного datalake для сбора данных из Git, Kubernetes, мониторинга и других источников.
— Новая архитектура под AI: что приходит на смену микросервисам и как архитектор становится дизайнером когнитивного интерфейса.
— Архитектура «as code»: как автоматизировать проверку актуальности схем и генерировать их из реальной инфраструктуры, чтобы разработка всегда соответствовала замыслу архитектора.
— Разбор RAG: что это, зачем нужно, архитектурные подходы и их слабые места, как измерять качество и избегать ложных метрик.

Среди спикеров:
Иван Оселедец (AIRI), Пабло дель Веккио (NTT DATA), Кен Чжун Ли (Kyung Hee University), Алексей Друца (Яндекс), Александр Абрамов (Сбер), Павел Бабин (MWS GPT), Валентин Малых (MTS AI), Антон Скогорев (Т-Банк), Артем Якимчук (Сколтех) и другие эксперты.

Тебе точно стоит быть, если ты:
— разработчик, архитектор или технический руководитель;
— хочешь понять, что реально работает, а что — хайп.

Когда: 6 июня
Где: Москва, МТС Live Холл и онлайн
Регистрация по ссылке.
📁 doublestar — расширенная поддержка glob-паттернов в Go

Альтернатива стандартному path/filepath.Glob в Go, с поддержкой:

• ** — рекурсивных поддиректорий
• Расширенных классов символов ([[:alpha:]], [[:digit:]])
• Исключающих шаблонов (!(pattern), @(pattern), ?(pattern))
• Более гибких масок в стиле Bash/Zsh

go get github.com/bmatcuk/doublestar/v4

🔧 Использование:


matches, err := doublestar.Glob("**/*.go")


📦 Подходит для написания CLI-инструментов, сборщиков, тулов для анализа кода и всего, где важна гибкость файловых шаблонов.

👉 Если filepath.Glob не хватает — doublestar легко заменяет его, не ломая привычный интерфейс.

github.com/bmatcuk/doublestar