Я хотел сменить карьеру. Сегодняшний мир совсем не тот, в котором выросли наши родители. Следовательно, многие советы, которые давали мне родители, больше не соответствовали нынешнему ландшафту.

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

Я был полон решимости добиться этого. Сделать это означало не откладывать на потом. Я собирался начать немедленно, чтобы в следующие 10 лет не оглядываться назад и не говорить: «Хотел бы я начать это намного раньше».

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

Начало

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

А потом я обнаружил статью об этой задаче под названием # 100DaysOfCode. Для выполнения задания есть два основных требования:

  1. Кодируйте минимум час каждый день в течение 100 дней подряд
  2. Ежедневно твитните о своем прогрессе с хэштегом # 100DaysOfCode

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

Таким образом, я начал твитить со своего аккаунта twitter.com/PolarisTLX каждый день, а также в группе в Facebook.

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

Есть и дополнительные преимущества. Поскольку кодирование включает в себя концепции, которые постоянно дополняют друг друга, если вы проведете несколько дней без кодирования, изрядное количество знаний будет потеряно.

Кроме того, основатель # 100DaysOfCode приветствует вас, чтобы вы сделали его своим. Итак, чтобы действительно ускорить свое обучение и добиться значительного прогресса в достижении моей цели - получить эту работу разработчика, я фактически посвятил себя решению этой задачи полный рабочий день, а не только один час в день. И после этого я достиг этой волшебной 100-дневной отметки.

Однако я все еще не был готов к работе. Мне просто нужно было научиться многому. Но я добивался больших успехов и был полон решимости продолжать, пока, наконец, не получил эту работу. Так что я просто решил продолжать 150, 200, 250 дней ...

Основные достижения

И вот я достиг 365 дней! Вот некоторые из основных вещей, которых я смог добиться, ежедневно кодируя в течение года:

  • Пройдены десятки руководств, курсов и книг по кодированию.
  • Решено более 100 алгоритмов и задач по кодированию интервью
  • Получил сертификаты «Front End Developer» и «JavaScript Algorithms and Data Structures Projects» от freeCodeCamp.
  • Участвовал в двухдневном хакатоне, где отобрали проект для презентации членам правления компании. Затем они решили продвинуть его на следующий этап разработки.
  • Был принят в программу разработки программного обеспечения на полный рабочий день с уровнем принятия менее 1%
  • Участвовал в расширенной программе бета-тестирования freeCodeCamp
  • Написал содержание курса для новой учебной программы Ruby проекта Odin, чтобы помочь другим начинающим разработчикам научиться программировать.
  • Создал рабочий клон Facebook, весь бэкэнд и интерфейс полностью с нуля, и разместил его на Heroku в качестве одного из моих избранных проектов в моем портфолио.
  • Получил свой первый регулярный источник дохода, работая на клиента удаленно, что привело к постоянному найму

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

Непростая задача

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

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

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

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

  • 30 дней JavaScript
  • 30 дней реакции
  • побочные продукты, такие как 180-Days-Of-Code
  • Группы каналов Slack, которые посвятили себя совместной работе над определенной книгой по кодированию с целью еженедельно делать главу и обсуждать / сравнивать заметки.

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

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

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

По моим наблюдениям в течение года, когда я занимался этим, я подсчитал, что из каждых 10 000 человек, которые начинают учиться программировать в Интернете каждый год по всему миру, менее 100 выдерживают больше Пару месяцев.

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

Итак, как мне это удалось - и как вы можете?

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

  • придавая вашему прогрессу некоторую структуру и ответственность с помощью чего-то вроде # 100DaysOfCode
  • ставить небольшие дополнительные цели и достигать их по ходу
  • парное программирование
  • поиск групп, к которым можно присоединиться и учиться вместе с

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

Самое главное, что я сделал

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

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

Другие вещи, которые мне помогли

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

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

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

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

Отказ от ответственности

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

«Вы можете пропустить день здесь и там для незапланированных ситуаций, но не больше… Вам разрешено пропустить день (но затем восполните его, добавив еще один день к концу 100). Цель состоит в том, чтобы стать последовательным, независимо от того, что вам бросает жизнь ». - Александр Каллавей, создатель # 100DaysOfCode

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

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

Вы можете увидеть, какие дни я пропустил, прямо на странице моего профиля GitHub: https://github.com/PolarisTLX. Но некоторые пробелы представляют время, когда я был в удаленных регионах без доступа к Интернету и не мог передать код на GitHub. Но я решил загрузить книгу кодирования в планшет, чтобы убедиться, что он полностью заряжен, прежде чем уйти. (Это не мой любимый способ изучения кода, но было бы неплохо немного изменить метод обучения и время от времени пробовать другой носитель.)

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

Сводка моего прогресса за 365 дней

Итак, за 365 дней я добился следующих достижений:

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

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

Надеюсь, вам понравилось читать о моем путешествии. Я настоятельно рекомендую вам попробовать испытание # 100DaysOfCode. Если вам понравился пост, пожалуйста, похлопайте 👏, чтобы распространить информацию и мотивировать других.