Дикий Григорий

Full-stack веб-разработчик

Учимся учиться

Программисту постоянно приходится учить кучу технологий в той или иной области. От того как мы учимся зависит наше продвижение по карьерной лестнице, а также зарплата. Чем быстрее ваша обучаемость тем больше шанс, что вы станете известным в своей нише. Все мы помним школу, но не все помнят материал, который нам там преподавали. Все дело в том, что нас в школе не научили главному - как правильно нужно обучаться. Если ты, мой дорогой читатель, будешь читать книгу от корки до корки, то ты получишь результат, но не такой существенный как хотелось бы, ведь нужна еще и практика, а кроме практики нужно множественное повторение изученного и т.д. Не так уж просто "приказать" мозгу выучить что-то, ведь такова наша природа.

В наше время на позицию junior нужно знать как минимум 3 языка программирования и еще кучу фраймворков, да еще желательно с кучей опыта. Но как это успеть?

Для решения проблемы с обучаемостью автор книги "Путь программиста" Джон Сомнез предлагает выполнить 10 шагов. Автор утверждает, что следуя этим шагам можно быстро вникнуть в тему изучаемого и применять теорию на практике. Шаги с 1 по 6 выполняются один раз, а с 7 по 10 многократно. Автор выделяет три момента, которые нужно знать, чтобы изучить технологию:

  • Как начать - базовые вещи, чтобы начать использовать
  • Объем темы - насколько много надо выучить
  • Основы - что помимо основ надо знать, чтобы использовать технологию

Шаг 1. Получи общую картину

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

Шаг 2. Определи масштам

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

Шаг 3. Определить конечный результат

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

Шаг 4. Найди ресурсы

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

  • книги
  • статьи в блогах
  • видеоролики
  • эксперты и люди
  • подкасты
  • исходный код
  • примеры проектов
  • онлайн-документация

Шаг 5. Создай план обучения

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

Шаг 6. Отфильтруй ресурсы

У тебя есть куча ресурсов, но не все они подходят тебе. К примеру: если ты хочешь изучить Ajax, то тебе не обязательно изучать еще и WebGL. Нужно выбрать лучшие источники и обучаться по ним. Узнать об качестве источника можно на форумах, по отзывам и т.д

Шаг 7. Узнай достаточно чтобы начать

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

Шаг 8. Экспериментируй

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

Шаг 9. Узнай достаточно, чтобы сделать что-то полезное

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

Шаг 10. Обучай других

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

Ищем пробелы в знаниях

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

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