Строим храмы — в коде и в жизни. Мой опыт разработки своего второго Android-приложения +5




Приветствую читателей хабра. Вашему вниманию предлагается перевод статьи «Building Cathedrals?—?In Coding, And In Life. My experience with publishing my second app at 19» Kunal Shandilya.

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

Где-то в середине июня я решил снова заняться Android-разработкой. Я сделал довольно длительный перерыв в программировании и мне не терпелось снова начать испытывать стресс из-за багов в коде и сделать свою жизнь ужасной, но осмысленной. Так я начал работать над проектом под названием «Remember» — приложением, помогающим людям запоминать что-либо по системе Лейтнера. Как и в остальных случаях, я делал это приложение, в первую очередь, для себя. Я тщательно спланировал работу над проектом и думал, что закончу её за 30 часов.

Так и вышло. Шутка! Просто захотелось гордиться собой хотя бы в течение секунды. Разумеется, я не закончил работу над своим приложением за 30 часов.

В итоге работа над проектом заняла целую неделю — после пятидесяти часов бессильного стучания кулаком по столу, нервных взглядов на экран телефона и кошмарных снов о миллионах поедающих меня жуков моё приложение было готово. Да, возвращение к программированию было ужасным опытом. Да, оно заставило меня потерять огромное количество нервных клеток. И да, мне это понравилось. Одна из многих тому причин: книги/колледж/онлайн-курсы/видео на YouTube/статьи с Medium никогда бы не дали мне столько опыта, сколько я получил за 50 часов работы над своим проектом.

Я понял, что качественный продукт на выходе за счёт оттягивания дедлайна всегда лучше, чем полусырой продукт, сваленный на плечи бета-тестеров. Я понял, что полу-соответствие стандартам качества, особенно в области UI/UX является недальновидным и опасным в длительной перспективе решением.

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

Согнувшись с ноющей шеей и свирепо глядя в свой ноутбук, не будучи в состоянии понять, по какой же, чёрт возьми, причине моё приложение не может соединиться с облаком, я пребывал далеко не в лучшем расположении духа. Пронизывающий меня голод не сильно облегчал ситуацию. Но что мне оставалось? Я уже съел все не очень полезные закуски, находившиеся в моём распоряжении (что для кодера означает: «те, до которых я мог дотянуться левой рукой»). И поверьте: я не собирался испытывать муки вставания со стула для того, чтобы взять яблоко — по крайней мере, до тех пор, пока моё приложение не будет соединяться с проклятым облаком.

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

*(не то, чтобы я вообще не любил гулять со своей собакой — просто в этот момент я был напряжён и совершенно не был готов к этой милой части своей жизни. Мне нужно было заставить своё чёртово приложение соединиться с чёртовым облаком).

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

Now we will count to twelve
and we will all keep still.

For once on the face of the earth,
let’s not speak in any language;
let’s stop for one second,
and not move our arms so much.

It would be an exotic moment
without rush, without engines;
we would all be together
in a sudden strangeness.

Fisherman in the cold sea
would not harm whales
and the man gathering salt
would look at his hurt hands.

Those who prepare green wars,
wars with gas, wars with fire,
victories with no survivors,
would put on clean clothes
and walk about with their brothers
in the shade, doing nothing.
— отрывок из «Keeping Quiet» поэта Pablo Neruda (прим. переводчика: мне не удалось найти удачный русский перевод отрывка приведённого выше стихотворения, поэтому я решил, что лучше будет сохранить оригинал, чем испортить читателю впечатление собственной корявой рифмой).

Звучит знакомо? Для меня в тот момент — да.

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

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

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

Этот уродливый портрет является превосходной метафорой для представления моего состояния сознания, потому что именно так выглядит человек, погребённый заживо в горе мелочей — уродливо. Уродливо и бесполезно.

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

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

К счастью, на самом деле, я интуитивно знал, что нужно сделать — и, я думаю, это решение известно большинству людей. У всех нас есть средства, позволяющие справляться с этой проблемой, отдаляться от деталей, когда это необходимо, и иногда возвращаться к ним, когда это действительно требуется. Мы просто ими не пользуемся, потому что слишком заняты рисованием носа и забываем, что он является частью чего-то гораздо большего. В чём же состоит решение? Концепция проста, но не легка в исполнении. Нужно регулярно останавливаться и думать о своей работе в целом. Обдумывать цели того, что мы делаем. Чтобы снова увидеть картину целиком. Не забывать о том, что собой должен представлять проект в целом, во время работы над деталями. Перефразируя Аристотеля, мы должны находить золотую середину между вниманием к деталям и к общей картине.

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



Однажды путешественник, идущий вдоль дороги, забрёл в каменоломню, в которой в этот момент находилось трое работников. Каждый был занят работой с каменными блоками. Заинтересовавшись, над чем они работают, путешественник спросил у одного из них, чем он занимается. «Ты что, не видишь? Я режу камень!», — ответил работник.

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

Этот ответ немного приблизил путешественника к пониманию того, чем заняты эти люди, но всё же оставил некоторую неясность. Тогда он обратился к последнему человеку. Он казался самым счастливым из трёх работников и на вопрос путника ответил:

«Я строю храм.»




К сожалению, не доступен сервер mySQL