Первоначально опубликовано в моем блоге.

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

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

Большинство из нас были там

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

Как опытный инженер-программист, я до сих пор вижу, что делаю то же самое. Нужно узнать о Terraform и инфраструктуре как коде (IaC)? Найдите курс, учебное пособие, официальные документы и т. д. Разница здесь может заключаться в глубине содержания или в том, насколько глубоко мы погружаемся в суть нового предмета.

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

Иллюзия обучения, наблюдая

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

Это честно. Затем вы смотрите их курс JavaScript, а затем все их учебные пособия о лучших практиках бэкэнда NodeJS; затем вам предстоит узнать немного о TypeScript, а затем немного о ReactJS. Позже на этой неделе вы найдете еще один отличный учебник от кого-то другого. Вы покупаете его и проходите его целиком. И так продолжается несколько месяцев.

Вы действительно узнали что-то новое? Можно ли использовать эти технологии для создания чего-то минимально сложного? Можете ли вы выйти за рамки эквивалента «Hello, World!» на этом языке или в рамках?

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

Практика трудна

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

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

Вот суровая правда: без практики, осознанной практики практически невозможно быть экспертом в чем-либо².

Как вырваться на свободу

TL;DR Вам нужно потратить значительное количество времени на то, чтобы сделать это самостоятельно.

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

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

Мое правило — посмотреть/прочитать что-то, а затем попробовать это в другом контексте. Например, пытаясь изучить Terraform, я посмотрел короткое руководство, прочитал документацию и развернул RESTful API в AWS, используя Terraform для раскрутки инфраструктуры. Затем на работе (в Cisco) я сказал своему менеджеру, что хочу переключить часть своего внимания на сторону инфраструктуры, и шесть месяцев спустя я стал ведущим разработчиком нашей инфраструктуры по миграции с инстансов EC2 на ECS Fargate, при этом 100% развертывания инфраструктуры было выполнено с помощью Terraform.

Учебник, курс, книга и все остальное — это первые 10%. Остальные 90% — это вы, пытаетесь сами что-то сделать.

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

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