Вакансия: разработчик Clojure::Журнал СА 11.2018
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, с

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Друзья сайта  

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

Архив номеров / 2018 / Выпуск №11 (192) / Вакансия: разработчик Clojure

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

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

Важное место среди популярных парадигм ИТ-индустрии занимает функциональное программирование. Оно используется при реализации экспертных систем, искусственного интеллекта, веб-разработки, игр и многого другого. Яркое воплощение его концепция получила в виде реализации языка программирования Clojure. Clojure работает на Java Virtual Machine (JVM), кроссплатформен, а область его применения довольно широка и порой ограничивается лишь фантазией разработчика. Мы обратились к экспертам и представителям различных компаний, чтобы выяснить, каких кандидатов они видят на позиции разработчика Clojure

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

Сергей СобкоСергей Собко, руководитель группы разработки пользовательского интерфейса, Positive Technologies

1. Перед ответом на этот вопрос нужно сделать ремарку, что рекомендации относятся только к Clojure, но не к ClojureScript, ибо фронтенд – это большой мир со своими библиотеками, паттернами и особенностями.

Итак, помимо стандартных компетенций разработчика в алгоритмах и структурах данных, должно присутствовать общее понимание концепций функционального программирования (чистые функции, функции высшего порядка, замыкания). Плюсом было бы знание стандартной библиотеки Clojure для оперирования данными, но это необязательное условие – это знание можно обрести, прочитав книгу «Clojure for the Brave and True» и получив небольшой практический опыт, а дальше можно просто пользоваться шпаргалками по функциям и официальной документацией. Для участия в проектах, которые активно используют прямые интеграции с Java, а не только другие Clojure-библиотеки, разработчику также пригодилось бы умение читать код на Java и понимать его (а впоследствии и модифицировать).

2. Что касается инструментария, то здесь каждый разработчик выбирает что-то под себя: в базовом варианте всем начинающим рекомендуют ознакомиться с Emacs и CIDER, но на самом деле подойдет любой редактор, позволяющий использовать REPL-driven development – основное преимущество быстрой разработки на Clojure (есть даже полноценное IDE, построенное на базе IntelliJ, – Cursive). Что касается всего остального процесса разработки, то благодаря основному средству управления зависимостями и пакетирования Leiningen и его плагинам можно делать буквально все необходимые в разработке действия (от статического анализа кода, управления версиями и удаленной отладки через nREPL до сборки и деплоя Docker-образов).

3. Формальное наличие образования у потенциальных сотрудников на самом деле не так важно, как квалификация, опыт работы и умение работать в команде. Неплохо если есть высшее образование, но его отсутствие не является чем-токритичным. В конечном итоге все зависит от человека и от того, насколько он сам готов влиться в команду, где ему предстоит работать.

4. Что касается опыта работы, то так как рынок Clojure-разработчиков небольшой, то самое простое решение и одновременно пожелание к кандидатам – наличие опыта разработки на Python, Java или любом LISP-подобном языке программирования от нескольких лет. При этом миграция с другой платформы может проходить очень быстро: начать писать код можно так же, как в Python, используя REPL прямо с первых глав вышеуказанной книги, а для полноценного погружения в платформу при наличии оного достаточно нескольких недель.

5. Специфика компании Positive Technologies – информационная безопасность – определяет некоторые требования, в частности, мы руководствуемся принципами безопасной разработки. Однако некоторые наши разработки не слишком завязаны на специфичные требования: например, Open Source-библиотека flower, созданная с использованием Clojure для построения систем автоматизации управления задачами, контроля версий и обмена сообщениями (которую мыназываем «Автоматический тимлид»). Тем не менее для некоторых других вакансий, напрямую связанных с информационной безопасностью, такие требования могут быть критичными.


Андрей ТропинАндрей Тропин, ведущий инженер-программист в компании Health Samurai

1. Сильно зависит от области в которой работают и позиции, которую занимают, поэтому дам только общие рекомендации:

  • знанием протокола HTTP (практически любая система на Сlojure так или иначе взаимодействует по http);
  • основами функционального программирования;
  • основами проектирования баз данных;
  • базовым представлением об алгоритмах и структурах данных;
  • пониманием систем контроля версий, предпочтительно git;
  • основами логического программирования.

Фундаментальные знания из области computer science будут плюсом, как и другие знания и навыки, полезные разработчикам (в том числе soft skills).

2. Опять же специфично для компании/проекта/человека и отчасти дело вкуса, я бы рекомендовал обратить внимание на инструменты, которые используем мы для решения наших задач:

  • для сборки и зависимостей: Clojure deps, Leiningen;
  • для разработки: Emacs, Spacemacs, Cider;
  • для фронтенда: Reagent, Re-frame, Zenform;
  • для тестирования: Matcho, Test-runner;
  • для хранения и преобразования данных: Postgres, Honeysql, Ironhide;
  • для инфраструктуры: Kubernetes, Ci3.

P.S. Для людей, только осваивающих Сlojure и не имеющих опыта с Emacs, я бы рекомендовал что-то более знакомое и понятное, например Cursive или Vscode/Atom.

3. Если вопрос касательно инженеров, то университетское образование опционально, есть люди и со средним специальным и с докторской степенью.

4. Снова зависит от позиции – набираем и ребят, недавно пришедших в разработку, и старичков в нашей области. Из интересных моментов: знание Сlojure не критично, т.к. язык простой, тут намного важнее умение быстро втянуться. Большим плюсом является знание Jvm и/или React js/native, Postgres и опыт в проектах на практически любом стеке веб-технологий. Так как программировать на Сlojure просто, то инженеру хорошо бы иметь базовые знания винфраструктуре и опыт с nginx/docker/kubernetes, чтобы было чем заняться, когда кончатся таски (шутка – таски никогда не кончаются).

5. Специфических требований нет, есть специфическое пожелание: знание стандартов обмена медицинской информацией fhir, hl7v2.


Алексей ГолдаАлексей Голда, Clojure-разработчик в Equipage (разработчик сервиса персональных водителей с автомобилями бизнес- и премиум-класса)

1. Навыками программирования ООП и пониманием проблем, связанных с ООП (объектно-ориентированным программированием), «состоянием» и проблем, связанных с ним. А дальше, как следствие, преимуществами и буквально базовыми понятиями ФП (далее и по тексту – функционального программирования) на примере любого из языков (Haskell, Erlang, Clojure). Функции, функции высшего порядка, иммутабельность (неизменяемость), персистентность, композиция и так далее.

2. Clojure, Java, REPL, IDE или текстовый редактор, который умеет работать с REPL, – это может быть Cursive, Emacs, Vim, Visual Studio Code, Atom. Наиболее популярны Cursive и Emacs.

3. Такие же, как и к программистам в принципе и вообще. Кардинальных отличий нет, главное – голова на плечах, очень желателен опыт программирования на функциональных языках (если говорить о Clojure) или понимание парадигмы ФП. Честно говоря, за карьеру программистом ни разу не слышал вопроса на собеседовании об уровне образования вообще. Но если говорить от себя, могу с уверенностью сказать, что физико-математическая база помогает сильно инесколько ускоряет процесс.

4. Опыт – это, пожалуй, самое ценное, поэтому чем его больше, тем, разумеется, лучше. Если этот опыт еще и на функциональных языках или хотя бы с применением парадигмы, то это уже большой плюс. Но это не сильно принципиально ииндивидуально. Условно: если у вас есть опыт работы на Haskell, Erlang, Scala, то вам будет достаточно комфортно, это очень хороший опыт. Если это более распространенные языки вроде PHP, JavaScript, C#, Java, то преимуществом будет опыт с Java, поскольку Clojure работает на JVM-платформе, но придется «повернуть мозги» в плане смены парадигмы, образа мышления. Тут индивидуально. Ценится опыт от года и больше на функциональных языках, и примерно три – пять лет.

5. Как правило, нет, специфика работы компании влияет только на общие требования, как то удаленные сотрудники и невозможность работы с ними, или вообще на технологический стек целиком, например компании, специализирующиеся на программном обеспечении для виртуальной реальности, вряд ли станут вообще работать на Clojure, так как там сложился свой стек технологий. Поэтому в целом ответ «нет», специфических требований обусловленных деятельностью компании нет.


Артур АлиевАртур Алиев, бэкенд-разработчик компании SoftServe

1. Стандартный набор теоретических и практических знаний, который требуется от бэкенд-разработчика, плюс желатeльно понимание JVM и опыт с базовыми библиотеками Java.

2. На мой взгляд, на сегодняшний день наиболее актуальными средами разработки являются Emacs/CIDER, IntelliJ IDEA/Cursive, Visual Studio Code/СlojureVSCode.

3. Ситуация, как и с любой вакансией в сфере разработки ПО: есть техническое образование – хорошо, нет – не критично, если есть опыт.

4. Большая часть вакансий не предполагает предыдущего опыта работы с Clojure. Если такового нет – достаточно понимания функциональной парадигмы и опыта в два-три года с любым другим языком. Как и везде, засчитываются рабочие Оpen Source-проекты.

5. Специфических» требований не встречал.


Константин МашировКонстантин Маширов, разработчик Fullstack Clojure в XLucidity Ltd

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

Разработчик Clojure должен уметь писать короткий понятный и тестируемый код. Точнее, Clojure дает эту возможность.

2. IntelliJ Idea + Cursive; Visual Studio Code; Emacs; Vim.

3. Обычно опыт важнее образования, и главное, чтобы был интерес в саморазвитии.

4. Зависит от уровня позиции, но так как найти Clojure-разработчиков сложно, компании готовы нанимать людей без опыта в Clojure, но с опытом (два-три года) в Java/JavaScript.

5. Опыт работы определяет круг задач, который сотрудник способен решать.


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


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

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

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

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

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