В этой статье поговорим о том, как эффективно обучаться программированию. Программирование — это сложная профессия и надо грамотно выстроить обучение, чтобы с одной стороны, достичь цели, а с другой стороны не отчаяться и не бросить учебу.
1. Пишите код каждый день
Это железное правило и нужно строго ему следовать. Только учтите, что имеется в виду — каждый рабочий день. Про выходные чуть позже.
Программирование — это особый вид деятельности. Здесь нельзя работать «левой ногой». Если вы начинаете программировать, то это подразумевает полное погружение в задачу.
Вы должны жить этим. Причина в том, что компьютер «думает» иначе, чем человек. Для того, чтобы писать программы у человека должно работать так называемое «алгоритмическое мышление». Оно непривычно для человека и быстро забывается. Чтобы развить в себе навыки алгоритмического мышления как раз и нужно ежедневное программирование.
При этом важно, что в зачет идет только чистое кодирование. Не чтение книжек, не разбирательство в чужом коде, не сидение на форумах, а именно написание своего работающего кода.
Еще одно важное замечание. Обстоятельства, где вы пишите программу, не имеют никакого значения. Поэтому можете кодить даже на работе в обеденный перерыв. Потому что как только вы станете программистом, то вам придется кодить в любых условиях. Например, при сдаче программы заказчику ошибка может вылететь в любой момент, поэтому надо будет прямо у заказчика на коленке в коридоре эту ошибку исправить. Именно поэтому я сделал сборки «Си-экспресс» и «PHP-экспресс» автономными. Их можно носить с собой на флэшке (или скачать этого сайта). В любой момент вы продолжаете работу.
2. Выходные — время полного отдыха
Программирование — это трудная для мозга деятельность. Поэтому старайтесь в выходные полностью отдохнуть от компьютера. Занимайтесь чем угодно: бегайте, плавайте, играйте в футбол. Главное, полностью очистить мозг от компьютерной деятельности. Тогда в понедельник вы готовы со свежей головой опять окунуться в программирование.
3. Концентрация на одной задаче
Меня часто спрашивают: «А можно ли одновременно изучать Си, PHP, HTML и т.д.?» Нет, нельзя. В каждый момент времени вы фокусируетесь на одной задаче. То есть, вы выбираете один курс или один учебник. И идете по этому курсу от начала и до конца. По одному уроку в день.
Поэтому как только вы сели за компьютер и готовы начать заниматься, то у вас должна быть четкая цель — сегодня изучить один урок.
Но важный момент, напомню, в зачет идет только кодинг. Поэтому прослушивание урока — это только начало. А вот дальше вы должны сами попробовать разные варианты программ. Это сделать легко. Если в уроке идет подсчет суммы, то посчитайте среднее значение. Если в уроке рассмотрено работа двух кнопок, то сделайте десять кнопок и т.д.
Ваша задача — настолько овладеть материалом, чтобы у вас не осталось белых пятен. Каждая строчка в программе должна быть вам понятна. Убедиться в этом легко: внесите изменение в каждую строчку и убедитесь, что поведение программы меняется именно так, как вы и задумали.
4. Изучение рабочей среды
Инструменты программиста — это очень важное дело. Если в обычной жизни тупым ножом много не работаешь, так и в программировании, если инструмент не очень удобен, то много не накодишь. Поэтому отдельное время уделите настройке вашей рабочей среды. Например, CodeBlocks хорошо тем, что его можно настроить как угодно. Настроек сотни.
Но для того, чтобы настроить инструмент как следует, его надо знать. Поэтому каждый день уделите время знакомству с одной настройкой. Попробуйте поменять и посмотрите, стало удобнее или нет. В статье «10 настроек CodeBlocks…» я описал основные настройки, но, конечно же, это капля в море.
5. Не пасуйте перед трудностями
В самом начале в тупик ставят даже примитивные вещи. И это нормально. В программировании мелочей не бывает. Любая непонятная мелочь может заблокировать движение вперед.
Если так случилось, то не паникуйте, а задавайте вопросы. Лучше всего это сделать на сайте stackoverflow.com — это сайт, где программисты помогают друг другу. Кстати, если вы задали вопрос, но нашли ответ самостоятельно, то напишите этот ответ. Этим вы поможете другим.
Помните, что вы не один с такой проблемой. Уже тысячи программистов до вас проходили этим путем и как-то нашли ответ. Поэтому не останавливайтесь, ищите ответы.
6. Смотрите чужой код
Любую новую тему очень тяжело сразу воспринять в полном объеме. Как правило, описание функций и классов включают множество второстепенных деталей, в которых можно надолго закопаться. Поэтому как только вы видите, что становится тяжело воспринимать материал, то поищите готовый код.
Когда вы видите работающий пример, то многое проясняется. Как только вы начинаете изменять этот пример, то наглядно видите, как все устроено. При этом старайтесь выделить главное.
Например, на сайте есть статья «Минимальная программа Cairo«. Я специально ее написал, чтобы новичок как можно быстрее получил готовый результат. Потому что библиотека Cairo хотя в целом и проста, но имеет массу деталей. Можно долго читать документация, но упустить важную деталь и ничего не получится. Но как только есть готовый пример, то все встает на свои места. Поэтому ищите готовые примеры.
7. Заканчивайте урок только после получения готовой программы
Есть важный психологический момент. Когда вы изучаете программирование, то не привязывайтесь ко времени. То есть у вас не должно быть цели: «Сегодня я занимаюсь один час».
Гораздо лучше привязываться к результату. То есть цель должна быть, например, такая: «Сегодня я пройду один урок и выполню домашнее задание». Сколько это займет времени — неважно. Поэтому даже если у вас ничего не получается — сидите, пока не получится. Хоть до часу ночи!
Для этого есть две причины.
Причина первая. Программисты именно так и работают. Если близятся сроки сдачи проекта, то программисты работают днями и ночами. Вы стразу привыкаете к этой стороне программирования.
Причина вторая. Если вы все сделали и у вас все получилось, то у вас появляется радость и желание на следующий день опять двигаться вперед.
Самый же эффективный метод изучения программирования (но он не для всех) описан здесь.
Очень хорошая, полезная статья.
Добавлю, что в утренние и дневные часы учёба и работа несравненно эффективнее вечерней (ночь вообще не рассматривается). Усвоение информации происходит с 22 до 2 часов, если человек спит. При этом улучшается запоминание, а хорошая память экономит время.
У всех людей по разному, поэтому НЕЛЬЗЯ такое утверждать. Для вас это время результативно, а для меня СОВСЕМ НЕТ. Я — «сова», поэтому для меня вечернее время — самое продуктивное.
Да, статья полезная конечно, но.. Но есть вопрос к Вам Константин. Вы писали, что есть статья по Code Blocks, где есть 10 настроек, это да. Но настройки для того, чтобы вставлялся пробел в циклах, условиях if ()… for ()…. Так вот, именно в этих местах, пробелы никак зараза, не хотят ставиться. К сожалению.
Попробовал вставить пробелы, никаких проблем нет. Все компилируется.
Вот приобрету курс тогда и будут комментарии.
Хорошо! Читается с удовольствием!!! Продолжим !