Re: Посоветуйте "вспоминатор" для C++
От: velkin Россия http://blogs.rsdn.org/effective/
Дата: 11.05.19 00:30
Оценка: 32 (4) +1
Здравствуйте, Basil2, Вы писали:

B>А в идеале нужен именно "вспоминатор", то есть сайт с перечнем тонких моментов С++ и их подробным объяснением. Чтобы время от времени перечитывать и проникаться...


Техника позволяющая запоминать и обновлять знания называется: интервальные повторения. Она не единственная, но остальные рассматривать не вижу смысла (Топ-5 методов запоминания для профессионалов)

1) Метод локусов
2) Мнемоника
3) Чанкинг-метод (дробление, фрагментирование)
4) Интервальные повторения <= лучший метод
5) Метод сторителлинга

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

Минусы Anki:
1) испытуемый сам оценивает свой результат, что необъективно и затрачивает у него лишнее время
2) единственный объективный тест это ввод текста, но он однострочный (по крайне мере я многострочного не видел)
3) исключение из повтора карт, которые как иногда ошибочно думает пользователь он помнит (повторение никогда не бывает лишним)
4) попытки дать несколько ответов на один вопрос (нет чёткой связи между мыслями, отвлечение внимания на постороннюю информацию)
5) слишком долго вводить собственные карточки
6) уникальный формат неудобочитаемый другими программами

Мои сторонние размышления:
1) графика vs консоль
... графика часто перегружена лишней информацией в интерфейсах, консоль обычно чище и позволяет лучше сосредотачиваться на цели изучения
... если не использоваться разделитель (splitter) как принято в gui, то в консоли зачастую можно сэкономить место на экране
... в консоли можно почитать документы rfc не отвлекаясь на форматирование шрифтов и прочего, но тоже касается и других текстов, включая браузеры вроде links2
... да и в целом исходя из материальной логики раньше программисты были другими потому, что они воспринимали информацию иначе, старая школа (old school)
2) клавиатура vs мышь
... клавиатурой иногда сложнее пользоваться, но можно проще и быстрее выражать свои мысли
... клавиатура позволяет создавать ascii-графику, повышенная творческая свобода
3) пакеты знаний
... могли бы упростить процесс обучения и поддержания знаний
... обучаясь по такому пакету ученик затрачивая минимум усилий получает максимальный результат
... опять же становится доступно целостное единообразие знаний среди множества людей
4) скорость доступа к знаниям
... в компьютерах есть иерархия скорости доступа к данным, уровни кэшей, оперативная память, твердотельный накопитель, интернет
... с другой стороны у людей есть кратковременная и долговременная память, ссылка в памяти на внешний источник информации (книга, ссылка в интернете), обрывок знаний о понятии после чего используется поисковая система (гугл, звонок "другу")
... но так же нужных знаний может и вовсе не быть, тогда можно отталкиваться от задачи и уйти в свободный поиск

В итоге я пришёл к выводу, что нужна программа компьютерного тестирования в консоли с простым текстовым форматом. Если идти стандартным путём, то есть карточки (card) и колоды (deck).
1) Традиционно карточка это бумажка, на одной стороне вопрос, на другой ответ. Да, в том же Anki можно сделать сколько угодно полей, но это уже не изначальная техника интервальных повторений, потому это могло бы стать ещё одним минусом.
2) Карточки собираются в колоды (карточные колоды), а далее уже по ним проводится обучение и повторение.

Для проверки идеи наговнокодил программу с такими особенностями (features)
1) в чисто консольной версии используется только c++ и stl, системы сборки вроде qmake на это никак не влияют, библиотеки qt исключены
2) многострочный вывод вопроса, многострочный ввод ответа
3) колода это обычный файл в формате плоского текста имеющий разделитель карт (card delimiter) и разделитель полей (field delimiter)
4) в карточке только два поля, вопрос (question) и ответ (answer), и кроме них на экране не должно быть лишней информации
5) ответ нужно полностью ввести с клавиатуры
6) если в ответе нет ошибки, тогда сразу переходим к следующему вопросу не тратя за зря время испытуемого, если есть, выводим сообщение "ошибка" и правильный ответ
7) в конце выводится однострочный отчёт об ошибках
8) возможность через аргументы командной строки загружать за раз множество колод
9) каждый раз при запуске случайным образом тасовать собранные в одну колоды
10) в конце всех испытаний выводим напоминания об отдыхе (чтобы сформировать долгосрочное воспоминание, нужно 10 минут побыть в тишине)
можно придумать, что угодно, обратные карты, повтор ошибочных карт, и так далее, но это уже не важно, важны колоды

Возьмём для примера химию, разделитель карточек строка из звёздочек шириной 80 символов, разделитель полей строка из точек шириной 80 символов:
название молекулы

        H    H      H
        .      .  .
H       C       C
  .   .   .   .   .
    N       C      H
    .       .
    C       C
  .   .    .  . 
O       N       O
        .
        H
................................................................................
тимин
********************************************************************************
название молекулы

        H
        .
H       C       H
  .   .   .   .
    C       C
    .       .
    C       C
  .   .    .  . 
H       C       H
        .
        H
................................................................................
бензол


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


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

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