Гибкие навыки. Исчерпывающее руководство по прокачке себя для начинающих разработчиков — страница 30 из 82

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

Цель образования должна состоять в том, чтобы научить нас как думать, нежели в том, что думать.

Герберт Спенсер

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

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

Учим себя

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

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

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

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

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

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

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

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

А затем приходит время закрепления: научи кого-то тому, чему ты сам научился. К этому моменту тебя уже распирает желание поделиться с кем-то своими знаниями. Ты действительно рад, что можешь кому-то что-то рассказать. Обучение не должно быть сложным: ты можешь просто рассказать своему партнеру, что ты узнал, или опубликовать небольшой пост в блоге. Главное – пересказать новую информацию своими словами и организовать ее где-то за пределами своей головы.

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

УПРАЖНЕНИЯ

• Чему ты научился в последний раз? Как именно ты учился этому?

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

28Мой 10-ступенчатый процесс

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

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

Основная идея

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

Когда у меня была масса времени и я учился, не ставя перед собой никакой конкретной цели, этот подход хорошо работал. В конце концов я узнавал то, что мне нужно было, да и прочитать книгу было нетрудно – просто сам процесс занимал слишком много времени. А когда у меня появились серьезные цели для обучения и сжатые сроки, то я обнаружил, что этот подход не работает. Чаще всего у меня не было времени на прочтение всего учебника, и я обнаружил, что бо́льшая часть информации в нем подходит для справки, а не для обучения.

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

Я обнаружил следующее. Чтобы обучиться чему-то, мне нужно знать три вещи.


• С чего начать. Какие основные вещи мне нужно знать, чтобы изучить тему?

• Объем темы. Насколько велика выбранная тема и что я могу с этим сделать? Мне не нужно знать все-все, чтобы начать обучение, но мне нужно иметь хотя бы примерное представление о теме.

• Основы. Что мне нужно знать, чтобы использовать определенную технологию, язык программирования или что-то еще? Какие 20 % я могу выучить, чтобы покрыть 80 % моих ежедневных потребностей?


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

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

10-ступенчатая система

Оказывается, узнать эти три вещи не так просто, как может показаться изначально. Иногда очень сложно определиться, с чего нужно начать работу с технологией; иногда трудно понять, какие 20 % тебе нужно знать, чтобы быть на 80 % эффективным при работе с этой технологией. К тому же очень часто я не мог четко определить объем темы. Часто мне нужно было прочитать всю книгу или даже несколько.

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