Самосовершенствование

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

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 , Rubber Ducky через Shutterstock , клавиатурный машинистка через Shutterstock , исходный код PHP через Shutterstock , папки с файлами через Shutterstock

Похожие посты
Самосовершенствование

8 лучших приложений Apple Watch Sleep 2020 года

Самосовершенствование

10 лучших циферблатов Samsung Galaxy 2020 года

Самосовершенствование

6 способов исправить это, когда ваши Apple Watch не будут в паре

Самосовершенствование

Вам нужны умные часы?