7 полезных приемов для овладения новым языком программирования

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

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

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

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

Нет больше сеансов Cram

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

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

Основой этого утверждения послужило исследование, проведенное в 2008 году Университетом Калифорнии в Сан-Диего:

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

Зачем? Скорее всего из-за эффекта серийной позиции:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я поделился этой иллюстрацией раньше, но она настолько точная, что стоит повторить:

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

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

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

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

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

,

Учите концепции, как вы их учите

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

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

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

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

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

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

новичок-верстальщик-советы-резиновая утка

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

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

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

Умышленная практика делает идеальным

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

, Точно так же тяжелая работа всегда более ценна, чем талант.

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

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

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

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

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

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

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

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

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

Если вы зачислены на курсы и уроки программирования

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

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

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

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

Подумайте о нескольких идеях проекта

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

Прелесть этого подхода в двух аспектах.

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

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

Расслабьтесь Закладка Все

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

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

новичку кодировщик-советы-ссылки все

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

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

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

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

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

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

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

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

Авторы изображений: бинарный программист с помощью Shutterstock, стирающая память с помощью Shutterstock, скрытый код с помощью Shutterstock, резиновый утенок с помощью Shutterstock, клавиатурная машинка с помощью Shutterstock, исходный код PHP через Shutterstock, папки с файлами через Shutterstock

Ссылка на основную публикацию
Adblock
detector