Учиться программированию — задача не из простых. Для того, чтобы достичь определенного мастерства, нужно вложить много времени и сил.

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

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

1. Не беритесь за все сразу

Это самая большая проблема, с которой сталкиваются новички.

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

Многие новички считают, что для того, чтобы стать Java-разработчиком, нужно изучить C, а потом С++. Но это не так. Не тратьте свое время, беритесь сразу за Java. Как только изучите основы языка, переходите на следующую ступень — освоение фреймворков. Хорошие базовые знания — лучший помощник в профессиональном росте. В будущем благодаря ним вы легко освоите новые инструменты, которые упростят вашу работу.

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

2. Заставьте код работать

Многие разработчики, особенно новички, тратят огромное количество времени на изучение инструмента, но забывают о его назначении.

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

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

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

3. Выберите стратегию обучения

Существует множество способов обучения, и все они индивидуальны. Если что-то подходит мне, то не факт, что подойдет вам — ищите для себя наиболее подходящий. Это очень важно.

Я потратил очень много времени, чтобы найти подходящий способ обучения. Раньше я часами листал учебник, а потом открывал гайды на YouTube. Хоть мне и удавалось усвоить некоторые моменты, но такой способ обучения был неэффективен.

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

Когда я говорю про теорию, я имею в виду чтение книг, просмотр видео на YouTube. Практика же — закрепление теории. Открыть IDE, чтобы начать писать код, например. Очень важно найти баланс между этими двумя формами обучения. Если вы потратите все время на изучение теории, то вы вряд ли сможете применить свои знания. С практикой то же самое: если вы откроете IDE без базовых знаний синтаксиса, это очень сильно замедлит ваше обучение.

Если вы новичок, оптимальным отношением будет 2 к 1. То есть, после двух часов теории следует час практики. Позже можете перейти к 2 к 2. В зависимости от успехов вы можете продолжать изменение это отношения, чтобы найти золотую середину.

4. Техника Помодоро

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

Суть этого метода заключается в том, что весь ваш рабочий день разделяется так: 25 минут работы, за которыми следует 5-минутный перерыв. Эти интервалы называются помодоро, в русском — иногда помидорами. Как только закончите 4 помодора, можете взять перерыв 15-20 минут.

Когда вы осознаете, что на выполнение задачи у вас всего 25 минут, вы используете время максимально эффективно. Эта техника сильно помогает, когда вы изучаете программирование. Например, вы приступаете к изучению 8-ми часового курса объектно-ориентированного программирования. С помощью данной техники вы можете растянуть этот курс на два дня, а не учить все за раз. Удобно.

5. Объясняйте другим изученное

Еще один прекрасный способ учиться. Что бы вы ни изучили — постарайтесь это объяснить кому-либо. Это поможет вам лучше усвоить материал. Звучит забавно, правда? Но будьте уверены, это работает.

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

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

6. Следите за тем, что вы изучили

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

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

7. Избегайте эти три вещи

  • Перфекционизма. Будучи новичком, стремиться к совершенству значит вставлять себе палки в колеса. Скорее всего, вы начнете прокрастинировать и стагнировать. Перфекционизм усложняет процесс обучения. Не ищите правильные ситуацию, время и решение — просто делайте свою работу.
  • Сравнений себя с кем-то. Это то, что деморализует сильнее всего. Сравнение себя с кем-то может создать много проблем на пути изучения программирования. Допустим, вам кажется, что кто-то из ваших коллег очень талантливый программистом. Но ведь это не значит, что его опыт более ценен или он работают меньше вас. Сосредоточьтесь на самосовершенствовании. Отбросьте стеснение, но не зазнавайтесь  — учиться на чужом опыте очень важно.
  • Усложнения. Научитесь разбивать задачи на мелкие подзадачи, с которыми можно легко справиться. Допустим, вы пытаетесь создать сайт, похожий на Udemy, на котором люди смогут проходить онлайн-курсы. Сперва следует написать страницу регистрации и авторизации. Не беритесь за все сразу. Еще одна вещь, о которой следует помнить, — не существует идеального кода. Избегайте чрезмерной оптимизации и двигайтесь вперед. Заставьте ваш сайт работать, поправьте мелкие ошибки и оптимизируйте код, чтобы он быстро работал. «Простота есть основа утонченности», — Леонардо да Винчи.

8. Не забывайте об отдыхе

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

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

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

Если вы лишите себя полноценного сна, начнете употреблять нездоровую пищу и бросите занятия спортом, то увеличите уровень своего стресса. Это может отрицательно сказаться на ваших умственных способностях и мотивации. Делу время, а потехе час, как говорится. Когда приходит время отдыхать, я провожу время с семьей, друзьями и хорошенько высыпаюсь. Это помогает поддерживать баланс между работой и отдыхом. (Примечание: это не баланс между работой и личной жизнью, как вас убеждает общество, ведь ваша жизнь на первом месте!)

Перевод статьи: Tips to Learn Programming More Effectively