Современный программист обвешан всякими линтерами, проверками, помощниками, подсказками, и так далее.
Недавно мне потребовалось начать разрабатывать новый модуль. Я понял, что не знаю, куда его положить, а не знаю я этого, потому что не представляю файловую структуру проекта.
За пол года я так и не разобрался в ней, потому что есть замечательнейший поиск который позволяет прыгать по зависимостям, попадая в нужный файл, по части названия, без необходимости вводить полный путь.
С одной стороны это упрощает разработку, сохраняя время, а с другой глубина понимания проекта снижается. Поэтому иногда я запрещаю себе пользоваться какой-то тулзой, упрощающей жизнь.
Это я называю работать "голым". Я как бы снимаю с себя часть защиты, которая обычно прикрывает меня. Наш мозг достаточно пластичная штука, поэтому небольшие неудобства он нивелирует достаточно быстро.
Но тут важно не переборщить. Помню, когда только узнал про такую практику я был настолько воодушевлен, что отказался от IDE и перешел на VIM.
Это было мучение. Простейшая задача растягивалась на часы гугления того или иного функционала и в итоге вгоняла в прокрастинацию. Помню, что меня хватило не на долго. Зато с тех пор VIM стал моим вторым редактором, и многие вещи мне гораздо проще сделать в нем, чем в более тяжелом редакторе.
Но этот опыт я больше не хочу повторять. Я пришел к выводу, что можно усложнить себе задачу, чтобы она стала интересной, но не стоит перебарщивать, иначе она будет казаться невозможной.
Другой отличный пример "голой" разработки - это проверка кода в уме.
Я сейчас провожу собеседования, и основная особенность моей секции, что мы вообще не запускаем код. Пишем, тестируем и проверяем результат в уме. Особенность фронтенд разработки, что интерпретатор языка JavaScript всегда под рукой. И я вижу, как невозможность запустить код ломает привычный флоу мышления большинство собеседуемых.
Почти все они привыкли не думать, как код работает, а написать что-то, увидеть результат, потом добавить, снова проверить результат... Это нормальный подход для обучения, поскольку чем короче петля обучения, тем проще учиться, но в жизни такой подход сжирает сильно больше времени.
В своих пэт проектах, где я хорошо понимаю структуру кода, я могу несколько часов писать код, вообще его не запуская. После чего, запустить проверить и поправить ошибки.
А ты пробовал сознательно усложнять себе задачи?
Спасибо, что дочитал, еще больше постов от меня, в моем телеграм канале