В общем, все вышесказанное и есть та самая формула быстрого обучения. Если вы хотите увидеть более обстоятельный пример в компании с учебным пособием и видеороликами, его можно найти на моем сайте. А теперь давайте перейдем к более подробному рассмотрению процесса изучения и развития технических навыков.
Обучение на практике
Я придерживаюсь мнения, что лучший способ обучения – это обучение на практике. Когда речь заходит о технических навыках, это утверждение становится не просто моим мнением, а фактически аксиомой. Большинство технических навыков невозможно освоить, лишь прочитав книгу или посмотрев видео.
Да, книга или видеоролик позволят вам получить представление о том, что возможно сделать с использованием конкретной технологии, языка программирования или инструмента. Однако пока вы не пощупаете эти технологии руками или не попробуете решить какую-либо проблему, используя новые знания, ваше понимание изучаемого предмета будет оставаться поверхностным. Практически все навыки, о которых я говорил в предыдущей главе, требуют большего, чем просто книжные знания. Только так вы сможете стать по-настоящему компетентными в выбранной вами области.
Приведу довольно очевидный пример: как вы считаете, можно научиться программированию, читая про синтаксис языка?
Если вы никогда ошибочно не сохраняли файл в неправильную ветку, не работали не с той версией исходного кода и не использовали историю версий, чтобы выяснить, на каком этапе появилась ошибка, то вы не будете знать, как пользоваться системой контроля версий – вам просто будет казаться, что вы разбираетесь в вопросе.
(Если упомянутые термины вам незнакомы, не переживайте, сейчас речь не о них.)
Напомните-ка мне, я случайно не обещал вам рассказать «где-то дальше в книге» про технические навыки? Все же вы читаете эту книгу для того, чтобы чему-то научиться, верно?
Правильный ответ на оба эти вопроса – «да». Однако обучение на этом не заканчивается.
Прочитав все вышесказанное, вы получите общее представление об обсуждаемой нами теме, но рано или поздно вам придется отложить книгу и сделать что-то самостоятельно, чтобы освоить то, о чем вы прочитали (я имею в виду упомянутые мной технические навыки).
Как обучаться на практике?
Сильно рискуя получить почетное звание Капитана Очевидности, я все же решил поговорить с вами о том, как правильно обучаться на практике. Отнеситесь ко всему, что будет далее сказано, как к полезной напоминалке.
Всякий раз, приступая к освоению какого-либо технического навыка, определите для себя, для чего он вам нужен. Если умение не требуется вам «здесь и сейчас», подумайте, а нужен ли вам вообще этот навык? Мы тратим огромное количество времени на изучение технических умений, которые нам никогда не пригодятся. Поверьте, лично я делал это столько раз, что это даже не смешно.
Научиться чему-то гораздо проще, если вы будете испытывать в этом навыке срочную необходимость. Гарантирую, что если вам понадобится освоить прыжки с парашютом, то быстрее всего вы научитесь это делать в самолете, из которого нужно как можно быстрее эвакуироваться.
Но как быть, если прямо сейчас у вас нет острой необходимости в выбранном вами навыке? Что делать, если вы изучаете что-то просто потому, что хотите получить работу, где вам, скорее всего, придется использовать это умение? Ответ прост – найдите причину использовать выбранный вами навык здесь и сейчас. Создайте себе цель.
Пример обучения на практике
Давайте разберем вопрос на примерах. Представьте, что вы очень сильно хотите разобраться в реляционных базах данных. Для этого вы можете прочесть книгу, посвященную данной теме, поупражняться в искусстве конструирования SQL-запросов и в результате чему-нибудь научиться.
А теперь представьте, что ваша цель заключается в создании базы данных всех фильмов, имеющихся в вашей коллекции. А также представьте, что вы хотите уметь делать запросы к этой базе, добавлять в нее новые фильмы, удалять старые, обновлять названия и т. д. А если вы захотите создать приложение, чтобы с его помощью упростить работу с базой данных?
Представили? Поздравляю, у вас появилась цель! Так, и что дальше? Как подойти к изучению темы реляционных баз данных? А вот теперь вы можете смело открывать книгу по теме или просмотреть соответствующие видеоуроки, чтобы найти информацию, необходимую для реализации вашей идеи. И вот теперь вы будете заняты созданием реального продукта, а не просто выполнением какого-то абстрактного тестового задания.
Только представьте, как много вы всего сможете узнать, руководствуясь подобным подходом. Ведь это куда веселее, чем выполнение всяких непонятных лабораторок?
Как я обучаю техническим навыкам
Как я уже говорил, я помог с освоением технических навыков довольно большому количеству людей. Возможно, если вы узнаете, как я это делаю, то сможете и сами научиться этому. Как думаете, я прав?
Когда я обучаю людей чему-то, я хочу, чтобы затраченные ими средства окупились в полной мере. Я не хочу загружать их вещами, которые им вряд ли пригодятся, или задачами, которые они вполне могут решить сами, если столкнутся с ними.
Я стараюсь фокусироваться на том, чтобы дать людям информацию, которая будет полезна здесь и сейчас, а не «через сто лет» и «на всякий случай». Моя программа обучения техническим навыкам основывается на трех столпах.
• Как ученики могут использовать эту технологию?
• С чего начать?
• 20 % информации, знания которой достаточно, чтобы добиться максимальной эффективности.
Разберем каждый из этих пунктов подробнее.
Как можно использовать технологию?
Я считаю, что Google может дать ответ на любой вопрос. Но получить ответ не удастся, если вы не знаете, что спрашивать. Поэтому обучение я начинаю с рассказа о конкретной технологии и описания ее возможностей.
Разумеется, это всего лишь обзор. Я не пытаюсь показать сразу все способы использования новых знаний, а просто рассказываю о наиболее интересных моментах изучаемой темы.
Когда заходит речь о языках программирования, я всегда начинаю с истории языка и описания типичных областей его применения. Затем я перехожу к описанию всех конструкций языка (делая акцент на уникальных). Следующий этап – знакомство с библиотеками как стандартной части языка и описание способов их использования.
Целью такого подхода является поверхностное описание темы, без углубления в детали. Если вас заинтересует что-то конкретное, вы можете узнать об этом самостоятельно. На этом этапе я пытаюсь сделать неизвестное известным касаемо общих понятий. Я хочу, чтобы ученики поняли, что именно они не понимают и могли закрыть этот пробел самостоятельно, если в этом будет нужда.
Я стараюсь изложить тему так, чтобы после обучения вы говорили не «Я не знаю, может ли технология Х решить эту проблему», а «Я знаю, что технология Х может решить эту проблему, но пока слабо представляю как. Если мне понадобится узнать ответ на этот вопрос, я смогу его найти».
Представьте, что вы пытаетесь изучить деревообработку, не зная, что существует такая вещь, как дремель или фрезерный станок. Вы не обязаны знать, как пользоваться этими штуками, но если вы даже не подозреваете об их существовании, то вы ощутимо ограничиваете себя в возможностях.
Как начать?
На следующем этапе я пытаюсь научить своих студентов умению приступать к изучению чего-либо. Зачастую эта часть освоения технологии является наиболее сложной – она предшествует «действию», поэтому я стараюсь сделать данный процесс как можно более безболезненным. Моя задача состоит в том, чтобы показать студентам, как загрузить и установить все необходимое для работы, а затем создать проект и скомпилировать свой первый код.
Как только человек преодолевает это препятствие, он может приступать к экспериментам, пытаясь создать что-то конкретное в процессе работы с технологией. Если входной порог оказывается слишком высоким, некоторые люди так и остаются на уровне чтения книг о технологии и просмотра обучающих видео, не решаясь «запачкать руки».
Что бы вы ни изучали, держите в уме эту информацию. Сосредоточьтесь на способах того, как начать работу с определенным техническим навыком на ранних этапах процесса обучения. Поищите соответствующие учебные пособия или руководства, которые рассказывают о том, как начать работу и сдвинуться с мертвой точки.
20 % информации для максимальной эффективности
Напоследок я пытаюсь научить студентов тем 20 % информации, которые они будут использовать 80 % времени. Практически все в нашей жизни подчиняется так называемому принципу Парето. Он звучит следующим образом:
«20 % усилий дают 80 % результата, а остальные 80 % усилий – лишь 20 % результата».
Освоение технического навыка напрямую зависит от понимания, что именно входит в эти 20 %, которые вы будете использовать 80 % времени.
На этом этапе практика играет более значимую роль, чем теория. Большинство книг и учебных пособий имеют формат справочников, которые не делают акцент на 20 % наиболее важных технологий. Когда вы активно работаете с технологией, то быстро понимаете, какая ее часть используется чаще всего, поскольку нехватка знаний в этой области ощутимо скажется на вашей работе.
Предлагаю вернуться к примеру с реляционными базами данных. Написание запросов для выбора данных из таблиц совершенно точно входит в 20 % наиболее востребованных в данной технологии умений. Если вы прочитаете книгу, посвященную языку SQL, то увидите, что темам получения данных, их добавления, обновления, удаления, а также индексации уделяется одинаковое количество внимания. Но если вы попытаетесь создать собственную базу данных, то наверняка заметите огромное количество запросов, связанных с выбором данных. Помимо прочего, вы очень быстро встретитесь с необходимостью объединения таблиц.
Вместо того чтобы тратить время на изучение всех тонкостей теории реляционных баз данных, гораздо эффективнее сосредоточиться на том, чтобы научиться писать операторы выбора, объединять таблицы и выполнять другие операции общего характера, составляющие заветные 20 % наиболее востребованных умений.
Вот почему практика столь важна.
Бывает полезно понаблюдать за работой эксперта в интересующей вас области, или даже предложить ему посотрудничать с вами в качестве ученика. Видя, как мастер применяет те навыки, которым вы хотите научиться, вы сможете понять его 20 % и ускорить процесс своего роста в профессии. Обучение в процессе работы – чрезвычайно эффективный способ развития себя как специалиста.
Читайте, что пишут эксперты
Напоследок я хочу дать вам еще один совет по развитию технических навыков. Уделяйте побольше внимания чтению экспертов, которые уже обладают нужными вам техническими навыками. Когда я изучал свое ремесло, я тратил около 30 минут в день на чтение разных блогов, связанных с интересующими меня темами. Когда мне потребовалось вникнуть в суть тонкостей языка C++, я глотал книги Скотта Майерса по эффективному программированию на C++. Зачастую мнение эксперта помогает разобраться в каком-либо вопросе, до ответа на который додуматься самостоятельно было бы невозможно.