Pull to refresh
24.89
LumanBox
Автоматизация мышления по методу ZettelKasten

Как я учусь на курсах frontend разработки с помощью доработанного метода ZettelKasten

Level of difficultyEasy
Reading time9 min
Views17K

До недавнего времени я считал, что все on-line курсы обучения программистов с нуля - это один из 300 сравнительно честных способов отъема денег у населения. Почему? Да потому что с нашей специальности ВУЗа "программист" после 5 лет обучения не более 30% смогли начать работать по этой профессии. При этом к нам в группу шли самые умные парни и девушки со всего института. И мозги их были молодыми и неокостеневшими. И при этом такой слабый результат!

Потому, когда мой племянник пошел на подобные "быстрые" курсы, я лишь посочувствовал его бессмысленным (как казалось на тот момент) денежным тратам. Со слов племянника, там был бесплатный вводный курс, ссылку на который он выслал. И я решил лично проинспектировать современное предприятие Остапа Бендера. Однако, уже через пару часов обучения, мое мнение несколько изменилось. 

Типичная реклама подобных курсов
Типичная реклама подобных курсов

Пару слов о моем опыте в программировании. Большинство реализованных за последние 30 лет проектов были классическими Desktop-приложениями на VB, Delphi, C#, Oracle, SQLite, PostgreSQL. Однако, в портфолио "затесались" и 4 полноценных WEB Интранет-проекта на Perl, ASP.NET и PHP. Посему я имел какое-то представление о WEB-разработке.

Так вот, первое что удивило, это структурированность предлагаемой информации. 90% излагаемого материала я и так знал. Но вот целостного представления не было. Здесь же не только давался материал, но и тут же в тренажере с сайта можно было проверить, как именно ты его усвоил. Известная в педагогике фича - то, что тебе кажется понятным, совсем не значит, что ты его понял. А задание на тренажере позволяет самому от себя получить обратную связь. В общем, я так увлекся, что с удовольствием прошел весь вводный курс. Кстати, узнал причину своих страданий на CSS во время реализации всех 4-х WEB-проектов.

Однако, даже на вводном материале я понимал, что многое скоро забудется. Потому параллельно оформлял весь новый материал по методу ZettelKasten в программе  «LumanBox для Windows». Кстати, племянник жаловался, что нового материала много, и как его запомнить а потом быстро вспомнить - неприятная проблема. Чтобы помочь ему, и тем, кто проходит подобные курсы, я решил сделать данную публикацию. То есть в данной статье продемонстрирую, как проходить on-line курсы по frontend программированию с использованием метода ZettelKasten для эффективной организации индивидуальной базы знаний. Такой подход будет преследовать сразу две цели:

  1. глубоко усвоить новый материал (чтобы шипики в нейронах нашего мозга сформировались как положено);

  2. сформировать свою личную базу знаний, которая будет позволять вспомнить необходимое знание хоть через год, хоть через 10 лет, максимум за пару минут.

Пример структурирования одного конкретного спринта on-line курса
Пример структурирования одного конкретного спринта on-line курса

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

  1. По мере ознакомления с материалом, сталкиваясь с чем-то нетривиальным или важным но трудно запоминаемым, сразу в программе LumanBox добавлял заметку. При этом грубо нарушая главное правило ZettelKasten - "никакой копипасты"! У меня наоборот, была одна лишь копипаста. Благо делать это в On-line курсах очень удобно - помечаешь куски текста заинтересовавшие, и копируешь.

  2. однако уже на этом этапе старался соблюдать принцип атомарности заметки - одна заметка=одна идея. Кроме того, придумывал заметкам удобоваримые и понятные названия. Иногда в этом мне помогали толковые заголовки в самих курсах.

  3. если для демонстрации идеи заметки нужны были исходные коды, которые были в тренажерах курса, не ленился копипастить и эти коды. Сохраняя их в заметках в виде аттач-архива (поскольку в примерах всегда было более двух файлов - как минимум *.html и *.css).

    Пример аттача демо-исходников
    Пример аттача демо-исходников

    Таким образом первичное заполнение ZettelKasten не сильно замедляло прохождение уроков с тренажерами. 

  4. обычно на следующий день после первичного заполнения своего Zettel, я повторно работал с уже созданными заметками. А именно:

    1. добавлял необходимые ключевые слова;

    2. проставлял тип заметок (что это - определение, алгоритм, пример, проблема и т.д.);

    3. группировал заметки в папки внутри курса;

    4. сортировал новые ключевые слова по категориям.

      Пример проставления ключевых слов и типа идеи
      Пример проставления ключевых слов и типа идеи

      Да, это занимало значительное время. Однако, материал новый реально укладывался и в моей голове, и в индивидуальной базе знаний. Обязательное повторение на следующий день пройденного материала - это старый лайфхак еще с ВУЗа, что позволяло комфортно учиться и высшей математике, и английскому, и новым языкам программирования.

      По соотношению времени - на 100 единиц непосредственного прохождения on-line курсов, я тратил 10 единиц на первичное заполнение ZettelKasten, и 20 единиц времени на повторную работу с заметками.  Итого превышение времени на работу с индивидуальной базой знаний было всего лишь на 30%.

Поскольку бесплатная часть курсов понравилась, то я решил пройти очередное повышение квалификации именно там, по специализации fullstack-программиста. Тут уже было на хабре, что в любых on-line курсах самое сложное - это сдавать проектные работы. На мой взгляд, проблема подобных курсов в том, что студента неверно ориентируют относительно его распределения усилий. Почему то у меня сложилось впечатление, что вот пройду обучение, меня научат, а потом на основании усвоенного материала сделаю проектную работу спринта. Но уже на первом спринте споткнулся о видеоразбор готового кэйса. Там было видео на 45 минут, как опытный верстальщик верстает сайт. Казалось бы, все его рассуждения базируются на уже пройденном материале. Но - лично мне было непонятным практически все. Я аж расстроился, как так очень внимательно прошел все уроки, добросовестно делал задания в тренажерах, но ничего не понял в готовом кэйсе. При чем, опять таки, повторюсь, курсы для программистов заявлялись с нуля, а я уже несколько WEB-проектов реализовал. И все равно разбор готового кэйса на первом же спринте для меня стал китайской грамотой.

Как создатели курсов видят новые нейронные связи в мозгу студентов, и какие они в реальности у большинства
Как создатели курсов видят новые нейронные связи в мозгу студентов, и какие они в реальности у большинства

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

Дико смущал еще тот момент, что разбор готового кэйса - это всего лишь пара коротких уроков. 1/50 от всего спринта. И подсознательно считаешь, что нужно пройти их быстро. Но в реальности у меня на разбор готового кэйса ушло 1/5 от всего времени, потраченного на спринт. Однако именно на разборе этого готового кэйса почувствовал, как шипики нейронов в моем мозгу пришли в активное движение, и начали грандиозное строительство. Приятное, кстати говоря, чувство! И да, во время прохождения on-line курсов проснулся дикий аппетит. Особенно на сладкое и жирное. Физиологию не обманешь! Мозгу для построения новый нейронных сетей нужны стройматериалы.

Фундук, красная икра и батончики из темного шоколада - мои излюбленные десерты во время спринта
Фундук, красная икра и батончики из темного шоколада - мои излюбленные десерты во время спринта

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

Во время разбора готового кэйса очень помогала уже составленная база знаний. Пару секунд, и я вспоминал нужный материал. Но что более важное - опять таки пару секунд, и я понимал, что этого знания в уроках не было. И его нужно освоить самостоятельно. Т.е. я не рылся в on-line уроках курсах, выискивая, психуя и не находя нужное. А либо сразу находил искомое. Либо сразу понимал, что его нет, и нужно гуглить самостоятельно.

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

Успешно пройдя первый спринт обучения, я понял пропорции усилий, которые необходимо прикладывать для учебы:

  1. 50% времени и внимания занимают уроки и задачи на тренажерах;

  2. 20% сил тратится на разбор и реализацию готового кэйса (по которому есть видеоразбор в виде урока на курсе);

  3. 30% усилий необходимо потратить на выполнение и сдачу проектной работы по спринту.

И да, усилия эти совершенно разные:

  1. на уроки и тренажер силы тратятся познавательные. Т.е. здесь студент узнает что-то новое.

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

  3. сдача проектной работы требует, в основном, обычной аккуратности и внимания к мелочам. Чтоб ничего не упустить из ТЗ. 80% требуемых практических навыков уже было должно быть усвоено на понимании готового кэйса на предыдущем шаге.

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

Так иногда, к сожалению, выглядят некоторые задания on-line курсов
Так иногда, к сожалению, выглядят некоторые задания on-line курсов

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

В процессе прохождения курсов как то сами собой всплыли и позже были реализованы целый ряд доработок программы  «LumanBox для Windows», упрощающих процесс обучения:

  • реализовал таки поддержку различных цветовых схем, спасибо пользователю @mnhunter81 за наводку! Сразу стало глазам удобней работать. Теперь работаю только в темных темах. Пример экрана ниже:

    Демонстрация одной из темной темы, в которой я работаю постоянно
    Демонстрация одной из темной темы, в которой я работаю постоянно
  • перенес хранение всех файлов из SQLite базы в указываемый пользователем каталог. Что значительно ускорило работу программы. Тем более, что этих сторонних файлов у меня уже 700 МБ. В т.ч. книги, сохраненные сайты, исходники, копии экранов, схемы, видео-уроки.

  • сделал возможность задавать ключевые слова сразу на весь источник. Имеет смысл для небольших источников, по которым создается всего 1-3 заметки. Чтобы не дублировать ключевые слова для каждой заметки.

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

    Пример добавления ключевого слова на весь элемент оглавления
    Пример добавления ключевого слова на весь элемент оглавления

Вместо итогов

Администрация on-line курсов не сообщает процент отчисленных с курсов после первого жесткого дедлайна. Однако я сразу заподозрил, что он высок.  Уже есть негласная статистика по моему потоку. Если на первом занятии в Zoom было 65 студентов, то на последнем занятии перед дедлайном - всего лишь 24. Понятно, что не все студенты, не пришедшие на последнее занятие, бросят учебу. Однако все равно уровень не справившихся высок. С моей субъективной точки зрения, он не ниже 30%. 

И тут студентам помочь сможет модифицированный ZettelKasten (в т.ч. с бесплатной программой  «LumanBox для Windows»). Для понимания - как раз во время спринта меня угораздило подхватить ОРЗ/ОРВИ, и я неделю провалялся с температурой. Однако, несмотря на болезнь, я продолжал потихоньку проходить уроки. Внешняя структурированность учебного процесса с помощью ZettelKasten, по изложенному выше алгоритму, позволяла продолжать обучение. Даже в столь дискомфортном физиологическом состоянии. Тем самым я не выбился из графика и сдал все работы вовремя. 

На проходимых мною on-line курсах были уроки по популярной сейчас тематике софт-скиллов. Для каждого базового спринта - свой курс софт-скиллов. С одной стороны это радует. Поскольку софт-скилы рулят, и это факт. Но с другой стороны сильно удивляет некая наивность авторов софт-скилл уроков. В подобных уроках даются лишь общие сведения о той или иной методике (Agile, Scrum, Kanban, ...), но авторы почему то считают, что студенты сразу начнут все это применять в жизнь. Они это серьезно?

Здесь речь идет о существенном изменении стиля жизни человека. Что, как показывает практика коучеров и психоаналитиков, штука очень непростая и долгая. Однако, эти неумелые попытки побудить студентов использовать Agile-философию, навели меня на интересную идею. А именно, прикрутить к ZettelKasten Scrum. Ведь действительно, мы изучаем новую информацию не просто так. Она тем или иным образом преобразуется в проекты. IT-проекты или бытовые, не суть важно. И тут аж дух захватывает от открывающихся возможностей. Когда компьютерные системы будут помогать не только запоминать информацию и восстанавливать контекст, но и погружать человека в Agile философию на всех уровнях его бытия через автоматическое ведение проектных бэклогов! По этой теме планирую сделать отдельную публикацию для всеобщего обсуждения. С примером интерфейса нужного функционала, разумеется!

p.s.: автор не ставил своей целью рекламировать или ругать какие-то конкретные on-line курсы обучения программирования. А просто рассказал свой опыт прохождения одних из таких курсов при помощи популярного метода структурирования информации ZettelKasten.

Only registered users can participate in poll. Log in, please.
Испытывали ли Вы сложности при обучении на on-line курсах по программированию?
14.63% Учиться было очень сложно6
24.39% Учиться было непросто10
17.07% Сложность обучения была средней7
4.88% Обучался легко, без напряжения2
2.44% Обучение давалось очень легко1
36.59% Я ни разу не обучался на on-line курсах по программированию15
41 users voted. 11 users abstained.
Tags:
Hubs:
Total votes 13: ↑9 and ↓4+5
Comments31

Articles

Information

Website
www.lumanbox.ru
Registered
Founded
Employees
2–10 employees
Location
Россия
Representative
Сергей