Учимся добиваться успеха через 96 неудач

Я понятия не имею, сколько разных программных проектов для любителей я начал и бросил за свою жизнь. Давайте просто предположим, что я работал над 3 сторонними проектами каждый год с 1987 года, когда я начал программировать для удовольствия.

Получится число 96, что звучит гораздо точнее, чем 100, так что давайте так.

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

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

Почему? Потому что каждый проект учил меня, как добиться успеха и как не потерпеть неудачу.

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

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

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

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

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

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

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

Продолжайте пробовать и не бойтесь потерпеть неудачу 96 и более раз.

Первоначально опубликовано на https://dev.to 26 сентября 2019 г.