Вакансия: Frontend-разработчик React::Журнал СА 01-02.2019
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
О журнале
Журнал «БИТ»
Информация для ВАК
Звезды «СА»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Игры
Контакты
   


  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

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

1001 и 1 книга  
27.03.2019г.
Просмотров: 255
Комментарии: 0
Arduino Uno и Raspberry Pi 3: от схемотехники к интернету вещей

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

27.03.2019г.
Просмотров: 199
Комментарии: 0
Автоматизация программируемых сетей

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

27.03.2019г.
Просмотров: 229
Комментарии: 0
Изучаем pandas. Второе издание

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

27.03.2019г.
Просмотров: 178
Комментарии: 0
Компьютерное зрение. Теория и алгоритмы

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

13.03.2019г.
Просмотров: 388
Комментарии: 0
DevOps для ИТ-менеджеров

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

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Вакансия: Frontend-разработчик React

Архив номеров / 2019 / Выпуск №01-02 (194-195) / Вакансия: Frontend-разработчик React

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

Вакансия: Frontend-разработчик React

В 2013 году компания Facebook/Instagram выпустила React – библиотеку компонентов пользовательского интерфейса – как проект ПО с открытым исходным кодом. Многие известные компании используют ее в своей работе. В начале 2018года были опубликованы результаты опроса 23 000 JavaScript-программистов за предыдущий год: React занимает лидирующие позиции в области Frontend-библиотек. Frontend-разработчики в дефиците – только на hh.ru размещено более 4000 вакансий для разработчиков. Мы обратились к представителям компаний, чтобы выяснить, каких кандидатов они видят на этой позиции

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

Александр МайоровАлександр Майоров, CTO & co-founder at GeekJOB.ru

1. Хоть мы и говорим об узкой специализации – React-разработчик, тем не менее это все тот же Frontend-разработчик. Поэтому он должен обладать всеми теми общими знаниями, что и современный Frontend-разработчик: хорошие базовые знания в JavaScript, HTML и CSS.

Если раскрыть подробнее, что значит знать JavaScript, то получим следующие рекомендации:

  • знание версий, синтаксиса и API разных версий JavaScript (ECMAScript);
  • знание новых стандартов и возможностей (от ES5 до ES2017+);
  • понимание особенностей работы V8, знать, что такое и как работает DOM, CSSOM, Event Loop;
  • знание JS API: от WebSockets и PWA до WebRTC.
  • знание, как работают браузеры, и особенности разных браузерных движков.

Опыт работы хотя бы с одним или несколькими фреймворками (в нашем случае приоритет отдается React). Знание Node.js хотя бы на минимальном уровне для запуска инструментов. Хорошим плюсом будет опыт серверной Node.js-разработки. Также хорошим плюсом будет опыт тестирования (от Unit-тестов до e2e-тестов).

2. Хоть React и позиционируется как библиотека, но сам по себе в чистом виде не используется. Как правило, это целый набор вспомогательных библиотек и инструментов. Современный React-разработчик пользуется следующим набором: React, Redux, Webpack – это как основной минимальный комплект. Дополнительно может использоваться множество вспомогательных библиотек и инструментов от LoDash и Immutable.js до CSSinJS, JSS и другие.

3. Желательно высшее техническое, но не обязательно.

4. Если говорим про вакансии React-разработчика, то тут зависит от уровня требуемого специалиста. У опытного, естественно, должен быть опыт работы на React хотя бы 2 года. Если говорить про юниоров, то опыт работы с любым фреймворком (хотя бы даже на уровне «изучал для себя»).

Как правило, основное требование – знать хорошо базовые вещи: JS, HTML и CSS. Понимание, как работает интернет (что такое HTTP и как он устроен, что такое HTTP/2), и базовая алгоритмическая подготовка. Фреймворк – это всего лишь инструмент, который может устареть или быть вовсе не пригодным в каком-то конкретном случае. Нельзя мыслить только терминами фреймворков. Надо расширять кругозор и хорошо разбираться в базовых вещах. Вчера был React, сегодня Vue.js, а завтра это могут быть нативные WebComponents. Фреймворки рождаются и умирают. А базовые вещи остаются.

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


Константин РыжовКонстантин Рыжов, JS-разработчик, «Альфа-Банк»

1. Я считаю, что база специализации Frontend-разработчика примерно одинаковая – вне зависимости от SPA-фреймворка (Single Page Application) или библиотеки, работать приходится с UI в вебе, а значит, следует уметь и понимать его кровь и плоть – HTML, CSS и JavaScript.

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

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

2. Помимо TypeScript (последние 2-2,5 года я пишу исключительно на нем) мой инструментарий при разработке SPA на React.js лаконично дополняют сборщик Webpack, библиотека styled-components для CSS-in-JS и линтеры ESLint/TSLint.

Так или иначе, все еще приходится работать с чистым CSS либо его препроцессорами SASS/LESS, но компонентный подход с CSS-in-JS мне пришелся по душе.

Для быстрого прототипирования и запуска приложения можно использовать CLI-инструмент create-react-app, но обычно конфигурация Webpack настраивается вручную под каждый отдельный проект, ибо это более гибкий и легкий (касательно размера файла с кодом на выходе) подход.

Если вы также являетесь сторонником статической типизации, то у TypeScript есть альтернатива в виде Flow, инструмента от Facebook.

3. Требования варьируются от компании к компании. Кому-то специалисты нужны настолько сильно, что они готовы брать людей без опыта во Frontend-разработке либо со смежными знаниями и умениями (backend, mobile). Но если мыговорим о React.js в частности, то помимо базовых вещей в React и умения верстать в первую очередь ценится знание самого языка JavaScript.

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

4. Я часто вижу в вакансиях цифру в 2-3 года профессионального опыта с JavaScript и инструментами его экосистемы (SPA, линтеры, CSS-процессинг). Причем позиции разнятся от middle до senior, потому что среди компаний нет единых критериев оценки желаемой компетенции специалиста.

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

Главное, будьте готовы соответствовать своим требованиям оплаты труда – работая удаленно за доллары или в крупном городе, вы будете получать больше денег, но мало кто согласится платить много денег (это «много», кстати, у каждого свое) начинающему специалисту.

5. В прошлом, в аутсорсе, я несколько раз участвовал в иностранных проектах (США, Нидерланды, Израиль), отчего была возможность практиковать и развивать разговорный английский язык. На текущем месте работы мне это нетребуется, но я искренне рекомендую учить английский язык всем коллегам, потому что это сразу же расширяет ваши карьерные возможности, позволяя сотрудничать с людьми из других стран.


Дмитрий НовожиловДмитрий Новожилов, Frontend-разработчик в SPB TV

1. Знание JavaScript (чаще всего используются новейшие версии спецификации: ES2015 и выше), понимание компонентного подхода, умение использовать React и его API (Lifecycle methods, Context), знание основных паттернов (High Order Components, Render Props), навыки верстки и работы с DOM. Также пригодится понимание основ функционального программирования – это поможет сделать код более выразительным и переиспользуемым.

2. React-разработчик использует редактор кода (разброс вариантов велик: от минималистичного Vim до навороченных комбайнов от JetBrains), DevTools браузера и прочие инструменты: NPM/Yarn – пакетные менеджеры, Webpack для сборки модулей, Babel для преобразования последних версий EcmaScript в более старые, Eslint для статического анализа кода, Jest для тестов, Prettier для автоформатирования.

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

4. Набираем как младших разработчиков, так и более опытных. Общее умение программировать важнее конкретных технологий, которые могут быстро измениться.

5. Специфика работы с интерфейсами требует аккуратности и внимания к деталям, а высокая изменчивость фронтенд-технологий – регулярного самообразования и актуализации знаний. На React мы делаем приложения с видеосервисами нетолько для веба, но и для Smart TV. Телевизоры достаточно ограничены в ресурсах (в частности, по размеру оперативной памяти), поэтому большое внимание уделяем вопросам производительности и уменьшению размеров бандла с кодом.


Сергей ЧерепановСергей Черепанов, основатель студии аутсорса fullstack-development.com и технический директор курьерской службы ptichka.moscow

1. Любой Frontend-разработчик должен уверенно владеть HTML/CSS/JavaScript. Важны уверенные знания языка и концепций, которые использует язык (замыкания, функции высшего порядка, прототипное наследование), в таком случае даже знания самого React.js второстепенны. Знаний конкретно по React.js при приеме на работу обычно не требуем, потому как изучение и React.js и сопутствующих Redux/Redux-Saga/Regux-Form осуществимо в течение пары недель. Параллельно с обучением уже можно приносить пользу команде в работе над реальным проектом, проводя рефакторинг частей, не специфичных для React. Минимальный уровень знаний, которые нужно освоить, чтобы активно участвовать в разработке сложного приложения на React, – понимание таких концепций, как однонаправленный поток данных, иммутабельность, наследование/композиция, компоненты высшего порядка, знание JSX, жизненного цикла компонент, local state/props/context у компонент.

2. Естественно, Chrome DevTools и расширения к нему с аналогичными названиями: React DevTools, Redux DevTools, Redux Saga DevTools. Также инструменты общего назначения: сниппеты в редакторах (работа с React влечет за собой довольно много бойлерплейта), форматтеры для консистентного стиля кода (для JavaScript, например, Prettier), линтеры (мы используем TypeScript и, соответственно, как линтер у нас TSLint).

3. У нас нет требований к образованию кандидатов. Мы отлично понимаем, что могут прийти очень талантливые ребята без окончания профильного факультета, поэтому у нас есть формализованный чеклист знаний для фронтендера, вкотором практически ничего специфичного для React. В основном все касается языка JavaScript и концептуальных вещей из мира Computer Science, например про плюсы и минусы наследования. Соответственно, даже если к нам устраивается кто-нибудь без фундаментальных знаний в программировании, он со временем подтягивается до уровня тех, кто отучился 6 лет по направлению программной инженерии.

4. Мы требуем реализации как минимум парочки своих приложений среднего уровня (от пяти тысяч строк кода). При этом у нас есть своя бесплатная программа обучения для джуниоров, где они могут подтянуть теорию по Frontend-разработке, а потом реализовать три проекта: верстку страницы резюме, UI Kit с парой кастомных страниц, где необходимо самим продумать и реализовать компонентную архитектуру без фреймворков, свой кастомный плагин к jQuery ввиде конфигурируемого бегунка. После выполнения этих практических заданий следует тщательное ревью нашими сотрудниками, по завершении которого мы проверяем теоретические знания по заранее выдаваемому чеклисту (снеограниченным количеством попыток) и принимаем на работу.

5. Наше главное требование – любовь к саморазвитию. Мы требуем постоянного изучения нового, наши уровни знаний помогают каждому сотруднику построить для себя траекторию роста, с помощью которой можно за пару лет прокачаться до крепкого самостоятельно middle, способного проектировать сложные и большие приложения.


Борис КачановБорис Качанов, React-разработчик в Goodwix

1. Необходимы следующие знания и навыки:

  • HTML, CSS. Речь, конечно же, про HTML5, CSS3
  • JavaScript
    • Синтаксис языка
    • Базовые операции
    • Манипуляции с DOM
    • Прототипы
    • ES6 со всеми новыми возможностями
  • Общие знания разработки
    • Системы контроля версий
    • Понимание стека протокола TCP/IP
    • HTTP-протокол, его методы (GET, POST и т.д.)
    • Алгоритмы и структуры данных
    • И т.д.
  • Webpack
  • Навыки работы с пакетными менеджерами (npm, yarn)
  • Препроцессоры CSS (Sass, Less, PostCSS)
  • Глубокое знание библиотеки React
  • Styled components
  • State management (Redux, MobX, Flux)
  • Проверка типов с помощью PropTypes, Flow
  • Навыки работы с маршрутизацией в React-приложениях (react-router)
  • Навыки выполнения базовых запросов (fetch, axios, XMLHTTPRequest)
  • Навыки взаимодействия с API, понимание REST-архитектуры
  • Хороший уровень английского языка
  • Понимание принципов Agile

2. Инструментарий Frontend-разработчика React следующий:

  • IDE (WebStorm, VSCode)
  • Система контроля версий
  • Системы отслеживания ошибок (Jira и другие)
  • Swagger

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

4. Все зависит от того, на какую должность претендует кандидат:

  • Junior – 1 год опыта
  • Middle – 2 года опыта
  • Senior – 3 года опыта

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

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


Павел ПоповПавел Попов, ведущий разработчик в Luxoft

1. Главная задача Frontend-разработчика – предоставить пользователю информацию на его, клиентской, стороне. Важно всегда помнить, что веб-технологии, пожалуй, являются сегодня самыми кроссплатформенными и широко используемыми на самых разных устройствах. Существует масса самых разных случаев получения доступа к информации: на больших экранах и быстром интернет-соединении, на мобильных устройствах, частично отключенных возможностях браузера (например, отключение JavaScript), а также посредством преобразования текста в речь.

Учитывая все это, получается, что сам Frontend-разработчик, помимо основных технологий HTML, CSS, JS, должен знать:

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

2. Под каждую задачу Frontend-разработчик выбирает определенный инструмент:

  • редактор кода или полноценная IDE – для разработки;
  • система контроля версий – для совместной работы и хранений кодовой базы;
  • утилиты для тестирования – для повышения качества кода;
  • средства для отладки кода в браузере – чтобы не писать каждый раз console.log.

Что касается конкретных наименований и используемого софта, то это тема для долгих споров и сравнений. В моем случае это: IDE WebStorm как некоторого рода швейцарский нож для решения большей части моих задач по написанию, отладке и организации кода, Jest для тестирования React-приложений и Chrome DevTools для отладки и внесения изменений «на лету».

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

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

4. На сегодняшний день многие задачи, которые ставятся перед Frontend-разработкой, решаются с помощью фреймворков или библиотек. Конечно, основа никуда не исчезает, и без большого количества опыта работы с HTML, CSS и JS неполучится в полной мере понимать, как работает, например, React.

На мой взгляд, наиболее важен опыт работы с базовыми технологиями, потом уже идет опыт работы с библиотекой или фреймворком. Бывают также специфичные проекты, которые требуют определенного опыта, например с библиотекой D3.js для визуализации графиков.

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


Антон ПальгуновАнтон Пальгунов, Senior Frontend Developer в компании Revolut LTD

1. Из основного я выделил бы навык любить программировать, остальное обычно прилагается, так как это всеобъемлющее понятие и включает в себя потребность постоянно учиться, открывать что-то новое.

Умение разбираться в чужом коде, так как в JS сейчас правит балом npm, и все пакеты мы получаем оттуда, кроме тех, что пишем сами, а изредка и создавать запросы на добавление нужных функций в открытые библиотеки.

Делать мир лучше и удобнее, и это не пустые пафосные слова: если вы решили стать Frontend-разработчиком, перед вами открыто все на сегодня – приложения для телевизора, «умного дома», компьютера, телефона и, конечно, веб, есть возможность писать на JS. Делая крутые продукты, мы упрощаем жизнь себе и остальным.

Дополнительным навыком можно назвать внутреннее чувство прекрасного и самостоятельное создание хорошего UX/UI.

2. Для разработки можно использовать любимую операционную систему, у меня дома Windows, сервер и виртуальная машина на Ubuntu, рабочий ноутбук на MacOS, тут нет ограничений, можно выбирать близкую вам.

Также понадобится установить Node.js, браузер и IDE или любой другой редактор кода, который нравится, и пакеты для сборки проекта, например такие, как webpack, babel, TypeScript.

Но, честно сказать, на сегодня большинство Frontend-разработчиков, которых я знаю, выбирали MacOS как рабочую машину, и оно понятно: *nix-система, консоль, схожая с linux, и стабильность в работе.

IDE у каждого свои, но основная – это WebStorm, из редакторов – VS Code, Sublime и Vim.

Остальные зависят от проекта, например инструменты тестирования, отладки и сборки.

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

Плюсом идет саморазвитие, мы спрашиваем, что человек читал из профессиональной литературы, например YDKJS – Kyle Simpson и статьи на Medium и Habr? Чем увлекается помимо Frontend-разработки? Есть ли домашние проекты?

4. Опыт написания сайтов и приложений на Vanilla JS пару лет и от года с React и Redux как общего стандарта для наших проектов, но даже если человек не писал много c React, но есть опыт разработки приложений на других технологиях ипри этом имеет глубокие знания по Vanilla JS, мы его возьмем, ведь React – это библиотека, и для того, чтобы понять, как она работает, хватит двухнедельного вливания в проект. Почитать документацию и код самого React.js – этого уже достаточно для решения поставленных задач. Также мы используем TypeScript в работе, написание типизированного кода – это вложение в наше будущее для больших проектов, не обязательный пункт, но будет плюсом. И самое главное – умение тестировать свой код, y нас используется jest + enzyme для этого.

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

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

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


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

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

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

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

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