Когда делал уроки для своего YouTube-канала, заметил, что гораздо увлекательнее учиться в паре с новичком. Он пишет код, а я подсказываю ему, куда рулить. Ученые уже доказали, что не воспроизведённое хотя бы один раз — изучено зря. Это значит, что практика при изучении программирования нужна обязательно. Я рекомендую всем завести свой небольшой проект, улучшать и усложнять его по мере обучения. Тем, кто учит JavaScript, особенно повезло: это ещё и серверный язык, на котором можно написать цельный продукт.
HTML и CSS – не программирование. Совсем.
---
Интенсивы и вебинары для новичка - это зло. А кто говорит обратное, тот или не понимает педагогического процесса, или специально вводит в заблуждение, чтобы заработать денег.
Интенсивы дают только информацию, которуб без подкрепления практикой вы через пару дней забудете. Такие объемы и для профессионалов даются тяжело. Для новичков - это ад. Мозг просто не может работать в таком режиме.
Вебинары - это перенос всех недостатков классно-урочной системы в интернет:
1. У учеников разная скорость усвоения материала. Для новичков это критично.
2. Скучные непрофессиональные преподаватели. Они может и крутые программисты, но педагоги слабые.
3. Нужно подстраиваться под график удобный преподавателю.
Хотите научиться программировать - не выбирайте вебинары и интенсивы - это самые неэффективные способы.
---
Книги. Книги нужно уметь подбирать. Очевидно, что не стоит начинать путь в CCS с "Секреты CSS. Идеальные решения ежедневных задач". Нужно начинать с лайтовых книг. С азов. Как подключить стили, как изменить цвет бокса, как вывести данные в таблицу.
Есть хорошие авторы, есть хреновые. Как и везде. Читал книгу Харви Дейтела по программированию на C++. Очень толковая. В процессе авторы предлагают создать проект симулятора лифта. Главное когда книги читаете - повторяйте весь код за авторами.
Скопировали, запустили, разобрались как работает, поменяли пару параметров, сломали программу, починили, разорались. Только так. Каждый пример повторяйте. Иначе всё в пустую. Так работает мозг. Повторенье - мать ученья. Это не просто пословица, в ней науки много.
Хотите учиться - книги обязательны. Лучше печатные, с ними проще раскладывать информацию по полочкам. Да и будет неудобно постоянно переключаться между электронной книгой и редактором кода.
---
Ютюб-уроки. Основная проблема - нет хорошей программы обучения. Есть набор роликов без связанной с ними практики. Без практики научиться программировать невозможно. Посмотрел 10 лайтовых уроков и тебе кажется, что ты умеешь программировать. Нихрена ты не умеешь.
Если ролики подкреплены практикой - отлично. Это один из самых эффективных способов обучения.
Смотришь как пишет код учитель. Не больше 10 минут. За это время можно объяснить/понять 1-2 понятия и мозг не устанет.
Повторяешь за учителем (как с книгами, только видео). Повторил, понял, поиграл с кодом, сломал программу, починил, разобрался, знания закрепились. Решил пару задач на эту тему. Перешел к следующему уроку.
Это важно. Ученики ленятся и начинают смотреть всё подряд. Без практики и повторения. Что сводит на нет всё обучение. Поэтому изучайте дозировано. Урок-повторение-задача-урок-повторение-задача.
Плюс можно отмотать и посмотреть урок еще раз, если не понял. Или ускорить видео, если схватываешь налету.
Совсем не разобрался в теме - пиши автору курса или на форуме.
Не успел на вебинаре - сам дурак, вебинар для среднего ученика, как вся школьная и вузовская программа.
Короткие уроки с последующей практикой - это один из самых эффективных способов обучения. Не верите? Посмотрите как учатся дети - смотрят за взрослыми, повторяют, привносят что-то своё, закрепляют. Природа же.
---
Наставник. Это высший пилотаж. Наставника нужно подключать когда зашел в тупик, для ревизии и для сложных тем. Не стоит тратить драгоценное время хорошего человека. Наставник - не учитель. Грамотный спец может многократно ускорить развитие.
---
Учитель. Хороший учитель лучше книги и лучше видео. Но только когда у него один-два ученика. Даже с двумя уже будут проблемы в скорости восприятия.
Если вы совсем новичок, то можете смело учиться паскалю. Учителей паскаля много, учителей js мало. Перескочить с паскаля на другой язык - без проблем. Замыкания и прочее освоите позже. Возможно с наставником.
---
Свой проект. Можно решать небольшие задачи, а можно сразу взяться за большой проект. Сайт школы сделать. Вирус написать (я написал, запустил, словил проблем, больше не писал). В большом проекте учишься быстрее, особенно всему современному, архитектуре, последним новинкам, библиотеке языка.
Я когда HTML и CSS учил - верстал уголовный кодекс. На фреймах. Динозавр.
Когда PHP учил - делал автопортал. 2 месяца программировал через боль. Потом фирму открыл и начали деньги зарабатывать. 2006 год был. Интернет - 3 рубля за мегабайт.
Потом Python и Django - снова свои проекты. Лучший способ научиться.
---
Небольшие задачи. Если свои большие проекты - это хорошо для понимания всей картины в целом. То мелкие задачи - это чтобы набить руку. В программировании, в математике, в алгоритмах.
Я брал справочники и решал их вдоль и поперек. Все задания. Графы, деревья, комбинаторику, численные методы. Начинал конечно с лайтовых задач на арифметику. Но попробуй остановись.
---
Еще немного педагогики. Есть три составляющих обучения - знания, умения, навыки.
Знания - это то, что вы получаете на уроках (видео или офлайн) и то, что у вас остается в мозгу. Самая ненадежная структура. Если не подкреплять, то через пару дней от знаний ничего не останется.
Умения - это когда вы с помощью знаний можете что-то сделать. Можете применить знания. Поэтому практика очень важна.
Навык - это умение, доведенное до автоматизма. На этом этапе вы становитесь программистом. Требует много практики. Очень много.
Пройдете весь путь ЗУН - будет счастье.
Есть еще 4 составляющая обучения - информация. Она стоит до знаний. Информацию вы получаете на ютюбе и в прочих злачных местах. Информация не задерживается в голове. Совсем. Но вам кажется, что задержалась. Это такой большой обман мозга.
Не нужно его обманывать, а нужно учиться и практиковаться. Тогда станете программистом или кем угодно. Это универсальные советы для любого дела.
В вашем комменте одно плохо - далеко мотать наверх, чтобы поставиь палец вверх :)
Хорошо, что хоть кто-то вслух говорит о том, что все эти курсы, вебенары, хтмлакадеми и пр. - говно. И научиться там чему-нибудь не получится. Только зря потратишь деньги и время.
Этот коммент достоин отдельной статьи
Такое громкое название, куда пойти учиться программисту. А на деле спросили верстальщика и двух мужиков с front-end'а. Очень показательно! В общей сумме они даже не покрывают полный стек веб разработки. А распинаетесь о программировании. Куда более наглядным было бы название "куда пойти, если твой максимум - это верстка и фронтенд"
Спасибо, посмеялся