Перевод статьи «The Magic Formula to Improve Your Programming Skills».
Если вы давно мечтали стать программистом и вот ваша мечта сбылась — не останавливайтесь на достигнутом. Вы просто обязаны (и, надеемся, сами хотите) постоянно совершенствовать свои навыки.
Да, обучение длиной в жизнь это реальность.
Вы не можете получить диплом, пройти обучение на тренинге или завершить онлайн-курсы и просто сказать «Всё, я теперь программист». Так дела не будет.
Но есть ли волшебная формула, которая поможет вам в оттачивании ваших навыков? Думаю, что есть. Это результат последовательности и концентрации. Но добраться до конечного результата все равно не просто.
Концентрация
Собственно, никакого конечного результата и нет. Нет предела совершенству. Это процесс, делающий вас лучше.
Прежде чем начать работать над улучшением конкретных навыков, нужно кристаллизовать понятный фокус. На этот раз речь не о том фокусе (концентрации), который нужен для того чтобы влиться в поток. Речь идет о том, на чем вы вообще фокусируетесь в своей жизни и карьере. Как говорит Велдон Лонг в своей книге «The Power of Consistency» (“Сила последовательности”), фокус касается следующего:
- Что вы хотите получить от вашей жизни и бизнеса
- Кем вы хотите стать в своей жизни и бизнесе
- Что вы готовы вкладывать в свою жизнь и бизнес
- Что вам нужно для того, чтобы добиться своих целей в жизни и бизнесе
Так что речь идет о ваших жизненных планах. Слишком много людей просто бродят без определенной цели. «Быть программистом и хотеть усовершенствовать свои навыки» – довольно расплывчатая цель. В чем конкретно вы хотите стать лучше? Или каким именно программистом вы хотите быть? Какова ваша настоящая цель?
Что касается меня, долгое время я хотел стать indie game разработчиком. Я хотел создать собственную игру, сделанную целиком и полностью самостоятельно, в свое свободное время, поместить ее на Steam и представить на Gamescom. Я не просто хотел это сделать, я должен был это сделать. Желание достигнуть этой цели было таким сильным, что это просто должно было произойти — и я это сделал.
Итак, у меня было четкое понимание того, что я хочу сделать и кем стать в жизни. При таком положении вещей вы больше не задаетесь вопросами. Вы не бродите вокруг да около, размышляя, чем бы заняться вечером. Вы просто делаете это.
Скажем, вы знаете, как писать код. Любой код. Отлично!
Со временем вы начинаете чувствовать, что фронтенд-разработка вам нравится больше, чем бэкенд. Прекрасно! Вы подбираетесь к определению своей цели.
Имея в виду эту цель, вы будете двигаться в этом направлении. Вы найдете статьи, книги, в конечном итоге – подходящие вакансии или другие ситуации, которые дадут вам возможность улучшить свои навыки в данной сфере.
Ваши цели стали конкретными.
Что дальше?
Последовательность
Имея перед собой четкую цель вы должны начать проявлять активность. И не одноразово. Вы должны делать то, что должны делать аж пока не достигнете своей цели. И, пожалуйста, делайте это регулярно.
Когда я хотел создавать игру в свободное время, мне нужно было практически ежедневно разрабатывать фичи для нее. Я приходил домой с работы, готовил поесть и возвращался за клавиатуру писать код.
Ну, я не только писал код. Я также определял новые фичи, тестировал их, фиксил баги – вы знаете, что я имею в виду.
Итак, у меня был дедлайн, я знал, какие свойства должны быть реализованы, и были люди, ожидавшие окончания моей работы над игрой. Все могло получиться только в случае моей последовательной, постоянной работы. Это очень важная часть данного уравнения.И теперь я знаю, как самостоятельно создать игру.
Вероятно, у вас есть сторонний проект. Может, даже не один. И вы очень хотели бы посвящать ему больше времени, но не выходит. Вероятно, вы работаете над ним чуть-чуть, затем откладываете и находите еще что-то, чем хотите заняться. В конечном итоге вы разбрасываетесь на разные темы, но ни в одной из них нет прогресса.
С развитием навыков программирования ситуация такая же. Конечно, вы можете пробовать разные вещи и даже немного познакомиться с ними. Но настоящее улучшение происходит, когда есть четкий фокус на том, что вы хотите улучшить, и постоянная работа над этой конкретной вещью.
Если вы – разработчик ПО, вы можете делать это все время.
Скажем, у вас есть некая задача.
Вы можете обнаружить себя в двух ситуациях: или вы уже знаете, что и как делать, или вам сначала нужно это узнать.
Последний вариант ведет к новым навыкам, а первый может помочь в углублении уже имеющихся. Но в любом случае, выполняя свою работу, вы автоматически улучшаете свои навыки. У вас есть задача, которую в нашем контексте можно считать вашей целью, и дедлайн, который заставляет вас последовательно продвигаться к этой цели.
Подобно вашему расписанию на работе, расписание вашего «учебного» времени будет крайне полезным. Если у вас в течение недели будет «забронированное» время для учебы, вероятность того, что вы сядете и используете его с толком, значительно повышается.
Это похоже на походы в спортзал. Пойдя один раз вы не увидите никакого эффекта. Но если станете упражняться последовательно в течение месяцев или даже лет, то в долгосрочной перспективе заметите прекрасные результаты.
Поэтому подумайте о своих целях, работайте над ним настойчиво и не забудьте всегда сохранять терпение. Со временем вы будете становиться все лучше и лучше.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]
Ещё многое играет свободное время. Когда ты приходишь в 19:00-20:00 после работы/учебы и тебе нужно готовить еду и ещё много дел слелать. А потом пораньше лечь спать что-бы в 6-7 проснутся. И ты хочешь немного рослабится после тяжёлого дня, тогда на программирование остаётся совсем минимум времени.
Согласен.