Простой способ изучить что-то сложное

программированиеА вы знаете простой способ изучить что-то сложное?
Источник: www.wallhaven.cc

Откровение одного профессионала...


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

Последние пару лет я проводил много времени, изучая веб-разработку и машинное обучение.

В то время как предмет обучения менялся, будь то Javascript, Node и React до Python, Scikit Learn или нейронные сети, мой подход к обучению оставался одинаковым.

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

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

Шаг 1: Используй

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

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

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

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

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

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

Плюсов здесь больше, чем минусов:

1. Разработка с первого дня

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

2. Пример кода

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

3. Изучение неизученного

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

Список моих первых курсов:

• Sentdex: Машинное обучение для инвестирования (ML).

• Egghead.io: Основы React (React.js).

• Justin Mitchel: Программирования для предпринимателей (Django).

Шаг 2: Разберись

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

На данном этапе у меня пока нет какого-то одного универсального источника для ответов на все вопросы, который я бы мог рекомендовать. В данном случае можно перечислять долго: книги или официальные документы, Stack Overflow и т.д.

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

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

Шаг 3: Создавай

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

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

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

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

• Ajax — The Guardian API.

• React — Note Taking App.

• Нейронные сети — Predictiong College Admissions.

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

Удачи!


По материалам www.proglib.io.