Интервью со Станиславом — программистом JavaScript компании HF-Solution.

Станислав более 5 лет занимается заказной разработкой программного обеспечения.
Высшее образование — БГУИР по специальности «Информационные и программные технологии», среднее специальное образование — МРЦ «Техник-программист».

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

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

И сегодня мы разговариваем с нашим трудолюбивым и амбициозным инженером-программистом JavaScript — Станиславом.

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

Я из Минска. Мой путь в IT начался в 9 классе, когда передо мной встал нелегкий выбор дальнейшего развития — остаться в школе еще на 2 года и получить общее образование, либо по заданию родителей начать углубляться знания в области высоких технологий, которые были мне интересны. Я выбрал второе и поступил в колледж на инженера-программиста. В учебе меня вдохновляли одноклассники — у них был статус, не подростковая самостоятельность в принятии решений, большие достижения в программировании. Моим первым языком программирования был Python, затем я перешел на HTML и CSS-верстку. Мне понравилось, что я сразу увидел результат своих действий. Начинал с обычных задач в приложении Sololearn, потом был фрилансером, после чего меня пригласили на стажировку в одну из крупнейших компаний Беларуси. Вот так все и началось.

Какие источники вы использовали для изучения? У вас были наставники?

Мне всегда нравилось изучать все самостоятельно, но я с удовольствием принимаю советы коллег — это мотивирует делать свою работу на еще более высоком уровне. Лучшим источником для самообразования являются примеры проектов, которые нужно писать поэтапно, они действительно полезны. Также рекомендую https://learn.javascript.ru/ — отличный источник.

Куда вы пошли работать после окончания школы? Что было самым сложным в поиске работы?

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

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

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

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

Как вы думаете, JavaScript хорош в качестве первого языка?

О да, в качестве первого языка он очень подходит. Но нужно понимать, что если вы начинаете изучать ООП или что-то вроде C++ с ним, то это параллели, разные понятия и так далее. Никаких основ ООП, нескольких парадигм программирования, никакого набора текста. Есть классы и наследование классов, но оно сильно отличается от обычной реализации в языках программирования C++/C#/Java.

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

Расскажите о фреймворках — какие из них вы используете на практике? Почему? Что удобнее?

Для фронтенда использую React. Это очень крутая библиотека, я тоже иногда пишу на Vue. Что касается сервера, то это Nest.js и Express.js. Эти рамки довольно легко написать. Nest, конечно, сложнее, но это один из лучших фреймворков в Node. React Native отлично подходит для мобильных приложений.

Какие тенденции вы видите в разработке JavaScript (фреймворки и т. д.)?

В настоящее время на рынке развиваются React и Next. Конечно, о TypeScript стоит упомянуть отдельно. Эти комбинации, на мой взгляд, имеют все шансы стать золотой эрой веб-разработки. Что касается бэкенда — рекомендую next.js. TypeScript — отличный фреймворк с большим потенциалом.

Что такое узел? Зачем он нужен, в чем его особенности?

Node — это будущее Back-End разработки. Это очень удобная среда выполнения JavaScript.

Основные функции Node:

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

Какие навыки требуются от Full-Stack разработчика?

В первую очередь должно быть понимание того, как работает клиент-сервер. Когда я начал писать Back-End часть на Ruby, я подробно разобрался, что это такое и как это работает. Мой совет — не читайте просто информацию о том, как работает Full-Stack, попробуйте написать сервер сами и попробуйте отправлять на него запросы от клиента.

Каков ваш идеальный стек? Чем бы вы хотели заниматься с большим удовольствием?

Вероятно связка React.js + Nest.js (Express.js) и все это на SQL/noSQL. Мне нравится иметь контроль и понимание не только клиента, но и сервера. Я люблю серверную часть, написание бэкенда для меня как просмотр фильма, вроде как только начал и дело сделано. Обработка данных/логика/получение статуса 200 — это мое вдохновение и мотивация.

За какими технологиями вы видите будущее?

На самом деле сложно сказать, но одно я знаю точно — Solidity (язык программирования для смарт-контрактов), который очень похож на TypeScript, и библиотека web3.js, которая помогает писать смарт-контракты, будут в тренде для много времени. Технологии криптовалют и смарт-контрактов развиваются очень быстро. Еще пару лет назад каждый мечтал создать свой Магазин или Тайм Трекер, но сейчас их заменили криптокошельки и смарт-контракты.

Расскажите подробнее о смарт-контрактах. Насколько сложна эта тема? Кому они полезны? Каковы современные тенденции?

Тема сложная, но очень интересная. Есть документация, но если вы хотите что-то сделать с рабочим примером, вам придется заплатить. Любые сделки стоят денег. Конечно, есть Remix IDE и сеть Ropsten Test Framework. Криптовалюта уже давно обогнала ИИ по хайпу. Это новая тенденция, которая будет развиваться еще долго, и многие компании захотят внедрить смарт-контракты, потому что это очень удобно.

С чем вы больше работаете? Бэкенд или фронтенд?

Со всем :) Я тот тип разработчика, которому везде хорошо, независимо от того, на чьей стороне разработка. Я вижу общую картину того, как можно эффективно реализовать проект, и делаю это наилучшим образом. В прошлом месяце у меня было больше Front-End, а раньше было больше Back-End. Это зависит от того, хотя, я часто комбинирую оба.

Что ты сейчас делаешь? На кого вы работаете? Какие проекты вы реализуете? Какие технологии вы используете? За что вы отвечаете на проекте?

В настоящее время я использую React и Nest, работая на американских клиентов. Наша команда интернациональная, все ребята очень крутые и дружные. В основном я пишу Front-End на React TypeScript, почти все задачи по UI для основного приложения ложатся на меня. Также помимо основного проекта провожу собеседования с ребятами, которые хотят начать свой путь в IT. Те, кто проходят собеседования, становятся моими подопечными. Мне нравится их учить, я радуюсь за них, когда они справляются со своими первыми задачами!
Вообще наша компания — HF-Solution — это вторая семья.
Когда что-то не получается, это становится нашей общей заботой. За 2 года коллективной работы не было случая, чтобы кто-то отказался помочь своему коллеге.
Часто наши ребята настолько увлечены решением проблемы, как если бы это был их собственный проект. Однажды парень из нашей команды никак не мог избавиться от ненужных ререндеров с проекта. Мы хотели помочь ему, поэтому пошли на кухню и решили, что никто не уйдет в этот день, пока мы не придумаем решение, которое поможет. К концу дня вместо 85 загрузок было всего 13. Я очень рада, что у меня самые лучшие коллеги, которые всегда готовы помочь даже в 3 часа ночи!

Какова ваша мотивация работать на вашей нынешней работе?

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

После какой зарплаты интересный проект становится самым важным?

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

Не подскажете, с чего начинать новичку?

Вы должны точно понимать, что вам нравится. Не начинайте учить язык только потому, что здесь платят больше или потому, что все пишут на нем. Делай что хочешь. Когда вы знаете, что вам интересно, начните с видеоуроков, а затем читайте книги. Самое главное – делать упражнения. Реальная практика — лучший учитель.

Где взять информацию и как дорасти до сениора?

Я часто сталкиваюсь с такими вопросами, как «Как это сделать? Как это сделать? »Похоже, официальная документация ушла от нас. На самом деле многим просто лень читать и предпочитают задавать вопрос на stackoverflow, хотя всю информацию об обновлениях, патчах и интересностях можно найти в документации! Что касается уровней программистов, вы должны понимать, что написание кода в течение 5 лет сделает вас Senior. У меня много знакомых, которые за пару лет обогнали всех и стали уникальными разработчиками с обширными знаниями и навыками. Внутреннее осознание своего уровня приходит, когда у вас 0 комментариев в Pull Request, и вы пишете хороший код вместе с другими, а не просто сидите за компьютером несколько лет.

Какой совет вы бы дали компаниям в начале проекта? Как найти идеальный стек?

Прежде всего, нужно понять перспективу проекта. Я часто вижу ситуацию, когда клиенты говорят: «Давайте сделаем дешевле и быстрее, а потом посмотрим, как это работает». В конце концов, они должны переписать проект. То же самое происходит, когда клиенты ожидают масштабный проект, такой как Facebook или Booking, с похожим стеком, даже если им просто нужно создать хороший сайт электронной почты.