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

Том Каргилл из Bell Labs однажды высказал такой афоризм:

На первые 90 процентов кода приходится первые 90 процентов времени разработки. Оставшиеся 10 процентов кода составляют оставшиеся 90 процентов времени разработки.

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

Приведенная выше цитата вдохновляет другую:

Первые 90 процентов кода забавны. Остальные 90 процентов должны приносить удовольствие.

Всем бы понравилось, если бы все 100 (180?) % проекта были веселыми. Хотя это может быть очень сложно сделать, вот несколько вещей, которые вы можете сделать, чтобы получать удовольствие от работы над своими проектами.

Работайте над тем, что мотивирует вас

Это должно быть очевидно — вы бы не хотели работать над вещами, которые вас не волнуют. Даже если бы были огромные возможности учиться (и зарабатывать 🙂), как только фаза обучения закончится, вы обнаружите, что сталкиваетесь с кучей задач, которые могут вызывать у вас кошмары в течение нескольких недель.

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

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

Неуклонно прогрессируйте

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

Но когда проекты сводятся к последним 10 (90?) %, мы начинаем бояться собственного кода. Попытка разобраться в загадочном беспорядке, который мы написали, причиняет боль нашим глазам (и нашему здравомыслию), а внесение даже самых незначительных изменений кажется кошмаром, когда все ломается повсюду.

И даже если это не похоже на вас — молодец! — нельзя отрицать, что чем лучше написан первоначальный код, тем привлекательнее и удобнее добавлять в него что-то. Тем не менее, я не одобряю написание кода черепашьими темпами, всегда сомневаюсь и рано сдаюсь — в конце концов, первые 90% — это весело.

Гит Гуд

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

Но если это не относится к вам, не отчаивайтесь! Вам просто нужно стать лучше в этом. Я бы посоветовал прочитать «Чистый код» Роберта С. Мартина — он обещает заставить вас работать над ним и совершенно ясно дает понять, что это чтение не приносит хорошего самочувствия. И, конечно же, опыт ничем не заменишь — так что продолжай программировать!

О, и используйте Git, это помогает.

Чистое общение

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

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

Люди как IDE

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

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

Пусть комментарии помогут вам

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

Удалить с отказом

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

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

Проект, чтобы делать проекты интересными

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

Все хорошие вещи…

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

И пока у нас плохая математика,

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