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

Фон

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

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

Когда мне было около 12, один из этих ботаников прислал мне по электронной почте руководство по веб-разработке (огромный файл .txt, который в основном касался HTML), и я использовал его для создания своего собственного фан-сайта Майкла Джексона. У него даже был один из этих классных счетчиков посещений! 😆

Я разместил его на Geocities, получил бесплатный короткий URL-адрес и разместил его на Yahoo и AltaVista (это были крупнейшие в то время).

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

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

Как я решил сменить профессию

Я люблю преподавать. Это полезная профессия, интересная и веселая. Но у него есть свои недостатки. Вначале все казалось вызовом, но после стольких лет я начал чувствовать, что у меня нет цели. Что я больше не рос и не учился.

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

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

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

Тем временем мы планировали следующую дальнюю поездку, экономили деньги, планировали и так далее. Я все больше и больше работал переводчиком-фрилансером, очень увлеченный своей карьерой, переводя такие классные вещи, как романы и стихи. Наступил 2017 год, и на этот раз мы снова поехали в Европу на два месяца.

Там мы встретили кучу разработчиков. Это было безумно. Кажется, что каждый сёрфер, которого мы встречали, каким-то образом работал в сфере информационных технологий, будь то менеджер по программному продукту, разработчик, тестировщик и так далее. Все они поощряли нас заниматься технологиями. К тому времени мы уже решили, что хотим переехать в Европу, поэтому многие из них сказали нам: «Здесь можно найти работу! Разработчики здесь востребованы, нам их нужно много! »

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

Пока мы изучали JavaScript, мы ждали начала учебного года в марте 2018 года. Для Uni было всего 50 мест, поэтому мы очень посвятили себя и выучили заранее. Мы пошли, прошли тесты, прошли курсы, а потом пришлось ждать, пока они решат. Мы получили самые высокие оценки среди всех кандидатов, но эти оценки не имели значения. Места будут распределяться через систему лотереи. Мой муж вошел, а я осталась в стороне.

Он решил, что предпочитает учиться самостоятельно, он больше не интересовался Java, потому что был привязан к JavaScript, поэтому мы начали учиться самостоятельно. Мы начали с Codecademy, но она была для нас слишком ручной (у нас не было премиум-аккаунтов). Где-то читали про freeCodeCamp. И мы начали это, сначала очень медленно (на получение первого сертификата у меня ушло несколько месяцев, правда, в середине учебный план был изменен, и я уронил свой ноутбук, и мне пришлось его отремонтировать). После того, как летние каникулы закончились, и я вернулся к работе на полную ставку, все стало тяжело.

Работа на полную ставку и на freeCodeCamp на полной скорости

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

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

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

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

  1. Тайм-менеджмент
  2. Дисциплина
  3. Организация

Тайм-менеджмент

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

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

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

К счастью, после июня мои часы работы сократились с 10 -12 до 8, так что теперь я работал по обычному графику и начал набирать темп.

Дисциплина

Вам придется учиться даже в те дни, когда вам этого не хочется. Здесь мотивация также играет большую роль, но важна дисциплина - особенно если вы похожи на меня и часто отвлекаетесь на социальные сети и видео с кошками. 😺

Лучший совет, который я могу дать вам, чтобы побороть искушение читать статьи в Интернете, заключается в следующем: если у вас в голове возникает вопрос типа «как летают самолеты?» (обычно это вопрос, который меня уносит и затягивает в течение 30 минут), запишите его где-нибудь и пообещайте себе, что вы прочтете все об этом после того, как закончите то, что делаете.

В 99% случаев вам уже все равно, потому что эти вопросы просто возникают в вашем мозгу, потому что он хочет отвлечься. Протолкните, и вы победите его.

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

Вам придется расставить приоритеты и сделать трудный выбор.

Мотивация

У меня был очень сильный мотиватор: я стал разработчиком и переехал в Европу. Это было моей целью в течение долгого, долгого времени, и я дошел до того момента, когда меня расстраивало, что я не получал ее. Все мои друзья уехали из города, у меня здесь практически нет семьи, я чувствовал себя изолированным и хотел уехать.

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

Все мои увлечения практичны и продуктивны: садоводство, йога, кулинария. Мне нужна причина для их употребления (я хочу бесплатные овощи, у меня болит спина, я голоден). Если вы хоть немного похожи на меня, вам нужно найти морковку, чтобы продвигаться дальше.

Подумайте об этом, чего именно вы хотите достичь, закончив freeCodeCamp? Что вы хотите изменить или получить в своей личной жизни с помощью этого?

Учебная программа + дополнительные ресурсы

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

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

Алгоритмы JavaScript и структуры данных: Как только я добрался до модулей JavaScript, меня зацепило. Все было супер весело, я многому научился и очень хотел применить это на практике.

Для этого раздела я использовал в основном книги. У меня уже было достаточно упражнений с freeCodeCamp, но мне нужно было больше в виде объяснений. В Beginning JS тоже есть масса упражнений.

К тому времени, как я добралась до этого раздела, я также присоединилась к программе Summer of Code 1 миллион женщин в технологической сфере (1MWTT). Я изучил базовый Python и от базового до продвинутого JavaScript, который мне очень помог, особенно с обещаниями.

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

Фреймворки JavaScript. Этот раздел тоже был отличным, поскольку он дал мне основу для React и Redux. Я уже прошел курс React по Udemy, React 16.6 - Полное руководство (включая React Router и Redux).

Я очень рекомендую этот и другие курсы того же автора. Он невероятно подробен, и его объяснения потрясающие. Это был один из немногих курсов Удеми, где я действительно следил за его проектом: обычно я смотрю видео и применяю принципы ко всему, над чем я работаю.

На 1millionwomentotech у нас была неделя React, которая в основном была нативной, и затем я начал с ней экспериментировать. К тому времени я также начал работать над своим сайд-проектом с моим мужем, который, как мы решили, будет PWA с React.

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

API и микросервисы: этот раздел стал для меня большим открытием и все изменил. До этого модуля я был уверен, что хочу быть фронтенд-разработчиком, но после изучения Node.js я начал думать о том, чтобы стать бэкенд-разработчиком или разработчиком полного стека. Создание API-интерфейсов - это очень весело, и вы так быстро видите результаты. Я начал создавать свои первые небольшие проекты Full Stack и был очень взволнован.

Некоторые из ресурсов, которые я использовал:

В то время я также был волонтером в 1MWTT, и меня попросили создать приложение Probot для адаптации волонтеров к Node. Это также дало мне возможность попрактиковаться в Node, что было очень весело.

Контроль качества и информационная безопасность: Этот модуль также открыл глаза. До этого я ни разу в жизни не написал ни одного теста. Теперь я люблю писать тесты, и я даже очень заинтересовался разработкой через тестирование.

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

- Чайные документы

- Тестирование реакции с помощью Jest и Enzyme

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

- Учебники по D3.js от d3Vienno

- Документация D3

Советы по окончанию учебной программы

Подводя итог, это то, что больше всего помогло мне в достижении моей цели - окончании учебной программы:

  • Используйте учебную программу как дорожную карту, но дополняйте ее другими ресурсами
  • Не зацикливайтесь надолго: задавайте вопросы, гугл, парная программа.
  • Ставьте реалистичные цели на каждый день и неделю. Не ругайте себя, если на неделю вы будете медленнее: жизнь случается. Не позволяйте этому сбить вас с курса.
  • Помните о своей мотивации: это то, что поможет вам пережить тяжелые дни.
  • Расставьте приоритеты: вам придется сократить время, которое вы тратите на другие дела.
  • Не забывай брать выходные! Они жизненно важны для процесса обучения. И выспись!

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

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

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

Если вы чувствуете то же самое и можете отдать что-то, пожалуйста, подумайте о том, чтобы сделать пожертвование здесь!