Golang задачи с собеседований
4.65K subscribers
478 photos
6 videos
12 files
245 links
Задачи, тесты и теоретические вопросы по Go. Так же по gin, grpc, горутинах, архитектуре api и http стэку.

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
Курс «Английский для разработчиков» Яндекс Практикума

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

Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:

Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨‍💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.

Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.
В Go, если значение переменной не было задано, оно будет взято по умолчанию. Для неинициализированного слайса значение по умолчанию будет nil.

Например, для var a []string значение будет nil. Также можно создать пустой слайс var b []string{}. А какой json мы получим из этих слайсов?

var a []string
b := []string{}
var (
err error
aa []byte
bb []byte
)
aa, err = json.Marshal(a)
bb, err = json.Marshal(b)
fmt.Printf("aa: %#v; bb: %#vn", string(aa), string(bb))

Golang задачи с собеседований
Какой json мы получим из этих слайсов?
Anonymous Quiz
59%
... aa: "null"; bb: "[]"
14%
... aa: ""; bb: ""
27%
... aa: "[]"; bb: "[]"
Почти во всех языках есть конструкция «return», которая призвана вернуть контекст выполнения из функции/процедуры — то, что мы привыкли считать «возвращаемым значением». В Golang для возврата значения тоже можно воспользоваться «return», но в отличие от других языков значение или имя переменной указывать не обязательно. Можно деклалировать имя или имена переменных при объявлении, а после необходимых операций в функции просто написать return и значения данных будут возвращены из функции.

А ещё в Go есть способ обмануть этот механизм возврата значений. Как?

Golang задачи с собеседований
А ещё в Go есть способ обмануть этот механизм возврата значений. Как?
Anonymous Quiz
10%
Вариант 1
76%
Вариант 2
14%
Вариант 3
#вакансия #go #golang #удаленка #senior

Вакансия: Technical Lead (Go)
Компания: Zigmund.Online - сервис онлайн-психотерапии
💵: 320 000 руб. (на руки)
🌎Удаленка (ТК / СМЗ / ИП)

Наш стек: Go, Python, Kubernetes, PostgreSQL, RabbitMQ, Kafka, Redis, GitLab, React, NextJS, микросервисная архитектура.

📝Задачи:
- Принимать верхнеуровневые архитектурные и технологические решения;
- Управлять ресурсами команды, быть про команду и для команды, эффективно применять навыки лидерства;
- Определять и контролировать показатели эффективности подразделения;
- Выстраивать процессы разработки и внедрения ПО с использованием современных методологий;
- Управлять приоритетами, планировать сроки реализации и запуска проектов;
- Обеспечивать предсказуемые сроки запуска продукта, планировать и контролировать ресурсы, оценивать риски и контролировать качество (тестирование, мониторинг и т.д.);
- Писать архитектурные решения, сложные кейсы/алгоритмы;
- Разделять идею, ценности и миссию бизнеса, понимать что необходимо продукту на той или иной стадии развития;

💪Ключевые навыки
- Инженерный опыт на уровне senior, бэкенд-разработка на Go;
- Опыт руководства командой в продуктовой разработке от 2 лет;
- Отличное понимание people management и механизмов построения кроссфункциональных команд;
- Любовь к инженерной работе, умение и желание делать своими руками;
- Умение аргументировать свою позицию;
- Готовность и интерес разобраться в доменной области бизнеса, а также брать ответственность за бизнес-результаты.

🤌Условия
- Удаленную работу с гибким графиком — в атмосфере startup из любой точки мира (ТК РФ/ ИП/ СМЗ);
- Работу без микроменеджмента — ты можешь работать так, как удобно. Главное, чтобы был результат;
- Сложные и интересные проекты — где ты влияешь на процесс и результат, а твои идеи воплощаются в жизнь;
- Современный высокотехнологичный стек;
- Работу с одним из самых перспективных продуктов на рынке;
- Экологичный корпоративный климат — классные коллеги и ментально здоровые руководители;
- Скидку на сессии с нашими психологами.

💙Для отклика заполняй форму
Weekend offer 22-23 апреля для бэкенд-разработчиков и QA-инженеров от VK

Получить возможность влиться в команды Почты Mail.ru, Облака Mail.ru, VK Мессенджера и ВКонтакте для бизнеса можно благодаря Weekend Offer. Отправляйте отклик до 20 марта включительно и получите шанс стать частью передовой IT-компании.

Weekend Offer состоится уже в эти выходные — поторопитесь!
В Go есть привычные массивы, но есть и другое понятие — слайс байт. Слайсы аналогичны массивами в других языках программирования, но со своими особенностями. Строка в Go — это тоже слайс байт. А вот для работы с одним символом используется тип…
Anonymous Quiz
9%
...char.
89%
...rune.
3%
...string.
А пока предлагаем настроиться на просмотр и решить задачу по Go от команды Навыков.
В Go есть бенчмарки для тестирования производительности программы или функции. Но бывает, нужно узнать, что происходит на более низком уровне — на уровне ассемблерного кода. Получить ассемблерный код из исходного кода программы на Go…
Anonymous Quiz
68%
...можно с помощью команды go tool compile -S main.go.
10%
....нельзя.
23%
...можно, но только из уже скомпилированного бинарного файла.
Go славится простотой, но для некоторых базовых вещей отсутствует элегантное решение. Например, для работы со слайсами не добавлены «базовые» операции над ним.

sl := []int{1, 3, 4} n := 1 Чтобы удалить второй элемент в этом слайсе, нужно использовать
Anonymous Quiz
90%
res := append(sl[:n], sl[n+1:]...)
7%
sl.delete(n)
3%
sl[n] = nil
Когда вы компилируете программу, вам может понадобиться указать хеш коммита и ветку Git, а также версию собранной программы. Для этого в Go можно устанавливать непосредственно переменные пакета на этапе компиляции:
Anonymous Quiz
59%
go build -ldflags -X package-import-path.val=foo'
17%
это невозможно.
24%
go build package-import-path.val=foo GOOS=linux GOARCH=arm
В каком из вариантов x определена на heap?
Anonymous Quiz
32%
Вариант 1
68%
Вариант 2
Какой размер буфера по умолчанию у каналов в Go?
Anonymous Quiz
29%
nil
28%
1
43%
0