Рубрики
Без рубрики

Один вопрос, который я должен был спросить, прежде чем учиться программировать

Автор оригинала: FreeCodeCapm Team.

Amy M Haddad

Есть один вопрос, который я хотел бы, чтобы уделить время, когда я начал программировать. Я недавно напомнил об этом в встрече на Python в Бостоне.

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

«Несколько месяцев», – сказал я. Это был ответ, который он искал. Он начал программировать неделю раньше, поэтому в его глазах я был опытным Python-Ista (хотя я уточнил, что я все еще был новичком). Он пересек руки, наклонился через стол и спросил, какие ресурсы я использовал для изучения Python.

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

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

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

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

Как вы узнаете лучше всего?

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

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

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

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

При удаке, в течение этого времени экстремальных разочарований, я слушал подкаст, который все изменило. Хозяин Shane Parrish интервью с интервью Барбара Окли, профессор и автора. Тема была «обучение, как узнать».

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

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

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

Обучение, правильный путь

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

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

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

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

Темы Matthes Capty просты в изучении и запоминающихся, в основном потому, что он бьет информацию.

«Colutaing помогает вам объединить биты информации вместе сразу,« Oakley пишет в Разум для чисел Отказ

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

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

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

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

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

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

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

Часть процесса Chanking включает в себя заполнение проблем практики, как связанные с ними, и не связанными с чаем, которые я пытаюсь построить. Таким образом, Oakley предлагает: «Вы видите, что не только когда использовать кусок, но [также], когда не использовать его» (акцент. Окли). Например, чтобы построить кусок «для петли», я выполняю проблемы, которые используют A для цикла и те, которые не.

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

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

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

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

Примерно через три месяца Tinkering с несколькими ресурсами Python наконец начал нажать с книгой Маттеса. Но это было только частью решения.

Стратегия обучения

Я действительно понимал функции? Как насчет условных и классов?

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

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

Плюс книга Хогана была синхронизирована с моим стилем обучения. Это было практично, реальные проблемы (без ответов) и организованы в основном концепцией, хотя проблемы находятся в трудностях. Две источники дополняли друг друга.

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

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

Большая часть моей общей стратегии обучения – это то, что я называю «случайным повторением».

Случайность – это способ проверить свои знания – чтобы посмотреть, смогу ли я вспомнить, как и когда использовать список, в отличие от словаря. И повторение помогает консолидации концепций.

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

Последние мысли

Понимание того, как научиться эффективно сделать мою запись в программирование гораздо более эффективным и приятным. Фактически, количество возможностей обучения – это один аспект, который привлек меня к программированию в первую очередь.

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

Зная, что я знаю сейчас, я бы дал этот молодой человек на встрече на Python другой ответ.

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

Изучение фундаментов языка программирования – это только начало карьеры обучения.

Я пишу о технологии, производительности и искусству ( amymhaddad.com ).