0

Гайд по вакансиям в Веб Разработке

 7 months ago
source link: https://mkdev.me/ru/posts/gayd-po-vakansiyam-v-veb-razrabotke
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Гайд по вакансиям в Веб Разработке

gayd_po_vakansiyam_v_web_razrabotke.png?1478767317

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

gayd_po_vakansiyam_v_web_razrabotke.png?1478767317

Итак, вы решили стать Веб разработчиком. Вы знаете три магических термина HTML / CSS / JS и полагаете, что станете востребованным специалистом, как только освоите все три в совершенстве. Вы представляете, как будете учить их последовательно, один за другим. Заполните портфолио. Найдёте вакансию Junior. Утрёте нос сомневавшимся.

На самом деле, даже Фронтенд разработчик – вымирающий вид. Но не потому, что работы становится меньше :) Скорее – наоборот. Ежедневно растущая сумма знаний не оставляет шансов для широких категорий. Абстрактные «программисты» существуют только в фильмах о хакерах и в народном представлении. Так и фронтенд разработчики, постепенно, становятся абстракцией, разделяясь на всё более узкие специальности.

К сожалению, большинство рекрутеров плохо представляют специфику работы людей, которых они трудоустраивают. Сделаем скидку на то, что IT-рекрутинг тоже молодая дисциплина. Вольно или невольно – рекрутеры создают своего рода «дезинформационное поле».

Если у вас есть опыт аренды жилья, вы, вероятно, сталкивались с фразой «Интернет Wi-Fi». Риэлторы обожают это словосочетание. Не пытайтесь объяснить им, что Wi-Fi это способ раздачи от подведённого источника, и вас интересует именно последний. «Интернет Wi-Fi» может оказаться чем угодно: ADSL, 3G, оптоволокном...

Фундаментальное непонимание ничуть не мешает риэлторам тиражировать бессмысленную фразу. Та же история с рекрутерами.

Давайте разберёмся, какие титулы вакансий, подходящие под определение «веб-разработки», популярны сегодня. Сразу отмечу, что данный гайд не претендует на полноту и отражает точку зрения человека, использующего JS как основной язык.

Титулы вакансий

Web Developer

Синонимы: веб-разработчик, веб-инженер

Обычно, подразумевает использование каких-либо CMS. Некоторые люди на полном серьёзе считают, что начинающие используют «простые CMS», а эксперты – «продвинутые CMS». Хинт: если человек спрашивает – Какую CMS используете? у компании программистов в конференц-зале – вероятно, он полный нуб. И это не обвинение, а констатация факта. Серьёзные современные проекты не используют CMS, ну разве что в качестве вспомогательного инструмента. Wordpress для ведения блога компании – да, возможно. Wordpress в качестве магазина – уже сомнительно. «Социальная сеть на Joomla» – фантазии подростка. CMS имеют свое место на рынке, но они давно перестали быть «государствообразующим» элементом.

«Делать сайт на CMS» примерно тоже самое, что «клепать дизайны под ThemeForest». «Копейка рубль бережёт!» – Nuff Said.

Веб-инженер занимается контентом, «правит» вёрстку, делает разное и (occasionally) программирует. Web Developer – это низший уровень из всех возможных «веб-разработчиков». В случае с фрилансом, под веб-разработчиком, обычно, подразумевается «человек-оркестр», а точнее – «человек-батрак».

Срчно!!! Ищем терпеливого веба-разработчека!

CSS / HTML Developer / Markup Developer

Синонимы: верстальщик

Должность, на которой требуется верстать дизайн. Требования к знанию JS и программирования минимальные или отсутствуют. Желательно необходимо знание основ дизайна, т.к. дизайн почти никогда не переводится из PSD в HTML один-к-одному. «Pixel-Perfect» – фраза-«звоночек». Маркер менеджера-самодура, ни имеющего ни малейшего понятия о том, как работает браузер и замеряющего качество работы попиксельным (с зумом!) сравнением PSD макета и HTML страницы. Попытки объяснить разницу между рендерингом шрифта в фотошопе и в браузере, обычно, воспринимаются как «споры вместо работы». Избегайте «попиксельных» вакансий всеми силами.

Верстальщик всегда дорабатывает за дизайнером. Веб-программист всегда дорабатывает за верстальщиком. Соседние пары в этой цепочке почти всегда недолюбливают друг-друга по этой причине.

Иван не только знает всё о профессиях из этой статьи, но и поможет их освоить, составить правильное резюме и подготовиться к собеседованию. Записаться

FrontEnd Designer / Web Designer

Синонимы: веб-дизайнер

Самизнаетекто™. От специалиста требуется знание визуального дизайна (возможно, дизайна интерфейсов), знание типографики, владение Photoshop. Знание JS, обычно, не требуется.

На западном рынке, дизайнеры обычно занимаются и вёрсткой. Во-первых современная вёрстка, с учётом респонсив- и адаптив- приставок и анимаций посредственно описывается статической картинкой. Вы часто видели дизайнера показывающего анимацию и мобильную версию? Я тоже. Обычно, их возможности ограничиваются выбором из библиотечных анимаций (подобранных программистом!). Во-вторых (но по той же причине), настоящему специалисту часто оказывается проще сделать дизайн сразу в виде вёрстки. Зачем делать работу X + Y, если можно обойтись Y?

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

Interface Developer / UI-UX Designer

Похоже на предыдущий вариант, но с упором на дизайн интеракций. Специалисты на этой должности, обычно, много общаются с программистами, с клиентами, с менеджерами, потом опять с программистами... По этой причине, желательно знание основ разработки ПО и коммуникативные навыки. Очень часто, вакансия также требует знания специфики мобильной разработки, т.к. двух UI/UX экспертов нанимают довольно редко. Имейте в виду, что по этому направлению сложно найти материал для самообучения, что может идти как в плюс (меньше конкуренция) так и в минус (сложнее освоить). Если же вы способны учиться на примерах – проблем быть не должно.

Mobile / Tablet FrontEnd Developer

Должность для разработчика, специализирующегося на мобильных устройствах. Требуется знание специфики платформ IOS и Android. React Native – современный вариант этой специализации, позволяющий использовать веб-технологии для создания нативных приложений. Хинт: веб-приложения, гибридные приложения, нативные приложения и нативные приложения на веб-технологиях – это всё разные вещи.

FrontEnd Developer / Engineer

Синонимы: фронтендщик, фронтенд-разработчик

Обобщённое название должности для разработчика, владеющего HTML / JS / CSS. Обычно встречается в небольших компаниях, где на одного человека возлагается широкий спектр задач. Знание дизайна, вероятно, не требуется, но будет идти как бонус. В современных условиях, всё чаще заменяется на титул конкретной технологии: jQuery Developer, Backbone Developer, React Developer, Angular Developer... Умения программировать и верстать входят в пакет требований.

JS Developer / FrontEnd Programmer

Синонимы: JS разработчик* / JS программист

То же, что и предыдущее, с большим упором на программирование и меньшим на вёрстку и дизайн. Вообще, термин Developer (Engineer в меньшей степени) вместо Programmer, может означать что программирования будет меньше, а «всякой всячины» – больше. Кроме случаев, когда язык программирования указан явно (JS developer ~= JS programmer).

JS Developer может означать и FullStack (см. ниже). В этом случае, компания, вероятно, планирует определиться с вашей специализацией позже – когда будут ясны ваши сильные и слабые стороны. Или же когда иные рабочие места распределятся. Поэтому, JS Developer почти всегда идёт в паре с Junior или Senior / Middle.

FrontEnd SEO expert

Редкая должность, на которой требуется оптимизировать HTML код согласно требованиям и пожеланиям поисковых систем (Google / Yandex). Специфические знания: микро-форматы, микро-разметка. Учитывая, что SEO вымирает и заменяется классическим маркетингом – рекомендую избегать всего, что содержит данный акроним. Если поиск работы не ваше хобби, конечно.

FrontEnd Accessibility expert

Упор на оптимизацию сайта под специальные ридеры (например, для людей с ограниченным зрением). Исключительно редкая должность. Занесена в Красную книгу. Встречается только на крупных проектах.

FrontEnd Dev. Ops

Должность для специалиста по вопросам сборки, автоматизации, интеграции фронт-енд приложений. Встречается, преимущественно, в крупных компаниях, т.к. подразумевает довольно узкий спектр задач. Актуальные знания: Webpack / Gulp / Grunt. Со временем, у вас начнут спрашивать чем вы, собственно, занимаетесь...

FrontEnd Testing / QA

Должность для специалиста по тестированию / контролю качества фронтенд приложений. Встречается в крупных и средних компаниях. Актуальные знания: юнит-тесты, функциональные тесты, A/B тесты, ручное тестирование и автоматизация. Коммуникативные способности входят в список требований.

Многие люди ошибочно полагают, что «тестировщик» – более простая работа, чем «программист». Да, иногда встречаются вакансии где можно «кликать по ссылкам» и «составлять отчёты». Но это исключения.

Заставить Selenium NightmareJS гулять по приложению, создавая скриншоты и выполняя регресионные тесты не так уж и просто. Ведь это, по сути, фуллстек разработка. Работа ведётся сразу в нескольких средах (Electron + Chromium) и требует хороших фундаментальных знаний.

FullStack Developer / Engineer / Programmer

Должность для эксперта по полному стеку веб-технологий. Подразумевает понимание клиент-серверного взаимодействия, опыт работы с базами данных, знание асинхронного программирования и др. Выбор серьёзно настроенных людей.

FullStack делится на две категории: FullStack-JS и всё остальное. В первом случае, как несложно догадаться, на сервере и на клиенте используется JS. Во втором случае – на сервере используется Ruby / Python / PHP.

Для начинающих, чтобы не распыляться между разными языками и платформами, настоятельно рекомендую отдавать предпочтение первому варианту (по возможности). Учить сразу несколько языков – работа на износ.

FullStack JS предполагает использование феб-фреймворков на базе NodeJS. Это может быть монолитный фуллстек фреймворк (типа MeteorJS), реактивный бекенд с минималистичным клиентом (типа HorizonIO) или сборка из независимых библиотек (типа KoaJS + ReactJS). Все они имеют свои преимущества и недостатки.

FullStack JS часто используется в приложениях реального времени: чаты (а-ля Slack / Gitter), финансовые приложения (масштабируемость, PayPal...), игровые сервера. Возможность пушить информацию на клиент (создавая риал-тайм) практически «из коробки» – основной двигатель роста этой технологии.

[Whatever] Architect

Высший градус классического программирования. Любая вакансия со словом Architect предполагает Senior специалиста и, вероятно, не представляет интереса в краткосрочной перспективе для вас, дорогой читатель.

[Whatever] Lead

Вакансии лида бывают очень разные. Сколько компаний – столько разных лидов. С другой стороны, этот тот случай, когда человек определяет место, а не место – человека. Для начинающих – интереса не представляет, т.к. Junior Lead – такой же нонсенс как Junior Architect.

NodeJS Developer / Backend JS Developer

JS бекендщик. «Великий и ужасный» NodeJS – что только не говорили по его поводу. Восхваления, обвинения в «хипстерстве» – было всё... Sapienti Sat. Работа предполагает знание асинхронного программирования, потоков, баз данных, REST API. Близко к FullStack JS (минус требования к знаниям вёрстки и дизайна).

Приглянулась профессия? Мы поможем подобрать ментора, который обучит основам профессии и поможет найти работу

Что выбрать

С моей точки зрения, учить стоит FullStack JS, даже если планируется работа по FrontEnd. Человек, не имеющий представления о том как работает сервер, – не сможет настроить даже сборку бандла. «Малоизвестный факт»: современный фронтенд собирается с помощью NodeJS, а пакеты инсталлируются через NPM (часть NodeJS экосистемы).

Знание бекенда на уровне:

  • умею развернуть простейший REST API
  • умею запускать NPM скрипты
  • умею инсталлировать зависимости

повысит шансы найти работу React или Angular разработчика на порядок.

Освоить NodeJS, по сути, проще чем браузер, т.к. среда NodeJS сравнительно проще. Плюс работа с файловой системой, минус тонны Web API и vendor-specific ерунды.

В общем и целом – учить нужно то, что интересно лично вам, не заморачиваясь на «востребованность» специализации. Рынок веб-разработки уже устоялся и баланс между спросом и предложением практически одинаков по всем имеющимся категориям. «По Angular много вакансий» – это ваша точка зрения. «По Angular много резюме» – точка зрения рекрутера.

При выборе направления, не гонитесь за простотой (пресловутый «ручной тестировщик»). Индийцы не дремлют, а зверски демпингуют. Все тренды показывают, что будущее за программированием, обоснованным теорией (функциональное программирование, статическая типизация) и математикой. Поинтересуйтесь числом вакансий по машинному обучению. Делайте ставки на долгосрочную перспективу. Ищите по слову «интерн», а не «джун». Интерн позволит вам увидеть команду в деле. Лучше «не подойти», чем увольняться через два месяца. Второе будет ломать вас психологически. «Найти работу в хорошей команде» – совсем не то же самое что «найти работу».

Рекрутеры не любят «любых» работников. Рассматривая вакансии начинающих, они ищут людей, которые уже определились с тем, чего хотят. Чем более точным и узконаправленным будет ваше резюме – тем больше у вас шансов. Ибо даже если вы найдёте «любую работу» – вашей следующей задачей будет поиск «лучшей работы». И когда вы планируете закончить с поиском и начать получать удовольствие от жизни?

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

Вёрстка требует невероятной усидчивости. Любите игру «Найди 10 отличий»? Тогда это для вас. Нет – не насилуйте себя.

Если ваше воображение не включается «по щелчку» – дизайн не для вас. Хороший дизайнер управляемо вызывает необходимые эмоции у себя и переносит их в визуальную форму. Если вы безэмоциональный человек – ваш дизайн будет мёртвым. Если у вас нет визуальной интуиции, нет врождённого чувства цвета и формы – вы не добьётесь успеха в этом направлении. Да, можно копипастить чужие идеи, втайне презирая себя за проф-непригодность, но зачем?

Найдите свои самые сильные стороны и сделайте ставку на них. Найдите свои самые слабые стороны и взвесьте – не помешают ли они в выбираемой профессии. Всё что «посрединке» – оставьте в покое.

Желаю Удачи!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK