Как учиться? На моем пути изучения программирования я всегда придерживался руководств. Будь то курс Udemy или YouTube, эти ресурсы оказали мне неизмеримую помощь в моем обучении. Однако зачастую на этом легко застрять.

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

Тем не менее, если после учебника за учебником никто не решается применить свои знания, было ли что-то действительно изучено? Конечно, просмотр 10-часового курса Python может научить вас основному синтаксису. Однако на самом деле вы никогда не изучали как решать конкретную проблему с языком.

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

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

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

Например: я мог бы создать курс о том, как заработать миллион долларов. Это был бы бестселлер, заставивший тысячи людей покупать мой контент. Тем не менее, даже если бы у меня была надежная секретная формула заработка миллиона долларов, как вы думаете, сколько людей на самом деле применили бы то, что узнали? Если бы мы все просто применили то, что узнали, не стали бы мы все миллионерами? Существуют тысячи онлайн-курсов, где можно заработать деньги, но так мало тех, кто действительно зарабатывает цент.

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

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

Проблема возникает, когда вы просто читаете книгу о React, а затем предполагаете, что «выучили» язык. Дурь несусветная. Конечно, возможно, вы могли бы пройти тест с несколькими вариантами ответов на фреймворке. Возможно, вы сможете дать предложения по Reddit или Stack Overflow, используя свои новообретенные знания. Но я гарантирую, что если вы полагаетесь на курс во всех своих знаниях, вы будете увлечены более лоскутными программистами, которые даже не удосужились посмотреть учебник - они были слишком заняты, просто пытаясь понять, как создать базовый метод. -делать список.

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

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

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

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

Это перемена всего, что стереотипно представляют инженерия и программирование (обучение и совершенствование). Тем не менее, способ действительно достичь стереотипа - стать прямо противоположным - тратить как можно меньше времени на обучение, вместо этого занимаясь программированием.

Чтобы сделать это прикладное обучение реальностью, первым делом нужно спланировать несколько интересных проектов. Начни с малого. Во-первых, скромная программа «Hello World». Тогда, может быть, приключенческая игра. Затем крестики-нолики, какая-то программа, основанная на взаимодействии. Затем постепенно повышайте уровень сложности, вплоть до создания мини-фейсбука или подражателя SAAS.

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