Курсы без теории: самый сложный способ научиться программированию
Как я учился программировать последние полгода
Методы обучения
Обычно люди определяют три основные стратегии обучения программированию.
- самообучение
Когда ты всему учишься сам, планируешь свою программу, смотришь видео на YouTube или курсы Udemy, читаешь документацию, программируешь все, что хочешь.
- наставничество
Наставничество — это когда вы находите наставника, который поддерживает вас. Он может: делать код-ревью и следить за его качеством, помогать с лучшими практиками и помогать решать некоторые задачи, с которыми вы пока не можете справиться.
- курс
Обычно курс представляет собой программу с десятками учебных блоков. Блок представляет собой видеолекцию + практическое задание. Обычно в курс входит наставник для проверки вашего решения задачи. Иногда это может быть лектор вместо видео.
Проблемы обычных методов
Во-первых, нам нужно понять основные проблемы, связанные с каждым из вышеперечисленных методов.
- Самообучение
- Трудно построить хорошую программу обучения, составить требования, определить необходимые технологии для обучения и следовать этой программе, если вы знаете только основы программирования.
- Трудно писать чистый код, если у вас нет код-ревью.
- Если ваша намеченная программа слаба, вы не можете четко ей следовать или у вас нет плана, велика вероятность того, что вы пропустите множество проблем и испытаний. Это может произойти из-за того, что без достаточного опыта сложно решать проблемы. Гораздо проще пропустить эту маленькую фичу, чем исправлять одну ошибку в течение десятков часов.
- наставничество
- Ментор поможет составить программу обучения, а также подобрать технологии, которые вам нужны. Но не каждый наставник хочет и имеет время составить хорошую программу обучения.
- Вторая проблема рассеивается
- В обычном наставничестве процесс-наставник не будет давать вам задачи и не будет проверять, все ли требования выполнены. Так что проблема с прохождением вышеописанных фьючерсов, которую сложно сделать, осталась.
- Курсы
- Во-первых, каждый курс продает структурированную программу, так что первая проблема теперь не проблема!
- У хороших курсов есть хорошие наставники, которые проведут проверку кода и скажут вам, неправильный ли стиль кода или архитектура приложения.
- Теперь у нас нет проблем с прохождением выше задач, потому что почти всегда есть четкие требования, которые нельзя пропускать.
- Вместо проблемы №3 у нас другая проблема с аналогичными последствиями. Итак, проблема в том, что когда дело доходит до выполнения заданий, решить проблему может быть так просто, потому что вы уже получаете все необходимые знания в начале видеолекции перед практическим заданием. Также многие курсы живут под слоганом «Стань разработчиком легко за 3–4 месяца, мы проведем тебя за ручку и поможем избежать проблем». Люди лучше платят за легкие пути. И это не так. Чтобы стать разработчиком нужно пройти через множество стрессовых ситуаций или быть спокойным и уравновешенным человеком.
Как видите, есть большая вероятность, что с помощью этих методов навык решения проблем будет резко увеличен.
Наконец, мы здесь!
Давайте поговорим о том, как мы можем решить эту проблему. Конечно, в самообучении и наставничестве можно избежать этой проблемы при хорошей подготовке и сильном самоконтроле, но это может добавить много проблем (меньше в наставничестве). Вместо этого я рекомендую вам смешивать все эти методы определенным образом.
Курсы с наставником без теории
В двух словах, вы получаете структурированную программу в виде курсов и наставника, который вас поддерживает, но, как вы можете догадаться, никакой теории.
Идея
Идея проста. Научит вас, как решать реальные проблемы, когда у вас мало информации, а не только научит вас одной конкретной технологии.
Почему это необходимо? Представьте, что вам предлагают реальную работу. В реальных проектах теоретический материал вам не дадут, а выполнить задание все равно нужно. Если вы параллельно с учебой решали сложные задачи, то и реальные задачи решать будет не так уж и сложно.
Если вы найдете хорошего наставника, все эти процессы можно будет организовать с ним.
Как это работает?
Во-первых, вы получаете задание и совершенно не знаете, как его выполнить. Затем можно задать несколько вопросов и уточнить требования. Третий шаг — провести небольшое исследование каждой новой технологии, которую вы будете использовать.
Когда дело доходит до выполнения задачи, вы можете получить все, что хотите, документацию, сообщения в блогах, видео на YouTube или сети. В каждой задаче будет большое количество проблем, и каждую задачу вы будете решать по-разному.
Иногда было бы очень трудно решить проблему, и вы можете потратить до 20 часов, чтобы найти решение, которое уместится в 3 строчках кода, у вас будет стресс, потому что вы сидели перед кодом в течение 10 часов, но это пока не получилось, но результат того стоит!
Это метод, который я изучал. Через несколько месяцев изучения этого метода я стал более устойчивым к стрессу, вызванному проблемами, которые я не могу решить правильно. Кроме того, я стал намного увереннее в своих способностях решать проблемы.
Я надеюсь, что мой английский был не слишком плох в этой статье. В любом случае, я продолжу улучшать его, написав здесь статьи.