Javascript как найти работу

Время на прочтение
4 мин

Количество просмотров 18K

—  Здравствуйте, я водитель КАМАЗа!

—  Добрый день, к сожалению, в нашем автопарке только ЗИЛы, позовите следующего кандидата, пожалуйста!

Странный диалог, не так ли? Ведь очевидно, что основной профессиональный «скилл» водителя — умение управлять транспортным средством. Каким конкретно — вопрос, по большому счету, вторичный.

Всем привет, это Макс Кравец из Holyweb, и сегодня мы поговорим о том, почему фронтенд-разработчику важно учить JavaScript, а не фреймворк или библиотеку.

Впервые статья была опубликована на Tproger.

В чём вообще проблема?

Как ни странно — в техническом прогрессе. Современные фреймворки (даже если сами их создатели настаивают на термине «библиотека») имеют чрезвычайно низкий порог первоначального входа.

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

Что дальше? Репозиторий на GitHub, пара пет-проектов, сделанных на базе просмотренных курсов, рассылка резюме, приглашение на собеседование…

Заканчивается всё возмущенными репликами в профильных чатах: «Я им показываю собственную соцсеть, которую сделал в одиночку за два месяца, а они меня просят рассказать про Event loop. Им разработчики нужны или теоретики?!?!»

Без знания JavaScript джун обречён стать Ждуном

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

Остаётся или ждать просветления (смотри заголовок раздела), или становиться не React (Angular, Vue, etc), а JS-разработчиком.

Но не будем копать так глубоко, возьмём простую ситуацию из реальной жизни. Вы написали компонент, используя свой любимый фреймворк, запросили с бэка данные и даже получили их. А теперь — отсортируйте, чтобы вывести в удобном пользователю порядке и добавьте фильтры по вкусу.

Что? Для этого фреймворк не предоставил инструментов? Правильно, это не его работа! Для манипуляций с полученными данными вам понадобятся знания JavaScript и классических алгоритмов. Гугл, конечно, поможет, но… если просто «надёргать» решения из интернета, то чаще всего следующим шагом будет запрос помощи зала в профильных чатах:

Все еще не убедил? Тогда — контрольный «в голову»!

Фронтендом мир веб-разработки не ограничивается!

Кому легче найти работу: тому, кто умеет делать только левые ботинки, только правые, или тому, кто может сделать пару, которую можно носить? Приложение — это не фронт, не бэк и не данные по-отдельности. Это единое целое.

Express, Next, NestJS помогут запустить сервер, PassportJS даст методы для авторизации, TypeORM поможет организовать взаимодействие с базой данных, RxJS откроет мир реактивного программирования, Nx позволит объединить всё это в рамках единого монорепозитория, Apollo построит запросы GraphQL, а NgRx — сформирует каркас управления состоянием приложения…

Набор библиотек может меняться, как и требуемая архитектура. Не изменится суть — все это доступно разработчику, знающему JavaScript. Хотите быть востребованы как специалист? Если да, то вы уже догадались, к какому выводу я вас подвожу.

Знание JavaScript — это свобода выбора

Мы в нашей компании занимаемся аутстаффингом IT-компетенций — формируем команды специалистов и усиливаем ими внутренние отделы разработки клиентов на срок от полугода под один проект. После чего приходит очередь другого заказчика.

Что это означает на практике для исполнителя? Возможность за недолгое время поучаствовать в разработке нескольких крупных проектов в разных сегментах — это раз. Быстрый рост скилов за счет «вращения в разных кругах» — это два. Что требуется от исполнителя? По большому счёту — смотри название статьи.

Заметьте — мы говорим о JavaScript-команде. И ищем, соответственно, JS-разработчиков. Почему? Да потому, что знание JS позволяет быстро вникнуть в любой фреймворк или библиотеку. Ведь в своей основе все они — лишь обёртки над самим языком

***

Будем считать, что я вас убедил. И что с этой убежденностью делать? Как изучить JavaScript в достаточном объёме за разумное время?

Те славные дни, когда начинающий разработчик обязан был накодить свой HelloWorld, ToDo и «блог с админкой», уже канули в Лету. Сегодня главный экспонат личного музея велосипедостроения уважающего себя фронтендера — собственный фреймворк на чистом JS без внешних зависимостей.

Даже если не получится составить конкуренцию лидерам (хотя как знать, как знать!), сам процесс поиска своих решений даст вам бесценный опыт и понимание не только того, как устроены современные фреймворки, но и почему они сделаны именно так. А главное — вы будете осознанно и всегда писать на JavaScript, используя требуемый в конкретном проекте фреймворк как всего лишь один из инструментов.

Остались вопросы, дополнения по теме или возражения? Пишите в комментариях.

Если хотите познакомиться с нами ближе, я всегда на связи в Facebook.

Другие наши статьи о JS:

  • Хаммер-дроны, или фабричный метод в действии

  • Security с характером, или еще несколько слов о паттерне Singleton

  • Как выдать Золушку за принца и не сойти с ума. Паттерн Декоратор

  • Погружение во внедрение зависимостей (DI), или как взломать Матрицу

Вы хотите узнать, как стать JavaScript-разработчиком? Если да, то вы попали по адресу!

JavaScript (JS) — это мощный и популярный язык программирования, который используется для создания веб-приложений и динамических веб-страниц. Это также отличный способ войти в мир IT, поскольку JavaScript является одним из самых простых и понятных языков.

Что должен знать разработчик? Каков стек его профессиональных навыков? Знания каких вещей действительно нужны в настоящей работе кодера? А какие лишь превратятся в потраченное впустую время? Мир IT глазами новичка — непроглядный лес, полный тьмы; данная статья прольет на него свет и поможет более четко осознать все нюансы, опасности и сложности, с которыми вам придется столкнуться, если вы захотите связать свою жизнь с программированием.

От установки всех необходимых программных компонентов до первого Hello, world!, от слез горя из-за многочасового поиска очередного бага до слез счастья от итогового обнаружения оного, от зеленого новичка до настоящего профи — мы проведем вас в дивный мир JavaScript.

Готовы? Начинаем!

Содержание

  1. Основные направления в JavaScript-разработке
  2. С чего начать JavaScript-разработчику
  3. Какие задачи решает JS-разработчик
  4. Общий анализ зарплат и вакансий
  5. Обучение на JavaScript-разработчика
  6. Что нужно знать, чтобы стать программистом на JavaScript?
  7. Способы обучения
  8. Обучение в вузе
  9. Курсы по языку программирования JavaScript
  10. Самостоятельное обучение
  11. Детальная пошаговая инструкция для самообучения
  12. Первый опыт и поиск работы
  13. Обязанности и требования JS-разработчика
  14. Где получить опыт работы разработчику на JavaScript
  15. Резюме
  16. Где найти работу разработчику на JavaScript?
  17. Как проходит собеседование
  18. Варианты дальнейшего развития вашей карьеры
  19. Истории и советы от состоявшихся разработчиков на JavaScript
  20. Полезные ссылки для разработчика
  21. Заключение
  22. Полезные видео для JavaScript-разработчика

Основные направления в JavaScript-разработке

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

Перечислим основные направления разработки, в которых используется JavaScript.

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

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

2. Backend developer пишет серверную часть веб-сайта, то есть код, который исполняется на удаленных серверах, а не на компьютере пользователя.

Разница между фронтенд и бекенд для JS-разработчика

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

3. Full stack developer занимается одновременно и фронтендом, и бекендом. Фулстек должен знать и уметь все то, что умеет и фронтендер, и бекендер. Спрос на таких специалистов намного выше, но, как вы понимаете, чтобы стать таким специалистом, нужно затратить в два раза больше усилий.

4. UX/UI designer разрабатывает пользовательский интерфейс везде, где такой имеется, а не только на веб-сайтах. Как было указано выше, тем же самым занимается и фронтендер. Только если для фронтендера это часть его работы, для UX/UI-дизайнера это суть его работы.

Дизайн интерфейса для пользователя нужен в любом мобильном приложении, в любой программе для ПК, в любой игре, одним словом — в любом месте, где человек чем-то пользуется. В веб-разработке UX/UI-дизайнеры обычно работают в больших компаниях на больших проектах, в компаниях поменьше их функции перекладывают на фронтендеров.

5. Desktop developer создает программы, которые будут работать на компьютере пользователя без браузера. Примерами десктоп-приложений являются все программы, которые установлены на вашем персональном компьютере: «Ворд», «Эксель», ваш любимый видеоплеер, «Фотошоп». Десктопная версия известного мессенджера Discord написана на JavaScript.

6. Mobile application developer создает мобильные приложения. Притом полностью — и серверную, и пользовательскую части. JS позволяет создавать мобильные приложения без необходимости использовать другие языки, а значит и без необходимости тратить силы и время на их изучение.

7. AI/Machine learning engineer разрабатывает модели искусственного интеллекта. Хотя JavaScript и не является основным инструментом в данной области, но также широко применим. Если вас интересует данное направление, изучением одного только JS вам не обойтись.

8. Data scientist — это специалист по работе с данными, по анализу этих данных с целью получения других, более ценных данных. Нужно понимать, что это направление связано не столько с программированием, сколько с аналитикой. JS здесь используется как один из инструментов для проведения сложных аналитических расчетов.

9. Devops engineer отвечает за автоматизацию, тестирование, развертывание и мониторинг правильной работы программного обеспечения на крупных серверах. Девопс обеспечивает эффективную и безопасную работу удаленных компьютерных центров. Это очень сложная профессия, которая тоже связана с программированием опосредованно. Девопс-инженеры в своей работе часто используют JS как основной инструмент.

С чего начать JavaScript-разработчику

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

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

Программирование — это очень сложно, порой это сложно до безумия. Даже пройти путь от новичка до первой работы — это задача далеко не из легких. Чтобы пройти этот путь, вам потребуется более сильная мотивация, нежели одно только желание много зарабатывать.

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

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

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

Какие задачи решает JS-разработчик

Как мы с вами уже выяснили, JavaScript используется в качестве базового инструмента в рамках нескольких IT-профессий. Чтобы лучше понять, какая из них вам ближе, нужно знать, с какими конкретно задачами вы можете столкнуться в каждой из них.

Разберем четыре самые популярных направления для джаваскрипт-разработчика.

1. Задачи frontend-разработчика

Основная задача для новичков, с которой вам точно придется столкнуться, — верстка веб-сайтов. Дизайнер создает изображение в формате .pdf (макет сайта), на котором будут в точности отражены блоки, рабочие области, навигации и все прочие элементы сайта. Задача верстальщика заключается в том, чтобы из макета сайта (просто картинки) создать html-страницу, которая по внешнему виду будет копией данного макета.

Задачи по верстке станут для вас ежедневными, если вы попадете на работу в веб-студию. Каждый день выполнять верстку макета с нуля вам не придется, более типичные задачи — кастомизация каких-то отдельных блоков на сайте клиента; добавление новых блоков.

Помимо верстки, вам будут давать задачи по CMS (content management system), таким как WordPress, Mangento, OpenCart. Вашей задачей будет написание мини-программ (плагинов), предоставляющих определенную функциональность, и их установка на сайте клиента. Также именно вас пошлют клиенту на помощь, если на его сайте с CMS-движком «сломается» (неожиданно перестанет работать) что-то незначительное.

Приобретя должный опыт, вы будете выполнять более ответственные задания. Используя такие популярные JavaScript-фреймворки, как React.js, Vue.js и Angular, вы будете строить интерактивные интерфейсы, разрабатывать одностраничные лендинги, создавать интерактивные компоненты. Вам будут давать задачи по верстке на этих фреймворках, но без требований к пониманию и изменению общей архитектуры приложения.

Следующим этапом профессионального роста станет доверие вам таких задач, как:

  • работа с API — вы должны будете самостоятельно написать код, который сможет отправлять запросы на серверную часть приложения и принимать оттуда ответы на эти запросы;
  • создание фильтрации — когда на сайте есть много информации в виде списка или таблицы, нужно предоставить пользователю возможность ее отфильтровать;
  • добавление и удаление различных компонентов;
  • поиск по сайту — на каждом сайте есть интерактивное окно для поиска, такие вот и вы будете создавать. Речь тут, конечно же, не столько о внешнем виде самого окна, сколько о логике поиска информации по всему сайту;
  • логика обработки ивентов — ивентом называется любое действие пользователя (даже клик мышкой). После определенных ивентов отображение различных компонентов на сайте может определенным образом меняться. Вашей задачей будет прописывание логики данных изменений.

2. Задачи backend-разработчика

Если вам придется работать с бекендом, то типичные задания могут выглядеть так:

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

3. Задачи fullstack-разработчика

Выбрав фулстек своим основным направлением, вы, по сути, будете делать все вышеописанное в пунктах про back и front.

Если вы попадете на работу в небольшую компанию, в которой не так много разработчиков, то вы в любом случае в той или иной мере будете работать как фулстек. Ибо из-за «нехватки рук» на вас будут вешать задачи как с фронта, так и с бека.

4. Задачи мобильного разработчика

Работа с приложениями для мобильных устройств похожа на работу фулстека. Ибо здесь вы тоже будете писать и клиентскую, и серверную части одновременно. Использовать для этого будете React Native.

Типичные задачи:

  • создание страницы регистрации;
  • написание внутренней логики авторизации и аутентификации;
  • создание API для связи с сервером.

Общий анализ зарплат и вакансий

При поиске первой работы вы можете наткнуться на некоторые подводные камни, непонимание сути которых может сбить вас с правильного пути. Суть одного из таких заключается в том, что приблизительно половина вакансий для JS-разработчиков без опыта работы являются крайне неадекватными. От вас будут требовать уметь абсолютно все (и даже больше), предлагая при этом работать за еду. Вас будут убеждать в том, что зарплата в 60к — это вымысел, что зарплата в 35к — это очень хороший вариант, а 20к — это то, чего вы заслуживаете.

Если вы действительно получили качественное образование, если вы действительно изучили и умеете все, что вам потребуется для работы, то пусть даже у вас еще нет полноценного коммерческого опыта, ваша минимальная зарплата должна быть на уровне 50–60к.

Некоторые не совсем честные работодатели эксплуатируют так называемый «синдром самозванца». Суть его сводится к тому, что человек склонен принижать свои реальные способности и просто не может поверить, что в IT он на первой же работе может получать в 2 раза больше, чем на своей прошлой работе, где у него, условно говоря, было 10 лет опыта. Некоторые компании используют это, чтобы убедить человека в том, что для него з/п в 20к будет отличным вариантом для старта, тогда как на деле человек заслуживает 50к и при этом реально может их получить в другой компании.

Чтобы убедиться в данной проблеме воочию, посмотрите вакансии для JS-разработчиков на hh.ru. Там возле каждой вакансии пишется, сколько человек просматривают ее прямо сейчас. Если вакансии с зарплатой до 30к смотрят 20–30 человек, то с з/п 90–120к — 3–5 человек. Попробуйте сравнить требования там и там, и вы увидите, что порой в вакансиях за 100к требования еще более адекватные, чем в вакансиях за 30к.

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

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

С учетом инсайдерской информации, полученной командой Profi-Way от многих HR-специалистов, мы можем сказать, что на данный момент на открытую вакансию JavaScript разработчика в среднем претендуют от 20 до 30 человек. Речь идет именно о тех кандидатах, которые действительно обладают должными знаниями и навыками. С учетом того, что в последнее время из-за экономической ситуации наблюдается тренд на снижение вакансий для начинающих, динамика изменений количества людей на одну позицию будет стремиться в сторону увеличения.

В JS очень высокая конкуренция, которая, соответственно, ведет к высокому порогу входа. Общая тенденция — рост популярности направлений, связанных с JavaScript не только со стороны компаний, но и со стороны тех, кто хочет войти в IT. Следовательно, чем дольше вы будете оттягивать начало своего обучения, тем сильнее будут сокращаться ваши шансы на конечный успех.

Обучение на JavaScript-разработчика

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

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

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

Никакие книги, курсы и видео с «Ютуба» не научат вас кодить. Вы станете настоящим профессионалом только тогда, когда собственноручно сделаете несколько больших проектов от и до. Примером такого проекта может быть какой-нибудь не слишком сложный сайт.

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

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

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

Что нужно знать, чтобы стать программистом на JavaScript?

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

Что нужно знать, чтобы стать программистом на JavaScript

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

  • HTML — это стандартный язык разметки, используемый для структурирования веб-страниц. Разработчик JavaScript должен уметь создавать и изменять документы HTML.
  • CSS — это язык, используемый для стилизации HTML-документов. JS-разработчик должен уметь писать и использовать CSS для создания визуально приятного дизайна.
  • DOM: объектная модель документа представляет собой древовидную структуру веб-страницы и используется для манипулирования элементами страницы. JavaScript-программист должен уметь взаимодействовать с DOM и изменять ее.
  • AJAX — это техника, используемая для отправки и получения данных с сервера без перезагрузки страницы. JavaScript-разработчик должен уметь использовать AJAX для отправки и получения данных.
  • jQuery — это библиотека JavaScript, используемая для упрощения манипуляций с DOM и запросов AJAX. Разработчик должен быть знаком с синтаксисом и методами, предоставляемыми jQuery.
  • Библиотеки и фреймворки: для создания качественных веб-приложений вы должны быть знакомы с различными библиотеками и фреймворками JavaScript, такими как Vue, React и Angular.
  • Веб-интерфейсы API: Web API — это набор API, предоставляемых браузером для доступа к определенным функциям самого браузера, таким как геолокация пользователя, данные с его видеокамеры или микрофона. Разработчик JavaScript должен уметь использовать доступные API для создания полноценных веб-приложений.
  • JSON — это формат данных, используемый для представления структур данных в текстовом формате. Разработчик JS должен уметь анализировать, создавать и манипулировать объектами JSON.
  • React.js — это библиотека, позволяющая создавать интерактивные, динамические интерфейсы, которые очень просты в поддержке и изменении.
  • Vue.js — это фреймворк для создания динамических интерфейсов. Поддерживает использование различных библиотек и многоуровневую архитектуру приложений.
  • Angular — фреймворк с открытым исходным кодом, который чаще всего используется для создания «посадочных страниц» (одностраничных сайтов).
  • Node.js — это серверная среда JavaScript, используемая для создания веб-приложений. JS-программист должен быть знаком с синтаксисом и методами, предоставляемыми Node.js для написания серверной части веб-приложений. Углубленное знание Node.js требуется backend и fullstack-разработчикам. Фронтендеру достаточно поверхностного ознакомления.
  • Пакетные менеджеры — это способ управления зависимостями и установки пакетов в проект. Разработчик должен быть знаком с популярными менеджерами пакетов, такими как npm и bower.
  • Контроль версий: системы контроля версий используются для поддержания различных версий кода и отслеживания изменений. Разработчик JavaScript должен быть знаком с популярными системами контроля версий, такими как Git.
  • Тестирование: знание различных инструментов и методов тестирования имеет большое значение в контексте избавления ваших приложений от разнообразных багов (ошибок).
  • Отладка — важный навык для любого веб-разработчика. Вы должны хорошо понимать, как использовать инструменты разработчика в браузере для выявления и устранения проблем в вашем коде.
  • Responsive Design: отзывчивый дизайн необходим для создания веб-сайтов, которые отлично смотрятся на всех устройствах. Вы должны иметь базовое представление о том, как создать отзывчивый дизайн и как использовать медиазапросы для определения различных параметров устройства, в частности размеров его экрана.

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

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

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

Способы обучения

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

Обучение в вузе

Многие, задаваясь вопросом о том, как стать JavaScript-разработчиком, думают о поступлении в вуз. Но все не так просто. Первое, что вам следует узнать: в вузах нет таких программ подготовки, как «разработчик на JavaScript» или «JavaScript-frontend-developer», «JavaScript-backend-developer», «JavaScript-mobile-developer» и т. д. То есть обучение в вузе конкретно на JavaScript-программиста невозможно.

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

Обучение в вузе на JS-разработчика

Не забывая про тему нашей статьи, нужно также заметить, что JavaScript в вузах изучается нечасто. Зависит, конечно же, от каждого отдельно взятого учебного заведения, но в общем и целом C++, C#, Java (и в последнее время Python) куда чаще встречаются в качестве учебных дисциплин. Связано это в первую очередь с тем, что JS постоянно меняется, постоянно появляются и входят в моду какие-то новые библиотеки, новые фреймворки.

Если вы все-таки рассматриваете вариант поступления в вуз как основной, примите во внимание следующие моменты:

  • В большинстве вузов в программах обучения для разработчиков делается очень большой уклон в математику. А как мы уже писали, если вы не планируете заниматься созданием ИИ, то в реальной работе вам будет достаточно знаний математики уровня средней школы. И следовательно, в контексте последующего профессионального применения столь углубленное изучение математики обернется растратой вашего времени.
  • Если вы рассматриваете как варианты для поступления не крупные престижные вузы, а маленькие региональные учебные заведения, то готовьтесь стать главным героем фильма ужасов. В подобного рода местах вы столкнетесь с таким явлением, как написание конспектов. Это когда преподаватель приходит в большую аудиторию и начинает со своих бумажек зачитывать какую-то информацию (которая еще и нередко оказывается устаревшей и бесполезной), а вы должны будете прямо ручкой прямо в бумажной тетради все это записывать. Нет таких записей за целый семестр — нет допуска к экзамену/зачету. Мы вам ответственно заявляем, что подобная деятельность не имеет ничего даже приблизительно, относительно, отдаленно общего с приобретением профессиональных навыков, необходимых для трудоустройства.
  • Часто в вузах можно встретить устаревшую программу подготовки. Далеко не все преподаватели являются в то же время еще и практикующими программистами. Это, скорее, исключение из правил. Подавляющее большинство преподавателей отстают от трендов развития IT-индустрии и потому не просто не способны дать своим студентам актуальные знания, но еще и будут тормозить их развитие требованиями изучения устаревших технологий и подходов.

Конечно же, не все так ужасно. В высшем образовании есть и масса плюсов:

  • Главный плюс — тусовка. Вы окажетесь в окружении своих единомышленников, таких же людей, как и вы, с теми же проблемами и желаниями. Если вы еще юны и думаете о том, поступать ли вам в вуз после школы, то тут и думать не о чем. Однозначно да! Возможно, вы этого еще не понимаете, но один только этот плюс начисто перекрывает все минусы. Студенческие годы — это особая часть вашей жизни, возможно, лучшая часть вашей жизни. Сознательный отказ от нее — это большая ошибка.
  • Вы, вероятно, думаете, что, поступив в вуз, вы потеряете четыре (а то и больше) года своей жизни? Нет. Большинство студентов начинают работать уже на втором курсе. То есть через 1,5–2 года обучения. И сам факт обучения в вузе поможет получить работу. Если речь об обучении в престижных вузах, то на студентов подобных заведений «охотятся» лучшие компании страны. Если будете старательно учиться, то уже на втором курсе вы сможете получить стажировку в «Яндексе» с зарплатой 40–60к. Если продолжите работать, то к моменту окончания вуза ваша зарплата может быть около 200к.
  • Высшее техническое образование всегда будет плюсом при трудоустройстве. Если у работодателя будет вариант выбора между вами с дипломом и человеком примерно вашего уровня навыков, но без диплома, несомненно, выберут вас.

Самыми престижными считаются следующие учебные заведения:

  • Московский физико-технический институт (МФТИ).
  • Высшая школа экономики (ВШЭ).
  • Московский государственный технический университет им. Н. Э. Баумана (МГТУ).
  • Университет Иннополис.
  • Санкт-Петербургский государственный университет (СПбГУ).

Главный критерий оценки престижности университета — зарплата выпускников после окончания вузов. Портал для поиска работы Superjob.ru предоставляет актуальный рейтинг вузов по данному показателю: https://students.superjob.ru/reiting-vuzov/it/?ysclid=lehf7fvu9o291486221

Рейтинг технических вузов для JS-программиста

Курсы по языку программирования JavaScript

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

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

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

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

Список популярных онлайн-курсов для JavaScript-разработчика:

1. Курс JavaScript от Skillbox.

Курс JavaScript от Skillbox

Skillbox является популярной онлайн-школой не просто так, а благодаря предоставлению качественных услуг в сфере образования. Курс по JavaScript разработан для верстальщиков и начинающих frontend-разработчиков.

Курс научит создавать динамические элементы на сайте, обрабатывать события в браузере, разделять код на модули, создавать асинхронные запросы, владеть ООП, тестировать код. К концу обучения студент будет иметь 2 серьезных проекта в портфолио. Обучение занимает 4 месяца. Есть рассрочка на 12 месяцев.

Ссылка на страницу курса: https://skillbox.ru/course/javascript/.

2. Курс «Fullstack-разработчик на JavaScript» от «Нетологии».

Курс «Fullstack-разработчик на JavaScript» от «Нетологии».

Обширная программа от «Нетологии», имеющей наивысший процент клиентов, довольных обучением. Данный курс посвящен не просто обучению JavaScript, а fullstack-разработке, которая включает в себя и frontend, и backend.

Освоить профессию может любой желающий с нуля, а также специалист, который хочет перейти на fullstack. На курсе он научится создавать сайты на JavaScript и TypeScript. Благодаря множеству практических занятий студент будет иметь впечатляющее портфолио к концу курса. Длительность обучения составляет 21 месяц. Есть рассрочка на 24 месяца.

Ссылка на страницу курса: https://netology.ru/programs/javascript-fullstack.

3. Курс «Инженер-программист JavaScript» от GeekBrains.

Курс «Инженер-программист JavaScript» от GeekBrains.

Курс от онлайн-школы IT-профессий GeekBrains, посвященный JavaScript. Он подойдет для изучения с нуля или перехода из других языков программирования.

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

Для покупки курса доступно 3 пакета: junior на 12 месяцев, middle на 24 месяца, middle+ на 36 месяцев. Есть рассрочка на 36 месяцев.

Ссылка на страницу курса: https://gb.ru/geek_university/developer/programmer/javascript.

Также у GeekBrains есть базовый курс по JavaScript на 1 месяц из 8 уроков: https://gb.ru/courses/139.

4. Курсы по JavaScript от SkillFactory.

Курсы по JavaScript от школы SkillFactory.

Курсы от онлайн-школы SkillFactory, входящей в число популярных и фокусирующейся на IT-профессиях. Образовательная площадка предлагает 8 курсов, связанных с языком программирования JavaScript: «Fullstack-разработчик на Python», «Fullstack-разработчик на PHP и JavaScript», «Frontend-разработчик» (и интенсив, и курс), «Backend-разработчик на PHP», «Frontend-разработчик PRO», «Алгоритмы и структуры данных», «Веб-разработчик с нуля».

Посмотреть все курсы можно на этой странице: https://skillfactory.ru/courses/javascript.

Самостоятельное обучение

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

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

В первую очередь речь о самодисциплине. Пробовали когда-нибудь договариваться с самим собой? Правда ведь, это несложно? Как себя чувствуете? Устали сегодня? Может быть, вместо того чтобы провести этот вечер в компании противных CSS, AJAX и Git, как-нибудь договоритесь с самим собой и проведете его с пивом и «Дотой»? А ко всем этим джаваскриптным внутренностям вернетесь завтра, а лучше послезавтра (а еще лучше никогда)? Если в подобных вопросах вы человек договороспособный, то поймите это сразу: самообучение явно не ваш путь.

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

Далее команда Profi-Way подготовила для вас пошаговый план, который покажет, как научиться языку JavaScript самостоятельно.

Детальная пошаговая инструкция для самообучения

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

Подробная инструкция по самообучению для JavaScript-программиста

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

Готовы? Тогда давайте начнем!

Шаг № 0. Установка всех необходимых программ на ваш компьютер

Пользователи «Линукс» разъяснения данного шага не требуют. Если же у вас Windows, то сделайте следующее:

  1. Скачайте и установите текстовый редактор для средних и мощных компьютеров — Visual Studio: https://visualstudio.microsoft.com/downloads/; для слабых компьютеров — Sublimetext: https://www.sublimetext.com/download
  2. Убедитесь, что ваш браузер не Internet Explorer. Если вы используете Internet Explorer, то установите, пожалуйста, браузер. Подойдет Google Chrome или Firefox.

Шаг № 1. Ваш первый «Хэллоу уорлд»

  1. На рабочем столе или в любой другой папке вашего компьютера создайте пустой текстовый файл (с расширением .txt).
  2. Переименуйте этот текстовый файл (расширение .txt переименуйте тоже) в index.html.
  3. Откройте index.html для редактирования в вашем текстовом редакторе.
  4. Собственными руками введите в index.html следующий код: Первый Hello, world на JavaScript
    Вводите точь-в-точь, одна маленькая ошибка — и все старания пойдут прахом
  5. После того как все будет готово, сохраните файл index.html с помощью комбинации клавиш Ctrl+S либо «Файл»/«Сохранить».
  6. Откройте файл index.html в браузере. Для этого нажмите на index.html правой кнопкой мыши и выберите пункт «Открыть с помощью», далее выберите свой браузер. Аналогичный вариант: просто откройте браузер и перетащите в него файл index.html.
  7. Момент истины! Посмотрите в браузер. Что там видно?Если видите в нем «Ну че, привет мир!!!», отойдите от компьютера к центру комнаты и во весь голос громко-громко прокричите: «У-у-и-и-и!!!». Только что вы написали свою первую программу. Теперь вы один из нас. Добро пожаловать в клуб, бро!Если вдруг не видите, то откройте файл index.html в редакторе, перепроверьте. Если что-то не так, внесите изменения, обязательно (!) сохраните его и попытайтесь снова открыть его в браузере. Если что-то не получается, не расстраивайтесь. Перепроверьте еще раз. Не у всех все получается с первого раза, не все люди идеальны, кто-то вон вообще Киркоров =)
  8. Чтобы прочувствовать этот момент получше, попробуйте поменять текст «Ну че, привет мир!!!» на свою версию. Первый код на JS
    После каждого изменения сохраняйте файл «index.html». Перетаскивать его в браузер каждый раз не нужно, просто перезагружайте страницу
  9. После каждого изменения текста и перезагрузки страницы вы должны видеть в браузере то, что написали в index.html в месте, отмеченном на изображении выше.

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

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

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

Шаг № 2. Базовое понимание HTML

HTML — это «язык» разметки, на котором пишется код, определяющий структуру веб-страницы. От HTML зависит, в каком конкретно месте на странице будет располагаться та или иная ее часть: где будет навигация, где блок с текстом, где реклама, где шапка сайта, где блок с контактными данными и т. д.

На данном этапе обучения вам не требуются обширные знания о работе и написании HTML. Проработайте следующее видео и попрактикуйтесь в редакторе. Этого будет достаточно.

Шаг № 3. Базовое понимание CSS

CSS, или же каскадная таблица стилей, определяет внешний вид HTML. Если HTML отвечает за структуру расположения информации на странице, то CSS отвечает за внешний вид HTML-элементов или целых блоков на веб-странице.

Знания CSS для JS-программиста

Просмотрите данный плейлист с уроками по CSS. Обязательно практикуйтесь после каждого видео.

Шаг № 4. Разбираемся с понятием переменных

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

Изучите эту тему более подробно, посмотрев данное видео:

Шаг № 5. Изучаем типы данных в JS

Типы данных определяют тип информации, которую мы можем хранить в переменных. В JS существует 7 самых простых типов данных: Number, BigInt, String, Boolean, Null, Undefined, Symbol.

Посмотрите видео, чтобы понять тему лучше.

Шаг № 6. Разбираемся с преобразованием типов

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

Изучите видео.

Шаг № 7. Знакомство со структурами данных

Структуры данных — это формат организации и управления хранением данных таким образом, чтобы их можно было эффективно модифицировать и получать. В JS есть примитивные (built-in) и непримитивные (not built-in) структуры данных. Примитивные — это те, которые доступны из коробки (array или number). Непримитивные недоступны по дефолту, вы должны будете импортировать их для дальнейшего использования.

Проработайте видео.

Шаг № 8. Разбираем операторы сравнения в JS

Операторы сравнения используются для определения равенства или разницы между переменными или значениями. Операторы сравнения часто используются в if/else-конструкциях.

Просмотрите видео.

Шаг № 9. Циклы и итерации

Циклы дают вам возможность быстро и легко делать что-то «по кругу» (потому они и циклы).

Смотрите видео.

Шаг № 10. Конструкция Try/Catch

Изучите искусство обустройства капканов для потенциальных ошибок в вашем коде.

Смотрите видео.

Шаг № 11. Математические операции в JS

Изучите базовые математические операции, доступные в JavaScript (+-/*).

Шаг № 12. Функции

Функции — это базовый инструмент для повторного использования кода. Функция представляет собой блок кода, который будет запущен там, где вам нужно.

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

Следующее видео описывает 10 проектов, которые дадут вам именно то, что нужно.

Автор видео сначала показывает то, что нужно сделать, после чего показывает, как он это воплотил в виде кода. Вам не нужно у него списывать, не нужно даже смотреть на его код. Как только вы увидели проект, поняли, в чем суть задачи, открывайте свой редактор и пишите все полностью самостоятельно. После сравните свой код с кодом автора видео.

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

Практикуйтесь каждый день

Ваше дальнейшее развитие должно быть направлено на получение работы. Просмотрите это видео.

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

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

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

Так вы уже перейдете в сферу IT. Сейчас легко не будет. Вам еще нужно параллельно учить JS, притом очень интенсивно учить. Но в будущем это станет весомым плюсом при поиске первой работы.

Ссылка на подходящий курс по верстке: https://www.youtube.com/playlist?list=PLNaJj8xMY1XQgYzVhLEFD4WSKqEhj4Sx1

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

Наша команда рекомендует вам следующие книги по разработке на JavaScript:

  • «Изучаем программирование на JavaScript», Фримен, Робсон.
  • «Как устроен JavaScript», Д. Крокфорд.
  • «Изучаем JavaScript. Руководство по созданию современных веб-сайтов», Э. Браун.
  • «Секреты JavaScript ниндзя», Резиг, Бибо, Марас.
  • «Выразительный JavaScript. Современное веб-программирование», М. Хавербеке.
  • «JavaScript. Оптимизация производительности», Н. Закас.
  • «Рефакторинг кода на JavaScript», М. Фаулер.

Первый опыт и поиск работы

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

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

Процесс получения работы в IT состоит из трех простых шагов:

  • вы отправляете резюме;
  • вы проходите собеседование с HR-специалистом;
  • вы проходите техническое собеседование у будущих коллег.

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

Собеседование с HR представляет из себя онлайн-беседу с целью подтверждения вашей адекватности, а также, возможно, проверку технологий, с которыми вы работали (вашего технического стека). Под «проверкой» со стороны HR понимается, что у вас просто спросят, с чем вы работали, а с чем не работали.

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

Прежде чем подавать резюме, вам нужно понимать, в какой именно компании вы собираетесь работать. IT-компании делятся на 3 вида:

  1. Аутсорс-компания. Фирмы такого типа предоставляют услуги по разработке для других крупных фирм. Например, какой-то компании из США нужно создать многофункциональный дорогой сайт. Нанимать для этой задачи людей в США будет дорого. Куда выгоднее нанять их в РФ или Белоруссии. Заниматься поиском на другом конце света достаточно квалифицированных для выполнения подобной задачи кадров будет также слишком дорого. Поэтому компания обратится в местную (российскую, белорусскую) аутсорс-компанию, которая возьмет на себя весь процесс поиска и найма необходимых сотрудников. Аутсорс-компания — это посредник между местными программистами и зарубежным заказчиком.
  2. Аутстаф-компания. Аутстафинг — это вывод персонала за пределы штата компании. Программист становится субподрядчиком, грубо говоря, обычным фрилансером. Часто такая работа имеет разовый или временный характер. Делается это для того, чтобы компания могла платить меньше налогов.
  3. Продуктовая компания. Компания, которая целиком и полностью разрабатывает свой продукт сама и потому содержит в своем штате всех программистов, которые нужны ей для разработки.

Также работу программиста можно разделить на продуктовую и проектную. В данном контексте под проектом подразумевают что-то, что рано или поздно закончится в обозримом будущем. Под продуктом подразумевают что-то, что должно просуществовать если уж не вечно, то очень долго.

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

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

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

Насторожитесь, если в компании вам обещают:

  • работу только с CMS-системами без развития как JS-разработчика;
  • работу с jQuery, который сейчас в больших серьезных проектах не используется;
  • работу по очень легким задачам: перекрасить кнопку, передвинуть поле ввода, добавить что-то в форму и т. д.

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

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

Обязанности и требования JS-разработчика

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

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

Как вы уже догадались, на одно-единственное место стажера обычно претендует несколько сотен тысяч кандидатов (или приблизительно около того). Поэтому очень часто стажировки не оплачиваются. Но даже стажировка без оплаты в хорошей компании — это неплохой шанс получить опыт, прокачать все необходимые навыки и через 4–6 месяцев напряженной работы и развития претендовать на уже хорошо оплачиваемую позицию джуниора.

Типичные обязанности, с которыми вы столкнетесь, работая JavaScript-разработчиком:

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

В вакансиях для JS-девелоперов вы чаще всего будете встречать следующие требования:

  • Глубокие знания JavaScript. Вы должны знать свой основной язык вдоль и поперек. Вы должны быть способны написать что угодно на JS без использования дополнительных библиотек и фреймворков.
  • Кросс-браузерная адаптивная верстка. Вы должны уметь верстать таким образом, чтобы ваша работа хорошо отображалась на любых платформах (ПК, планшеты, телефоны). Для фронтендера это базовый навык.
  • Отличные знания HTML/CSS, Bootstrap. Вам нужно уметь создавать HTML-каркас сайта и менять его визуальное отображение с помощью CSS. Bootstrap — это фреймворк, который поможет вам ускорить работу.
  • Опыт проектирования и использования API, хорошее представление о HTTP (заголовки, методы, статусы). От вас требуется умение правильно взаимодействовать с сервером через отправку корректных запросов. Для джуниора это must have.
  • Владение искусством дебагинга. Вам нужно уметь быстро находить ошибки в своем и чужом коде. Пишите как можно больше программ, тренируйтесь как можно больше на практике, и данный навык придет к вам быстро.
  • Настройка и сборка кода для серверного рендеринга html. Здесь потребуются знания какого-либо server side — фреймворка по типу next.js или nuxt.js. Данный навык достаточно нетривиален, и от джуна это требуют не часто.
  • jQuery. От вас требуется умение использовать эту маленькую библиотеку для более удобной работы с HTML, обработкой ивентов, анимациями и ajax. На данный момент является неактуальной технологией, чаще используется на старых проектах.
  • Typescript. Вы должны уметь писать более надежный и поддерживаемый код, используя для этого тайпскрипт, то есть тот же самый JavaScript, только с явным указанием типов данных. Сейчас без этой технологии ни в одном серьезном проекте не обойтись. Typescript делает процесс разработки более надежным и прозрачным.
  • Базовые фреймворки JS: react/redux, angular, vue. От вас не требуется глубоких знаний всех трех, но на базовом уровне вы должны их знать. Если требуется углубленное знание какого-то из них, то обычно об этом указывается отдельно.
  • Git. Вы должны уметь использовать git для сохранения написанного вами кода, для отслеживания производимых вами в нем изменений и совместной работы с другими разработчиками.
  • Webpack. От вас требуется только понимание того, что это сборщик модулей, который из большого количества JS-файлов делает один. Также узнайте, какие иные операции можно проводить с помощью Webpack. Глубокого опыта работы с Webpack от новичков обычно не требуют.
  • Базовые знания PHP, MySQL, WordPress. Когда видите это в вакансии, насторожитесь! От вас требуются навыки веб-мастера. На работе вы будете разрабатывать новые простые одностраничные сайты и дорабатывать уже существующие. Перспективы карьерного роста на такой работе обычно отсутствуют.
  • Знание английского на базовом уровне. Вы должны уметь читать инструкцию к использованию (документацию) любой технологии без переводчиков. Умение говорить на английском не очень важно. Это потребуется только в аутсорс-компаниях. И даже там от вас будет требоваться уметь говорить так, чтобы вас просто могли понимать другие люди.
  • Софт-скилы. Это не умение подлизываться к начальству, «продавать себя» для карьерного роста или что-то в этом роде. Софт-скилы — это в первую очередь ваша адекватность в общении с другими людьми, ваше умение выстраивать рабочий процесс таким образом, чтобы ни у вас, ни у ваших коллег не возникала непреодолимая жажда конфликтов.

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

Где получить опыт работы разработчику на JavaScript

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

Как получить опыт работы разработчику на JavaScript

Чтобы попасть хотя бы на одно техническое собеседование, вам придется отправить 50, а может 100, а может и 150 заявок. Вы будете постоянно получать отказы, вас постоянно будут игнорировать. Но несмотря на все невзгоды вы должны будете пытаться снова и снова. Поймите, что дело тут не в вас, через этот путь проходят все.

Популярные специализации в IT

Каких специалистов чаще всего ищут

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

Не спешите убеждать себя в том, что она очень плохой человек или даже только прикрывающийся человеком, плетущий свои коварные козни рептилоид. Дело тут не в ней, а в цифре 200. Когда она на своем linked.in открывает вакансию джуниора (или, упаси господь, стажера), за несколько первых наносекунд на эту вакансию прилетает под 200 резюме жаждущих кандидатов.

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

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

Вы будете писать только фронт, кто-то другой только бэк. Круто! Но в маленьких компаниях помимо вас могут работать 2–3, а то и вообще 1 разработчик. В таких условиях от вас требуется умение делать все, везде и сразу. На узкоспециализированные должности вас могут не брать из-за недостатка глубоких знаний, необходимых для этой позиции, а на фулстека вас не берут из-за того, что вы не фулстек. Такая вот печальная ситуация.

Главное, чего боится ваш наниматель, — того, что вы сами уволитесь через полгода. Когда вы получите работу, то ваши старшие коллеги постоянно будут тратить на вас свое время, чтобы вам помогать и учить вас. Время старших коллег стоит баснословных денег. Работодатель готов инвестировать это время (эти деньги) в вас, и ему нужно быть уверенным в том, что инвестиция окупится в будущем. Поэтому для вас важно не показаться ему человеком ветреным и изменчивым.

Держите подальше от ушей вашего потенциального работодателя красочную историю о том, как вы год изучали промышленный альпинизм, но, попав на работу, как-то не впечатлились, а потом пару месяцев строили карьеру маркетолога, но как-то тоже не зашло, после чего полгода работали строителем и, когда поняли, что стройка не в кайф, решили вот податься в IT, но если тут что не так, то вы уже и сейчас подумываете о романтических путешествиях через всю страну на КамАЗах с длинными прицепами. Рассказами подобных историй директоров IT-компаний обычно пытают в комнате 101. Читатель, не надо так!

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

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

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

Вот представьте: случилось ЧП! У кого-то из ваших коллег компьютер вдруг ни с того ни с чего начал сам по себе печатать «-». Все от него даже отошли в сторону, только издали смотрят и крестятся, а он все печатает этот «-» и печатает. И вот вы (Супергерой! Спаситель человечества!) резво мчитесь со второго этажа на девятый, чтобы к безудержному удивлению всех присутствующих обнаружить, что на правом углу клавиатуры лежит какая-то книга, которая нажимает на клавишу «-». Хотя, с другой стороны, вам в таких местах никогда не придется скучать, но все же о профессиональном развитии думать тут не приходится.

Если вы не находите достаточное количество вакансий для джуниора или стажера, подавайтесь на позицию middle. Ничего не бойтесь! Даже если вас пригласят на собеседование, то все равно не возьмут. Но для вас важно получение опыта прохождения собеседований. Еще есть какая-то вероятность, что вам могут предложить место джуниора, если оно вдруг где-то в компании завалялось. Весомое значение имеет также и то, что вы будете «на виду». Если вы не будете ходить на собеседования, то сама себя работа точно не найдет.

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

Резюме

Теперь, когда со всеми деталями разобрались, давайте напишем для вас резюме.

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

Резюме должно быть чистым, понятным, хорошо структурированным. Для облегчения восприятия оно не должно быть однообразным. Нужно использовать разные шрифты, курсив, различные размеры шрифтов, различные списки. Чем качественнее будет составлено ваше резюме, тем легче его будет читать и выделять в нем ключевую информацию о вас как о кандидате. Хорошее резюме значительно повысит ваши шансы на получение работы.

Резюме должно включать в себя следующие разделы:

  • О себе. Кратко напишите о себе как о личности, о том, что вы командный игрок, о своих будущих целях. Объясните, почему именно вы подходите на эту позицию. Чем вы таким выделяетесь, чтобы из всех кандидатов на эту конкретную позицию в эту конкретную компанию взяли именно вас? Не нужно здесь писать о том, как сильно вы увлечены рыбалкой, шопингом или эксгибиционизмом.
  • Технический опыт. Опишите технологии, с которыми вы работали, что вы уже писали, что вы изучали. В этой секции описываем все технические скилы (навыки), которые у вас есть на данный момент:

— языки программирования;

— технологии и фреймворки;

— веб-серверы;

— базы данных;

— инструменты для тестирования кода/приложения;

— среды разработки (IDE);

— инструменты сборки;

— [все остальное, что имеет отношение к техническим навыкам].

  • Уровень владения английским. В одну строку. «B2», «C1», «B1» — вот в таком виде.
  • Ваше образование. Опишите все релевантное образование, которое у нас есть на данный момент, включая курсы, высшее образование, практики в IT-компаниях, сертификаты и т. д.
  • Предыдущий опыт работы. Опишите весь релевантный опыт в IT, который у вас есть на данный момент. Все, что не связано с IT, работодателя не интересует, писать об этом не нужно.
  • Недавно оконченные проекты. Если у вас нет никаких серьезных проектов, придется сначала сделать, а потом уже вернуться к написанию резюме. Резюме без проектов не имеет никаких шансов на успех. Pet-проекты тоже подойдут.

Где найти работу разработчику на JavaScript?

Самыми популярными интернет-ресурсами по поиску работы для JS-разработчиков в России являются:

  • Superjob.ru;
  • hh.ru;
  • Avito.ru/all/rabota;
  • Yandex.ru/jobs.

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

У каждой компании есть свой сайт. На сайте есть раздел «Карьера», там компании дают информацию об открытых вакансиях.

Вы можете рассылать свое резюме не только по объявлению о найме на работу, но и конкретно HR-специалистам. Часто они работают не на какую-то конкретную компанию, а в качестве свободных фрилансеров. Такой HR-фрилансер может найти вам место в какой-нибудь компании.

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

Как проходит собеседование

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

Собеседование на JS-программиста

Самые типичные вопросы на техническом собеседовании JS-разработчика могут включать в себя следующие:

1. Основы JavaScript:

  • Что такое JavaScript?
  • Каковы основные характеристики языка JavaScript?
  • В чем разница между JavaScript и другими языками программирования?
  • Как отлаживать и тестировать приложения на JavaScript?

2. Front-End Development:

  • Каковы основные технологии веб-разработки?
  • В чем разница между HTML, CSS и JavaScript?
  • Как использовать HTML и CSS для создания отзывчивого дизайна?
  • Как получить доступ к DOM и манипулировать ей с помощью JavaScript?

3. Фреймворки и библиотеки:

  • Где используются Vue, React и Angular?
  • В чем разница между фреймворком и библиотекой?
  • Каковы плюсы и минусы использования фреймворков и библиотек?
  • Как выбрать подходящий фреймворк для проекта?

4. Безопасность и производительность:

  • Какие меры вы принимаете для обеспечения безопасности веб-приложения?
  • Как обеспечить производительность веб-приложения?
  • В чем важность оптимизации производительности?
  • Как реализовать кэширование в веб-приложении?

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

Варианты дальнейшего развития вашей карьеры

На своей первой работе вы будете иметь статус junior либо trainee (стажер). О разнице между ними мы уже говорили. Теперь разберем различия между junior-, middle- и senior-программистами.

Junior все знает, но не всегда может выполнить поставленную задачу самостоятельно. Ему нужна постоянная помощь от старших товарищей.

Middle все знает и все может делать сам. Помощь в решении проблем ему не требуется. Ему можно давать любые задания, и он сможет выполнить их самостоятельно.

Senior — это человек, который программирует на более высоком уровне. Он абстрагирован от фреймворков, ему неважно, писать ли на React, на Vue или на Angular. Если джуниоры фокусируются на деталях, то сеньоры фокусируются на том, как правильно выстроить и сконфигурировать всю систему, и при этом сеньору все равно, на каких именно технологиях он будет это делать. Он может сделать на любых. Senior — это программист, способный разработать систему полностью с нуля и притом самостоятельно. Это специалист с «глобальным» видением.

Градация junior, middle и senior очень отличается в разных компаниях. Нередки случаи, когда кто-то, являясь мидлом, переходит в другую компанию и там может претендовать только на позицию джуниора (пусть даже и с +/- тем же уровнем зарплаты). Этот перекос образуется из-за того, что аутсорсинговые компании «продают» своих программистов зарубежным клиентам и потому таким компаниям выгодно всячески преувеличивать уровень профессиональных навыков этих программистов. В аутсорсинговых компаниях люди уровня junior часто именуются мидлами.

Что же касается перехода от уровня middle до уровня senior, то это может потребовать куда больших затрат сил и времени.

Если речь о фронтенд-разработке на территории РФ, то средняя зарплата мидла колеблется в районе 150–220к. Специалист уровня «сеньор» может получать от 200к до 500к.

Истории и советы от состоявшихся разработчиков на JavaScript

Путь JS-программиста сложен и тернист. Чтобы не потеряться на нем, не сойти с него, важно иметь перед глазами успешные примеры других людей.

Подобным примером могут служить авторы следующих видео:

Полезные ссылки для разработчика

В ходе работы и обучения вы будете постоянно сталкиваться с проблемами, которые попросту неспособны решить самостоятельно.

Для таких ситуаций есть лучший друг всех программистов — StackOverflow: https://stackoverflow.com/. Это что-то типа «Яндекс Кью» или «Ответы Mail.ru», только для кодеров. Все языки, все фреймворки, все технологии, все, о чем только можно подумать, обсуждается на StackOverflow.

StackOverflow для JavaScript-разработчиков

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

Один из лучших интернет-ресурсов для изучения JS на русском языке — learn.javascript.ru.

Если вы знаете английский, обратите внимание на следующие веб-ресурсы:

  • Freecodecamp.org;
  • Codewell.cc;
  • Cssbattle.dev;
  • Teamtreehouse.com;
  • Coderbyte.com;
  • Codepen.io;
  • Javascript30.com;
  • Frontendmentor.io.

Особенно на Freecodecamp — это один из самых обширных источников. Там вы найдете любые и совершенно бесплатные уроки для JavaScript-разработчика.

На сайте W3schools размещены краткие разъяснения по любой теме, касающейся не только JS, но и других языков. Раздел для JS: https://www.w3schools.com/js/default.asp. Этот ресурс хорош тем, что вы можете быстро освежить знания о какой-нибудь легкой ерунде, которая часто забывается. Материал дается сжато с информативными примерами.

Обратите внимание на популярные ресурсы для оттачивания своих кодерских навыков при решении маленьких (и не только) задач по программированию:

  • Leetcode.com;
  • HackerRank.com;
  • Codewars.com.

Если вы пользуетесь телеграмом (а это must have!), подпишитесь на следующие сообщества JavaScript-разработчиков:

  • https://t.me/frontendnoteschannel;
  • https://t.me/defront;
  • https://t.me/frontendbook;
  • https://t.me/frontendquestions;
  • https://t.me/javascript_ru;
  • https://t.me/nodejs_ru;
  • https://t.me/reactnative_ru;
  • https://t.me/react_js;
  • https://t.me/vuejs_ru.

Среди множества ютуб-каналов о веб-разработке на JS хотелось бы выделить вот этот шедевр: https://www.youtube.com/@ExtremeCode. Не спешите смотреть его сразу, «искрой-бурей-безумием» он станет для вас, когда вы уже приобретете определенные знания и хотя бы будете понимать значение большинства слов, произносимых в их видео.

Также рекомендуем подписаться на следующие ютуб-каналы о веб-разработке:

  • https://www.youtube.com/@maxgraph
  • https://www.youtube.com/@itproger
  • https://www.youtube.com/@SuprunAlexey
  • https://www.youtube.com/@WebCademy
  • https://www.youtube.com/@REDGroup
  • https://www.youtube.com/@itgid
  • https://www.youtube.com/@UlbiTV

Заключение

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

Мы желаем вам пройти сложный путь превращения в JS-разработчика до конца. Вы обязательно достигните своей цели: верьте в себя, никогда не опускайте руки, и любые трудности вам покорятся.

Полезные видео для JavaScript-разработчика

JavaScript не менее популярный язык, чем Java. Но в чем отличие этих технологий и как найти хорошего JS разработчика? Разбираемся в статье.

Что такое JavaScript

JavaScript — это динамический язык программирования, который используется для разработки фронтенда. Это один из основных инструментов при разработке сайта, который совместим со всеми операционными системами и популярными мобильными платформами. Его создали с целью оживить веб-страницы: разметку страниц HTML и пользовательскую часть (CMS). То есть без JavaScript веб-страница «неживая» и сайт не реагирует на действия.

Вот как работает JavaScript простыми словами:

  1. Пользователь нажимает кнопку/заполняет форму на сайте.
  2. Браузер распознает действие.
  3. Автоматически срабатывает JS-код.
  4. На странице отображаются изменения.

В чем отличие JavaScript и Java 

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

Сценарии, написанные на JS — это скрипты. Они встраиваются в веб-страницу и срабатывают автоматически при открытии веб-страницы. Для этого их не нужно дополнительно программировать в отличие от инструментов на Java.

Что делает JavaScript разработчик

Разработчику нужно создать ответ сайта на каждое действие пользователя. Для этого он разрабатывает архитектуру всех модулей и программную логику приложения. Затем разработчик тестирует и внедряет эти инструменты в работу. JS позволяет создавать привлекательный веб-сайт с интерактивными и графическими элементами. Таким мы видим сайт благодаря JS разработчику.
Что еще входит в его функционал:

  • Поддержка web-сайтов;
  • Разработка расширений и прототипов для браузеров;
  • Рефакторинг frontend-части веб-сайта/приложения;
  • Разработка веб-версий продукта;
  • Участие в развитии архитектуры проекта.

Что должен знать

Требования к скиллам JavaScript разработчика не такие высокие, как для бэкендера. Но он также должен знать фреймворки, шаблоны проектирования и базы данных языка JS. Вот какие скиллы должны быть у JS-разработчика уровня Middle:

  • HTML и CSS;
  • принципы взаимодействия клиент-сервер (HTTP/HTTPS, Rest API, soap
  • JSON, form data);
  • система контроля версий GIT;
  • другие языки программирования (С, С++, С#);
  • принципы объектно-ориентированного программирования;
  • фреймворки и библиотеки (NodeJS/JQuery/React/Angular/Vue.js);
  • базы данных (PostgreSQL/ MongoDB/ SQL/ NoSQL);
  • технологии (REST, XML, TCP, VS Code, SVN);
  • СУБД;
  • Design Patterns;
  • английский на уровне Intermediate.

На что обратить внимание при подборе

Высокий уровень коммуникативных навыков

Умение взаимодействовать с командой — важный скилл для любого программиста. Но JS разработчик отвечает за пользовательскую часть продукта, которая привлекает клиента. А значит, он должен уметь доносить свою мысль другим разработчикам, дизайнерам и остальным членам команды.

На собеседовании стоит уделить этому время и дать пару кейсов на проверку коммуникации.

Экспертиза разработчика

Кроме самого JavaScript, разработчик должен знать стек, относящийся к определенному профилю проекта. Лучше знать одну технологию, но хорошо, чем несколько поверхностно. Например, для кроссплатформенных мобильных приложений нужен React Native, Flutter или Dart. А вот для веб-сайта больше подойдет NextJS, Redux или Create React App.

Широкий кругозор

У JS разработчика должна быть хорошая насмотренность и свое видение продукта. Проходит ли он дополнительное обучение? Какие веб-сервисы/приложения ему нравятся по внешнему виду? Какие проекты считает наиболее удачными и почему? Эти вопросы можно смело задавать кандидату. Если он подходит к разработке комплексно, интересуется бэкендом и готов делать продукт, удобный для пользователя — результативность его будет выше.

Где искать

Самый действенный путь — сайты для фрилансеров и Telegram. Здесь можно найти фронтендеров и других смежных специалистов: дизайнеров, копирайтеров и SEO.

Сайты для фрилансеров

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

  • Freelancer,
  • Guru,
  • Upwork,
  • Weblancer,
  • Хабр Фриланс.

Telegram-каналы

JavaScript Jobs — вакансии и резюме

Количество подписчиков: 15 700+
Бесплатное размещение вакансий для JavaScript разработчиков.

Job for Frontend (JavaScript + Node.js) developers

Количество подписчиков: 3 000+
Бесплатное размещение вакансий для JavaScript, Node.js разработчиков. 

Javascript jobs — вакансии по фронтенду, джаваскрипт, React, Angular, Vue

Front-End Developer Jobs

Количество подписчиков: 1 000+
Бесплатное размещение вакансий для фронтендеров на разных стеках.

React.js Jobs

Количество подписчиков: 550+ 
Вакансии международных проектов для иностранных специалистов.

pro.js

Количество подписчиков: 3 500+

Vue.js Jobs — работа/вакансии/резюме

Количество подписчиков: 3 200+

Канал для бесплатного размещения вакансий для JavaScript разработчиков и обмена резюме.

В статье мы рассказали о том, чем занимается JavaScript разработчик и где его искать. 

Оставляйте заявку на нашем сайте — мы поможем найти классного специалиста.

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

Есть и длинный ответ.

Уровень 1. Знакомство

Выучите основы HTML, CSS и JavaScript. HTML — каркас и основа всех сайтов, поэтому нужно знать, что такое теги, как их использовать, и потренироваться ставить <и>. Проще всего изучить на тренажёре.

Важные навыки:

  • Верстать текст и оформлять его.
  • Ставить ссылки и изображения.
  • Основы CSS — правила, селекторы, свойства и каскадирование.
  • Хотя бы немного понимать, зачем нужен JavaScript.

Научитесь отличать фронтенд и бэкенд. Для начала запомните, что фронтенд — видимая часть сайта, а бэкенд — невидимая. Он нужен, чтобы доставать что-то из базы данных и вставлять на страницу.

Фронтенд — HTML, CSS, JavaScript

Бэкенд — PHP, MySQL, Python

Узнайте, зачем нужны макеты. Это важно хотя бы в общих чертах — дизайнеры будут приносить вам свои картиночки, а вы их превращать в код. Еще полезно найти себе макет для практики — например, в каком-нибудь канале. На таких макетах удобно практиковаться или даже положить в портфолио, главное, попросите разрешения у автора.

Практикуйтесь на макете. Для начала настройте всё на домашнем компьютере и экспериментируйте там. Можно и код покрутить, и вёрстку поломать, и написать пару скриптов на PHP.

Уровень 2. Погружение

Углубитесь в HTML и CSS. Смотрите на формы, таблицы, флексы, гриды, медиаэлементы. То есть весь обвес, который можно добавить к текстам, картинкам и ссылкам.

Изучите JavaScript. Узнайте, что такое переменные, типы, условия, циклы, массивы и объекты. Хотя бы со словарём и StackOverflow.

Работа с Git через консоль

Заведите Гитхаб. На этом этапе лучше научиться пользоваться Гитхабом и завести себе репозиторий. Вы сможете показывать хорошие проекты работодателям, чтобы не делать все подряд тестовые задания при приёме на работу.

Где применять знания. Сделайте себе сайт, используя все полученные знания. Соберите страничку, расскажите о себе и своих навыках и оставьте ссылку на Гитхаб. Потому пригодится. Чтобы вдохновиться, зайдите на Behance и наберите в поиске free site web design или free portfolio site web design.

А ещё не бойтесь, что всё сломалось или не получается. Это же код, просто нажмите Ctrl+Z.

Уровень 3. Курсы

Курсы — короткий путь, чтобы не собирать информацию по кусочкам по всему интернету.

На хорошем курсе по вёрстке научат семантической разметке, сеткам, адаптивной вёрстке, анимациям, работе с графикой, доступности и автоматизации. Проверьте, что всё это есть в программе, потому что потом могут спросить на собеседовании.

В курсах по JavaScript должны объяснять базу — типы, операторы, алгоритмы, функции, циклы, объекты и структуры данных. Разберитесь с этим и научитесь применять, а не просто отличать одно от другого.

Сложное. Разберитесь с DOM, API JavaScript и другими сложными вещами, вроде ООП, асинхронности, валидации форм или Event Loop. Но не думайте об этом в самом начале, всё придёт с опытом. Да и на курсах это точно дают. Ещё профессиональному разработчику пригодится навык «гонять джейсончики». Для этого стоит изучить форматы передачи данных, например, XMLJSONJSONP и умело управляться с XMLHttpRequest.

Программы на каждый день. Разберитесь с препроцессорами (LESS или SASS), Webpack для сборки, Git для контроля версий, Figma для экспорта графики, DevTools для отладки. Ну и терминал, куда же без него.

После курсов попробуйте найти работу младшим JavaScript-разработчиком — или, по-другому, джуном.

Уровень 4. Фреймворки React, Vue или Angular

Самые популярные и прибыльные для фронтендеров — React, Angular и Vue.js. В разных компаниях нужны разные, но React встречается чаще всего. По нему тоже есть курсы, так что пробуйте — можно даже взять целую профессию, где всему научат с самого начала.

Важно — фреймворки быстро устаревают. Поэтому будьте готовы доучиваться, так как на очередном месте работы может понадобиться Vue.js вместо React, с которым вы уже знакомы.

На этом уровне можно зарабатывать больше 100 тысяч, если вы уже где-то поработали, хорошо знаете основы и не теряетесь в простых задачах. И чем дольше и лучше вы работаете, тем больше получаете.


«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

ТелеграмПодкастБесплатные учебники

Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции

«Тяп — ляп и в production» — шуточное высказывание, бродившее на страницах Confluence первой компании, в которой я работал. Оно как никогда кстати подходит под описание моего начального пути развития в Frontend разработке.

Интро

Хочу поделиться своим опытом вхождения в профессию frontend developer.

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

В декабре 2017 года родилась дочка, денег в семье стало не хватать, и я решил, что пришло время менять профессию.

Процесс обучения

Когда у тебя есть основная работа и грудной ребёнок дома, сложно найти свободное время, но выхода у меня не было. Тут как в пословице — что посеешь, то и пожнёшь. С улыбкой на лице вспоминаю заголовки некоторых статей и видео курсов на YouTube: «Весь HTML за час», «JS за 2 часа. Урок от профессионала» и так далее. Хотелось, конечно, отделаться малой кровью, но как? За плечами минимальные знания вёрстки и Pascal.ABC на уровне того, что преподают в школах.

Была поставлена цель — к лету найти стажировку, дабы получить опыт коммерческой разработки и после трудоустроиться на позицию верстальщика. Дальше начать учить JavaScript и по нарастающей. Начал с базового интенсива по вёрстке от HTML-академии, попутно проходил их интерактивные курсы по HTML и CSS.

Около 5 месяцев ночами по 2-4 часа, с кружкой кофе в обнимку, я верстал по макетам странички. В общей сложности осилил где-то 5 или 6 макетов. За окном была весна, апрель. Я решил, что пришло время поисков работы.

Поиск работы

Составил резюме на HH и «Мой круг». Написал про себя как есть: «Ищу подработку/стажировку с минимальной оплатой, можно и без, если будете кормить».
Скилами резюме не отличалось: HTML, CSS, да и всё. Даже адаптивно верстать на тот момент не умел, куда уж там остальное!

Нашел вакансию на позицию джуна в организацию, работавшую на «Госуслуги». Постучался, рассказал свою ситуацию. На личное собеседование не позвали, так как искал работу ближе к лету, но решили, что сделаю тестовое удалённо, чтобы был какой-то результат от переговоров. Сверстал форму с кучей полей и кнопок, прикрутил плагин-валидатор из библиотеки Jquery. Как он работает, толком не понял, что-то сделал, завелось, да и ладно. Отправил. Ответили, что готовы позвать на работу после личного собеседования. Первая небольшая победа!

Дальше работа уже начала сама меня искать. Позвонили и позвали на собеседование из компании, занимающейся оформлением деловых командировок под ключ: перелёт, отель, трансфер, ЖД билеты. Им требовался junior-frontend разработчик на 2 проекта: лендинг и back-office. Оба на React. На собеседовании разговаривали в основном про вёрстку. Из вопросов были: поток, блочные/строчные элементы, позиционирование, построение сеток — всё в таком духе. По итогам собеседования дали тестовое задание — сверстать лендинг по макету, сделать его адаптивным под планшет и телефон. Последнее я как раз делать не умел. С адаптивом разобрался быстро: сделал тестовое примерно за 4 дня и отправил на проверку. Спустя неделю получил приглашение на финальное собеседование — общение с командой.

Бородатые дядьки в очках и свитерах

Пришёл в офис разработки, поздоровался, HR показала, куда можно присесть. Я плюхнулся в компьютерное кресло и начал ждать начала собеседования. Постепенно в комнату начали на креслах въезжать программисты: бородатые, в очках, бородатые в очках, без очков. Если совместить всех, получится как раз тот собирательный образ, который возникает у большинства в голове при слове «программист».

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

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

По результатам этого собеседования я получил оффер с условием, что первое время у меня будет обучение JS с плавным входом в профессию. Вот это уже была большая победа!

Hello World

Начались трудовые будни. К слову, программировать я не умел на тот момент от слова «совсем». Поэтому около двух недель я штудировал материалы по базовому JS, смотрел бесплатные курсы Hexlet и читал доку по React. Информация не хотела оседать в голове.

«Нет времени объяснять, по ходу разберешься», — примерно с таким посылом я начал писать на React. Учился на ходу в рантайме, пробелы в знаниях заполнялись по мере их обнаружения. Первым заданием было как раз сделать адаптив для лендинга. Хорошая возможность, чтобы познакомиться с React и проектом в целом. После были задачи разной степени сложности: над некоторыми сидел неделями, разбираясь в коде, попутно изучая необходимый материал и прокачивая скилы. В общей сложности около 3 или 4 месяцев понадобилось для того, чтобы более или менее втянуться в происходящее вокруг. Очень повезло с тем, что слева сидел более опытный коллега, который постоянно выручал и помогал во многом.

Next Level

Чем больше скилов в твоем аккаунте на «Мой круг» или HH, тем привлекательнее твое резюме для других компаний. Я не был исключением. Проработав около 6 месяцев, почувствовал в себе силы и начал ходить по собеседованиям, на которые приглашали.

Первое собеседование провалил с треском. Примерный список вопросов, на которые не ответил: замыкания, prototype, метод reduce, все вопросы по DOM, как работает сервер, что такое AJAX.

К слову, я неплохо справлялся с большим количеством задач на своей работе, но писал на языке, основ которого не знал. И самое страшное, что было для меня на тот момент — я мыслил на React. Так вышло, что моё мышление замкнулось внутри этой библиотеки, и мозг отказывался воспринимать то, что под капотом это JavaScript. React и JS были для меня двумя разными вещами. Так начали проявляться первые минусы несистемного обучения.

Далее было 3 успешных собеседования с примерно одинаковыми тестовыми заданиями:

  1. Приложение на React, эмулирующее голосование в режиме реального времени.
  2. Приложение на Vue. Нужно было забрать данные с сервера и отрисовать 2 странички, настроив роутинг.
  3. Приложение на VanillaJS. Нужно было отрисовать около трёх страничек и написать свой Router, основанный на hash-навигации. Это самое интересное ТЗ из всех, так как пришлось писать на чистом JS.

Каких- то жестоких экзаменов про языку мне не устраивали. Во всех трёх случаях я получил оффер. Пошёл туда, где были лучше условия. Устроился в достаточно крупную компанию на тяжелый проект со стеком React/Redux/Pixi.

Специфика проекта была в корне другая, стало, мягко говоря, сложновато. Не было привычных HTML, CSS, зато появилась куча незнакомых библиотек, а вдобавок ко всему не совсем крепкие знания языка, на котором пишу. Любой шаг влево или вправо проявлял пробелы в знаниях и вводил в ступор. Проработал 4 месяца, втягиваясь в стек технологий, на котором приходилось писать и приступил к систематизации и закреплению того багажа знаний, который успел получить. К этому моменту опыт разработки составлял примерно 10 или 11 месяцев.


Важно: «И самое страшное, что было для меня на тот момент — я мыслил на React. Так вышло, что моё мышление замкнулось внутри этой библиотеки, и мозг отказывался воспринимать то, что под капотом это JavaScript. React и JS были для меня двумя разными вещами. Так начали проявляться первые минусы несистемного обучения».


Go to Back. Hello Hexlet

Искал какие-то курсы по JS с возможностью проходить их в удобном для меня режиме, без спешки. Выбор пал на Hexlet. Сел я за обучение с лицом эксперта, но после первых уроков решил, что повременю пока с этим титулом для себя.

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

Практические задания в Hexlet — очень крутая штука, так как теория по сути даёт не так много пользы, как время проведенное в ярости при поиске ответа на вопрос: «Почему, мать вашу, эта дрянь не работает?»

Ты меняешь свой образ мышления в программировании, начинаешь видеть несколько решений для задачи, их плюсы и минусы. Лезешь в тесты, разбираешь их долго и муторно, добираясь до той самой «эврики». Пишешь свой map, filter, reduce, удивляясь тому, как это работает под капотом. И вот настает тот день, когда ты можешь открыть любой капот (и увидеть там другой капот… Шутка!) уже в боевом проекте на работе и понять, как там что работает. Покопаться в тестах, отрефакторить легаси и сделать этот мир чуточку лучше.

Весь процесс обучения — это трудности, преодолевая которые ты становишься сильнее! Тут я научился думать, самостоятельно решать проблемы, писать красивый и понятный код.

Спасибо всем, кто сделал этот ресурс! Самые крутые и интересные курсы, которые я встречал. Почти закончил профессию «Фронтенд JavaScript», но останавливаться не собираюсь. В планах пройти несколько проектов и освоить «Бэкенд JavaScript».

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

Понравилась статья? Поделить с друзьями:
  • Как найти свое время для пробуждения
  • Как найти восточное управление
  • Как найти отданное количество теплоты в физике
  • Анакреон black desert как найти
  • Как найти фрагменты в спор