С Чего Начать

Как научиться программированию: 4 стадии взросления программистов

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

Anton F, 27.05.2018

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

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

Можно научиться кодить самостоятельно, но это будет непросто

Стадия 1: невероятная уверенность в себе

Когда-то программирование считалось делом сложным, мудреным. Но времена изменились, и не последнюю роль в этом сыграли сами программисты, которые популяризуют профессию по мере сил. В интернете полно обучающих курсов, бесплатных и платных уроков, блогов и видео, посвященных основам программирования. И вот вы, будущий программист, делаете свои первые шаги – и у вас все получается! Шаг за шагом, урок за уроком. Вам неизбежно начинает казаться, что вы большой талант и молодец (скорее всего, так и есть), без пяти минут программист (на самом деле – нет).

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

Основы логики нужно освоить в самом начале пути

Как успешно преодолеть первый этап? Пробуйте разные ресурсы, ищите те, которые вам по-настоящему интересны. Будьте открыты и не верьте тем, кто утверждает, будто вы должны изучать только что-то одно. Попробуйте разное, а заодно морально приготовьтесь создавать собственные проекты.

Стадия 2: осознание реальности

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

Тут уместно напомнить афоризм: «Дорогу осилит идущий». Если вы действительно хотите стать программистом, перед вами на данном этапе возникнет несколько проблем.

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

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

Объем ваших знаний. На начальной стадии обучения вам нужно понимать немного вещей: цикл «for», построение логики оператора, основные структуры синтаксиса. С некоторыми базовыми понятиями вы даже не будете сталкиваться на практике. Но стоит отойти от основ, и потребуется больше знаний. Нужно разбираться в ошибках, понимать, как и когда использовать код, который вы уже знаете. И чем дальше, тем больше вопросов, ответы на которые критически важны. Только на этом этапе вы поймете, какие языки нужно изучать, какие инструменты использовать.

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

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

Как успешно преодолеть второй этап? Однажды олимпийского чемпиона по бегу спросили, что нужно делать, чтобы бегать, как он. Парень не растерялся и выдал ответ: «Чтобы бегать, нужно бегать!» Применительно к нашей с вами ситуации: чтобы стать разработчиком, нужно разрабатывать. Оторвитесь от учебников, изучайте чужой код, пытайтесь понять, почему он написан так, как написан. Сосредоточьтесь на небольших проектах и задачах, начинайте с малого, но программируйте постоянно.

Стадия 3: поиски выхода

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

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

Важно научиться устранять собственные ошибки

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

Стадия 4: почти у цели

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

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

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

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

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

Если теперь, когда вы точно знаете, что ждет вас впереди, вы все еще не передумали изучать программирование, то желаем удачи!