Як стати розробником React за 5 місяців

Історія про те, як я перейшов від нетехнічного до найнятого розробника React.

Коли мені було 29 років, я перейшов від кодера хобі до професійного розробника інтерфейсів. Цей перехід є однією з найцікавіших речей, які я коли-небудь робив як в особистому, так і в професійному плані.

Особисто це додало мені впевненості в тому, що я можу навчитися чому завгодно, а в професійному плані це стало вирішальним для моєї кар’єри. Сьогодні я є співзасновником Scrimba, навчальної платформи, яка навчає понад 100 тис. Людей кодувати щомісяця. Я просто не міг би мати цю роль, якби не знав, як кодувати.

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

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

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

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

Закриття мого попереднього запуску

Наприкінці 2014 року ми з двома співзасновниками вирішили закрити стартап нашої програми для дітей - Propell - оскільки ми втратили мотивацію і не бачили, як ми можемо стати прибутковими. Спочатку він розпочався як допоміжний проект, коли я закінчив економічний ступінь, але незабаром перетворився на штатну роботу з чотирма людьми, які працювали в компанії на піку.

Незважаючи на те, що відмовлятись відмовитись, це також дало мені можливість робити те, що я хотів зробити приблизно з 2011 року, а саме, щоб правильно навчитися кодувати.

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

Курси, з яких я розпочав, - це вступ Udacity до комп’ютерних наук та кодування для підприємців на Udemy. Вони обоє чудові, хоча я жодного з них не закінчив.

У будь-якому випадку, продовжувати навчання самостійно в Інтернеті не було можливості. Я хотів інтенсивного особистого курсу, оскільки знав, що це збільшить мої шанси на можливість здійснити перехід. Я хотів середовища, де я міг би витрачати 100% свого часу на кодування разом з іншими. Тож я переглянув усі завантажувальні камери кодування, які міг знайти, і застосував до наступного:

  • Розробник Bootcamp
  • Гора Дев
  • Школа Флатірон
  • Засновники та кодери (FAC)
  • HackerShip
  • Hack Reactor
  • MakerSquare
  • Центр рекурсу

Мене прийняли до всіх, крім Hack Reactor і Recurse Center. Якщо ви збираєтесь зробити кодування bootcamp самостійно, я рекомендую вам зробити те саме. Подайте заявку в усі школи, які здаються вам цікавими, а потім починайте фільтрувати. Поспілкувавшись із людьми, які там працюють, і переживаючи процес подання заявок, ви добре зрозумієте якість та філософію школи, що дуже важливо.

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

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

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

У будь-якому випадку, після численних переговорів туди-сюди, а потім переконливої ​​розмови з блискучим шефом Засновників та Кодерів, Даном Софером, я нарешті вирішив переїхати до Лондона та вступити до FAC.

Філософія засновників та кодерів

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

Відсутність навчання означає, що вони не можуть наймати будь-яких штатних викладачів, тому це базується на рівному навчанні, де ви в основному вчитеся речам у своїх однокласників та самі. Ви також отримуєте допомогу від попередніх когорт, оскільки вони залишаються і допомагають новим студентам, працюючи над власними консультаційними заходами. У FAC також є два чудові наставники Нельсон Коррея та Інес Телес, які надають неоціненну допомогу студентам та організації.

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

Однак це не найпростіший спосіб навчитися кодувати. Ви не можете просто підняти руку і отримати відповідь від викладача кожного разу, коли ви застрягли, що, я вважаю, ви можете зробити на завантажувальному таборі 10–15 тис. Доларів США. У FAC вам доведеться досліджувати це самостійно та разом із однолітками, що вимагає великої самодисципліни.

Але це також має величезний плюс; Ви значно відточите свої навички вирішення проблем і навчитесь навчати себе, чого завгодно. Це одна з найважливіших навичок, якою ви можете володіти як розробник.

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

Проходження FAC, швидше за все, змінить ваше життя на краще.

Частина 1 - Вісім проектів

1-го дня клас згрупували у команди по чотири. Ці команди мали складатися з наступних двох місяців. Кожного понеділка ми отримували новий проект, який нам потрібно було побудувати та представити для класу наступної п’ятниці. У командах ми оберталися між чотирма різними ролями - розробниками, бібліотекарем, тестувальником та власником репо - щоб переконатися, що кожен учасник вивчив усі частини побудови веб-програми.

На додаток до цього, ми мали завдання кодування щоранку, де ми відпрацьовували основні навички Javascript.

Все було зроблено з відкритим кодом, тому я посилався на всі наші щотижневі проекти нижче. Озираючись на проекти, я не можу прямо сказати, що пишаюся ними. Але я, безумовно, пишаюся всім, чому я навчився, будуючи їх.

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

  • Тиждень 1: Командний блог - HTML / CSS, jQuery, Github Pages
  • Тиждень 2: API Guardian - веб-API, Ajax
  • Тиждень 3: Соціальна стіна - Сервери, Node.js
  • Тиждень 4: InstagramFeed - Heroku, MongoDB
  • Тиждень 5: StopGoContinue - D3.js
  • Тиждень 6: Примітки - React.js
  • Тиждень 7: Блог - візуалізація на стороні сервера, файли cookie
  • Тиждень 8: Блог - Hapi.js

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

Під час робочих днів я думаю, що в середньому я кодував близько 10 годин на день або дізнався про кодування, а це означає, що я склав трохи менше 1000 годин протягом чотирьох місяців у Лондоні.

Пошук моєї ніші React

Як бачите, ми почали використовувати React.js з 6 тижня. Мені одразу сподобалось працювати з ним, і мені сподобалася думка про можливість розробити власні мобільні додатки (React Native). Тому я вирішив продовжувати використовувати React якомога більше протягом курсу.

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

Дев'ятий тиждень проекту передбачав створення нашого власного продукту, оскільки КУА також хоче надихнути студентів також робити власні речі. Моя команда створила невеликий інструмент для аналізу ключового слова вашого додатка iOS під назвою KeywordKing, про який ви можете прочитати тут.

Частина 2 - Побудова MVP для клієнтів

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

Це працює так: за 500 фунтів стерлінгів команда з 3-5 студентів побудує прототип за тиждень. Для нас це був спосіб навчитися працювати з клієнтами, а також розвивати наші навички кодування, одночасно заробляючи трохи грошей. Для клієнта це був шанс швидко побудувати дешевий MVP. І не ризикуючи грошима, оскільки на них буде виставлено рахунок, лише якщо вони будуть задоволені результатом, яким була більшість клієнтів (але не всі).

Протягом цих тижнів я побудував наступні проекти разом з різними іншими студентами:

  • Сер Передікталот - прототип програми прогнозування новин Tinder'ish
  • Тролль-Олав - дитяча головоломка
  • RateMyStuff - соціальна мережа, заснована на рейтингу зображень
  • Squish - посилений інструмент навчання для учнів

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

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

Повернувшись до Норвегії

Повернувшись додому, моїм планом було якомога швидше зайнятися професійним кодуванням, оскільки мені потрібно було відпрацювати свої щойно набуті знання, щоб вони злипались.

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

Тож я надіслав три заявки на роботу компаніям, які потребували розробників Javascript. Двоє з них запросили мене на співбесіду.

Я не отримав першого. Не знаю, чому, але я підозрюю, що вони хотіли більш старшого розробника. Наступний провів мене через два раунди інтерв’ю, а потім дав мені завдання кодування.

Мережа для пошуку ідеальної роботи

Приблизно в той же час я відвідав стартовий захід, організований підприємцем, якого я трохи знав. Він був технічним директором добре фінансуваного стартапу на ім’я Xeneta, яким я був шанувальником пару років. Згідно з їх веб-сайтом, вони шукали розробників інтерфейсних платформ - і насправді вони згадали React.js як одну з технологій, яку вони використовували.

Увечері він сказав мені, що вони щойно переписали весь свій інтерфейс у React.js і шукають нового розробника, який знав би бібліотеку; це здавалося занадто добрим, щоб бути правдою. Я сказав йому, що мене зацікавить робота, і ми вирішили поговорити пізніше.

Наступного тижня я пішов на перше інтерв’ю, а потім ще два раунди інтерв’ю. Потім вони надіслали мені завдання з кодування.

Виконання завдання найму

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

Перш за все, я витратив набагато більше часу, ніж очікували. В кінці тижня мені дали завдання і сказали, що мені не потрібно витрачати на нього багато часу. Але швидко зробити це для мене не було можливості. Тож я запитав, чи можу я доставити його на вихідних, що з ними було добре. Потім я цілі вихідні працював над цим. Я переглянув кожен рядок коду, переконавшись, що він СУХИЙ, простий для читання та вільний від неохайності.

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

Врешті-решт, я попросив деяких своїх попередніх однокласників з ФАК швидко поглянути на моє рішення, і це також допомогло. Це може бути трохи підло, але я твердо вирішив запропонувати ідеальне рішення.

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

Отримання пропозиції

26 червня - рівно через п’ять місяців після мого першого дня у «Засновниках та кодерах» - ми домовились, і мене найняли розробником.

Це була справді надзвичайна робота в стартапі з надзвичайно кваліфікованими людьми, які вирішували великі проблеми на величезному ринку. Мене кидали виклики щодня. Тож я не шкодую ні секунди про те, що змінив кар’єру.

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

З тих пір ми розросли платформу з нуля до понад 100 тис. Активних користувачів щомісяця. Це була фантастична подорож, і люди щодня розповідають нам, наскільки це допомагає їм навчитися кодувати.

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

Удачі :)