Создание собственной учебной программы

Опубликовано: 2022-03-10
Краткое резюме ↬ Как разработчики, мы постоянно изучаем новые языки и фреймворки. Но как вы можете структурировать это обучение, чтобы обеспечить максимальную пользу при постоянном прогрессе? Вот как вы можете разработать свой собственный учебный план, чтобы продолжать двигаться в правильном направлении.

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

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

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

Ваш личный учебный план

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

Используйте спецификации роли «Работа мечты» для постановки целей

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

Возможно, вы сами не захотите работать в крупной технологической компании, но стоит посмотреть, что они отдают приоритет при найме, поскольку, к лучшему или к худшему, крупные компании, как правило, задают тон всей отрасли. У меня есть небольшой список незлых компаний , в которых я хотел бы в один прекрасный день оказаться, и все они в целом имеют одни и те же приоритеты: семантический HTML/CSS, отличные навыки работы с ванильным JS, доступность и популярный фреймворк. Однажды я собираюсь изучить Rust, но на данный момент работа над этими навыками является моим главным приоритетом.

Графика, показывающая, как спецификации работы могут быть преобразованы в цели обучения
Стоит заглянуть на доски объявлений и изучить, какие требования предъявляют компании при найме разработчиков. (Большой превью)

Я склонен отдавать предпочтение Guardian Jobs и LinkedIn за то, что они позволяют получить широкий спектр вакансий, представленных на рынке, но не менее полезным является Twitter (просто выполните поиск [название интересующей вас компании] и «вакансии») и периодически следите за ними. на странице «Вакансии» ваших любимых компаний каждые пару месяцев. Джессика Роуз, которая пишет в Твиттере как @jesslynnrose, часто пишет длинные твиты о вакансиях в «незлых компаниях», которые иногда не очень хорошо освещаются в других местах.

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

Определите возможности для развития нужных вам навыков

Помните тот список, который я упоминал? Разделите его на две колонки. Колонка первая: вещи, над которыми вы можете работать в своей повседневной работе. Колонка вторая: вещи, на которые вам нужно обратить внимание в свободное время.

Обучение на рабочем месте

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

Если доступность — это пробел в ваших знаниях , который вы хотели бы улучшить, постарайтесь проглотить любые нервы и обратиться к кому-нибудь на вашем рабочем месте, у которого есть такие навыки для чата / кофе в Zoom. Попробуйте соединиться с ними, понимая, что вы можете «соединяться» с вещами, которые не вызывают проблем с кодированием. Поговорите с ними о том, где они находят свою информацию, какие учетные записи Twitter, блоги и подкасты они поддерживают, и как они сами остаются в курсе последних событий.

Еще после прыжка! Продолжить чтение ниже ↓

Домашнее обучение

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

Я обнаружил, что Frontend Masters бесценны, когда речь идет о действительно хорошо разработанных курсах по принципам компьютерных наук и более конкретному обучению. Лично я считаю курсы Уилла Сентэнса по Frontend Masters полезными для понимания того, как и почему, когда дело доходит до ванильного JavaScript. Точно так же курсы Брайана Холта «Четыре семестра компьютерных наук за 5 часов» знакомят студентов с концепциями, которые могут возникнуть на собеседованиях по техническим вопросам.

Существует ежемесячная абонентская плата за Frontend Masters, и она того стоит, но существует множество замечательных бесплатных ресурсов . Я действительно рекомендую всем, кто еще этого не сделал, зарегистрироваться в CS50. Курс, проводимый Гарвардским университетом, является прекрасным бесплатным ресурсом, который познакомит вас с C, Python, JavaScript и модулями по этике и базовым структурам данных. Лекции доставляют огромное удовольствие, и вы можете делать столько, сколько хотите, или меньше, без ограничений по времени.

Студенты на сцене во время лекции по программированию CS50 в Гарварде.
CS50 — это замечательный бесплатный ресурс, который поможет вам подробно ознакомиться с компьютерными науками и искусством программирования. (Большой превью)

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

Моим особым фаворитом является «Полный курс разработчика Node.js» Эндрю Мида, и я обожаю курсы Кольта Стила (есть особенно хороший курс по алгоритмам и структурам данных, который поможет вам, если вы когда-нибудь окажетесь на более тяжелой стороне алгоритмов). спектр технических интервью). Smashing Magazine также часто проводит онлайн-семинары по целому ряду тем, которые помогут вам улучшить свои навыки.

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

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

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

Установите цели и сроки

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

Как утренний человек, я чувствую, что лучше всего могу сосредоточиться на учебе за несколько часов до того, как моя дневная работа начнется в 9:30 утра. Имея это в виду и используя замечательный инструмент для отслеживания времени Toggl, я трачу с 7 до 9 утра два раза в неделю на изучение кода. Использование Toggl было чрезвычайно важно для меня, потому что, сколько бы я ни делал, мне часто кажется, что этого недостаточно. Но с помощью Тоггла я мог точно видеть, что работаю как минимум четыре часа в неделю (с дополнительными часами по вечерам и в выходные, если захочу), и я чувствовал себя более способным отойти от своего ноутбука и отдохнуть, когда мой время вышло, я был уверен, что наработал приемлемое количество часов по своим меркам.

Сделайте прогресс измеримым

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

Если это поможет вам увидеть пример, мои личные цели следующие:

  • Пройдите курс Node.js Udemy до конца февраля.
  • Выполняйте 30-минутную программу выполнения перед работой каждый день.

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

Найдите наставника, или приятеля, или обоих!

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

Я поговорил с Фалиной Лотхамер, дизайнером учебных программ Thinkful — Massive Open Online Course (сокращенно MOOC), — чтобы получить представление о том, как профессионалы подходят к самостоятельному обучению. Она очень четко объяснила, что поиск наставника и работа с ним — это ключ к развитию ваших навыков как разработчика.

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

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

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

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

Я бы порекомендовал подписаться на Interview Cake, Execute Program или соответствующий курс Udemy для вашего уровня навыков и специализации и выполнять те же упражнения, что и ваш приятель, примерно в то же время. Обсудите, что вам показалось проще и где вы упали, и поддерживайте контакт друг с другом на протяжении всего процесса. Хотя вы, безусловно, можете делать эти вещи в одиночку, воспитание чувства общности поможет вам сосредоточиться на задаче и повысит вероятность того, что вы будете ее выполнять.

Случай для приложений блокнота

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

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

Округлять

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

Шаги

  1. Используйте спецификации работы, чтобы определить ключевые навыки.
  2. Разделите эти навыки между обучением на работе и обучением в свободное время.
  3. Ставьте четкие, измеримые, реалистичные цели и повышайте их только тогда, когда найдете свой ритм.
  4. Найдите наставника или приятеля, чтобы вы несли ответственность за достижение этих целей.
  5. Расслабляться! Беспорядочное обучение лучше, чем его отсутствие.

Полезные ресурсы

  • Удеми
  • Торт Интервью
  • CS50
  • Выполнить программу
  • Тренер по кодированию
  • Переключение
  • #CodeНовичок
  • Онлайн-семинары Smashing Mag
  • FreeCodeCamp
  • Мастера интерфейса
  • Конечно
  • Вакансии стража
  • LinkedIn

Удачи!