Написать пост

Как научиться учиться — советуют эксперты

Аватар Никита Прияцелюк

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

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

Как научиться учиться?

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

1. Выбрать определённое время обучения в течение дня на регулярной основе. Сделать обучение привычкой, чтобы мозг в определённое время дня сам понимал и был готов к тому, что «сейчас мы учимся». Для меня самое эффективное время — утро, за час до работы: голова свежая, концентрация максимальная. Как-то на QA сессии с Максимом Дорофеевым я задала вопрос про то, как выделять время на обучение при высокой нагрузке, и он дал мне отличный совет — лучше выделять на постоянной основе один час в день, чем учиться те же 7 часов в выходной день.

2. Записывать все планы на обучение. Необходимо прежде всего для того, чтобы структурировать все свои планы и желания в голове и планировать время на обучение. Я пробовала разные инструменты: записывала в блокнот, в заметки на телефоне, вела таск-трекер, на данном этапе лучше всего для меня работает отдельная доска «Развитие» в trello.

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

4. Практиковаться. По кривой забывания мы можем довольно быстро забыть информацию, если не возвращаемся к ней с какой-то периодичностью. Я для себя выделила идеальную формулу запоминания: теория → тесты (если есть) → практика → теория… Тесты помогают выделить основные моменты в теории, практика даёт более глубокое понимание всей полученной информации. Теория после практики может раскрыть те моменты, которые не лежали на поверхности или «не зацепили глаз» с самого начала. Доказано на собственном опыте, что один час практики даёт больше осознания предмета, чем зубрение теории, демо-проект лучше дополнительной книжки или статьи.

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

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

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

8. Делать регулярные перерывы в процессе обучения, высыпаться и отдыхать. Банально, но почему-то многие специалисты упускают этот момент, считая себя «роботами». В процессе обучения и работы крайне важно чередовать время усидчивости с отдыхом. Если чувствуешь усталость, не можешь решить что-то уже большое количество времени или же перечитываешь пятый раз абзац книги — это верный сигнал к отдыху. Крайне важно восполнять энергию во время обучения, пить много воды, быть сытым и отдохнувшим. При постоянном недосыпе энергии становится с каждым днем всё меньше, и тут уже можно скатиться в выгорание и депрессию. Также не стоит забывать, что в процессе отдыха рождаются новые нейронные связи, что крайне важно для обучения.

9. Не заставлять себя, если не хочется. Если я понимаю, что накопилась усталость или появилось банальное нежелание что либо учиться в моменте — я не насилую себя. Насилие порождает отторжение от предмета.

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

Вот несколько простых идей, которые помогут вам в обучении:

1. Начните с вопроса «Зачем?». Чаще всего нам сложно учиться, когда мы не до конца понимаем, зачем это нужно и как оно поможет нам в будущем. На этапе планирования обучения четко пропишите каким образом эта образовательная цель приближает вас к вашим большим целям.

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

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

4. Сделайте обучение приятной привычкой. Прелесть привычек в том, что мы не тратим на них много энергии, выполняя эти действия на автомате. Попробуйте интегрировать изучение новинок IT-мира в уже имеющиеся ритуалы: смотрите видео за завтраком, выделяйте 30 минут перед сном новой профессиональной литературе или вместо радио во время обеда слушайте подкасты на интересующую тему.

5. Ставьте дедлайны только на ближайшее время. Дальние дедлайны не работают. Помните свои планы и хотелки, которые вы старательно записывали в блокнот под заголовком «Мои планы на 2020 год»? Подтянуть английский, выучить новый язык программирования… Как-то не сложилось? Дело в том, что в январе мы уверены: 12 месяцев — огромный срок. Декомпозируйте большие цели и ставьте себе дедлайны на 2-3 недели, систематически анализируя прогресс.

Подходов к эффективному изучению и усвоению новых знаний много. Я в плане изучения могу идти с двух разных сторон: от теории или от практики.

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

Альтернативный подход заключается в том, чтобы начать с теории. С теорией я в основном работаю в блуждающем режиме, то есть изучаю различные темы с целью «расширения кругозора». Если какая-то тема в процессе такого блуждания заинтересует меня больше, чем другие, то я вполне могу углубиться. Блуждающий режим для меня — это скорее загрузка контента в подсознание: если что-то непонятно, то я просто иду дальше. Знания, загруженные в голову таким способом, потом всплывают в соответствующих ситуациях, там, где они чем-то могут быть полезны.

Итого: научение от практики — решение задач, практический опыт — загрузка в сознание; блуждание в теории — расширение кругозора — загрузка большей части в подсознание.

В первую очередь я бы рекомендовал регулярно изучать подборки новостей по интересующим вас тематикам. Например, на Хабре публикуются удобные еженедельные дайджесты по основным направлениям – фронтенд, мобильная разработка и прочие. Также иногда стоит заходить на сайты, посвященные конкретным технологиям, там могут публиковаться интересные новости. Хорошая идея – отслеживать процесс разработки и график релизов интересующих языков, фреймворков, библиотек и стандартов. Например, людям, работающими с языками ECMAScript (такими как JavaScript или TypeScript), рекомендуется следить за работой группы TC39, ответственной за развитие технологии.

Если в ходе изучения новостей, дайджестов и обсуждений встречается упоминание новой технологии, стоит заглянуть в Google и узнать о ней поподробнее. Если данная технология вас заинтересовала, можно понадеяться на то, что на ее сайте будет сносный раздел для новичков (так, например, язык программирования Go имеет прекрасный онлайн-туториал). Если же сайт технологии скуп на разъяснения, или они достаточно сложны для начинающих, стоит обратиться к онлайн-курсам, например, на той же Coursera. В том случае, если в ходе самостоятельного освоения возникли какие-то сложности, то всегда можно задать вопрос на том же Stack Overflow.

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

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

Например, для работы с новым языком программирования я бы рекомендовал наладить собственное окружение максимально удобным и легко повторяемым способом, чтобы при разработке и освоении новых библиотек, фреймворков и подходов все время можно было уделить для написания кода и его изучения. Удобное окружение – путь к наискорейшему и эффективному получению обратной связи от работы кода и комфортному процессу обучения. Если же мы говорим про какие-либо кластерные системы, базы данных или масштабирование тех или иных приложений, то для получения фундаментальных знаний следует развернуть окружение для тестирования любых возможных ситуаций, которые могут произойти в жизни, создавая их самостоятельно. Таким экспериментальным образом можно ощутимо сблизиться с технологиями, чтобы действовать предиктивно, не допуская проблем, или быть готовым принимать решения во время ЧП. Также, чтобы знания усвоились и было сложнее их потерять, стоит создавать ассоциативные связи («якоря») с проделанной практической работой и/или экспериментом. В процессе создания «якорей» может помочь обыкновенная запись собственными руками в виде комментария в коде, а также обсуждение с коллегой или рисунок на бумаге: чем больше собственных сенсоров чувств вы задействуете, тем сильнее может получиться ассоциативная связь. Может показаться смешным, но иногда полезно озвучить вопрос или гипотезу: проговорив их вслух, вы можете найти ответ.

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

С точки зрения получения новых знаний, я сам пользуюсь следующим алгоритмом:

  1. Определение перечня источников новостей/статей и подписка на актуальные рассылки. Важно использовать те, которым доверяю или с которыми схожусь во взглядах. Крайне желательно, чтобы они имели превью перед каждым материалом. Это позволяет быстро оценить входящую информацию и понять, требуется ли более глубокое изучение или нет.
  2. Если требуется, бегло или внимательно изучаю статью, в зависимости от содержания. Прикладные вещи — более вдумчиво (часто это перерастает в углублённое изучение других источников по теме), общеобразовательные — бегло, чтобы сэкономить время.
  3. Обсуждаю материал с подходящим окружением (его — окружение — желательно постепенно расширять). Разработчикам я бы посоветовал сразу сделать пару демо-примеров для «прощупывания» возможностей от приобретенных знаний. Это позволяет закрепить материал.
  4. Расширяю источники знаний за счёт изучения списка рекомендованных источников или по мере изучения просторов интернета.

Я бы назвал такие подходы к продуктивному освоению новых знаний:

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

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

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

Посмотреть под другим углом. Иногда, чтобы что-то починить, приходится все сломать, а чтобы решить проблему, нужно отступить. Если старые идеи уже не помогают, а новые пока не приходят, лучшее решение — отвлечься на что-то другое. В следующий подход, с одной стороны, можно будет заново оценить задачу, а с другой, не идти заведомо неверным путем. Вряд ли кто-то может с уверенностью сказать, что он полностью «познал» какой-то язык программирования (если это не Страуструп). То, что вам кажется нерешаемой проблемой, для вашего коллеги, например, может быть обыденностью, с которой он сталкивается каждый день.

Способность учиться принадлежит к так называемым «метанавыкам», в той или иной степени она есть у каждого – мы же научились ходить, говорить, пользоваться ложкой или, к примеру, смартфоном! Метанавык тем лучше развит, чем больше человек учился до этого: в этом отношении магистратура, допустим, эффективнее бакалавриата или техникума.

Хотя здесь есть исключения: Стив Джобс или Билл Гейтс создали высокотехнологичные компании, не имея IT-образования или MBA – и всё же эти исключения подтверждают главную идею: чем больше человек учится («учит себя сам»), тем более у него развит навык самообучения. Вопрос не в формальном дипломе, а в реальном опыте изучения нового.

По этой причине я не беспокоюсь за студентов хороших вузов: пока они учатся, они серьезно прокачивают свои навыки самообучения. Особенно повезло в этом смысле студентам IT-специальностей. Если они настроены серьезно, то прокачивают свои навыки самообучения и получают систематизированные знания по IT (даже если поначалу они достаточно поверхностные).
Когда в голове уже сложилась общая ментальная карта «Как устроен мир IT», гораздо проще углубляться в любые темы – будь то backend или mobile.

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

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

Итак, как научиться учиться? Сам по себе подход к изучению нового стандартный: с одной стороны, предстоит освоить теорию, а для этого прочитать обзорные статьи, документацию, далее можно читать и книги. Всё это необходимо для формирования «ментальной карты специализации». Без неё мир полон «магии» и «чудес», непредсказуем, а главное – неуправляем. Кроме того, нужно получить опыт – через решение задач. Учебные задачи можно брать на курсах – вузовских, курсах от компаний или курсах от онлайн-площадок – сейчас их масса. Также можно решать реальные задачи – этот путь часто «болезненный», но и более интенсивный.

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

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

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

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

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

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

А что делать, если описанный путь для «неайтишников» может казаться страшным и непривлекательным? Для начала – посвятить в среднем от 1000 часов на изучение IT и написать от 5000 строк кода. На мой взгляд, другой «магии» нет – в любом случае в самообразование постоянно приходится вкладывать много времени и сил.

Итак, как учиться продуктивно?

Объясните себе, зачем вы вообще учитесь. Без поставленных целей будет велик соблазн бросить учёбу.Записывайте планы на обучение.Делите большие задачи на несколько маленьких и ставьте дедлайны на ближайшее время, чтобы быстрее видеть прогрессРегулярно подкрепляйте теорию практикой.Выберите несколько источников информации, из которых вы будете узнавать новое. Подписавшись на всё что можно вы получаете лишь переизбыток информации и рискуете навечно зависнуть в изучении разных туториалов.Не забывайте делать перерывы в обучении и отдыхать. Вы не робот, а потому учёба в режиме 24/7 скорее доведёт вас до могилы, чем до карьерных высот.Организуйте своё место для учёбы так, чтобы вас ничего не отвлекало.Не заставляйте себя, если не хочется, чтобы не вызвать отторжение к учёбе.

Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на experts@tproger.ru, мы расскажем, как это сделать.

Следите за новыми постами
Следите за новыми постами по любимым темам
13К открытий13К показов