Programming

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

Да, такое постоянное обучение в течение всей жизни вполне реально.

Вы не получите степень, не закончите учебный курс, онлайн курс или учебный семинар и просто скажите: «Все, теперь я программист». Так не бывает.

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

Цель

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

И все же первым шагом развитию конкретных навыков является постановка четкой цели. При этом речь идет не о краткосрочной, «окрыляющей» на быстрые свершения и сиюминутные достижения цели. Мы говорим о солидных, серьезных и долгосрочных жизненных и карьерных целях. Как отмечает Уэлдон Лонг в своей книге «Сила настойчивости», цель это:

  • То, что вы хотите получить от жизни, работы и карьеры
  • То, кем и чем вы хотите стать в жизни, на работе и в карьере
  • Конкретное и четкое понимание того, что именно вы хотите привнести в свою жизнь, в работу и карьеру
  • Осознание того, чего вы готовы реально добиться по жизни и в карьере

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

Лично я в течение довольно долгого времени хотел стать независимым разработчиком компьютерных игр. Хотел создать собственную игру, разработать и написать ее самостоятельно от начала и до конца в свое свободное время, дорого продать и презентовать ее на Gamecom’е. Я не просто хотел этого, а предпринимал усилия к достижению этой цели. Желание достичь мечты было таким сильным, что это в конце концов это произошло.

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

Допустим вы знаете как писать код. Любой код. Замечательно!

Допустим сейчас чувствуете, что разработка клиентской части приложений (фронтэнд) является как раз именно то, чем хочется заняться больше, чем серверными приложениями (бэкэнд). Превосходно! Вы добьетесь цели. Неспешно придете к ней.

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

С целями уяснили. Что дальше?

Настойчивость

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

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

Ну и конечно же, не только писал код. Также описывал новые функции, тестировал, исправлял ошибки — вы меня понимаете.

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

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

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

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

Скажем, перед вами стоит конкретная задача

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

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

Аналогично календарному плану для рабочих задач, распорядок “плана совершенствования навыков” является сильным подспорьем. Установленные срок и ежедневное расписание повышает вероятность достижения поставленной цели.

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

Поэтому, помните о целях, постоянно работайте над их воплощением, будьте настойчивы и терпеливы.

Со временем результаты ваших усилий обязательно оправдаются!

Перевод статьи Patrick God: The Magic Formula to Improve Your Programming Skills