Манифест по изучению программирования
Поколение Python: вводная часть из популярного курса, которую я вбил себе в мозг перед стартом обучения.
Мы привыкли к обучению по принципу: смотри сюда и повторяй за мной. Обычно так обучают в школах. Такой подход перестает работать классу к восьмому. Ученики задают себе вопрос: зачем делать то, что не приносит удовольствия? В школе пытаются «вбивать» знания в каждого, независимо от его желания. Но обучение неэффективно без главного условия: ученик должен принимать самое активное участие в получении знаний.
Обновление от 18.01.2024 г.: краткий пересказ статьи от YandexGPT (для тех, кто не хочет много читать)
Основные тезисы:
• Обучение должно быть активным и включать самостоятельное решение задач.
• Роль преподавателя сводится к систематизации учебной программы и помощи при затруднениях.
• Обучение на 80% состоит из самостоятельной работы.
• Успешный программист должен тренировать базовые навыки и писать код самостоятельно.
• Рекомендуется уделять учебе каждый день по 2-3 часа для закрепления знаний.
• Не нужно стесняться обращаться за помощью, но сначала нужно попытаться решить проблему самостоятельно.
• Курсы могут сделать путь к успеху удобнее и быстрее, но не заменят самообразования.
Освоить IT-профессию невозможно без тысяч часов самостоятельного решения задач.
Обучение после школы — неважно, в колледже, вузе, на курсах или даже у личного ментора (обратите внимание!) — подразумевает по большей части самостоятельное освоение и проработку материала.
Роль преподавателя (ментора) сводится к следующему:
- систематизация учебной программы, построение плана: от простого к сложному;
- помощь при затруднениях;
- указание на ошибки;
- подпитывание мотивации;
- моральная поддержка.
Всю остальную работу учащийся выполняет сам.
Обучение — это на 80% самостоятельная работа. Потенциально успешный программист мне виден уже после выполнения первых домашних заданий: его решения основаны не только на материале, который разбирали на занятии в группе, но и на дополнительных сведениях, найденных самостоятельно.
Хочу выделить 4 принципа изучения программирования, которые по моему опыту работают.
1. В первую очередь тренируйте базовые навыки
В программировании (как, впрочем, и в других отраслях) существуют базовые вещи, и первое, на чем нужно сосредоточиться — доведение базовых навыков до автоматизма. Когда ваш мозг не расходует много времени на обращение с базовыми понятиями, вы способны действовать продуктивно и адекватно решать задачи. Азбуку нужно знать твердо, тогда скорость обучения и работы будет высокой. Каждый следующий уровень знаний ложится поверх предыдущего и содержит все меньше принципиально новой информации, поскольку опирается на усвоенные знания.
Именно поэтому наши курсы содержат так много задач.
2. Пишите код
В памяти надежно сохраняется только то, что мы подкрепляем собственными действиями, опытом. Так устроен мозг. Когда читаем чужой код или смотрим видеолекцию, часто все настолько понятно, что кажется: “Зачем мне это повторять, ведь все ясно”. Это иллюзия! Стоит попытаться повторить логику, написать код своими руками, как тут же столкнемся с кучей сложностей и непонятных вещей, которые не удастся разрешить без подсказок. Копирование чужого кода тоже не способствует глубокому пониманию и усвоению навыка.
Нужно как можно больше разбираться с кодом и самостоятельно писать программы.,В идеале — работать над собственным проектом, пусть это будет даже калькулятор. Можно создать крутой калькулятор и при этом повторить (освежить в памяти) множество тем, начиная от переменных и заканчивая лямбда-функциями. И не старайтесь делать всё идеально, достаточно просто хорошо. Мы растем, и то, что сегодня хорошо, успеем в будущем сделать идеальным (если это кому-нибудь нужно).
Чтение книг и просмотр лекций — хорошо, но без использования теории на практике мы не учимся.
P.S. Я очень люблю читать книги и смотреть лекции.
3. Занимайтесь регулярно
Рекомендую уделять учебе каждый день по 2-3 часа (можно и больше). Это полезнее, чем 10-часовой интенсив раз в неделю. Нерегулярные занятия абсолютно неэффективны, потому что навыки не закрепляются, знания рассеиваются, про мотивацию и говорить не приходится.
Важно выработать привычку учиться постоянно.
4. Вам должно быть непонятно
Звучит странно, правда? Если вам что-то непонятно и вы тупите, это абсолютно нормально. Не нужно в такой ситуации считать себя недостаточно умным и неспособным изучить программирование. Думаете Senior программисты не тупят? Еще как. Они могут не сразу что-то понять, но не сдаются и изучают вопрос глубже! Даже очень опытные, матерые программисты часто не могут разобраться с чем-то новым. Они не стесняются обращаться за помощью. Но! Здесь есть одно важное “но”. Спрашивать нужно только после того, как с десяток раз попытаетесь разрешить проблему сами.
Классический вопрос на форуме наших курсов: “Что не так с моей программой?” Открываю проблемный код, запускаю программу, сразу выдается ошибка с расшифровкой. Интересно, человек, который задал вопрос, пытался запустить СВОЮ программу? Явно нет. Такой подход не позволит стать хорошим программистом. Задавая вопрос на форуме или в комментариях, нужно уточнять, что конкретно вы уже предприняли для решения, какие ваши шаги оказались безуспешными.
Многие темы наших курсов — например, элементы функционального программирования, анонимные функции, функции высшего порядка, итераторы, генераторы — не самые простые вещи. Требуется время и труд, чтобы эта информация уложилась в голове.
Если кажется, что учиться программированию легко, значит, вы не учитесь.
Вывод
Никакой курс (даже наши курсы ?) не сделают из вас программиста без самообразования. Курсы — лишь способ достижения этой цели. Они могут сделать путь к успеху удобнее и быстрее.
Цель образовательных курсов — сделать процесс обучения проще и эффективнее. Но никто в мире не сможет учиться за вас.
Тимур Гуев, автор курсов «Поколение Python».