Это беспокоило меня в течение некоторого времени, и я очень ценю вклад других профессионалов.
Краткая справка: я начал программировать, когда мои родители купили мне мой первый компьютер в 1988 году (в 14 лет, сейчас мне 39 лет). Я прошел несколько других карьерных путей, прежде чем окончательно стать профессиональным программистом в 1997 году. Возможно, поздний расцвет, но так оно и было. Я все еще доволен своим выбором, я люблю программировать и считаю себя хорошим в том, что я делаю.
В последнее время я замечал, что чем больше опыта я получаю, тем больше у меня уходит времени на завершение проектов или выполнение определенных задач в проекте. Я еще не стану старческим. Просто я видел так много разных способов, которыми все может пойти не так. И потенциальные подводные камни и ошибки, о которых я знаю и помню, становятся все больше и больше.
Тривиальный пример: это было просто «хорошо, напишите файл здесь». Теперь я беспокоюсь о разрешениях, блокировке, параллелизме, атомарных операциях, косвенных связях / инфраструктурах, различных файловых системах, количестве файлов в каталоге, предсказуемых именах временных файлов, качестве случайности в моем PRNG, нехватке электроэнергии в середине любого операция, понятный API для того, что я делаю, надлежащая документация и т. д. и т. д. и т. д.
Короче говоря, проблемы давно перешли от «как мне это сделать» к «каков самый лучший / самый безопасный способ сделать это».
В результате у меня уходит больше времени на завершение проекта, чем у начинающего. Моя версия может быть очень прочной и настолько непроницаемой, насколько я знаю, как это сделать, но это займет больше времени.
Приведенный выше пример создания файла был именно этим примером. Реальные задачи, очевидно, являются более сложными, но менее подходят для такого общего вопроса, как этот. Я надеюсь, вы понимаете, куда я иду с этим. У меня нет проблем с разработкой эффективных алгоритмов, я люблю математику, мне нравятся сложные предметы, у меня нет проблем с концентрацией. Я думаю, что у меня есть проблемы с опытом, и, следовательно, со страхом перед ошибками (внутренними или внешними).
Я трачу почти два часа в день, читая о новых разработках, новых методах, языках, платформах, уязвимостях безопасности и так далее. Загадка состоит в том, что чем больше знаний я получаю, тем медленнее я выполняю проекты.
Как вы справляетесь с этим?