Все это время мне было под тридцать, я воспитывала троих маленьких детей и не имела образования в области информатики.

Я потратил шесть месяцев на то, чтобы пройти от элементарных знаний о JavaScript и CSS до работы фронтенд-разработчиком в Storytel. Это было нелегкое путешествие, я был переполнен неуверенностью в себе и сомневался, что это реальный карьерный путь, который я выберу.

В некоторые из самых сомнительных моментов я начал читать множество-много личных историй о людях, которые меняют карьеру и получают работу разработчика благодаря самообучению и курсовой работе (это один из моих любимых). Эти статьи поддержали меня и укрепили мою уверенность в том, что это действительно возможно.

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

Моя биография

У меня есть степень магистра в области современной культуры и коммуникации и степень бакалавра сравнительной литературы. Я несколько лет проработал в сфере коммуникаций в государственном секторе Дании - работу, которую я ненавидел, но за которую платили довольно неплохо. Однако сокращения в конце 2016 года привели к исчезновению моей позиции.

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

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

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

Мой путь

Итак, я начал шестинедельный курс с учениями три раза в неделю и домашними заданиями между ними. У меня был отличный учитель, с которым мне посчастливилось встретиться позже. Курс сосредоточен на обычном JavaScript и создании веб-приложений с помощью HTML, CSS и JavaScript. Я мгновенно увлекся JavaScript (до сих пор!). Логика и красота хорошо написанного кода действительно говорили мне об эстетике, и заставить приложение что-то делать было почти волшебством.

Во время курса мы следовали учебной программе freeCodeCamp.org, и многие проекты, которые мы делали, мы делали в этом контексте. freeCodeCamp великолепен и бесплатен, он помогает вам на вашем пути в очень хорошо продуманной и хорошо структурированной форме, а затем сбивает вас с толку, когда вам нужно создать собственный проект и объединить все, что вы узнали. 😄

Это заставляет вас вернуться к старым учениям и поискать что-то в Google, как и работает любой разработчик. Мы также следовали этой дорожной карте разработчика, которая только что получила хорошее обновление 2019 года. Я по-прежнему использую эту дорожную карту для развития своих навыков.

Я закончил курс, получив хорошие элементарные знания в области фронтенд-разработки. Однако было ясно, что никакой работы я не получу, исходя только из курсовой работы. Я продолжал учиться самостоятельно, работая над получением сертификатов в freeCodeCamp, но также чувствовал, что мне нужно чем-то дополнить эти знания.

Я много изучал и обнаружил, что многие люди рекомендуют Учебный курс для веб-разработчиков Кольта Стила на Udemy. Я прошел этот курс, который также касался серверной части с Node.js, Express и MongoDB. С одной стороны, я подумал, что было приятно получить некоторое представление о серверной части, это определенно тот путь, который меня интересует и о котором я собираюсь узнать больше (прямо сейчас я прохожу курс MySQL Кольта Стила, и я надеюсь однажды стать разработчиком полного стека), но, с другой стороны, я не использовал эти навыки с самого курса, а теперь я забыл большую часть из них. Последнее является моей собственной ошибкой, вам определенно следует всегда использовать то, чему вы научились, и создавать свои собственные вещи, в чем я не очень хорошо разбирался.

Одновременно с курсом Udemy я начал проходить Гарвардский курс CS50 на YouTube и edX. Я прочитал пару лекций и выполнил домашнее задание, но изучение Си и высокоуровневый подход не подходили мне для продолжения. Я хотел сосредоточиться на JavaScript, и мне нужны были хорошие практические знания о том, как что-то создавать.

Прочитав, что вам следует подавать документы раньше, я сосредоточился на создании портфолио после окончания курса (оно все еще здесь, хотя и немного устарело). Я использовал шаблон в качестве отправной точки, скопировал много кода, чтобы сделать переходы и тому подобное, чтобы они выглядели красиво, и использовал некоторые из моих проектов Udemy в качестве проектов портфолио (мне нужно кормить троих детей!).

Я дал несколько интервью, но ничего не приземлился. На самом деле не было технических собеседований, о которых все постоянно говорят. Тем не менее, я получил несколько хороших контактов, и технический директор Rainmaking ventures стал моим наставником и дал хороший совет о том, что делать дальше. Я решил, что мне нужно изучить фреймворк для JavaScript. Не многие компании используют ванильный JS для своих проектов (хотя это отличная основа!).

Рекомендации разделились между React и Angular, а Vue выступил в роли аутсайдера. Я решил пойти с React, поскольку он был более разрекламированным и быстро набирал популярность, а также казался менее громоздким, чем Angular, и, поскольку он использует стандартный JavaScript ES6, это также отточит мои навыки JS.

Я записался на этот курс Удеми. На полпути, однако, страховка моего фонда занятости предложила мне еще один курс, на этот раз на React и Redux. Это было именно то, что мне было нужно, вы можете продвинуться так далеко самостоятельно, но наличие хорошего учителя и других учеников, от которых можно было бы обсуждать идеи и вопросы, бесценно. И вдобавок это был тот же великий учитель, который вел мой первый фронтенд-курс.

Одновременное прохождение моего курса React Udemy и шестинедельного курса действительно дало мне преимущество в том, что все повторялось дважды, что сделало это намного лучше в моей памяти.

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

Получение работы

Примерно на последней неделе курса, когда мы завершали наш последний проект по реакции (Я создаю этот интернет-магазин настольных игр), я получил интервью в Storytel, компании, специализирующейся на аудиокнигах. Это казалось мне очень подходящим, с моим литературным образованием и должностью не было заявленных требований к опыту. Я прошел первое собеседование и вскоре получил домашнее задание - создать приложение для доски объявлений на React и Redux. Идеальное время!

Я провожу довольно много времени над этим приложением, простые вещи сложно делать, когда вам нужно их кодировать. После отправки меня вызвали на другое собеседование с парой опытных разработчиков, которые составили мой код. Это было не так уж и страшно, все они были очень милы. Я не совсем понимал, как все прошло потом, у меня было довольно хорошее предчувствие, но мне было не с чем сравнивать.

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

Работаю разработчиком

Конечно, ваше настоящее образование не начнется, пока вы не начнете работать разработчиком. Моим первым препятствием было изучение TypeScript. Поскольку JavaScript является языком с динамической типизацией, мне не нужно было беспокоиться о том, будет ли эта переменная хранить целое число или строку, или если аргумент функции должен быть логическим или каким-то еще. Это не то, как это работает с TypeScript, это, казалось, останавливало меня на каждом шагу, давая мне ошибки и отказывалось компилировать, если каждый отдельный тип не был определен. У меня были несколько разочаровывающих дней, когда я не мог даже скомпилировать свой код из-за всех ошибок TypeScript. Сегодня я вижу преимущество языков со статической типизацией, хотя есть налог, который нужно платить.

Следующее, что мне нужно было узнать, - это сотрудничество в GitHub и работа с ветками. Я уже использовал GitHub для своих собственных проектов, но сотрудничал с другими и получал отзывы на свои запросы на вытягивание где-то в новинку. Было одновременно обнадеживающе и пугающе, что группа рецензентов собиралась изучить каждую деталь моего кода, и что я ожидал, что сделаю то же самое для других. Но это определенно то, что поддерживает наш код на высоком уровне и развивает передовые практики в командах.

Практически с первого дня мне давали «истории» для работы с нашей доски JIRA. И я помог создать совершенно новое приложение в нашем приложении поддержки клиентов. Я наконец-то создавал настоящие вещи и получал от этого огромное удовольствие. Будучи разработчиком, вам придется приветствовать постоянные проблемы с вашими навыками и делать из них приглашение к совершенствованию, а затем наслаждаться этим невероятным чувством, когда вы преодолеете что-то сложное и заставите все это работать.

Теперь у меня есть работа, которую я люблю, мне платят не так много, как раньше, но мое удовлетворение от работы возросло во сто крат.

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