Перевод статьи «Why You Should be Doing More Copy-Paste Tutorials».
Туториалы по программированию и их польза — непростой вопрос. Если вы учитесь программировать, у вас непременно наступит момент, когда вам придется просто копировать чужой код. Это дело опасное, и если подходить к нему неправильно, в итоге вы ничему не научитесь.
Недавно я пытался вникнуть в стек технологий MERN (MongoDB, ExpressJS, React и Node). Я хотел получить представление о том, как может выглядеть готовый продукт. В интернете есть множество готовых примеров. Например, на Github таких проектов уйма. Но если вы только начинаете учиться с нуля, эти проекты запросто могут вас напугать.
MERN — это стек четырех основных компонентов, но помимо них вам также нужно будет освоить общие организационные методы. Допустим, вы новичок в программировании, и пока видели лишь однофайловые программы или программы, в которых есть только страницы index.html, main.js и style.css. В таком случае проекты, содержащие несколько папок и множество страниц, взаимодействующих между собой, могут реально ошеломить.
Здесь на помощь приходят туториалы. Хорошее двухчасовое видеоруководство, пошагово показывающее работу кода и предполагающее написание этого кода вслед за инструктором, может принести вам большую пользу.
Преимущества видеотуториалов
Как съесть слона?
Хорошее руководство охватывает все аспекты программы. Вы увидите, что делает каждая строчка кода, и благодаря этому, когда придет пора что-то написать, вы будете лучше понимать, что собой представляет каждая из частей.
Вы также познакомитесь с синтаксисом и сможете уловить, как вообще происходит обдумывание структуры кода (если объяснение будет хорошее). Вы можете доподлинно не знать, что делает каждая из частей, но у вас будет общее представление о том, как все взаимосвязано. И когда что-то сломается, у вас будет лучшее представление о том, где искать поломку. Это позволит вам делить вещи на части и рассматривать их по отдельности (вместо того чтобы бродить по кругу).
Вам будет, что исправлять
Когда проходите видеотуториал, предполагающий копирование кода инструктора, важно только копировать, но не вставлять (то есть, берем от «копипаста» только «копи»). Если вы будете набирать код самостоятельно, вы неизбежно допустите какие-то ошибки. Опечатка здесь, пропущенная скобка там — все это заставляет нас уделять немного больше внимания тому, что вы делаете.
А когда вы видите, какие типы ошибок могут возникнуть, читаете сообщения об этих ошибках и пытаетесь выяснить, что именно пошло не так, это дает вам отличную возможность для роста.
Отладка кода — это навык, которому трудно научить; вы приобретаете его исключительно на практике, столкнувшись со множеством ошибок. Следуя какому-нибудь руководству, вы имеете все шансы допустить множество распространенных синтаксических ошибок и отточить свои навыки их поиска.
Вам будет, что ломать
Если вы понятия не имеете, как строятся проекты, очень сложно взяться за такое дело самостоятельно. Пройдя хороший туториал, вы в итоге получите рабочий проект, оставляющий достаточно пространства для роста.
Я проходил руководство по созданию приложения (трекера физических упражнений) с использованием стека MERN. Но в рамках туториала приложение не было полностью завершено. То есть у меня был весь основной функционал MERN-приложения. Я мог редактировать интерфейс с помощью React, хранить необходимые сведения в базе данных Mongo, а также обеспечивать коммуникацию между ними с помощью Express и Node. Но много функций мне пришлось реализовать самостоятельно.
Совершение небольших шагов по инкрементальному расширению существующего приложения это отличный способ узнать, понимаете ли вы его логику, и, конечно, улучшить свои навыки написания кода.
Заключение
Не стесняйтесь взяться за очередной туториал, но и не зацикливайтесь на нем. Старайтесь придумать способ расширить каждый урок, который проходите. Расширение позволяет заметить свой рост, а чтение кода и отладка, постоянно выполняемые на этом пути, со временем принесут больше пользы, чем может показаться.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]