Обучающие стратегии

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

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

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

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

Флэш-карточки и репетиция

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

Стратегия:

  1. Держите блокнот открытым, и как только вы столкнетесь с проблемой, концепцией или фактом, запишите это. Не делайте карточку, а запишите вопрос и ответ в блокноте. В конце каждого рабочего дня записывайте все заметки дня в приложении для карточек.
  2. Создайте общий список всех ваших карточек в зависимости от темы. Постарайтесь свести коллекцию карточек к минимуму. Вы можете разделить их на языки или фреймворки, такие как Ruby on Rails или JavaScript. Но не делайте никаких подразделений вроде массивов или методов. Причина в том, что репетиция должна проводиться на всем языке или фреймворке, а не подразделах. Список карточек должен быть живым документом, в который вы постоянно добавляете карточки. Если вы сохраните подразделы, вам быстро станет сложно запоминать, где вам нужно добавлять или редактировать карточки.
  3. Просматривайте свои карточки не реже двух раз в день. Лучшее время для репетиций - это первое утро, вместо того, чтобы проверять свой почтовый ящик (что в любом случае следует делать в офисе). Просматривайте несколько карточек, по 10–15, каждый раз. Если вы используете Brainscape, он автоматически покажет вам карточки, которые вам нужно практиковать больше. Вот и все. Репетируйте ежедневно и добавляйте карточки. Я начал с этой стратегии, потому что она помогает намного легче понять предмет.

Кодируйте

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

Стратегия:

  1. Перейдите на Youtube и выполните поиск по запросу «‹ your framework ›clone», и вы найдете множество руководств и учебных пособий. Если я буду искать «клон рубина на рельсах», одним из первых результатов будет «Создать клон Pinterest».
  2. Сделайте шаги и просто выполните весь процесс и создайте приложение в соответствии с инструкциями.
  3. Воссоздайте приложение только с вашим письменным кодом в качестве ссылки. Попробуйте проделать это пару раз. Перепишите части, в которых у вас есть особые проблемы с пониманием структуры, логики или концепций.

Развертывание приложений Mini

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

Стратегия:

  1. Настройте все приложение с помощью фреймворков для тестирования
  2. Создайте только одну функцию, например, базовое приложение с задачами или страницу портфолио.
  3. Разверните как можно скорее через Heroku или AWS

Введите по памяти

Эта стратегия работает, если вы хотите понять логику и синтаксис определенных фрагментов кода.

Стратегия:

  1. Найдите небольшие фрагменты кода, которые вам трудно понять. (Хорошие ресурсы - это общедоступные репозитории на GitHub или официальная документация)
  2. Прочтите код и попробуйте его переписать, не глядя на ссылку
  3. Делайте это снова и снова, снова и снова

Решайте повседневные проблемы с кодом

Хотите составить список покупок? Почему бы не создать массив с разными элементами? Сделать основные расчеты? Не пользуйтесь калькулятором, используйте текстовый редактор или консоль.

Стратегия:

  1. Напишите список типичных повседневных проблем, таких как расчеты, списки, напоминания и т. Д.
  2. Запишите несколько возможных способов использования программирования для их решения, например:
  3. Список покупок = запись массивов
  4. Рассчитать затраты = использовать IRB
  5. Применяйте эти решения, когда возникает необходимость

Сохранение концентрации

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

Стратегия:

  1. Ведите блокнот, когда вы работаете, и записывайте все случайные мысли, которые у вас возникают, просматривайте эти заметки, когда закончите сеанс.
  2. Сядьте в одном месте и в одно и то же время, пытаясь сосредоточиться или учиться.
  3. Убедитесь, что все отвлекающие факторы отключены (смартфон, уведомления и т. Д.)
  4. Планируйте заранее, что делать, если вы отвлечетесь
  5. Приготовьте закуски, если проголодаетесь
  6. Убедитесь, что вы сидите в удобной одежде
  7. Посетите туалет перед тем, как начать
  8. Работайте как можно дольше и следите за тем, как долго вы работаете на каждом занятии. Старайтесь увеличивать это число на несколько минут каждый день.

Ведение дневника программирования

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

Стратегия:

  1. Ведите специальный дневник кодирования
  2. Запишите следующие вопросы:
  3. Над чем я работал сегодня?
  4. Какие были основные проблемы при работе с этой функцией?
  5. Если бы я сделал это снова, что бы я изменил?
  6. Как я могу использовать это в будущем в других проектах (как минимум два примера)
  7. Делайте записи в дневнике кодирования в конце каждого рабочего дня.
  8. Прочтите дневник в конце каждой недели

Используя технику Фейнмана

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

Стратегия:

  1. Выберите тему и запишите ее как заголовок на листе бумаги.
  2. Запишите объяснение темы простыми словами, то есть
  3. Не используйте технические термины или сложные слова
  4. Попробуйте использовать примеры из реальной жизни
  5. Просмотрите то, что вы написали, и попытайтесь объяснить это вымышленному студенту.
  6. Задавайте вопросы о деталях и обратите внимание на любые пробелы в знаниях
  7. Пересмотрите учебники и документацию и найдите ответы на пробелы в знаниях
  8. Перепишите объяснение
  9. Делайте это снова и снова, пока не почувствуете, что хорошо понимаете концепцию.

Научите других программировать

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

Стратегия:

  1. Напишите простую программу вроде "Hello World" или что-нибудь посложнее.
  2. Найдите кого-нибудь, кого вы можете научить
  3. Имейте в наличии справочные материалы, такие как документация и ваша кодовая база.
  4. Заставьте своих учеников написать программу вместе с вами, направляя их на каждом этапе пути.
  5. Исправляйте ошибки и обязательно ссылайтесь на свои материалы, если вы застряли

Используйте мнемонику

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

Мы рассмотрим более простой подход к использованию мнемоники, в основном словесной мнемоники.

Стратегия:

  1. Решите, что запомнить, например порядок операций в Ruby.
  2. Запишите порядок и операции Скобки, Показатели, Умножение, Деление, Сложение и Вычитание.
  3. Подчеркните первые буквы операций: P, элементы E, окончательно M, D ivide, A dd и S ubtract
  4. Создайте слова с первой буквой и попытайтесь объединить их в запоминающееся предложение, например: P lease E xcuse M y D Ear A до S союзник

Используйте эталонную интеллектуальную карту

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

Стратегия:

  1. Возьмите большой лист бумаги и напишите в середине предмет, над которым собираетесь работать.
  2. Добавьте линии от центра к краям, при этом каждая линия представляет определенную часть предмета, убедитесь, что вы добавляете строки темы, поскольку они естественным образом приходят в голову, а не добавляете строки из книги или какого-либо руководства
  3. Ветвь от темы со связанными темами
  4. Просмотрите всю интеллект-карту и добавьте недостающие темы, предметы из ваших справочных материалов.
  5. Нарисуйте изображения и раскрасьте строки темы для облегчения запоминания (не пропускайте эту часть!)

Постоянные вопросы

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

Стратегия:

  1. Подготовьтесь к лекции, пытаясь узнать все о предмете. Для этого можно использовать технику Фейнмана.
  2. Подготовьте блокнот, чтобы записывать случайные мысли и записывать в него, когда возникает необходимость.
  3. Старайтесь следить за лекцией и постоянно спрашивайте , что инструктор будет делать дальше?
  4. Когда инструктор делает то, что вы предсказывали, дайте себе подтверждение вроде «хорошо, я понимаю».
  5. Если инструктор сделает что-то непредсказуемое или вы забыли какой-то шаг, запишите это и продолжайте слушать.
  6. Просмотрите свои письменные заметки после лекции и исправьте свои заметки Фейнмана.
  7. Если это видеолекция, прочтите ее еще раз и попытайтесь предсказать, что делать дальше. Если это живая лекция, попросите инструктора пояснить недостающие части или подтвердить шаги, которые вы записали.

Кодирование катас

Кодирование ката отлично подходит для расширения ваших знаний и получения некоторой практики в решении проблем.

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

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

Стратегия:

  1. Выберите ката для решения
  2. Запишите проблему и составьте список требований, необходимых для выполнения ката.
  3. Расположите требования в том порядке, в котором, по вашему мнению, необходимо их решить в
  4. Запишите возможные решения для каждого требования
  5. Начните кодировать, используя свои решения
  6. Если решение не удается, поищите в Интернете новые решения и повторите процесс снова.

Скоростное кодирование

Это отличный способ попрактиковаться и развить учебный процесс.

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

Стратегия:

  1. Найдите небольшой фрагмент кода, который вы хотели бы ускорить, например, fizzbuzz, камень-ножницы-бумага или одна из задач Эйлера.
  2. Кодируйте программу целиком и записывайте каждый шаг, необходимый для решения проблемы.
  3. Установите таймер, запустите таймер и начните кодирование как можно быстрее
  4. Попытайтесь завершить программу до истечения времени
  5. Повторяйте процесс, пока не сможете завершить программу в отведенное время.

Заключительные примечания:

Этот список не является исчерпывающим, не стесняйтесь пробовать изменять стратегии!