Как быстро изучить новый язык программирования

0
1894
views

Перевод статьи «How To Learn a New Programming Language Fast».

Быстро изучить новый язык программирования поможет восприимчивость

Люди часто восхищаются способностью выдающихся программистов невероятно быстро схватывать новые языки. «У этого человека особый дар, – говорят они. – Вероятно, он хорошо разбирается в информатике и математике».

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

Многие уверены, что в учебном процессе есть какой-то кратчайший путь. Но все люди разные, поэтому при изучении любого материала следует опираться на тип личности учащегося (и в частности — на тип его памяти). Ваш мыслительный процесс движется сверху вниз или снизу вверх? У вас лучше развита зрительная или слуховая память? Только вы, зная себя, можете подобрать наилучшее решение для своей учебы. Я лишь акцентирую ваше внимание на определенных моментах, чтобы ускорить этот процесс.

Коротко о себе

Когда я начала программировать (больше 15 лет назад), мне пришлось освоить 4 языка программирования за 6 месяцев. Это было необходимо для работы над проектом, запланированным на конец года. Тот проект стал краеугольным камнем моей карьеры. И до конца того года я не только изучила необходимые 4 языка, но также и завершила сам проект.

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

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

Главный трюк в учебном процессе

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

Как быстро изучить новый язык программирования

Как усвоить самые важные концепции?

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

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

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

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

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

Учащиеся с развитой зрительной памятью

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

Инструменты обучения: видео на YouTube, схемы, диаграммы связей.

Упражнения: создание диаграмм связей, модулей, блок-схем.

Учащиеся с развитой слуховой памятью

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

Инструменты обучения: аудиокниги, подкасты, TED-видео, лекции.

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

Учащиеся, ориентированные на чтение и письмо

Такие учащиеся лучше всего усваивают материал, когда читают книги по программированию и делают записи.

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

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

Учащиеся с развитой кинетической памятью

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

Инструменты обучения: работа над проектами, работа в группе, соревнования по кодингу.

Упражнения: прохождение диаграмм связей, кодинг при помощи блок-схем, участие в различных проектах (с товарищами).

Восприимчивость поможет учиться быстро

Как отрабатывать усвоенные концепции на практике?

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

Вот несколько ресурсов, где можно практиковаться:

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

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

HackerRank — здесь можно решать задачи, а также читать руководства.

CodinGame — на этом сайте можно отрабатывать свои навыки написания кода, играя в онлайн-игры.

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

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

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

Например, если вы изучаете Ruby/Rails, стоит попробовать построить веб-сайт. Если вы изучаете SQL, следует установить и собрать базу данных. Изучая науку о данных, можно анализировать наборы данных с использованием различных алгоритмов.

2. Технические собеседования это лучшая практика.

Технические собеседования могут быть поистине устрашающими. Но со страхом можно совладать, если рассматривать каждое такое собеседование как практику более высокого класса. К собеседованиям можно готовиться, используя специальные ресурсы, такие как  Cracking the Coding Interview, LeetCode (кодинг-практика с возможностью получить обратную связь), Gainlo (пробные постановочные собеседования с профессионалами), Glassdoor (практика с использованием вопросов с настоящих собеседований) и GeeksforGeeks (смотрите в решенных вопросах).

Заключение

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

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

Чего же вы ждете?