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

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

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

Представьте, что вы хотите поделиться моментом «ага» из недавнего проекта. Вы можете начать с рассмотрения первоначального контекста, в котором вы приобрели этот новый навык или знание. Для краткости вы можете сделать вывод, что многие детали проекта излишни и отвлекают от основной мысли. Этот процесс может даже привести к тому, что вы решите отказаться от исходного контекста и просто поместить концепцию в тривиальный проект (Hello World, список дел и т. д.).

Этот тип мыслительного процесса отражает передовой опыт во многих областях и преподается в школе и университете:

«Опусти ненужные слова». - Странк и Уайт (1959)

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

Когда я решил вернуться к веб-разработке после 10-летнего перерыва, я наткнулся на FreeCodeCamp. На сайте представлены небольшие задачи кода, которые могут привести к более крупному проекту (целевая страница, приложение для поиска в Википедии и т. д.) в пользовательском интерфейсе линейной учебной программы. Имея некоторый предыдущий опыт работы с веб-хостингом (FTP!), у меня было некоторое представление о том, как я могу применить то, что я узнал, в своих собственных проектах. Однако позже я узнал, что другие изо всех сил пытаются понять, как подходить к своим собственным веб-проектам, несмотря даже на получение сертификатов от FreeCodeCamp.

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

Что делать (писатели)

Будьте честны в процессе планирования обучения. Не стесняйтесь владеть и представлять итерации своей работы. Возможно, вы могли бы представить настоящую ошибку во фрагменте и попросить своего читателя найти/исправить ее, прежде чем двигаться дальше. Это добавляет дополнительный аспект к туториалу — как выйти из тупика или решить проблему.

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

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

Что делать (читатели)

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

Делайте перерывы в линейном руководстве, чтобы обдумать то, что вы узнали. Заметки или другие формы подведения итогов помогут вам выявить пробелы раньше, чтобы вы могли извлечь больше пользы из опыта и избежать большего разочарования.

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

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

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