Создание собственной учебной программы
Опубликовано: 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 и модулями по этике и базовым структурам данных. Лекции доставляют огромное удовольствие, и вы можете делать столько, сколько хотите, или меньше, без ограничений по времени.
Точно так же 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 — это элегия ушедшим хорошим идеям, и я смирился с этим.
Округлять
Учитывая текущее состояние мира, меньше всего я хочу быть другим голосом, требующим продуктивности в условиях изоляции. Дело не в этом. Это просто шаги, которые сработали для меня, когда мне нужно было учиться с течением времени, не выгорая и не оказывая на себя чрезмерного давления. Если они работают на вас, прекрасно. Если нет, не беспокойтесь. У всех нас есть свой темп.
Шаги
- Используйте спецификации работы, чтобы определить ключевые навыки.
- Разделите эти навыки между обучением на работе и обучением в свободное время.
- Ставьте четкие, измеримые, реалистичные цели и повышайте их только тогда, когда найдете свой ритм.
- Найдите наставника или приятеля, чтобы вы несли ответственность за достижение этих целей.
- Расслабляться! Беспорядочное обучение лучше, чем его отсутствие.
Полезные ресурсы
- Удеми
- Торт Интервью
- CS50
- Выполнить программу
- Тренер по кодированию
- Переключение
- #CodeНовичок
- Онлайн-семинары Smashing Mag
- FreeCodeCamp
- Мастера интерфейса
- Конечно
- Вакансии стража
Удачи!