Как учить программирование быстро
Программирование для начинающих: как стартовать и куда двигаться?
Бывает, что человек, совсем не связанный с IT, проникается интригующей красотой этой сферы и ставит себе задачу постепенно освоить программирование с нуля. И тут он зачастую просто теряется, не понимая, с чего начать, и нуждаясь в хорошем фундаменте и системном подходе.
Я, будучи недавно в такой же ситуации, гуглила, искала мануалов на Хабре (кое-что нашла: Десять советов начинающим программистам, Начинающему программисту про стартапы и не только…), но в итоге всё же была вынуждена обратиться за советом к одному хорошему человеку, который составил для меня вот такой план. С разрешения этого человека размещаю данный план на Хабре – вдруг он пригодится и кому-то ещё. (Тем более, что перечисленные книги относятся к «золотому фонду» литературы в данной сфере и проверены временем.)
UPD: Новичкам советую обратить внимание на комментарии — там активно и аргументированно корректируется этот план.
Нортон «Программно-аппаратная организация IBM PC»
Эта книга, несмотря на свою давность, относятся к тем, что пока отнюдь не устарели. Как новичок подтверждаю – повествование вполне понятно и для почти полного чайника в IT.
Гук «Аппаратные средства IBM PC»
А эту книгу стоит прочитать «поверх» – она расскажет о том, как дела в данной сфере обстоят сейчас.
Морс, Алберт «Архитектура микропроцессора 80286»
Почему тут берётся за основу именно микропроцессор 80286 – станет понятно по изучении трудов первого этапа.
Гук «Аппаратные интерфейсы ПК»
Гук «Интерфейсы устройств хранения»
Этап III. Операционные системы
Таненбаум «Архитектура компьютера»
Колисниченко, Аллен «Linux: полное руководство»
От общей теории переходим к изучению конкретной операционной системы – на примере Linux.
Немет, Снайдер, Хейн «Руководство администратора Linux»
Этап IV. Собственно программирование
Керниган, Ричи «Язык программирования С»
Почему первым для освоения выбран именно язык Си? Как мне рассказали знающие товарищи, он поможет достичь правильного «программистского мышления», чего было бы сложно достичь, начиная изучение, скажем, с Паскаля. Кроме того, язык Си по-прежнему используется в наши дни и подходит как для прикладного, так и для системного программирования.
Кнут «Искусство программирования»:
Том 1. Основные алгоритмы
Том 2. Получисленные алгоритмы
Том 3. Сортировка и поиск
Бентли «Жемчужины программирования»
Зачем осваивать эти труды? Как уже отмечали на Хабре – «наверное, нигде больше, чем в айти, не изобретается такое огромное количество велосипедов». Данные книги помогут этого избежать – и попутно будут прививать умение писать не просто код, а хороший код.
Ну а для затравки можно прочесть небольшой цикл лекций «Культура программирования» (автор – А. Бабий). Он помогает начинающим программистам понять, что их деятельность не будет проходить в вакууме, а неизбежно включит взаимодействие с другими программистами, с заказчиками и пользователями (а также включит необходимость копаться потом в своих собственных или в чужих программах).
Закономерный вопрос новичка: сколько времени займёт изучение всего этого? По прогнозам моего советчика, у человека, который может тратить на изучение программирования только вечера и выходные, на прочтение и осмысление литературы первых трёх этапов уйдёт полгода-год. На четвёртый этап тоже даётся год – чтение должно сопровождаться практикой по самостоятельному составлению программ. Как получится на самом деле – время покажет.
Буду крайне благодарна за ваши советы и уточнения.
5 способов быстрее научиться программировать
Изучение программирования — не то, чем можно заниматься между делом. Но не нужно тратить всю жизнь, чтобы понять основы. Есть множество способов облегчить себе обучение.
Нередко бывает, что новички начинают учиться, уже зная что-то о программировании. Сначала всё идёт хорошо, но по мере дальнейшего изучения начинаются проблемы. Почему? Новички быстро пробегают вступительную часть, думая, что и так всё знают, но на деле это бывает редко. Они знают часть материала, но этого недостаточно, чтобы хорошо понять основы.
В то же время нельзя прекращать развиваться. Вы можете двигаться медленно или быстро, но не пропускайте ни одну тему. Осваивая больше материалов, вы создаёте себе фундамент для будущего.
1. Изучайте примеры кода
Говоря о чтении, мы обычно подразумеваем чтение слов на странице, но программирование — это про чтение кода. Когда вы только учитесь программировать, вы должны изучать и пытаться понять каждый пример. Можно даже сперва читать и пытаться понять примеры кода, а уже потом читать текст. Это не всегда срабатывает, но зато учит смотреть код внимательно и вникать в каждую деталь.
2. Не просто читайте примеры кода — запускайте их!
Когда вы читаете обучающее руководство или учебник, легко посмотреть на пример и сказать: «Я понял, я понял. Да, в этом есть смысл». Конечно, вы могли понять его, но вы не знаете наверняка действительно ли вы поняли его правильно. Есть лишь один способ выяснить — сделать что-то с кодом.
Если вы до сих пор не сделали этого, установите среду разработки (IDE), которая поддерживает ваш язык программирования.
Затем перенесите пример в IDE — если вы набьёте его вместо того чтобы просто скопировать, вы действительно пройдётесь по нему от начала до конца. Ввод кода заставит вас уделять внимание деталям синтаксиса языка, например точкам с запятыми, которыми должна заканчиваться каждая строка.
Теперь скомпилируйте и запустите код. Убедитесь, что он делает именно то, что должен.
И наконец, измените его. Программа — самый легко изменяемый механизм на Земле. Вы можете экспериментировать и смотреть, что происходит. Изменения будут происходить мгновенно, без риска смерти или получения увечий. Самый простой способ изучить язык программирования — взять работающий код и изменить его.
3. Начните писать свой код как можно раньше
Как только вы что-то поймёте про язык — даже если от него у вас уже кружится голова — начните писать программы на нём. Иногда трудно найти идеи для программ. Это нормально, в самом начале вам не надо придумывать свою идею.
Вы можете также воспроизвести упражнения из руководства или книги, которую вы читаете, не заглядывая в примеры. Это не так легко, как кажется. Ещё эта техника работает хорошо, если вы слегка измените код из примеров.
Если вы не хотите думать о маленьких программах, а хотите сразу писать нечто большее, вроде игр, вам надо начинать с маленьких кусочков, которые вы затем сможете использовать для создания игры. Независимо от того, будете вы их использовать или нет, вы получите ценнейший опыт.
4. Научитесь использовать отладчик
Отладчик позволит вам двигаться по коду строка за строкой. Вы сможете наблюдать значения переменных и видеть, выполнилось ли условие.
Отладчик позволяет быстро ответить на вопросы о том, что делает код.
Первое время исправление ошибок с отладчиком будет занимать много времени. Но по мере того, как количество ошибок в вашем коде будет расти, отладчик начнёт экономить уйму вашего времени. А количество ошибок, поверьте, будет измеряться десятками.
Новички часто не желают использовать отладчик. На самом деле, они усложняют жизнь самим себе, тратя годы на исправление очень простых ошибок. Чем раньше вы изучите отладчик, тем раньше это вам воздастся.
5. Ищите больше источников
Если вы что-то не понимаете, в первую очередь посмотрите альтернативные объяснения — интернет полон информации о программировании. Мы все воспринимаем новую информацию по-разному: может быть, вам для понимания нужны картинки, а кому-то другому — подробные инструкции или множество книг с детальными объяснениями.
Но если это не работает, то лучший способ разобраться с проблемой — спросить кого-то другого. Однако, если вы скажете «я не понимаю, пожалуйста, объясни», то, скорее всего, получите в ответ ссылку на тот же текст, который вы не поняли. Вместо этого, своими словами перескажите, как вы поняли текст. Чем больше вопрос раскрывает ваши мысли, тем легче будет знающему эксперту ответить на него. Программисты иногда кажутся раздражительными при ответе на вопросы. Но причина скорее в том, что они хотят продвинуться в диалоге, а это требует усилий от обеих сторон. Если вы зададите умный, подробный вопрос, который продемонстрирует, что вы думаете, то получите хорошие результаты.
Секрет быстрого программирования: не задумывайтесь
Программировать быстро — это легко! Так считает инженер-программист компании Google, который все публикации в своем блоге подписывает лаконичным «Макс». Макс также работает главным архитектором, комьюнити-менеджером и релиз-менеджером в Bugzilla Project. Мы в Alconost впечатлились и перевели его советы о том, можно ли как научиться программировать с космической скоростью.
Если обсуждать с разработчиками сложность кода, они часто говорят, что хотят писать простой код, но из-за давления дедлайнов и более глубинных причин у них не хватает времени или знаний для того, чтобы выполнить задачу и оптимизировать решение до максимальной простоты.
Они, конечно, правы в том, что в условиях сжатых сроков разработчики, как правило, будут писать сложный код. Впрочем, дедлайны не должны приводить к сложности. Вместо фразы «Этот дедлайн помешал мне написать простой код» можно произнести равноценную: «Я недостаточно быстро программирую, чтобы писать просто». То есть чем быстрее вы как программист — тем меньше влияния на качество вашего кода имеют дедлайны.
Теперь давайте разберемся, как, собственно, стать быстрее? Может, это врожденное магическое умение? Надо ли быть «умнее» других, чтобы быть быстрым?
Нет, это вообще не магия и не врожденный дар. На самом деле существует всего одно простое правило, считаясь с которым, со временем вы полностью решите проблему:
Всякий раз, когда замечаете, что топчетесь на месте в размышлениях, знайте: что-то пошло не так.
Это может звучать невероятно, но работает исключительно хорошо. Задумайтесь: когда вы сидите перед вашим редактором, но работа идет небыстро, потому ли это, что у вас низкая скорость набора? Я сомневаюсь: «слишком много набирать» — редкая проблема программистской производительности. Паузы, когда вы не набираете, — вот что все замедляет. А чем обычно заняты в таких паузах разработчики? Пытаются перестать думать — может быть, о проблеме, об инструментах, о сообщении в почте, да о чем угодно. Но всякий раз, когда такое случается, оно означает проблему. Размышления сами по себе — не проблема, но признак какой-то другой проблемы. Вероятно, вместо того, чтобы ходить по кругу в своих мыслях, вам стоит обратить внимание на что-то из этого:
Понимание
Самая распространенная причина непродуктивных размышлений разработчика — неполное понимание какого-то слова или символа.
Это произошло со мной буквально на днях. У меня ушли часы на написание того, что должно было стать действительно простым сервисом. Я очень старался прекратить думать об этом, пытаясь разобраться, как все должно работать. В итоге я осознал, что не понимал одну из входных переменных в основной функции. Я знал название ее типа, но так никогда и не поинтересовался его определением — то есть на самом деле не понимал, что эта переменная (слово или символ) означала. Как только просмотрел код и документацию по этому типу — пришло понимание, и я написал этот сервис как демон (каламбур отчасти неслучаен).
Таких вариантов — бесчисленное множество. Многие пользуются языком программирования, не разбираясь, что (, ), [, ], <, >, +, * и % означают в этом языке. Некоторые разработчики не понимают, как на самом деле работает компьютер. Помните мой «Единственный секрет программиста-рок-звезды»? Вот где суть! Ведь если ты по-настоящему понимаешь, тебе не надо прекращать ненужные размышления. Это также побудило меня написать книгу: понимание того, что есть незыблемые законы создания программного обеспечения, может избавить от многих эпизодов «борьбы с размышлениями».
Так что, если вы оказались в мыслительном тупике, не пытайтесь решить проблему в своей голове — ищите то, чего не понимаете, вне себя. После чего возьмите и посмотрите на что-то, что поможет вашему пониманию. Это применимо даже к вопросам вроде «Прочтет ли когда-нибудь пользователь этот текст?» У вас может не быть Департамента исследований пользовательского опыта для настоящего ответа на этот вопрос, но вы можете хотя бы нарисовать что-нибудь, показать другим, выслушать их мнение. Не пытайтесь просто сидеть и думать — сделайте что-то. Только действие ведет к пониманию.
Рисование
Бывает, мысль разработчика останавливается потому, что ему не удается одновременно удерживать в голове все находящиеся в работе идеи — множество связанных между собой сложным образом вещей, нуждающихся в осмыслении. В этом случае почти всегда эффективнее записать или зарисовать что-либо, чем думать об этом. Вам нужно каким угодно образом посмотреть на это со стороны, воспринять вне своей головы. Это один из вариантов понимания, но достаточно важный, чтобы вынести его отдельным пунктом.
Начинание
Иногда проблема в том, что «нет представления, какой код нужно начинать писать». Простейшее решение — начать писать любой известный вам код, который вы можете писать прямо сейчас. Выберите часть проблемы, которую вы полностью понимаете, и пишите для нее решение, даже если это всего одна функция или не самый важный класс.
Часто фрагмент кода, с которого проще всего начать, — это «ядро» приложения. Например, если бы я взялся писать приложение YouTube, я бы начал с видеоплеера. Воспринимайте это как упражнение по непрерывной поставке: пишите код, который действительно сначала создает продукт — неважно, каким дурацким или незначительным он может получаться. Видеоплеер без пользовательского интерфейса — уже продукт, выполняющий полезную задачу (воспроизведение видео), даже если еще не полноценен.
Если вы не уверены в том, как писать даже такой базовый код, просто начните с кода, в котором вы уверены. Обычно, как только решается часть проблемы, становится значительно легче решать проблему целиком. Иногда проблема раскрывается поэтапно: вы решаете одну часть, которая делает очевидным решение следующей части, и так далее. Начните с любой части, создание которой не требует длительного обдумывания, и просто напишите ее.
Пропуск шагов
Еще одна специфическая проблема понимания — пропуск какого-то шага в правильной последовательности разработки. Например, наш объект Велосипед зависит от объектов Колеса, Педали и Рама. Если вы попытаетесь написать весь объект Велосипед без написания объектов Колеса, Педали и Рама, вам придется много обдумывать эти несуществующие классы. С другой стороны, если вы напишете класс Колеса, пока вообще не существует класс Велосипед, вам предстоит много размышлений о том, как класс Колеса будет использоваться классом Велосипед.
Правильное решение тут — реализовать достаточную часть класса Велосипед, чтобы дойти до шага, где вам понадобятся Колеса. Потом написать достаточную часть класса Колеса, чтобы удовлетворить актуальную потребность в классе Велосипед. После чего вернуться к классу Велосипед и работать над ним до следующей нужды в каком-то из основных элементов. Так же, как и в пункте «Начинание»: найдите часть проблемы, которую можете решить без размышлений, и решите ее сразу.
Не перепрыгивайте шаги при разработке своей системы — и это позволит вам быть продуктивным.
Физические проблемы
Если я недостаточно ем, я начинаю отвлекаться и задумываться, потому что я голоден. Вовсе необязательно это будут мысли о моем желудке, но они бы вообще не возникли, если бы я был сыт, — я был бы сосредоточен. То же справедливо для сна, болезней и любых других телесных проблем. Они не настолько распространены, как перечисленные выше, так что первым делом всегда ищите, что вы недостаточно хорошо поняли. Но если вы уверены, что понимаете все, причиной остановки мысли могут быть проблемы на физическом уровне.
Отвлекающие факторы
Когда разработчик отвлекается на что-то внешнее, например, шум, ему может понадобиться некоторое время подумать, чтобы вспомнить, над чем он работал в своем решении. Ответ тут относительно прост: перед тем, как садитесь за разработку, убедитесь в том, что ваше окружение не побеспокоит вас или отвлекающие факторы не будут вас прерывать. Одним нужно закрыть дверь в свой офис, другим — надеть наушники, кому-то — поставить статус «Не беспокоить»: сделайте так, как вам нужно. Возможно, вам понадобится помощь вашего менеджера или сотрудников, чтобы создать действительно благоприятную для разработки среду.
Неуверенность в себе
Иногда разработчик сидит и размышляет потому, что ощущает неуверенность в себе и своих решениях. Выход тут аналогичен описанному в пункте «Понимание»: если вы не уверены в чем-то, узнавайте об этом больше до тех пор, пока не появится уверенность, достаточная, чтобы писать код. Если вы не уверены в себе как в программисте вообще, возможно, вам нужно изучить еще многое — вроде основ, изложенных в «Почему программисты отстой». Разбирайтесь с каждым вопросом, пока не добьетесь настоящего понимания, после чего переходите к следующему, и так далее. Программирование всегда подразумевает обучение в процессе, но по мере увеличения багажа знаний вы будете становиться все быстрее и быстрее, а задумываться придется все меньше и меньше.
Ложные представления
Многим говорили, что думать — удел умных людей, и они не задумываются, чтобы принимать разумные решения. Но это неправда. Если бы размышления сами по себе могли сделать вас гением, вокруг были бы одни Эйнштейны. По-настоящему умные люди учатся, наблюдают, принимают решения и действуют. Они приобретают знания и потом используют их для решения возникающих проблем. Если хотите быть действительно умным, используйте свой интеллект для деятельности в физическом мире — не замыкайтесь с ним для великих дум в своей голове.
Бездействие
Все перечисленное выше — ключ к тому, как быть быстрым программистом, когда вы сидите и пишете код. Если же вы весь день читаете почту и ходите по встречам, а программировать вам некогда — это другая проблема. Некоторые ее аспекты схожи (это как если бы организации пришлось «не задумываться»), но это не то же самое.
Впрочем, можно попробовать и несколько подходов по аналогии. Есть вероятность, что организация не вполне понимает вас или вашу роль и потому шлет вам столько писем и зовет на столько встреч. Возможно, вы чего-то не понимаете об организации, например, как посещать меньше собраний и получать меньше почты 🙂 Может быть, вам удастся разрешить некоторые организационные сложности, адаптируя решения из этого поста к коллективам вместо отдельных людей.
Как вам такой подход?
О переводчике
Перевод статьи выполнен в Alconost.
Alconost занимается локализацией приложений, игр и сайтов на 60 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.
Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.
Советы для новичков: как быстро учиться программированию
Заметили, что изучение нового – это всегда целая история? Мы собрали советы специалистов и простых пользователей о том, как быстро учиться.
Если вы хотите научиться создавать классные приложения, то, очевидно, что без знания современных языков программирования тут не обойтись − структура проекта держится на коде. От того, насколько хорошо вы владеете необходимым языком, будет зависеть качество и работоспособность продукта, а значит и его успех у пользователей плюс денежные потоки.
Никто не безнадёжен
Проблема в том, что большинство людей не понимают как устроен их мозг, и потому неправильно подходят к процессу обучения. Зная о том, какой тип обучения больше подходит вашему мозгу, не нужно будет тратить себя на эффективные, но болезненные способы, а значит и мотивация никуда не денется. Есть поговорка: «Сначала разберитесь с мозгом, а потом − с собой».
Изучите базовые принципы
Начинать изучение любого языка необходимо с базиса − без этого не получится быстро учиться сложным вещам. В языках программирования так же: когда вы определитесь, чем хотите заниматься, и выберете язык для изучения, нужно будет погрузиться в такие вещи, как функции, переменные, конструкции, массивы данных. Чем раньше вы поймёте, как это устроено в принципе, тем проще будет на практике.
Важно не распространяться на множество языков сразу, ведь они разные. Когда окажется, что вы владеете первым языком на уровне Junior, можете приступить ко второму, если считаете необходимым. Иначе вы рискуете стать вечным студентом.
Используйте ресурсы в полной мере
Как мы уже говорили выше − выучить язык полностью невозможно, и на то, чтобы понять принципы его работы, потребуется некоторое время. Попробуйте подойти к новому предмету комплексно, например, совмещая онлайн-курсы, лекции, статьи, книги (если это вам по нраву). Совет может показаться странным, но при ответственном подходе к занятиям на открытых вебинарах можно изучить редкие и полезные вещи, которые вы вряд ли встретите в книгах.
Больше практики
Для абсолютного большинства начинающих программистов, первое приложение − «HelloWorld». Не нужно объяснять, что это лишь первый практический шаг, на котором не стоит останавливаться. Порой может казаться, что программирование крайне скучное занятие, но если не лениться и в течение долгого времени упорно работать над совершенствованием кода, можно незаметно для себя быстро достигнуть результата.
Кстати, если кто-то говорит, что Python − крайне простой язык, на изучение которого уйдет минимум времени, знайте, что это не так. Любой язык требует усидчивости и умения учиться на своих ошибках.
Старайтесь выделять несколько часов в неделю для оттачивания навыков программирования. Это один из основных факторов, который позволит вам быстро учиться.
Общайтесь с комьюнити
У каждого популярного языка программирования есть комьюнити, которое обменивается опытом, встречается на лекциях, конференциях, митапах. Если вам кажется, что вы уже не бросите изучение языка, найдите людей, которые будут объединены общей с вами идеей: это могут быть соцсети, форумы, Телеграм-чаты. Более того, если у вас возникнут вопросы, велика вероятность получения помощи в вычитке кода или совета, который поспособствует прокачке знаний и навыков.
Не бойтесь ошибаться
Считайте программирование творчеством, а компьютер и язык − мольбертом и красками. Когда кажется, что всё новое уже опробовано, улучшайте работу существующих программ, а потом снова придумывайте новое. Самое главное − не бояться потратить время впустую и не расстраиваться из-за неудач.
Практика важнее теории
Постарайтесь следовать этой методике: когда самые минимальные знания уже получены, лишь 20% времени стоит тратить на изучение новых, а 80% на оттачивание изученных, разрабатывая реальные приложения. Освоить большой объём информации о языках программирования сразу не получится. Даже изучая английский, большинству требуется не менее трёх повторений, чтобы запомнить значение слова. А ведь помимо запоминания, нужно ещё научиться применять в реальных, не смоделированных для обучения ситуациях.
Не забивайте себя книгами
В продолжение к предыдущему пункту, советуем не тратить время на книги. Вообще. Большинство из них написаны более десяти лет назад, а ведь за это время многое уже изменилось, а новые зачастую выходят сначала на английском. Более того, чтение книг может быть утомительным и забирать время, предназначенное для практических занятий.
Есть мнение, что книги выступают средством, которое позволяет избежать выполнения реальных задач, но это путь в никуда. Вместо них лучше читать профильные статьи, лонгриды, в которых рассказывается о применении навыков на практике.
Попробуйте проходить курсы
Онлайн-курсы − самый доступный и современный способ быстро учиться новому. Они подходят практически всем, особенно если выбирать курс с получением сертификата. Это отличная мотивация. Кому-то эффективно изучать платные курсы, потому что не хочется терять деньги впустую. В любом случае, курсы эффективнее самообучения, а зачастую и занятий с человеком-преподавателем. Хотя бы потому, что так вы учитесь контролировать себя и экономите время, занимаясь тогда, когда удобно вам.
Поработайте над мотивацией
Важно, чтобы для изучения программирования была конкретная, а не абстрактная причина. Например, у вас есть идея для стартапа, в которую не верят другие, а вы оцениваете её в миллиарды долларов. Это ведь больше мотивирует, чем «программисты всем нужны, буду программистом».
Если есть желание − то инструмент (технология или язык программирования) изучаются проще, а вы получаете удовольствие не только от результата, но и от процесса. Кстати, не стоит на раннем этапе быть излишне самоуверенным и говорить что-то вроде «никогда не буду делать сайты». Если не получилось однажды, это не значит, что не получится никогда.
Используйте модель обучения Колба
Это метод самообразования для замотивированных, когда действия производятся поэтапно. Сначала идёт получение базовых знаний, затем их осмысление, понимание того, что с этим можно делать, а в конце экспериментирование. Если следовать этой модели при изучении каждого отдельного блока новой информации, то вы не успеете заскучать, а материал не только уложится в голове, но и вы научитесь с ним работать.
Высыпайтесь
Когда вы ложитесь спать, ваши мозговые клетки сжимаются, это позволяет очищать накопленные за день токсины. Это означает, что если вы лишите себя сна перед важным событием, скорее всего, пройдёт оно не так удачно, как могло бы.
Вторая причина заключается в том, что мозг действительно имеет свойство отложенного запоминания. То есть, материал, изученный в течение дня, должен обработаться, и лучше всего это происходит во время сна. Получается, что сон помогает быстро учиться, а его нехватка − наоборот.
Что если делать перерывы на сон в течение дня?
Это может быть полезным, но всё зависит от человека. Не стоит заменять этим ночной сон, если вы не относитесь к людям с геном короткого сна, который позволяет им высыпаться за четыре часа. Всем остальным советуют спать не меньше семи часов, из которых как минимум половину − ночью.
Музыка в процессе обучения может быть опасна
Это, наверное, неплохая идея, главное, избегать лиричных и слишком громких мелодий. Учтите, что готовясь к сдаче теста вместе с музыкой, на экзамене её может не хватать, а значит условия будут менее комфортными, и риск допустить ошибки увеличится.
Зубрить − не выход
Зубрёжка − так себе способ научиться чему-то. Запомнить на время − да. Кстати, большинство людей устроены так, что мозг в продуктивном состоянии находится примерно четыре часа в день, а остальное время идёт борьба с ленью (и это правильно!). Четыре часа осмысленного разбора полезнее, чем час зубрёжки.
Тренируйте память
Нет, не ту, которая позволит вам больше зубрить. Для наших целей существует два долгосрочных способа хранения информации − с помощью фактов и визуального представления.
Запоминание какого-либо факта можно сравнить с попыткой запихнуть вытекшую зубную пасту обратно в тюбик − держать в голове непрактическую информацию долгое время крайне трудно. Эволюция облегчила страдания людей: мы научились неплохо воображать, а запоминать факты в связке с визуальным представлением проще.
Меняйте физическое место обучения
Научно доказано, что смена локаций в процессе обучения помогает. Мозг похож на губку: читая книга и выполняя тесты в библиотеке, он привыкает к спокойной атмосфере, и если вдруг вам понадобиться повторить материал в менее комфортных условиях, например, в метро, то он будет сопротивляться. Не давайте ему привыкать.
Изучение материала и подготовка к тесту − разные процессы
На самом деле, когда есть чёткая цель в виде результата за экзамен, появляется серьёзная мотивация к тому, что быстро учиться. Но серьёзный минус тестов том, что мышление практически не работает.
Готовясь к тесту важно применять технику быстрого старта с самой сложной темы. Начинаете с самого трудного задания, переходите к более простому, если не знаете, как его решить, затем возвращайтесь на первую стадию и повторяете этот процесс, пока не решите уйти спать (шутка). Суть в том, что вы ходите по кругу, каждая проблема кажется одинаково сложной, потому что мозг хочет скорее перейти к следующему, более простому этапу.
Будьте инициативны
Дизайнер Артемий Лебедев рассказал о том, как он получил первые заказы: сначала сделал, а потом предложил. Конечно, прежде всего он подумал, каковы шансы на успех, но из этой ситуации следует вынести урок, что никто не подаст вам руки. Уже потом, когда другие вас заметят, можно не предпринимать лишних действий. А пока вы учитесь, беритесь за любые практические проекты, участвуйте в стажировках, создавайте программы без корыстного умысла.
Помодоро помогает бороться с прокрастинацией
Одним из лучших способов борьбы с ленью является техника Помодоро. Она работает так: вы устанавливаете таймер на 25 минут, максимально эффективно проводите это время, а всякий раз отвлекаясь, пытаетесь вернуться к процессу, потому что время ограничено.
Самая важная часть наступает в конце: сделайте перерыв и наградите себя (можно перекусить, например). Суть перерывов в том, что в небольшой промежуток отдыха (обычно до пяти минут), информация продолжает усваиваться. После каждого четвёртого помидора увеличивайте время для отдыха до 30 минут.