Многие проекты программистов часто остаются незавершёнными. У них так много хороших идей, но многие из них остаются лишь фантазиями. Почти у каждого разработчика программного обеспечения есть такая папка, полная незавершённых проектов, и немало из этих программ вначале были действительно отличными идеями. Как и у этих людей, у меня тоже есть много хороших идей, некоторые из которых сейчас используют некоторые компании. Например, решить, получать ли прибыль от электронной коммерции на eBay или на Amazon, создать социальную сеть для бизнеса (сантехника, электроника, разработка программного обеспечения и т. д.), поисковик по Bitcoin, разработать CSS-фреймворк для замены Bootstrap, находить самых привлекательных людей из Instagram, разработать движок аналитики трафика в реальном времени — список можно продолжать и продолжать. Я начинал почти все эти проекты, но так и не увидел ни одного завершённого. Когда я обсуждал эту тему с коллегами и друзьями, они в целом говорили, что у них то же самое. Очень многие хорошие идеи преждевременно погибли в их папках. Почему так?
Отсутствие мотивации из-за успеха
Сначала поговорим о нашей профессии, у которой завидно высокий уровень занятости. Пусть говорят факты: национальный уровень безработицы составляет около 6.7%, тогда как уровень безработицы среди веб-разработчиков — менее 1%. Кроме того, уровень наших зарплат выше среднего. К 2012 году средний годовой доход разработчиков программного обеспечения уже превысил $90,000. Конечно, если вы сейчас достаточно хороши, вы можете намного превысить эту цифру. Наблюдение за тем, как новички, обучающиеся вместе со мной, становятся программистами начального уровня, даёт мне огромное чувство личного достижения. И оплата в этой профессии также делает их очень довольными: стартовая зарплата от $45,000 до $70,000.
Итак, по сравнению с большинством других людей, особенно с теми, кто посредственно работает, лишь отбывает повинность и постоянно меняет работу из-за низкой зарплаты, разработчики программного обеспечения всё ещё относительно успешны. Здесь позвольте мне взять на себя смелость сделать обобщение — любое совпадение является чисто случайным. Можно сказать, что программисты, сменившие профессию на полпути, относительно успешны по сравнению с этими людьми. Именно это чувство превосходства от успеха притупляет наши нервы и лишает нас мотивации достигать поставленных целей.
Разные области знаний
У нас широкие знания. Мы можем красноречиво рассуждать о том, как удобно путешествовать между городами. Мы умеем разбивать сложную задачу на маленькие подзадачи и решать их одну за другой. Мы поистине «мировые эксперты», потому что можем сказать «Hello World» на любом языке. Даже столкнувшись с тысячами и тысячами вычислений, мы не хмуримся, потому что понимаем рекурсивные методы. Мы знаем много, но достаточно ли этого? Великий учёный Эйнштейн однажды сказал:
Поверхностные знания вводят людей в заблуждение, поэтому они опасны; эрудиция с высокомерием ещё опаснее.
Ньютон, как всем известно, был признан одним из самых умных людей той эпохи, способным точно предсказывать движение небесных тел на расстоянии миллионов километров. Он говорил, что может видеть дальше только потому, что стоит на плечах гигантов. Физика не была его единственным интересом; он также оставил нам такое драгоценное интеллектуальное наследие, как математический анализ, и так далее. Из этого можно подумать, что он должен был также хорошо разбираться в капитале и рыночных операциях, верно?
Ха-ха, тогда вы сильно ошибаетесь! На пике пузыря акций Компании Южных морей в 1720 году все вложенные им деньги исчезли, и он обанкротился. Поскольку он не понимал рынок, никакие знания и эрудиция не могли ему помочь. Потому что его области знаний были независимыми и не имели отношения друг к другу — он открыл законы движения тел, но эти законы никак не помогали в овладении психологией инвесторов. Мы находимся в той же ситуации. Мы можем целый день объяснять алгоритмы и изучать структуры данных, но мы не понимаем, чего хотят пользователи. Когда впервые появился Twitter, я счел само собой разумеющимся, что это лишь мимолетная мода. Факты доказали, что я ошибался. Решая проблемы, мы часто стремимся только к тому, чтобы решение было привлекательным, игнорируя обыденные представления, связанные с проблемой.
Постоянная смена работы
Я могу гарантировать, что так обстоит дело в любом другом крупном городе, но здесь я говорю только за себя и за своих коллег и друзей, работающих в Нью-Йорке. Мы постоянно меняем работу. Но не все такие. В комментариях к одной статье в интернете я увидел человека, который 19 лет занимал одну и ту же должность. Я также заметил, что те, кого легко привлекают другие проекты, как правило, не задерживаются на одной должности слишком долго. Именно по этой причине многие проекты приходится прерывать.
Есть много причин прерывать проект. Например, вы только что устроились на новую работу и должны посвятить себя тамошнему проекту, поэтому приходится отложить первоначальный. Или, поскольку проект, над которым вы работаете, похож на те, что вы делали раньше, вы внезапно теряете интерес. Расстояние — тоже причина: особенно если вы меняете работу каждые несколько лет, сохранять упорство становится ещё труднее. Здесь мне нужно упомянуть, что важно изменить образ мышления. Если вы планируете уволиться через три года, то почему бы не завершить свой проект за три месяца? Если вы сможете сохранить эту страсть, то когда вы растеряетесь в проекте, вспышка вдохновения принесёт хорошие идеи.
Вдохните новую жизнь в заброшенные проекты
По той или иной причине я не позволил своим хорошим идеям «воплотиться в жизнь». Сначала мы признали это, затем выяснили причины. Теперь третий шаг — исправить их. Это не то, что можно сделать за одну ночь, и, возможно, многие мои проекты всё ещё останутся в этом полумёртвом состоянии. Затем, после долгих размышлений, я наконец придумал несколько шагов, которые могут помешать этим проектам навсегда стать украшениями в папках.
Вы — лучший
Во-первых, поймите, что каждый проект может помочь вам вырасти — немного, а в некоторых случаях и значительно — в лучшего разработчика. Навыки нужно накапливать со временем, поэтому чем больше проектов вы разрабатываете, тем лучше становитесь. Используйте мотивацию изучения новых технологий, новых языков программирования и новых фреймворков для разработки проекта; тогда, даже если вы его не закончите, вы всё равно сможете многому научиться. А если у вас есть другие важные дела, вы можете немедленно приостановить этот проект.
Создавайте компоненты проекта
Вы разработали множество проектов и становитесь всё более и более опытным. Знаете ли вы этот маленький приём — повторное использование кода? Создавайте модули и библиотеки вместо того, чтобы переписывать их каждый раз, когда вам нужно их использовать. Если проект, над которым вы сейчас работаете, не последний, то я советую вам создавать некоторые компоненты проекта, а не просто писать код, который можно использовать только в этом проекте. Запишите себе заметки в документации, чтобы их было удобно использовать в следующем проекте.
Сотрудничайте со всеми
Теперь, когда у нас есть хорошие способы дать тем заброшенным проектам возродиться, не терпится ли вам попробовать? Ваша идея может быть изящной, такой же драгоценной, как ваш ребёнок, или, возможно, стоить миллиарды долларов, но пока что она ничего не стоит. Вам нужно делиться своими идеями с другими, и чем больше, тем лучше. Это естественное воодушевление может побуждать вас продолжать работать над проектом и продвигать его развитие. Вы даже можете открыть его исходный код и пригласить всех участвовать. Такой совместный подход даёт вам чувство миссии, помогает сохранять сосредоточенность и не позволяет легко сдаться.
Решайте задачу, которая перед вами
Не беритесь за то, что вам не по силам, и не ставьте великие цели, не имея на то способностей. Старайтесь делать то, что действительно полезно для вас. Если вы программист, решайте задачи программирования; если вы работаете в компании, создавайте программы, которые нужны компании. Даже на личном уровне наверняка есть проблемы, которые можно решить с помощью технологий. Так почему бы не проявить инициативу? Не ждите, пока проблемы накопятся, прежде чем их решать. Шаг за шагом, и в то же время вы сможете получить полезные программы и так далее. Почему бы не сделать это?
Не отказывайтесь от дел только потому, что они кажутся мелкими
Есть поговорка: не думай о создании компании, на запуск которой уходит восемь месяцев; вкладывай время в то, что можно сделать за четыре недели или даже меньше. Как бы просто это ни было, выпускай свои последние результаты в фиксированный день каждый месяц. Это даёт мощный психологический сигнал, который может мотивировать твою работу. И наоборот, если ты восемь месяцев сидишь перед ноутбуком и возишься, желая сделать что-то грандиозное, но вообще не имеешь прогресса, можешь представить, как ты будешь разочарован. Количественные изменения переходят в качественные; делая маленькие дела хорошо одно за другим, можно прийти к большому успеху. Потому что жизненный путь — это марафон, а не спринт.
Хвастовство — тоже технический навык
Социальное давление реально. Вместо того чтобы работать втайне, лучше расскажи всем, над чем работаешь. Обратная связь, которую ты получишь, может помочь улучшить твой продукт. Возможно, ты беспокоишься, что другие присвоят твои идеи себе, но могу гарантировать, что такого абсолютно не произойдёт. Потому что даже очень простую идею другим очень трудно реализовать. Так что нет нужды быть скрытным. Скажи вслух; ты также можешь извлечь полезные предложения из советов всех, чтобы улучшить себя, а что важнее, так это заставит тебя внедрить это. Иначе, если похвастаешься и провалишься, не будешь знать, куда девать лицо, ха-ха.
На этом пора подводить итог. Интересно, узнал ли ты какие-нибудь приёмы, которые могут помочь твоему проекту? Помни: действие — самое важное.