article-spots
article-carousel-spots
programs
Технологии

Разработчик, который умеет все: кто такой JavaScript Engineer и почему стоит им стать

28 авг. 2020

Динамчный язык с низким порогом вхождения, который открывает большие возможности в IT и позволяет узнать веб-разработку со всех сторон. Так коротко инженеры отзываются о JavaScript. Мы решили копнуть глубже и поговорить с нашим коллегой Software Engineer Денисом Сущеней, чтобы разобраться, зачем стоит изучать JS и какие преимущества и перспективы может открыть этот язык программирования.

Почему JS?

Когда я заинтересовался web-разработкой, понял, что JavaScript очень популярен и широко распространен. На нем можно писать практически все: от нативных приложений до серверных решений. По JS очень много информации в интернете, знания доступны и разнообразны. Чтобы написать свою первую программу, можно просто открыть браузер в режиме разработчика или работать в блокноте. Для этого не нужны дополнительные инструменты. А софт, написанный на JS, можно запустить с любого современного устройства. Я решил, что это прекрасный язык программирования для старта и развития карьеры в IT. И мои ожидания оправдались.

Код на JS, какой он?

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

Насколько легко изучить JS?

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

Обучение: c чего начать, куда двигаться, можно ли осилить самостоятельно?

Базой для JS разработчика является HTML (язык разметки) и CSS (стили разметки). Если совсем просто, то HTML – это кубики и блоки, из которых состоит сайт, CSS – это инструмент, который поможет красиво их расположить. Для старта вам вполне хватит этих знаний. С такой базой уже можно начать искать себе работу. Но для более глубокого понимания желательно приобрести знания Computer Science. То есть понимать, что такое базы данных и алгоритмы, и как с ними работать.

Все, что я перечислил, это основа, которую реально выучить самому. Как я уже говорил, есть большое количество интересных сайтов и учебников, в Telegram полно каналов с полезной информацией, Youtube заполнен видеороликами от разработчиков, где они пошагово показывают, как делают сайт или приложение. Вам остается только смотреть, читать, задавать вопросы, общаться с людьми и пробовать. Если не знаете, с чего начать, могу порекомендовать курс JavaScript Tutorial на W3schools. На мой взгляд, это отличный ресурс для самообразования. После каждой главы есть задачи, решение которых поможет лучше понять материал.

Как получить первый опыт работы?

Можно сделать первое приложение для своего родственника, у которого есть бизнес. Или устроиться в веб-студию, где создают сайты под ключ. Сюда берут без опыта работы и глубоких знаний JS. Это хорошее место для того, чтобы набить руку. Крупные компании часто открывают стажировки и курсы, на которые набирают инженеров с хорошими базовыми знаниями JS. Да, здесь вам придется пройти собеседование и показать, на что способны. Зато в компании у вас будет больше возможности вырасти профессионально и занять высокую должность. К примеру, прямо сейчас вы можете посмотреть и зарегистрироваться на доступные курсы по JavaScript от EPAM.

В основном, в JS разработчиках нуждаются большие компании, большие проекты. И первая сложность, с которой вам придется столкнуться на работе – это долгий период адаптации. Вам нужно время, чтобы освоиться в этой среде. Реальные задачи будут отличаться от тех, что давали вам на курсах. Например, меня взяли в компанию, пока еще учился на курсах. То есть уже через 5 месяцев обучения я зашел на реальный проект. Было очень сложно влиться. Я читал онлайн-учебник и решал задачки, чтобы найти нужную информацию и держать себя в тонусе. Первое время приходилось много читать чужого кода, вникать и пытаться добавлять что-то свое.

Насколько JS-разработчику легко найти работу на рынке?

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

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

Но будьте готовы к тому, что базовых знаний для успеха недостаточно. Нет определенного уровня скиллов, на котором можно остановиться. Во время работы приходится постоянно изучать что-то новое и развиваться. Это непрерывный процесс, который необходим, чтобы двигаться дальше. Я успел поработать на нескольких проектах в разных доменах: игровая индустрия, финансовый сектор и управление персоналом. Хоть я везде для создания приложений использовал JavaScript, условия создания софта менялись. Потому что работа инженера будет эффективна только тогда, когда он хорошо знает домен и понимает, где и как его продукт будет применяться. Мой текущий проект сейчас связан с американской компанией. За время работы я узнал много нового о законодательстве США.

Из чего состоит день JS разработчика?

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

Какие качества могут помочь в общении с коллегами?

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

Куда можно уйти со знанием JS, если это направление наскучит?

JavaScript дает разработчику уникальную возможность сменить направление, не изучая новый язык. Я сейчас имею в виду два пути развития JavaScript Engineer: frontend и backend. Структура сайта и все, что видит пользователь – это фронтенд. Бэкенд – это хранилище информации, которой наполняется наш сайт (все возможные формы, которые нужно заполнять на странице). Когда мы нажимаем в таком поле кнопочку «сохранить», вся информация улетает через соединение на сервер. Он эту всю информацию обрабатывает и хранит у себя. Backend разработчик и создает подобный сервер. Самый мощный хранится в компании, а второй – на вашем телефоне или домашнем компьютере.

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

Можно попробовать себя в нативной или мобильной разработке. На самом деле, JS есть везде. Его, конечно, постепенно вытесняют более удобные решения, как фреймворк React Native. Я думаю, все знают, что мобильные приложения популярных соцсетей написаны как раз на реакте с использованием JS. Есть и подразделения, которые занимаются разработкой десктопных приложений с использованием JS, например, таких, как мессенджеры Skype и Teams.

Советы

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

Общайтесь, слушайте, пробуйте. Чтобы понять, какое направление вам ближе, рекомендую ходить на конференции. Это своего рода переориентирование в IT. Слушайте спикеров, которые рассказывают про разные направления и языки программирования. Задавайте им вопросы, прислушивайтесь к себе и пробуйте изучать то, что в вас откликается. Даже если на середине пути, вы поймете, что JS – это не ваше. С той базой, которую вы успеете наработать, можно будет легко перейти в другое направление. В любом случае, если вы умеете работать с кодом, это будет только плюсом. Циклы, конструкции и условия с большего во всех языках одинаковые, так что знания будут полезны.

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

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