Вакансия: разработчик Go::Журнал СА 12.2017
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6193
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6902
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4185
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2988
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3794
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3805
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6297
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3152
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3446
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7261
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10628
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12349
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13980
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9109
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7064
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5374
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4603
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3413
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3144
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3391
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3012
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Вакансия: разработчик Go

Архив номеров / 2017 / Выпуск №12 (181) / Вакансия: разработчик Go

Рубрика: Карьера/Образование /  Рынок труда

Вакансия: разработчик Go

В последнее время среди языков программирования определенный прорыв совершил Go. Согласно индексу TIOBE, он получил звание «язык года» в 2016 году, совершив скачок с 54-го на 13-е место. Согласно ноябрьской версии этого индекса текущего года, Go находится на 14-м месте с потерей 0,43%, но опережает Perl, Visual Basic, Objective-C, Swift и др. Мы обратились к экспертам и представителям различных компаний, чтобы выяснить, каких кандидатов они видят на этой позиции

  1. Какими знаниями и навыками должен обладать разработчик Go?
  2. Каков инструментарий разработчика Go?
  3. Каковы требования компании к уровню образования потенциальных сотрудников?
  4. Какие требования предъявляются к опыту работы?
  5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?

Александр БабенкоАлександр Бабенко, разработчик в компании One Million Likes

1. Go достаточно молод, и обычно специалисты в него приходят с опытом разработки на других языках программирования. У него достаточно низкий порог вхождения, и начать разрабатывать можно после прохождения Go tour наофициальном сайте, чтения документации и довольно небольшой веб-книжки Go book. Однако для найма на работу обычно требуются уже более глубокие знания. Часто рекомендуют прочитать, например, книгу Марка Самерфилда «Программирование на языке Go» или аналогичную книгу Брайана Кернигана и Алана Донована.

Про другие полезные материалы можно спросить в сообществах Go-программистов: https://t.me/gogolang, https://t.me/proGO, https://t.me/golangjob. Некоторые мануалы есть только на английском.

2. Go является популярным языком общего назначения и поддерживается различными редакторами. Список гарантированно поддерживающих редакторов и IDE можно посмотреть на официальном сайте. Я в последнее время использую редактор Atom. Он достаточно легкий, но расширяемый плагинами.

Многие инструменты поставляются с самим языком. Например, gofmt и goimports являются консольными утилитами, которые форматируют код за разработчика по общим стандартам, принятым в сообществе. Редакторы, как правило, просто вызывают эти утилиты при сохранении. Еще используются так называемые линтеры – это такие средства, которые анализируют твой код и указывают на недоработки: отсутствие комментариев у экспортируемых сущностей, применение импорта с относительными путями и прочие недочеты, которые не являются грубыми ошибками, но в перспективе усложняют использование данного кода или его поддержку.

3. Как и везде. Если компания обращает внимание на формальное образование, то об этом пишут в требованиях к вакансии. Обычно работодателей интересуют реальные знания и навыки. При разработке каких-то приложений могут потребоваться реальная математическая база, знания криптографии или более глубокое знание работы сети, например.

Для Scala-разработчика мы обычно даем тестовое задание, чтобы оценить подход человека к решению задач и качество его кода, затем проводим техническое собеседование и уже принимаем решение. Также компания помогала ворганизации Scala-курсов scala.wtf, где сотрудники компании обучали всех желающих основам работы со Scala.

4. На мой взгляд, пока достаточно мало вакансий для Junior-разработчиков. Это отчасти связано с «молодостью» языка и большим количеством разработчиков, которые пишут на нескольких ЯП. Они же обычно обладают многолетним опытом работы на различных ролях. Но постепенно будут появляться люди, для которых этот язык первый.

Огромный плюс состоит в том, что очень мало legacy-кода, а сам язык отлично подходит для разработки микросервисов и распределенных приложений. Это позволяет относительно быстро переписывать отдельные сервисы, если возникла такая необходимость, а также просто его поддерживать. В целом в сообществе более активно применяются современные подходы и решения, проще найти, например, удаленную работу и т.д.

Еще бы добавил про то, что для потенциального соискателя может быть большим плюсом реальная увлеченность какими-то инструментами и идеями, участие в разработке открытых проектов на гитхабе. Некоторые занимаются менторской деятельностью, делают свои уроки и курсы. Таким образом, не только приносят пользу, но и узнаваемы в сообществе. Могут продемонстрировать реальные результаты своей деятельности. Многие более охотно с такими людьми работают. Но это уже аналогично другим ИТ-профессиям.

5. Естественно. На языке Go разрабатываются не только стандартные вещи вроде веб-бэкенда, но и какие-то сложные финансовые инструменты, распределенные системы хранения данных (IPFS), блокчейн-приложения (go ethereum) и т.д. Компании могут предъявлять повышенные требования к знаниям работы высоконагруженных систем, баз данных. Кроме этого, любой программист, как правило, должен вникать в контекст работы продукта. Если работаешь в финтех-проекте, то общие знания экономики точно не будут лишними. Разработка решения для медиков может потребовать освежить знания биологии и т.д. Для любого программиста важны навыки непрерывного самообразования.

На собеседованиях Go-программистов часто спрашивают про многопоточность, т.к. это одно из конкурентных преимуществ языка.


Ярослав ЛукьяновЯрослав Лукьянов, Senior Software Developer в компании Openprovider

1. Тут все зависит от того, какой разработчик – начинающий или с имеющимся опытом различной разработки. Если разработчик новичок, то лучшие знания и навыки для него – это базовые вещи, которые будут полезны в разработке, такие как различная теория по программированию, например структуры данных и алгоритмы, стандарты и хорошие практики по написанию кода на Go и тому подобные вещи. Здесь я бы порекомендовал пройти пару общих курсов по теории, адалее уже смотреть на конкретные курсы по Go, например, можно начать с A Tour of Go (https://tour.golang.org/welcome/1). Хотя можно и совмещать, если интересна практика, тут кому как удобно.

Если разработчик уже имеет опыт разработки на других языках, но хочет начать программировать на Go, то здесь я могу посоветовать тот же A Tour of Go для старта и параллельно пробовать разрабатывать маленькие сервисы в продакшн, но, если боитесь, подойдут даже задачки из интернета или домашние проекты. Здесь знания и навыки Go (опуская то, что разработчик уже должен знать, например, ООП, различные технологии типа баз данных, протоколы типа HTTP, принципы разработки ПО и т.д.) выстроены таким образом: стандартная библиотека и ее внутреннее устройство (как хороший пример: большинство кода Go написано на Go и легкодоступно), структуры, многопоточное программирование (goroutines, блокировки и т.д.), каналы (channels). Go создавался под влиянием C и Оберона, поэтому проблем у большинства с переходом возникнуть не должно – сам я очень люблю Java и Scala, но на Go перешел всего за один день – ужочень все просто и понятно в нем устроено, особенно мне нравится работа с легковесными потоками и механизм каналов.

2. Основной инструментарий разработчика Go – это, соответственно, ваши знания и навыки, среда разработки или редактор (я предпочитаю GoLand или Sublime), стандарты языка Go, стандартная библиотека и менеджер зависимостей (вмоем случае это dep). В Go большинство вещей можно делать, используя только стандартную библиотеку – она очень богата и проста в применении. Если вам чего-то не хватает, то всегда есть большое комьюнити, которое реализовало очень много хороших вещей, например: кучу логгеров, HTTP-серверы и роутеры, хорошие хелперы (например, работа с указателями), ORM, фреймворки и т.д.

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

3. Я бы сказал, что в нашей компании нет определенных требований к образованию сотрудников. Конечно, как минимум лучше иметь высшее в технической или математической областях, но если вы самоучка со стажем работы и хорошими результатами – двери для вас также открыты. Тут на самом деле все зависит от компании и ее деятельности. Мало шансов, что госструктуры или похожие компании возьмут самоучку без высшего, даже если у него опыта за десяток лет. Другие же компании готовы рвать остальных за любых специалистов с высоким уровнем, игнорируя их образование.

4. У нас есть требования к опыту работы независимо от языка. Для джуниоров это полгода или год разработки либо хорошие результаты собеседования и тестового задания при отсутствии опыта разработки, либо большой (от трех лет) опыт работы в смежных областях (системное администрирование, Development and Operations и т.д.), для мидл-разработчиков это один – три года и для сеньоров от трех лет разработки, но иногда бывают исключения, как и у всех. В других компаниях данные параметры, названия и тому подобные вещи могут отличаться, но в целом картину можно представить.

5. В случае с Go у нас нет специфических требований, т.к. язык – это просто инструмент, который используется для решения более подходящих для него задач, поэтому у нас много разработчиков со специфичными знаниями, которые программируют на разных языках, включая Go. Тут все зависит от специфики компании, а не языка – например, компании, которые тесно связаны с деньгами, на разработку/поддержку таких модулей будут приоритетно набирать специалистов, хорошо разбирающихся в экономике; компании, которые занимаются хранением и анализом больших данных, – специалистов, хорошо знакомых с технологиями для работы с большими данными; компании, разрабатывающие решения, построенные на машинном обучении, – математиков и так далее. Такие вещи можно перечислить почти для любых сфер деятельности. В нашем случае мы берем людей с углубленными знаниями в определенных областях и споверхностными в смежных (так называемый T-shape), например разработчиков бэкенда на любом языке со знаниями работы и устройства фронтенда или SRE-инженеров с уклоном в разработку больше, чем в администрирование.


Игорь КузнецовИгорь Кузнецов, ведущий разработчик GOST Group

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

2. Инструментарий разработчика на Go каждый выбирает под себя, я, например, использую Emacs с go-mode или Intellij IDEA с плагином для Go. В качестве дебаггера при необходимости пользуюсь gdb или delve. Кроме этого, использую различные утилиты типа go fmt, golint и другие из поставки.

3. Четко выделенных требований компании к образованию нет, больше при выборе кандидатов у нас обращают внимание на опыт и понимание базовых концепций программирования.

4. Go – слишком молодой язык, чтобы найти кандидатов с богатым опытом работы на нем. Эта проблема особенно заметна в РФ, так как у нас всегда есть некоторое отставание в плане технологий от западных фирм. На Западе Go уже вполне промышленный язык программирования. У нас же в стране некоторые компании только-только начинают пробовать Go, но, как я указал выше, опыт работы с Python или C в данный момент является очень желательным дляпретендентов на вакансию программиста Go. Если есть хотя бы небольшие «домашние» проекты на Go, то это очень хорошо.

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

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


Кирилл СеменченкоКирилл Семенченко, Go-разработчик в компании Wildberries LLC

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

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

2. Для написания кода подойдут Vim или IDE наподобие GoLand. Необходимо освоить основные инструменты для автоматической проверки кода и разобрать с менеджерами зависимостей.

Сейчас есть целый зоопарк менеджеров вроде govendor или glide, но я бы посоветовал dep.

3. Как таковых требований нет, реальные знания человека куда важнее диплома.

4. Для Junior-разработчика хватит даже небольшого опыта на другом языке вроде Python, главное, чтобы было желание изучить Go и общее понимание.

5. Особой специфики нет.


Алексей БондаренкоАлексей Бондаренко, разработчик в компании TechOps

1. Требования к навыкам обусловлены сферой применения. Для Go в большинстве случаев это различные веб-сервисы, отсюда вытекают понимание протоколов, базы данных и работа с third party API. Ну и, само собой, знание языка.

2. Кроме, собственно, компилятора, Go из коробки содержит инструменты для форматирования, тестирования и т.д. Выбор же текстового редактора зависит от личных пристрастий разработчика. Например, один из моих коллег пишет на Go в Vim и всем доволен. Также существуют специальные IDE для Go (GoLand, LiteIDE), но у меня с ними как-то не сложилось. Сам использую Atom.

3. Как правило, во всех вакансиях требуют наличия высшего технического образования. Однако обычно это не принципиальное требование, и решающую роль играют профессиональные навыки и опыт.

4. Конкретно в нашей компании на позицию Go-разработчика требуется три года опыта в разработке, минимум два из них на Go. Иногда попадаются вакансии, где требуется только опыт разработки на распространенных языках (C++, Java, Python etc) и желание выучить Go.

5. У нас нет. Встречаются компании, которые переписывают свои проекты на Go, для них важно уметь читать тот язык, на котором первоначально был написан проект (чаще всего это PHP).


Радис ВалиуллинРадис Валиуллин, Senior Software Engineer в компании EPAM

1. Если отойти от общего утверждения, что хороший программист должен владеть computer science, и исходить из того, что Go – это язык программирования, заточенный для написания многопоточного/масштабируемого кода, а также длянаписания микросервисов, тогда необходимо понимать, как пишется многопоточный код, что такое потокобезопастность, знать, что такое микросервисная архитектура, IPC (например, gRPC), etc.

Для написания эффективных программ также полезно знать, как устроены типы в Go, как работает выделение памяти, сборщик мусора.

2. DE – gogland (от jetbrains), консоль предпочитаю zsh с плагинами, git – работаю в консоли, в отдельных случаях типа устранения конфликтов слияния использую ide. Это мой основной инструментарий. Пакетный менеджер dep.

3. Стандартные: знание самого языка (каждый спрашивает, что сам знает, некоторые зациклены на знании каких-то частностей) и общие знания (алгоритмы, базы, etc). Я скептически отношусь к этому.

4. От года на Go и три года вообще в разработке.

5. Опыт работы с технологиями, которые применяются в компании, идет в плюс.


Александр МайоровАлександр Майоров, CTO в New.HR

1. По опыту наших заказчиков (среди которых есть как крупные ИТ-компании, так и международные стартапы), для которых мы закрываем вакансии Golang developer, профессиональные знания очень похожи на знания бэкенд-разработчиков на таких языках, как Ruby, Python, PHP, Perl. Обязательно должен быть опыт хотя бы с одной SQL-базой (MySQL, PostgreSQL, etc). Опыт с NoSQL (чаще требуется MongoDB и Elasticsearch).

Для сеньор-уровня на позицию full stack также требуют знание Frontend-технологий (в зависимости от компании и проекта дополнительно требуют знание фреймворков React, Angular). Golang пока еще относится к «модным» языкам, поэтому много проектов с микросервисами, где есть сервисы на Node.js. Поэтому знание Node.js часто является плюсом для кандидата.

2. Я на Go стал писать недавно. Мои инструменты: IDE Goland от Jetbrains и командная строка с набором различных скриптов для автоматизации и деплоя на продакшн.

3. Особых требований нет. Проекты на Go часто связаны с наукоемкими задачами (вплоть до Machine Learning), поэтому наличие хорошей базы будет плюсом. Не смотрят на наличие диплома, но оценивают знания, которые можно было получить на математических факультетах.

4. Разработчиков на Golang немного, поэтому все наши заказчики готовы принимать кандидатов без опыта работы на Go, при условии наличия профессионального опыта на Python, Ruby, Java, C#. При этом опыт работы на других языках должен быть не менее двух лет.


Илья ГалимьяновИлья Галимьянов, Software Engineer в компании Facecast

1. Какими навыками должен обладать Go-разработчик? Наверное, всеми теми же, что и другие разработчики. На Go прекрасно реализуются микросервисы, да и вообще сетевые сервисы, поэтому разработчик должен обладать хорошими знаниями архитектуры клиент-серверных приложений и сетевого стека в целом. Все зависит от разрабатываемого ПО.

2. Хоть язык и молодой, но инструментов для разработки на нем уже немало. Всем нам известная IDE IntelliJ IDEA имеет плагин для разработки на Go, не так давно была выпущена отдельная IDE GoLand, зачастую также используется VS Code, ну и Vim.

4. Go довольно молодой язык, поэтому разработчиков, которые владеют лишь им, мало. По статистике, на этот язык переходят с Python, JavaScript и PHP. Оттого и обычно требуется background этих языков. Само собой, также это и базы данных, ну и, конечно же, опыт с Docker.

5. Наша компания занимается разработкой инфраструктуры медиасервера для работы с потоковыми аудио/видео, и требований у нас много. Поэтому специфические требования – это знание различных протоколов передачи данных, таких какRTMP, MPTCP, WebRTC. Ну и понимание принципов обработки аудио/видеоданных.

Подготовил Игорь Штомпель


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru