article-spots
article-carousel-spots
programs
Технології
Розробник, який вміє все: хто такий JavaScript Engineer і чому варто ним стати?
28 серп 2020

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

Чому JS? 

Коли я зацікавився web-розробкою, то з’ясував, що JavaScript дуже популярна і поширена мова. На ній можна писати практично все: від нативних додатків до серверних рішень. В інтернеті багато інформації стосовно JS, знання доступні та різноманітні. Щоб написати свою першу програму достатньо відкрити браузер в режимі розробника або працювати в блокноті. Для цього не потрібні додаткові інструменти, а софт, який написано на JS, можна запустити з будь-якого сучасного пристрою. Я вирішив, що це чудова мова програмування для того, щоб почати і розвивати кар’єру в ІТ. І мої очікування виправдались.

Код на JS, який він? 

JS увібрав гарні риси інших мов, таких, як Python і Java. Код на JS зручний, доброзичливий до інженера, особливо до новачка. З часом виникають складнощі. У роботі іноді натрапляєш на кумедні помилки, які розробнику з іншою мовою можуть видатися неймовірними. Або навпаки, речі, які на перший погляд здаються очевидними (що й як має працювати) в результаті виходять геть іншими. Це може стати проблемою для розробників-початківців. Але поступово ти заглиблюєшся в мову, розумієш її тонкощі, і ці проблеми виявляються зручними інструментами. Тобто дивишся на все під іншим кутом і розумієш, як використати їх на благо. 

Наскільки легко вивчити JS?  

Якщо порівнювати з іншими мовами, JS дещо простіший. Він лояльний до помилок. У нього гарна інфраструктура і велика кількість рішень, які допоможуть уникнути труднощів. Всі ці інструменти перетворюють JS в доволі дорослу мову. Вивчати її не надто складно: інтернет переповнений всілякими книгами, курсами, навчальними відео. Уся інформація знаходиться у відкритому доступі, що дуже полегшує опанування мови. До того ж, у JS велике ком’юніті розробників, які завжди готові відповісти на питання і допомогти своїм однодумцям. Проте не варто думати, що JS – це зовсім простенька мова. Чим глибше ви занурюватиметесь в його вивчення, тим складніші речі вам відкриються. Наприклад, прототипне наслідування. Це така концепція, яку неможливо реалізувати в інших мовах, як-от Java.

Навчання: з чого почати, куди рухатися, чи можна подужати самостійно? 

Базовими для 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. 

Поради  

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

Спілкуйтеся, слухайте, пробуйте. Щоб зрозуміти, який напрям вам ближче, рекомендую ходити на конференції. Це своєрідне переорієнтування в ІТ. Слухайте спікерів, які розповідають про різні напрями та мови програмування. Задавайте їм питання, дослуховуйтесь до себе і спробуйте вивчати те, що знаходить у вас відгук. Навіть якщо посеред шляху ви усвідомите, що JS — це не ваше. З тією базою, яку ви встигнете напрацювати, можна буде легко перейти в інший напрямок. У будь-якому випадку, якщо ви вмієте працювати з кодом, це буде лише плюсом. Цикли, конструкції та умови, здебільшого, в усіх мовах однакові, так що знання будуть корисними. 

Також раджу слідкувати за появою анонсів і корисних матеріалів в Телеграм-спільноті EPAM University — там публікується немало актуальних матеріалів, які стануть в нагоді в навчанні.

Якщо підсумувати, можеш дати визначення JS розробника. Це інженер, який вміє...  

Хочеться сказати, що це інженер, який вміє все. Але я сформулюю так: JS розробник — це інженер, який слідкує за мовою програмування, яка динамічно розвивається, цікавиться новими інструментами і завжди залишається в тренді.