Рекламное объявление

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

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

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

instagram viewer

Больше никаких тренировок

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

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

Основание для этого утверждения исходит из исследования 2008 года Калифорнийского университета в Сан-Диего:

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

Почему? Скорее всего из-за эффект последовательной позиции:

«Эффект последовательной позиции - это тенденция человека лучше всего вспоминать первый и последний элементы в серии, а в худшем - средние».

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

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

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

Обзор, Обзор, Обзор

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

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

Здесь в игру вступает обзор.

советы новичку-программист обзор памяти

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

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

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

Используйте несколько разных ресурсов

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

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

Советы-новичка-кодера-путаница

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

Я уже рассказывал об этой иллюстрации раньше, но она настолько важна, что стоит повторить:

«Предположим, кто-то показал вам фотографию статуи. Это может дать вам достаточно изображения, чтобы получить адекватное представление о статуе, но вы не сможете получить полную картину. На фотографии с уменьшенным масштабом теряются сложные детали, а на фотографии с увеличением теряется ощущение перспективы. Однако с дополнительными фотографиями, сделанными под другим углом, вы действительно сможете увидеть полнота статуи по текстуре, размерам, деталям, спереди назад, из стороны в сторону и сверху вниз."

Обучение программированию может быть на удивление произвольным. Каждый может похвалить Ресурс А как лучший способ выучить язык X, но, возможно, он не имеет для вас никакого смысла. Может быть, все ненавидят Ресурс Б, но если взглянуть на него, все будет понятно! Что касается кого-то еще, возможно, они отключаются при изучении ресурсов A и B, но получают большую пользу от ресурса C.

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

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

Учтите, что игры могут быть критически полезным ресурсом! Посмотрите эти веселые и обучающие игры по кодированию 9 лучших игр для программирования для развития навыков программированияИгры с программированием помогут вам быстрее учиться благодаря практической практике и опыту. Кроме того, это интересный способ проверить свои навыки программирования! Подробнее .

Преподавайте концепции по мере их изучения

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

Как ни странно, у большинства программистов есть «Эврика!» в середине объяснения кода, когда они внезапно видят, где возникает ошибка в логике кодирования. Вербализация запускает другую область мозга, заставляя вас взглянуть на проблему под новым углом.

Эту концепцию также можно использовать, чтобы выучить новый материал. Возможно, вы встречали эту популярную цитату, которую часто приписывают Альберту Эйнштейну:

«Если вы не можете объяснить это просто, значит, вы недостаточно хорошо это понимаете».

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

подсказки-кодер-новичок-резиновая утка

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

Это называется обучением через обучение и представляет собой разновидность отладки резиновой уточки.

Я не говорю, что вам следует на самом деле учить других; скорее, каждую новую тему программирования, которую вы изучаете, попробуйте научить ее резиновой утке (или невидимому другу). Поначалу это может показаться глупым, но вы можете найти это невероятно полезным, когда дело касается сохранения памяти.

Осознанная практика ведет к совершенству

Само понятие таланта - полная чушь. Никто не выходит из утробы как скрипач, рестлер или программист мирового уровня. Конечно, некоторые люди могут быть более склонны к определенным дисциплинам, но талант без опыта бесполезен Не дайте своим скрытым талантам умереть: 7 способов найти их сноваПлохая новость в том, что вам нужно много работать, чтобы оттачивать свои скрытые таланты. Хорошая новость в том, что есть больше возможностей, чем когда-либо, проявить свои таланты. Подробнее . Точно так же тяжелая работа всегда дороже таланта.

Что, как говорится, не все формы тяжелой работы равны. Малкольм Гладуэлл придумал печально известное правило 10 000 часов, согласно которому вы должны потратить не менее 10 000 часов на изучение предмета, чтобы стать в нем мастером. Хотя это мнение может быть правдой, многие люди неверно истолковывают то, что он пытался сказать.

советы-новичка-кодера-преднамеренная-практика

Короче говоря, 10 000 часов работы еще не гарантируют мастерства. Вы знаете поговорку: «Практика не ведет к совершенству. Идеальная практика рождает совершенное ». Чтобы это было значимым, практика должна быть преднамеренной Хотите стать в чем-то экспертом? Попробуйте осознанную практикуСлишком легко чувствовать себя удрученным, когда вы усердно пытаетесь улучшить определенный навык. Используйте силу «осознанной практики», чтобы преодолеть эти раздражающие плато. Подробнее . Мастерства можно достичь только через 10 000 часов осознанной практики.

То, как вы занимаетесь, имеет гораздо большее значение, чем то, сколько времени вы проводите на практике.

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

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

Экспериментируйте с личными проектами

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

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

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

советы-новичка-кодера-личные-проекты

Какое решение? Создайте пару одноразовых побочных проектов!

Подумайте о несколько идей для проектов 5 идей для проектов, которые помогут быстрее научиться программироватьЕсть несколько способов облегчить процесс обучения программированию. Пачкайте руки и учитесь быстрее с помощью сторонних проектов, которые вы можете начать в любое время. Поиграйте с этими пятью. Подробнее которую вы хотите реализовать. Для абсолютных новичков вы можете рассмотреть игру в крестики-нолики или палач. Для опытных программистов, пытающихся изучить новый фреймворк, попробуйте написать простое мобильное приложение или веб-игру. Если вас это интересует на личном уровне, дерзайте!

У этого подхода две стороны.

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

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

Расслабьтесь и добавьте все в закладки

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

Фактически, попытка запомнить все может оказаться пустой тратой времени и усилий. Справочные листы существуют не просто так. Зачем запоминать целую энциклопедию, если вы можете просто открыть ее, когда вам это нужно?

Советы-справочники-новичка-кодера

Итак, когда запоминать, а когда ссылаться?

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

Для всего остального - например, имен конкретных функций, списков параметров или даже языковых особенностей - Я бы не стал беспокоиться о сохранении в памяти. Не стесняйтесь обращаться к справочному листу. Иногда вы так часто упоминаете что-то, что в конечном итоге запоминаете это. Если это произойдет, хорошо. Если нет, то тоже нормально.

Лично у меня есть сотни закладок в Интернете для различных API, руководств и учебных пособий. Если мне нужно реализовать какой-то алгоритм поиска пути, я могу обратиться к руководству, которое поможет мне его закодировать, прежде чем снова забыть о нем. Это помогает понять основные концепции, но я стараюсь не беспокоиться о деталях реализации.

Последние мысли

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

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

Вам сложно программировать? Какие уловки и советы могут быть полезны начинающим программистам? Поделитесь с нами своей мудростью в комментариях ниже!

Кредиты изображений: Двоичный программист через Shutterstock, Стирание памяти через Shutterstock, Запутанный код через Shutterstock, Резиновая уточка через Shutterstock, Клавишник через Shutterstock, Исходный код PHP через Shutterstock, Папки с файлами через Shutterstock

Джоэл Ли имеет степень бакалавра наук. Кандидат компьютерных наук и более шести лет профессионального писательского опыта. Он главный редактор MakeUseOf.