Научиться программировать самостоятельно сложно, вот несколько советов, как сделать это проще

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

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

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

Вот мой секретный соус к обучению программированию на постоянной основе.

Настройте рутину

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

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

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

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

Будьте разумны в своих планах. Не все могут учиться по 6–8 часов в день. Когда я пытался так многому научиться, меня поразило эмоциональное выгорание. Для меня обучение в течение 4–5 часов было приятным моментом — я мог довольно быстро прогрессировать и иметь время для отдыха и расслабления.

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

Имейте реалистичные ожидания

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

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

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

Теперь я знаю, что мои ожидания были глупыми. Проблема в том, что люди разные. Мы учимся по-разному и обладаем различными навыками, привычками и обстоятельствами. Кто-то может найти свою первую работу за 3 месяца, но это не значит, что вы это сделаете. И тот факт, что кто-то два года учился и не смог сменить профессию, не означает, что вы разделите их судьбу. Сеть полна отличных историй успеха. Но реальный опыт обучения гораздо сложнее и непредсказуемее.

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

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

Делайте детские шаги

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

Вы просто пытались откусить больше, чем можете прожевать.

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

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

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

Через несколько недель с CSS вам, вероятно, станет скучно, и вы будете искать некоторые проблемы. Пришло время добавить интерактивности на ваши веб-сайты с помощью JavaScript.

Всегда делайте только один шаг за раз. Игнорируйте все, кроме шага, который вы собираетесь сделать. Со временем пытайтесь создавать все более и более сложные веб-сайты.

Делайте одно дело за раз

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

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

Когда я начал программировать, я пытался изучить C++, Python, Django и Flask. Я потратил на это почти полгода, потому что не знал, чему хочу научиться; Я просто хотел получить работу в качестве разработчика программного обеспечения.

Это нехороший подход; вам нужно подумать об этом с другой стороны — решить, что вы хотите делать, и научиться этому.

Я выбрал переднюю часть и никогда не оглядывался назад. Я сосредоточился на HTML, CSS и jQuery (тогда это было очень важно). Четыре месяца спустя я получил два предложения о работе.

Сосредоточенность на чем-то одном спасла мою карьеру программиста.