Очень часто на собеседовании Go-разработчика спрашивают не только про Go, но и про сети, протоколы и всё такое, что вполне ожидаемо.
Так держите подборку из таких вопросов и ответы к ним
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Сами задания выглядят так:
— Найти пару чисел с заданной суммой из 2 массивов
— Удаление одного узла в односвязном списке с заданным указателем
— Алгоритм кластеризации k-means
— Объединить 2 отсортированных списка в один отсортированный список
— Печать чисел Фибоначи
— Разворот строки
— Задача на работу со скобками в строке
— Печать суммы чисел из диапазона
— Самая длинная допустимая подстрока в круглых скобках
— Создание типа Set
— Подсчет слов в соответствии с условием
— Поиск наиболее похожих строк
— Поиск в ширину и в глубину
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Хочется писать более качественный код и расти профессионально в Golang?
Пора разобраться, как применять конкурентность на практике?
Спишь и видишь, как работаешь над большими проектами, с большими нагрузками, создавая влияние своей работой на миллионы пользователей?
На курсе «Golang-разработчик» за 12 недель ты освоишь инструменты и технологии, которые используются в реальных проектах в бигтехе.
✔️ 56 часов практики + 26 часов теории
✔️ 6 онлайн-встреч со спикерами
✔️ Итоговый проект в портфолио на выбор (или свой)
✔️ Чат со студентами и экспертами
✔️ Сертификат о прохождении обучения
🙂 Спикер Виталий Лихачев, Senior Software Engineer в Avito.
Что будет на курсе?
🔘 Научишься писать проекты по best practices.
🔘 Поймешь, как эффективно распиливать монолит на микросервисы и что ожидать от такого разделения.
🔘 Создашь готовый сервис на Go.
🔘 Изучишь устройство observability больших систем и сможешь на практике попробовать популярные инструменты.
🔘 Сможешь аргументированно выбирать асинхронный подход при соединении сервисов с целью снижения связности системы и повышения общей надежности.
Сделаешь итоговый проект (на выбор):
🔘 Онлайн-банк;
🔘 Мессенджер;
🔘 Файловое хранилище с подпиской на события;
🔘 Свой проект.
Курс «Golang-разработчик»
🔜 старт 23 мая
🔜 занять место на потоке
🔜 оплата в рассрочку 10 000 ₽/мес, полностью или от компании.
Реклама ООО «Слёрм» ИНН 3652901451
Пора разобраться, как применять конкурентность на практике?
Спишь и видишь, как работаешь над большими проектами, с большими нагрузками, создавая влияние своей работой на миллионы пользователей?
На курсе «Golang-разработчик» за 12 недель ты освоишь инструменты и технологии, которые используются в реальных проектах в бигтехе.
Что будет на курсе?
Сделаешь итоговый проект (на выбор):
Курс «Golang-разработчик»
Реклама ООО «Слёрм» ИНН 3652901451
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь собраны абсолютно разные вопросы, вот некоторые из них:
— как правильно следует выводить ошибку
err
?— что такое канал?
— как объяснить Go, что нужно импортировать пакет из другого места?
— что измеряет функция
len()
у строки, закодированной в UTF-8?@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Поможет в быстром повторении ключевых аспектов Go;
здесь описываются все основные концепции — синтаксис и структуры данных, работа со строками, управление потоком, ветвления и циклы, горутины, конкурентное программирование и ещё много всего
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Отличная идея для пет-проекта — генератор статических сайтов для преобразования Markdown в HTML.
Можно использовать в виде CLI:
—
go get -u github.com/gomarkdown/mdtohtml
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
— Временная сложность алгоритмов
— O-нотация
— Связные списки
— Хэш-таблица
— Рекурсия
— Дерево
— Бинарное дерево поиска
— Бинарный поиск
— Алгоритм Дейкстры
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Держите открытую книгу, в которой в деталях описано, как Golang взаимодействует с сетью
Описывается использование протоколов TCP, UDP, IP, модель OSI и другие аспекты сетевого программирования с позиции Go-разработчика
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Надеюсь, не пригодится, но если что, у вас будет план действий.
Не благодарите)
Итак, вот шаги:
mkdir
. Ключ -p
автоматически создаст недостающие директории.$ mkdir -p $HOME/golang/libs
$ wget https://dl.google.com/go/go1.12.1.linux-amd64.tar.gz
$ tar -C $HOME/golang -xzf go1.12.1.linux-amd64.tar.gz
—
/home/{user_name}/golang/go
— папка из архива—
/home/{user_name}/golang/libs
— папка для загрузки сторонних библиотек$ echo "export GOPATH=$HOME/golang/libs" >> $HOME/.profile
$ echo "export GOROOT=$HOME/golang/go" >> $HOME/.profile
$ echo "export PATH=$PATH:$GOROOT/bin:$GOPATH/bin" >> $HOME/.profile
$ source $HOME/.profile
$ go
Go is a tool for managing Go source code.
....
Примечания
1. Если не планируется использовать текстовые редакторы с плагинами для Go, то можно добавить переменные окружения из шага 4 в файл
$HOME/.bashrc
или $HOME/.bash_profile
(если используется bash).2. Примечание 1 справедливо и для SSH, если планируется использовать компилятор Go на удаленном хосте. Или можно каждый раз при заходе на удаленный хост выполнять команду из шага 5.
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Интересная идея для пет-проекта; к тому же есть большой простор для улучшений — вот что можно доработать:
— выбор количества символов в итоговой ASCII-графике
— отображение нескольких вариантов полученной графики с использованием разных наборов символов
— выбор уровня детализации изображения
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Поможет быстро погрузиться в Go или освежить базовые концепции
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM