Регулярность проявляется, скорее, в улучшении своих знаний и навыков в свободное время: до или после работы и в выходные. Но это не значит, что необходимо, программировать круглосуточно. Всегда есть чем заняться помимо программирования и эффективно работать человек может только после достаточного отдыха. Просто у отличных программистов самосовершенствование входит в привычку.
Вопрос в том, как быть последовательным? Многим из нас этого трудно достичь. Во-первых, определите количество часов, которые вы можете уделять программированию каждую неделю. Это число будет вашим еженедельным «пробегом программиста».
Большинство программистов этим этапом пренебрегают. Они сразу переходят к проекту, который нужно завершить, или к теме, которую надо изучить, не задумываясь о том, откуда взять время. Они работают весь день, продолжают ночью или устраивают себе шестнадцатичасовой рабочий день.
В этом подходе есть одна проблема: долго в таком режиме не проработаешь. Навыки программиста не оттачиваются после одной-двух недель напряжённой работы. Над этим нужно постоянно и последовательно работать в течение долгого времени. Вот почему так важно определить свой пробег программиста.
Как это сделать? Попробуйте несколько дней вести учёт используемого времени. Возьмите лист бумаги и записывайте туда всё, что вы делаете каждый день, и количество времени, которое вы на это тратите, включая то время на проверку почты.
Так будет легче определить, где у вас имеются резервы времени и где его расход можно уменьшить. План — это один из наиболее эффективных способов быть последовательным и в конечном счёте достигать поставленных целей. Ведь в этом случае все детали определены заранее, вам лишь остаётся реализовывать этот план каждый день. В конце дня составьте план на следующий день!
Вторая черта отличных программистов — это настойчивость. Они прорабатывают проблему, обнажая слой за слоем, и находят решение. Похоже, в этом и есть их секрет. Отличные программисты обладают невероятной способностью разбирать проблемы на составляющие их части, вскрывая целые слои проблемы или неоднозначной ситуации. Короче говоря, у них есть система решения проблем.
Гораздо легче проявлять настойчивость и упорство, работая над чем-то заведомо поддающимся решению. Важна система решения проблем, которая помогает разбивать проблему на составляющие.
Разобравшись с постановкой задачи, сосредоточиваемся на следующем выполнимом этапе, и только на нём. Понимание вводных данных и ожидаемых результатов выполнимо. Выявление пограничных случаев выполнимо. Написание псевдокода выполнимо. Решение упрощённой версии проблемы выполнимо. Этапы могут быть непростыми, но они выполнимы. Решение трудных проблем помогает нам становиться лучше, а также придаёт уверенности. Преодолев одну трудную проблему, мы готовы к большему.