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

Будучи людьми недовольными собой, члены сообщества #TechMasters ежедневно растут и делятся своими ресурсами вместе. Каждую неделю мы обсуждаем темы, связанные с нашей отраслью, и на этой неделе мы делились методами и идеями, чтобы улучшить наше обучение.

Учиться путем практики

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

Я узнаю новое по:

1) Сказать, что я могу это сделать
2) Создать в нем проект.

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

Здесь Алекс предлагает исследовать проблему как мотивацию для овладения новым навыком. Вместо того, чтобы следовать сообщениям блога или видео с произвольными или абстрактными примерами — особенно теми, которые используют примеры foo и bar — попробуйте создать небольшое приложение, которое может работать самостоятельно или с as как можно меньше зависимостей. Таким образом, вы можете быстро понять, на что способна технология или фреймворк, а на что она не способна. Еще лучше то, что можно просто повторять и расширять небольшой проект, как только в начале будет установлена ​​четкая цель.

Парное программирование

Парное программирование — мой любимый способ обучения.
Орен

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

Обзоры кода

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

Пошаговые руководства

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

Чтение (и написание) документации

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

Еще одна вещь, которая помогает в обучении, это диаграммы!! Не могу сказать, сколько раз я хотел бы, чтобы у разработчика была простая диаграмма/блок-схема, показывающая связи между файлами/методами/классами и т. д.
Стивен Рассетт

Просмотр видео / скринкастов

Я люблю видео (обычно я ускоряю их как минимум в 1,5 раза) в основном потому, что у меня есть склонность пролистывать письменные руководства, а видео заставляют меня ничего не пропускать.
Ясна

Видео сводят меня с ума. Лучше бы что-нибудь написали со скриншотами.
Анжела

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

Для меня создание отличного видео или скринкаста — это искусство. На момент написания этой статьи моими любимыми скринкастами были те, которые можно найти на каналах разработчиков Google на YouTube: Polycasts и DevBytes. Эти видео уравновешивают то, что мне кажется правильным количеством пошагового руководства по коду, тематической мотивации, разговорного диалога с личным общением, нюансами и подводными камнями, а также дальновидными заявлениями, чтобы побудить к дальнейшему самосовершенствованию. Я нахожу эти качества очень привлекательными, когда они хорошо рассчитаны. Я не могу постоянно смотреть на экран кода, слушая, как кто-то монотонно объясняет каждую строчку. Должны быть регулярные перерывы — по крайней мере, для меня.

Чтение книг

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

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

Начните с масштаба

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

Попробуйте изучить что-то философски отличное

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

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

2. Я поддерживаю высокую скорость обучения, внедряя инструменты, которые с философской точки зрения максимально отличаются от того, что я использую. Я не заинтересован в изучении Ruby в качестве следующего языка программирования, потому что я уже знаю JS и Python, 95% из того, что я уже знаю, просто завернуто в другой синтаксис. Вместо этого я смотрю либо на Джей, либо на Идриса.

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

Саймон

Обучение через преподавание

Если вы относитесь к этому серьезно, преподавание — отличный способ чему-то научиться — заставляет вас формулировать то, что вы обычно говорите себе, что «понимаете».
Адам Уорролл

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

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

  1. Учащиеся всех возрастов имеют разный уровень удержания знаний и вовлеченности. Например, будучи студентом, я могу быть очень увлеченным, но не могу запомнить много информации даже после нескольких повторений. При обучении не просто повторяйте уроки; повторно применять их в различных контекстах, таких как говорение, слушание, разыгрывание, планирование и групповая работа.
  2. В классе рекомендуется поэкспериментировать с обучением один на один, упражнениями в небольших группах и самостоятельным обучением. Все мои ученики по-разному реагируют на каждый стиль в зависимости от предмета, что может помочь раскрыть их индивидуальные стили обучения.
  3. Не задавайте вопросов «да/нет», особенно «Вы понимаете?» Заставьте их доказать свои знания, объясняя или повторно применяя их по-своему. Большинство моих учеников говорят: «Да, я понимаю», потому что слишком боятся тратить мое время; распространенное заблуждение для многих учеников, и им могут понадобиться регулярные напоминания о том, что время учителя служит им во благо.
  4. Случайным образом извлекайте знания из ученика. Когда ваш ученик демонстрирует свое понимание, это доказывает ваше эффективное преподавание и чистую прибыль вашего ученика.
  5. Дайте обзор необходимых знаний, прежде чем переходить к новой теме, и дайте тесты во время и после нового урока.

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

Обучение / Учебный дизайн

Адам расширил преподавание своим опытом в области педагогического дизайна:

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

Цели должны меняться в зависимости от того, насколько опытны люди; поэтому, если люди входят в учебный сценарий, уже компетентный в данной технологии, вы, вероятно, используете глаголы более высокого уровня для своих целей, таких как «спорить» или «обосновать». [Тем не менее], у всего есть новый компонент, поэтому даже с опытными людьми вам может понадобиться поставить цель, например, «перечислить различные типы монад».

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

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

Выбор

Вот несколько рекомендаций наших участников, которые могут помочь вам узнать что-то новое:









Диаграмма — Таксономия Блума

Не прекращайте учиться

Мне интересно, как вы учитесь. Присоединяйтесь к общению в TechMasters.chat! Каждую неделю мы обсуждаем что-то новое, а потом опубликуем подобный репортаж.