Учимся программировать.

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

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

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

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

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

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

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

вот почему изучение языка программирования, как и любого другого языка или навыков, во многом связано с повторением: вы в основном промываете мозги себе, чтобы иметь возможность формировать осмысленные «предложения» (код), не задумываясь о концепции, которые вы используете.

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

Поначалу почти ничего не поймешь. Это будет странно, как и при изучении любого человеческого языка. Вы будете бороться со словами и не будете знать, что такое символы, и все это будет очень сбивать с толку. Тогда однажды БАХ ваш мозг сломается, и вы внезапно «поймете это». Если вы продолжите выполнять упражнения и будете пытаться понять их, у вас все получится.

Чувство творчества

мы воплощаем жизнь в жизнь, когда программируем.

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

Представьте, что вы создаете приложение, такое как WhatsApp или Twitter. Затем, как разработчик, на выбранном вами языке программирования вы могли бы сказать что-то вроде: «Пусть будут пользователи! И пусть будут твиты! », И как только ваше приложение запустится, все эти вещи появятся на свет. Затем вы должны пойти дальше и определить «Пользователи могут создавать твиты, и они могут подписываться друг на друга». И с этого момента каждый раз, когда в маленькой мини-вселенной, которой является ваше приложение, создаются новые пользователи, эти пользователи будут иметь возможность твитить и подписываться друг на друга.

Как мы учимся

разные народы, разные методы.

Разные люди учатся по-разному.

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

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

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

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

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

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

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

Это займет ваше подсознание концепциями программирования и поможет вам легче понять вещи позже.

Красота в форматировании вашего кода

держать вещи в порядке

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

например, один из моих лучших языков Ruby, этот код хорошо отформатирован:

def widths(row)
row.map do |cell|
cell.width
end
end

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

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

def widths ( row
)
row.map do | cell| cell.width
end
end

Технически это делает то же самое: Ruby будет запускать его. Но он не выглядит и читается так же просто из-за того, как он отформатирован.

Распознавание образов

как наш мозг работает с шаблонами

Способность нашего мозга помогать нам распознавать вещи подсознательно, просто просматривая предметы.

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

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

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

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

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

Сообщения об ошибках

чтение сообщений об ошибках

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

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

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

Часто, когда вы исправляете что-то одно, вы получаете другое сообщение об ошибке. Это прогресс. Промойте и повторяйте, пока ваш код не сделает то, что вы хотите.

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

Google

наконец, с помощью Google

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

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

Заключение

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

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