Хочете стати розробником, але не знаєте, з чого почати? В інтернеті так багато різних курсів з різних мов і технологій, але які з них вам підходять і в якому порядку діяти – для новачка це завжди нерозв’язна загадка і головний стримувальний фактор на шляху до кар’єри в IT. Досвідчений веб-розробник і викладач Біл Соуро вирішив прийти на допомогу і створив покроковий гайд, який допоможе визначитися, яким саме програмістом ви хочете стати і що для цього потрібно. У статті багато посилань на корисні, а головне, безкоштовні джерела знань. Але майте на увазі – без англійської буде туго.

20 років я пишу код для вебу. Я щодня допомагаю розробникам. У цій статті я розповім вам, що варто вивчити, щоб стати веб-розробником, коли варто це вивчати і де можна безкоштовно знайти навчальний матеріал. А ще дам кілька порад, де отримати досвід і знайти першу добре оплачувану роботу.

Цей посібник допоможе вам незалежно від того, на якій ділянці шляху ви перебуваєте. Просто проскрольте статтю до того місця, в якому описано найбільш підходящу у вашому випадку ситуацію, і починайте читати звідти. Якщо ви тільки виходите на старт або розмірковуєте про те, щоб стати веб-розробником, послухайтеся поради Короля з книжки про Алісу в Країні Чудес.

«Починай із самого початку і йди, поки не дійдеш до кінця. Тоді зупинись».

Щоб стати розробником, спробуйте всього потроху і виберіть щось одне

Гроші – не головне. Потрібно любити те, що ти робиш. Але ви не дізнаєтеся, що любите щось, поки не спробуєте.

Цей посібник познайомить вас із різними галузями веб-девелопменту в найкоротші терміни і допоможе визначитися з тим, що підходить саме вам. Спочатку ви нічого не вивчите – ви лише дізнаєтеся базові речі. Але коли ви зрозумієте, до чого лежить ваша душа, я покажу, де потрібно копати.

Захотів стати розробником. Мені подобається web. Але я не знаю, з чого почати

Для початку вам потрібно дуже швидко вивчити основи веб-девелопменту (часто називають full-stack). Це дуже широке поле знань, але не дуже глибоке. Цей крок необхідний, щоб знайти для себе найбільш підходящу сферу і набути основних навичок, які стануть у пригоді незалежно від того, на чому конкретно ви зупинитеся.

Вивчіть основи HTML

Hypertext Markup Language (HTML) – це те, на чому тримається контент і елементи всього, що ви бачите у вашому веб-браузері. Почавши з нього, ви зрозумієте, як влаштований інтерфейс, навчитеся взаємодіяти з кодом, а також зможете побачити, як він працює. Коли ви почнете освоювати більш просунуті мови, ці знання стануть ще важливішими. Ви ж не хочете кодити наосліп.

Вивчення HTML потрібно побудувати так (за посиланнями – безкоштовні уроки англійською мовою):

Я вже знаю основи HTML

Чудово, це дуже важливий перший крок. Тепер вам потрібно дізнатися трохи про JavaScript.

Вивчіть основи JavaScript

JavaScript – це мова вебу, всі основні браузери (Chrome, Firefox, Safari, IE, and many more) підтримують JavaScript. Кожен сайт, який ви коли-небудь використовували, скоріше за все містить величезну кількість коду на JavaScript. До речі, JavaScript стає так само популярним на інших платформах, включно із серверами, десктопами та пристроями.

Ось посилання на уроки, які допоможуть вам опанувати основи JavaScript:

Я знаю основи HTML і JavaScript.

Фантастика! Тепер заткнемо за пояс трохи CSS.

Вивчіть CSS

CSS розшифровується як Cascading Style Sheets (каскадні таблиці стилів). Він використовується для того, щоб налаштовувати зовнішній вигляд елементів HTML на сторінці. З основами можна ознайомитися в цьому безкоштовному уроці від Mozilla, а потім періодично вдаватися до допомоги CSS-Tricks для розв’язання найважчих проблем CSS (використовуйте функцію пошуку у верхньому правому куті).

Переходимо до Back End

Отже, ви знаєте більшість мов, з якими працюють веб-браузери. Тобто ви пройшли через те, що називають «фронт-ендом». Час переходити до «бекенду», а саме коду, який запускається на сервері. Не хвилюйтеся, щоб вивчити back end, вам не потрібно мати сервер – достатньо домашнього комп’ютера.

Є безліч бекенд-мов, але якщо ви вже знаєте JavaScript, рекомендую використовувати NodeJS. NodeJS дає змогу виконувати JavaScript-код на сервері замість браузера.

стать разработчиком-1

Крім NodeJS варто також вивчити Express і Mongo DB. Express – це бібліотека, яка полегшує NodeJS роботу як сервера (грубо кажучи, він чує запити з ваших веб-сторінок і відсилає їм відповіді). Mongo DB – це база даних. Вона дає змогу зберігати та витягувати інформацію. Дізнатися більше про Node JS, Express і Mongo DB можна з цього чудового і безкоштовного уроку та його продовження.

Мені потрібно вибрати, яким стати розробником: Front End, Back End або Full Stack розробником

Отже, ви вже вмієте писати два типи коду: один для взаємодії з користувачами, другий для взаємодії з даними. Який вам більше подобається? Якщо для взаємодії з користувачами – ви front-end розробник, якщо з даними – ви back-end розробник. Якщо обидва – full-stack розробник.

Не подобається жоден з них? Вітаємо, веб-розробка не для вас. Як добре, що ви зрозуміли це зараз, не встигнувши витратити більше часу і грошей. Не хочете здаватися? Можливо, ви просто не знайшли свою мову програмування. Спробуйте вивчити основи якихось інших мов.

Я хочу бути full-stack розробником

Круто. Тоді прочитайте все, що написано нижче.

Я хочу бути front-end розробником і я знаю основи JavaScript, HTML і CSS

Щоб стати професійним front-end розробником, вам знадобиться заглибитися в HTML, CSS і client-side JavaScript (компоненти на стороні користувача). Вам також знадобиться розібратися в деяких важливих фреймворках. Так ви обзаведетеся навичками, які клієнти і роботодавці хочуть бачити у front-end розробників.

Вивчіть основний і просунутий HTML

Пройдіть спершу цей урок з основного HTML, а потім з просунутого HTML.

Вивчіть просунутий client-side JavaScript

стать разработчиком-2

Для цього підійде шикарна серія книг Кайла Сімпсона, яку можна цілком завантажити на GitHub. Безкоштовно.

Щоб ще підвищити ваші пізнання в JavaScript, я рекомендую також його серію You Don’t Know JS (Ви не знаєте JS). Книги з основної серії також можна безкоштовно завантажити тут:

  1. «Up & Going»
  2. «Scope & Closures»
  3. «this & Object Prototypes»,
  4. «Types & Grammar»
  5. «Async & Performance»
  6. «ES6 & Beyond»

А ще вашим найкращим другом має стати ось цей курс MDN JavaScript Reference.

Підкорити трьох китів фронт-енду – HTML, CSS і JavaScript – дуже важливо. Але щоб почати заробляти гроші, потрібно також ознайомитися з деякими фреймворками.

Вивчіть jQuery

jQuery – найпопулярніша бібліотека JavaScript усіх часів. І хоча деякі нові фреймворки знецінюють jQuery, якщо ви хочете отримати роботу, великі шанси, що jQuery буде в описі вакансії (і на співбесіді) ще довгі роки.

Рекомендую почати вивчення jQuery з курсу jQuery path at FreeCodeCamp. Тому можна переходити до офіційного навчального сайту, на якому ви знайдете ще більше інструкцій. Під рукою краще завжди мати jQuery API docs.

Вивчіть популярні фреймворки для JS

Фреймворки полегшують роботу з конкретною мовою програмування або технологією, розглядаючи і вирішуючи деякі найпоширеніші проблеми. Фреймворки для JavaScript популярні так само, як і сама мова. Складається враження, що нові JavaScript-фреймворки з’являються щотижня, і їх рекламують як нові стандарти. Тож вам доведеться трохи погуглити, щоб з’ясувати, який фреймворк найпопулярніший у вашій ніші. Хороше джерело для такого пошуку – блог веб-розробника Раяна Вільямса Hacker News hiring trends tool, присвячений гарячим новинкам.

Зараз на гребені хвилі, схоже, React, AngularJS і Ember.

стать разработчиком-3

React JS

React створили у Facebook, щоб працювати з їхньою архітектурою Flux. Це JavaScript-бібліотека для створення інтерфейсів. Нещодавно вона витіснила Angular з першого місця за популярністю. Тож почніть із React. Хороший курс-вступ до React можна знайти тут.

Angular 1 і 2

Angular JS створили в Google і він полетів, щойно вийшов у світ. Багато компаній зробили ставку на цей фреймворк, і він досі популярний. На жаль, Google спало на думку повністю переписати Angular – так з’явилася Angular 2.

Angular 1 і Angular 2 – дві практично абсолютно різні бібліотеки. Якщо ви хочете називатися експертом з Angular і зробити це своєю конкурентною перевагою, потрібно вивчити обидві. Можливо, десь достатньо тільки Angular 1, але скоро таких місць не залишиться. Більша частина роботи з Angular полягатиме в перекладі коду з Angular 1 на Angular 2.

Можу запропонувати вам веселий безкоштовний курс з Angular 1. А щоб розібратися в основах Angular 2, спробуйте цю безкоштовну відео-серію.

Ember JS

На ринку все ще вистачає роботи для людей з досвідом використання Ember JS, але її популярність починає поступово сходити нанівець. Його не підтримують «владики всього інтернету» Google і Facebook, але для цього у вас є React і Angular. І все-таки, якщо вам цікаво, можете вивчити офіційний посібник з Ember JS.

Щойно ви визначитеся з фреймворком, який вам найбільше до вподоби, є сенс вивчити супровідні фреймворки для CSS. Тут є два лідери: Bootstrap і Material Design. Bootstrap зробили у Twitter, він досить зрілий і популярний. Існують версії Bootstrap для Angular 1, Angular 2 і React. Material – це керівництво з проектування, випущене Google, яке зараз набирає популярності. У нього також є версії для Angular і React. А оскільки Angular теж створений у Google, вони з Material Design органічно пасують один одному. Нижче кілька корисних посилань:

Прийміть мої вітання, тепер у вас є всі необхідні навички, щоб стати хорошим Front End розробником.

Я хочу бути back-end розробником

Чудово. Спершу потрібно визначитися з мовою. На бекенді можна працювати з різними мовами, у кожної є свої недоліки та переваги. Нижче графік популярності мов і як вона змінювалася за останнє десятиліття. Мови, позначені зеленим кольором, з роками ставали тільки популярнішими. На них має сенс зупинитися.

Якщо ви ще не знаєте жодної з цих мов, пройдіться по кожній з них від верху до низу і визначтеся, яка вам подобається найбільше.

Java

Java – надзвичайно популярна мова, яка працює майже скрізь. Її розробили в Sun Microsystems (зараз належить Oracle). На Java пишуть додатки для Android, десктопні додатки і, звісно ж, веб-додатки (як окремий backend так і в парі з JSP). Це зріла, стабільна мова, для вивчення якої є тонни інформації. Вона також найпоширеніша об’єктно-орієнтована мова в університетських програмах по всьому світу. Ось один із курсів для початківців, дуже хороший.

C#

Мову C# (сі шарп) створили в Microsoft, щоб конкурувати з Java. Донедавна її підтримували далеко не всі системи, крім, звісно ж, систем Microsoft, але це швидко змінилося. Він об’єктно-орієнтований, як і Java, і його можна використовувати для написання не тільки веб-додатків (як окремий внутрішній інтерфейс або в поєднанні з ASP.Net), а й для десктопних додатків. Якщо ви користувач Windows і хочете програмувати в більш звичній екосистемі, C# вам сподобається. Хороший курс можна пройти на Microsoft Virtual Academy.

Python

На відміну від Java і C#, Python створювався не в стінах крутої компанії, але незважаючи на це він дає змогу добре і швидко писати програми. Вивчити її відносно просто, і завдяки цьому з роками вона стає дедалі популярнішою. Якщо інші мови не припали вам до смаку, Python може стати вашою дороговказною ниткою в IT. Найкраще джерело для вивчення основ ви знайдете тут.

(До речі, раніше на AIN.UA виходив матеріал про українця, який став одним із core-девелоперів Python).

JavaScript

Про JavaScript я вже писав вище. Серверна частина JavaScript також набуває все більшої популярності, тому його варто вивчити. Якщо ви цього ще не зробили, саме час.

Ruby

Ruby – дивний птах. Ті, кому вона подобається, жити без неї не можуть. Мова входить у топ-10 за популярністю, але вона поступово знижується. Це суміш функціонального та імперативного програмування. Я рекомендую з нею ознайомитися, можливо, ви станете одним із її фанатів. Для Ruby-розробників найближчими роками буде вдосталь роботи. Але краще ще раз перевірте список компаній у своїй ніші, щоб переконатися, що хоча б парочка Ruby-орієнтованих у ньому є.

Вивчати найкраще на RubyMonk.

А що з PHP?

На ринку ще багато PHP, але він, здається, втрачає свою популярність. Я позначив його жовтим, бо думаю, що на ньому ще можна побудувати кар’єру. Я не фанат PHP, тож, можливо, я просто чіпляюся, але я не можу уявити, що в найближчі 5-10 років PHP цінуватимуть сильніше, ніж JavaScript. Навіть незважаючи на те, що зараз його рейтинги вищі і роботи для PHP-розробників ще довго буде вистачати.

Я багато чому навчився, але в мене все ще немає реального досвіду

Без досвіду знайти роботу надзвичайно складно. Почніть з одного або двох особистих проєктів, які побудуйте самі від початку і до кінця. При цьому вам стане в пригоді можливість керувати і публікувати свій код. Для цього незамінний GitHub.

GitHub

GitHub – це інтернет-сховище вихідного коду, побудоване на платформі Git. Він дає змогу зберігати, керувати та публікувати свій код. Якщо ви сучасний розробник, акаунт на GitHub – це мастхев. Більше про те, що це таке і як використовувати GitHub, можна дізнатися в посібнику «Hello World» і з цього інтерактивного уроку.

Ось кілька ідей для своїх проєктів.

Ще багато ідей для проєктів можна знайти на Free Code Camp. Ось мої улюблені:

Реальний досвід

Тепер вам потрібен реальний досвід. Тобто робота, яку ви виконали для когось іншого. Свої проєкти корисні, але їх недостатньо, щоб конкурувати на ринку праці. Отримати реальний досвід можна кількома способами.

  1. Взяти участь у відкритому проєкті. Завдяки популярності GitHub, є мільйони проєктів із відкритим кодом, багів у яких вистачить на всіх. Наявність у вашому резюме запису про те, що ви вирішили проблему в якомусь популярному open-source проєкті, додасть вам цінності в очах роботодавця. Дізнатися, у яких проєктах найкраще взяти участь, можна на Code Triage. Тут ви зможете вибрати проєкт, який вам найбільше подобається, після чого щодня отримувати на пошту повідомлення про різні баги.
  2. Зробити роботу для друга або родича. У вас обов’язково має знайтися хоча б один друг або родич, у якого є власний бізнес. Розробіть для нього сайт або застосунок чи покращіть уже наявні. Але переконайтеся, що і проєкт, і «клієнт» відповідні, щоб уникнути незручних ситуацій у майбутньому. В ідеалі це має бути проєкт, який ви зможете завершити за 90 днів, і людина, з якою у вас склалися довірчі стосунки. Ви не повинні боятися сказати або визнати, що все пішло не так, як планувалося, боятися сказати «ні» або не виправдати якісь запити чи очікування. Ви також не повинні переживати за те, що якщо хто-небудь з якоїсь причини з вас відступиться, це не зруйнує ваші стосунки.
  3. Попрацюйте в благодійному або неприбутковому проєкті. Дуже вдячний спосіб отримати реальний досвід – зробити роботу для благодійної або неприбуткової організації. Ви можете запропонувати свої послуги будь-якій команді, ідеї якої вам близькі. Знайти такі проєкти також можна на сайті Catch a Fire.
  4. Каторжна праця. Трохи нахабний підзаголовок, визнаю. Але з мого досвіду, якщо ви оберете цей шлях, у майбутньому, маючи постійну роботу або будучи фрілансером, ви будете озиратися назад і думати про нього, як про каторгу, запевняю вас. Такі сайти як UpworkFiverr і PeoplePerHour дають можливість зробити кар’єру, але попередньо доведеться набити собі рейтинг, працюючи за копійки, і братися за будь-які проєкти, тільки щоб отримати досвід.

У мене є реальний досвід, як мені знайти роботу?

Перше правило – не називайте себе веб-розробником.

Чим, чорт забирай, «веб-розробник» відрізняється від «фронт-енд розробника”?! Ну, наприклад зарплатою – на $7000 на рік. Серйозно, коли прийде час, тільки те, як ви самі себе називаєте, може дуже сильно вплинути на результат. Ось дивіться:

стать разработчиком-5

  • Напишіть сильне резюме. Незважаючи на історії про те, що привернути увагу роботодавця допоможуть «божевільні штучки», вам усе одно необхідне гарне резюме. Написати його допоможе ця стаття з Tech Republic.
  • Створіть сайт-портфоліо. Важливішим за гарне резюме може бути тільки ваш особистий сайт-портфоліо. Зберіть на ньому всі реальні проєкти, які ви коли-небудь робили. Акцентуйте, що кожен із цих проєктів вирішував важливу проблему конкретного бізнесу. Зробіть це, і тоді ваш сайт буде виділятися з-поміж безлічі інших.
  • Підготуйтеся до практичної співбесіди і взагалі потренуйте свої навички спілкування з рекрутерами.
  • Не дайте закрити перед вами двері. Не думайте про те, щоб отримати роботу мрії із зарплатою мрії. Просто переконайтеся, що ви пишете код і вам за це платять гроші. Коли у вас буде більше досвіду, ви зможете зробити наступний крок до кар’єри своєї мрії.

Я хочу бути фрілансером

Бути самому собі босом круто, але не легко. Найкраще джерело інформації для фрилансерів – сайт Бреннана Данна DoubleYourFreelancing.com. Він написав серію статей, які допоможуть вам зробити кар’єру фрілансера кращою, ніж будь-що, що я колись читав. Так що, зацініть.

А якщо ви вважаєте, що ви вже дуже круті, приєднуйтесь до Toptal. Сюди приймають тільки 3% кандидатів, процес проходження дуже складний, але якщо ви станете частиною ком’юніті, то отримаєте доступ до величезної кількості високооплачуваних можливостей.

Я застряг

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

  • Переосмислити початкову мету. Запитайте себе і запишіть, чому ви почали йти цим шляхом. Ваша відповідь усе ще в силі? Якщо так, не зупиняйтеся.
  • Будьте наполегливими. Тепер, коли ви знаєте, що вам потрібно і що це реально, ви краще розумієте, яким є найкращий сценарій, найгірший сценарій і найвірогідніший сценарій того, як усе відбуватиметься. Запишіть їх, перечитайте й усвідомте, що «найвірогідніший сценарій» – найімовірніше і станеться, і він ближче до «найкращого сценарію», ніж до «найгіршого».

Не потрібно боятися. Рухайтеся вперед. У вас вийде.

Автор: Білл Соуро, консультант і тренер, засновник Dev Mastery

Джерело: Medium