Мы в соцсетях:

17-05-2018 13:05

Интересное


Лучший способ научиться программировать

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

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

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

Так есть ли лучший путь?

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

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

Знаете, что на самом деле раздражает во всех этих советах? Они все очень хорошие. Так почему вас не покидает ощущение обескураженности, которое у вас было еще когда вы только задавали этот вопрос?

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

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

  1. Изучение синтаксиса.
  2. Решение проблем.
  3. Создание вещей.

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

Давайте рассмотрим каждый сегмент более детально.

Изучение синтаксиса

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

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

Решение проблем

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

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

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

Создание вещей

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

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

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

  1. Изучайте синтаксис.
  2. Решайте задачи.
  3. Создавайте что-нибудь.

Придерживаясь, в целом, именно такого порядка.

216

Поделиться:

Комментарии ()



    Написать комментарий: