Добавить в корзинуПозвонить
Найти в Дзене

Учишься программированию? Помни о памяти

Многие учатся программированию абсолютно неправильно в том числе потому, что не понимают, как работает человеческая память и как она работает со знаниями о программировании. Давайте расскажу пару-тройку вещей об этом. Знания о том, как программировать, улетучиваются очень быстро. Как-то я разговаривал с разработчиком, который перешёл на другой проект и начал учить новый язык за две недели до того. И он говорил мне, что очень многое уже не помнит из того, что делал регулярно на протяжении нескольких лет. Какие-то особенности языка, нюансы, типичные шаблоны — всё это улетучивалось из его головы с огромной скоростью. Что же говорить о новичке, который только изучает программирование? Если у вас был перерыв в занятиях программированием на две недели(а то и меньше для многих) — надо начинать всё с начала. Не пытайтесь продолжить обучение с того места, на котором остановились — только время потратите зря. Я, когда начинаю изучать новый язык, поступаю так же, с самого начала прохожу все те же
Оглавление

Многие учатся программированию абсолютно неправильно в том числе потому, что не понимают, как работает человеческая память и как она работает со знаниями о программировании. Давайте расскажу пару-тройку вещей об этом.

В одно ухо влетело, в другое вылетело

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

Что же говорить о новичке, который только изучает программирование? Если у вас был перерыв в занятиях программированием на две недели(а то и меньше для многих) — надо начинать всё с начала. Не пытайтесь продолжить обучение с того места, на котором остановились — только время потратите зря. Я, когда начинаю изучать новый язык, поступаю так же, с самого начала прохожу все те же темы — операторы, переменные, ввод-вывод и т.д. и т.п. Если потребуется вспомнить Pascal, на котором я ничего не писал уже лет 10 — тоже начну сначала.

Не спешите пугаться

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

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

А как же прийти к тому, чтобы так же очень-очень быстро восстанавливать забытое в программировании?

Знание-сила, понимание — мощь

Чтобы быстро вспоминать информацию о программировании, вам нужно не знать — нужно понимать, понимать, что за этим стоит, почему именно так, а не иначе написан этот код и т.д. и т.п.

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

Но вот беда — программирование жутко контринтуитивная штука. Регулярно новичок будет сталкиваться с вещами, которые либо противоречат всему, с чем он имел дело до этого, либо вообще перпендикулярны всему его опыту. И что с этим делать?

Практика впереди теории.

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

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

Обманчивое понимание

Понимание можно разделить на 3 виде — поверхностное, глубокое и навык. Многие новички, достигнув поверхностного понимания, думают, что всё, можно идти дальше. Но на следующей теме или через пару упираются в стену. Почему? Да потому что их не пускает дальше поверхностное понимание той самой темы. А для понимания следующих тем требуется или глубокое понимание, или навык. Чтобы меньше напрягать память на вспоминании пройденного, а работала она только на запоминание нового.

Что с этим делать? Да снова практика! Если вы застряли на циклах, скорее всего, вам поможет порешать побольше задачек на использование переменных и ветвлений. Застряли на списках/массивах — ветвления и циклы лучше погонять, порешать несколько десятков простых задачек или задачек посложнее, если можете. И потом попробуйте снова. Результат вас удивит.

И так со всем. Не можете понять тему никак — попрактикуйтесь в предыдущих связанных темах, и возвращайтесь к ней.

Подытожим

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

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