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

Я начал изучать программирование еще до того, как узнал, что такое программирование. В начале 2000-х, когда я был ребенком, я создавал макеты и декоративные элементы для Myspace, чтобы уговорить родителей позволить мне завести учетную запись. Я также создал игру-одевалку с перетаскиванием и одержимо переработал свою страницу «Matmouse», даже разместил код, который другие пользователи могли скопировать из текстового поля. Когда я стал старше, я сбился с курса, решив вместо этого сосредоточить свое внимание на команде дебатов. Я снова вспомнил об этом около двух лет назад, когда осознал: я чрезвычайно креативен, но я не артистичен. Сам акт творчества доставляет мне удовольствие, но я не люблю, когда он руководствуется чем-либо, кроме логики. Я могу сказать вам, работает ли приложение, но картина? Слишком субъективно. Программирование — это способ практиковать и выражать свои творческие способности без необходимости обсуждать ценность моего творения. Это работает? Boolean. Может ли быть лучше? Boolean. Это очень просто.

Около года назад я решил пройти обучение по созданию приложений на Youtube. Приложение поможет мне создать клон Tinder с помощью Android Studio. В то время я был заинтересован в создании проекта, в котором использовалась бы та же технология считывания карт, что и в Tinder, но вместо того, чтобы использовать людей в качестве «карточек», в нем перечислялись бы объекты. У меня было довольно много времени в день, чтобы посвятить проекту. Буквально за месяц до этого я родила дочку. Я была в декретном отпуске, и мне было скучно. Моя новорожденная девочка спала почти весь день, и мне было предписано врачом ничего не делать, кроме как кормить грудью и отдыхать в течение следующих нескольких месяцев после экстренного кесарева сечения.

Учебник был потрясающим, но на тот момент ему было больше года. До этого я никогда не осознавал, как быстро все изменилось в процессе разработки. Год в Интернете был практически десятилетием офлайн.

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

Иногда я сталкивался с ошибкой, но обычно мне удавалось довольно быстро найти ее причину. Я только что перечитал код или пересмотрел фрагмент видео. Чем больше я работал над проектом, тем больше я усваивал синтаксис и тем меньше мне приходилось переключаться между видео и Android Studio, чтобы понять, что мне делать. Все шло отлично.

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

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

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

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

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

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

На 14-й день я решил попробовать еще раз. Вот и все, подумал я, либо я найду проблему сейчас, либо верну свой код. Сделав последний проход, я наконец нашел его, и мои глаза расширились от недоверия. Я внес изменения, запустил эмулятор своего устройства, и приложение отлично загрузилось. Как будто ничего и не было. "Все это". Я подумал: "Все это для одной буквы без заглавной буквы".

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

Итак, мораль этой истории для всех моих коллег-пропускников глав: иногда, когда у вещей нет верхнего случая, у них есть правильная сторона.