Я всегда считал, что ленивый программист это хороший программист. Почему? Потому что попроси трудолюбивого сделать что-то, он пойдет и сделает. А ленивый программист потратит в 2-3 раза больше времени, но напишет скрипт, который будет — это делать за него.
Может быть, в первый раз на это будет потрачено неоправданно много времени, но при условии повторяющихся задач этот подход очень быстро окупается. Я считаю себя ленивым программистом. Это была преамбула, а теперь перейдем к делу.
История первая
Несколько лет назад я задумался, как бы мне улучшить свой английский. Ничего лучшего, чем чтение литературы, на ум не пришло. Была приобретена электронная читалка, закачаны книги и я начал читать. В процессе чтения постоянно попадались незнакомые слова. Я их сразу переводил посредством встроенных в читалку словарей, но я заметил одну особенность: слова не хотели запоминаться.
Когда я через несколько страниц снова встречал это слово, то с 90% вероятностью я снова нуждался в переводе, и так каждый раз. Напрашивался вывод, что мало просто переводить незнакомые слова в процессе чтения, нужно делать что-то еще. Идеальным бы вариантом было ввести его в обиход и начать пользоваться, но я живу не в англоязычной стране и это маловозможно. Тут мне вспомнилось, что я когда-то читал про Интервальные повторения.
Карточки Anki | Система интервальных повторений
Что это такое и с чем его едят? Если коротко, то есть такая кривая забывания, далее цитата из Википедии:
Уже в течение первого часа забывается до 60 % всей полученной информации, через 10 часов после заучивания в памяти остаётся 35 % от изученного. Далее процесс забывания идёт медленно, и через 6 дней в памяти остаётся около 20 % от общего числа первоначально выученных слогов, столько же остаётся в памяти и через месяц.
Выводы, которые можно сделать на основании данной кривой в том, что для эффективного запоминания необходимо повторение заученного материала.
АNKI это абсолютная бесплатная с открытым исходным кодом программа, которая реализует идею интервального повторения. Проще говоря, компьютеризированные флэш карточки, на одной стороне вопрос, на другой ответ. Так как вы можете делать вопросы/ответы с помощью обычного html/css/javascript, то можно сказать, что она обладает поистине безграничными возможностями. Кроме того, она расширяема специальными плагинами, и один из них нам в дальнейшем очень пригодится.
Вручную создавать карточки это долго, нудно, и с большой вероятностью через некоторое время вы на — это дело забьете и поэтому я в какой то момент задал себе вопрос, а можно ли это дело автоматизировать. Ответ — да, можно. И я это сделал. Скажу сразу, это больше POC (Proof of concept), но которым можно пользоваться.
Если будет интерес со стороны пользователей и подтянутся другие разработчики, то его можно довести до готового продукта, которым сможет пользоваться даже технически неграмотные пользователи. Сейчас же использование моей утилиты подразумевает некоторые знания в программировании.
Как ПРОСТО создать ЭФФЕКТИВНЫЕ карточки АНКИ? | ANKI CARDS
Я читаю книги с помощью программы AIReader. У нее есть возможность подключения внешних словарей, а также при переводе слова она сохраняет слово, на которое вы вызвали перевод, в текстовый файл. Осталось дело за малым, перевести эти слова и создать ANKI карточки.
Сначала я пытался использовать для перевода Google Translate, Lingvo API и т.д. Но с бесплатными сервисами дело не пошло. Бесплатный лимит я исчерпывал еще в процессе разработки, кроме того, по условиям лицензии я не имел права кэшировать слова. В какой то момент я понял, что нужно переводить слова самому. В итоге был написан модуль dsl2html к которому можно подключать DSL словари и который умеет конвертировать их в HTML формат.
Вот так выглядит словарная статья в *.html, мой вариант в сравнении с вариантом GoldenDict
Перед тем как искать слово в подключенных словарях я привожу его к словарной форме (лемме) с помощью библиотеки Stanford CoreNLP. На самом деле из-за этой библиотеки я и начал писать на Java и первоначальный план был написать все на Java, но в процессе я нашел библиотеку node-java с помощью которой можно относительно просто исполнять Java код из nodejs и часть кода написана на JavaScript. Если бы я нашел эту библиотеку раньше, то на Java не было бы написано ни строчки. Еще один побочный проект который родился в процессе это создание репозитория с DSL документацией которая была найдена в сети в формате *.chm, сконвертирована и приведена в божеский вид. Если автор оригинального файла пользователь по ником yozhic видит эту статью то большое ему спасибо за проделанную работу, без его документации у меня бы скорее всего ничего не получилось.
Итак, у меня есть слово на английском, его словарная статья в формате *.html, осталось свести все воедино, создать ANKI статьи из списка слов и внести их в базу данных ANKI. Для этой цели был создан следующий проект data2anki. Он умеет на вход брать список слов, переводить, создавать ANKI *.html статьи и записывать их в базу данных ANKI. В конце статьи есть инструкция как им пользоваться. Пока же история вторая где интервальные повторения могут быть полезны.
История вторая.
Все люди в поиске более/менее квалифицированной специальности в том числе и программисты сталкиваются с необходимостью подготовки к интервью. Многие концепты которые спрашивают на интервью вы не используете в каждодневной практике и они забываются.
При очередной подготовке к интервью, пролистывая конспект, книгу, справочник я столкнулся с тем, что очень много времени и внимания берет на то, чтобы отсеять информацию которую вы уже знаете потому, что она не всегда очевидна и приходится вчитываться, чтобы понять, что это нерелевантно. Когда же вы подходите к теме, которую действительно нужно повторить, очень часто бывает, что вы уже устали и качество подготовки страдает. В какой то момент я подумал, а почему бы не использоваться ANKI карточки и для этого? Например при конспектировании какой то темы, сразу создавать конспект в виде вопроса — ответа, а затем при повторении вы сразу будете знать, знаете вы или нет ответ на этот вопрос.
Проблема возникла только в том, что набивать вопросы очень долго и нудно. Чтобы облегчить процесс, в data2anki проект я добавил функциональность конвертировать markdown текст в ANKI карточки. Все, что вам надо, это написать один большой файл, в котором вопросы и ответы будут помечены заранее оговоренной последовательностью символов, по которым парсер будет понимать, где вопрос, а где ответ.
После того, как этот файл будет создан, вы запускаете data2anki и он создает ANKI карточки. Оригинальный файл легко править и делится, нужно лишь стереть соответствующую карточку(и) и снова запустить программу, и новый вариант будет создан.
Установка и пользованию
- Установка ANKI + AnkiConnect
- Скачиваете ANKI отсюда: https://apps.ankiweb.net/
- Устанавливаете AnkiConnect plugin: https://ankiweb.net/shared/info/2055492159
git clone https://github.com/anatoly314/data2anki
cd data2anki npm install
Has Front and Back fields, and will create one card. Text you enter in Front will appear on the front of the card, and text you enter in Back will appear on the back of the card.
node data2ankiindex.js
Например вот эта карточка вопрос/ответ:
Будет выглядеть в markdown следующим образом:
#QUESTION# ## Question 5. Write a mul function which will work properly when invoked with following syntax. «`javascript console.log(mul(2)(3)(4)); // output : 24 console.log(mul(4)(3)(4)); // output : 48 «` #ANSWER# Below is the code followed by the explanation of how it works: «`javascript function mul (x) < return function (y) < // anonymous function return function (z) < // anonymous function return x * y * z; >; >; > «` Here the `mul` function accepts the first argument and returns the anonymous function which takes the second parameter and returns the anonymous function which takes the third parameter and returns the multiplication of arguments which is being passed in successive In Javascript function defined inside has access to outer function variable and function is the first class object so it can be returned by the function as well and passed as an argument in another function. — A function is an instance of the Object type — A function can have properties and has a link back to its constructor method — A function can be stored as variable — A function can be pass as a parameter to another function — A function can be returned from another function
Пример взят отсюда: 123-JavaScript-Interview-Questions
node data2ankiindex.js
Вот так это выглядит на мобильном телефоне:
Результат
Полученные на desktop версии ANKI карточки без проблем синхронизируются с ANKI облаком (бесплатно до 100mb), а дальше вы можете пользоваться ими уже везде. Есть клиенты под Android и iPhone, также можно пользоваться и в браузере.
В результате, если у вас есть время, которое не на что потратить, то вместо того, чтобы бесцельно пролистывать фейсбук или котиков в инстаграм, можно учить что-то новое.
Эпилог
Как я уже упоминал, это скорее рабочий POC, которым можно пользоваться, чем законченный продукт. Где-то процентов 30% стандарта DSL парсера не имплементировано, и поэтому, например не все словарные статьи которые есть в словарях могут быть найдены, также есть идея переписать его на JavaScript, так как хочется «consistency», а кроме того, сейчас он написан не очень оптимально.
Сейчас парсер строит дерево, а это помоему лишнее и не нужно усложняет код. В markdown2anki режиме картинки не парсятся. Я буду стараться потихоньку пилить, но, так как пока пишу для себя, то в первую очередь буду решать те грабли, на которые буду сам наступать, но если кто-то захочет помочь, то милости просим.
Если есть вопросы, по программе, то буду рад помочь через отрытые issues в соответствующих проектах. Остальную критику и предложения пишите здесь. Надеюсь, кому-то этот проект будет полезен.
P.S. Если заметили ошибки (а они, к сожалению, есть), пишите в личку, все поправлю.
- учебный процесс в it
- изучение иностранных языков
- флэш-карты
- anki
- Учебный процесс в IT
- Изучение языков
Источник: habr.com
Компьютерная программа Anki — отзыв
Я думаю, что каждому в своей жизни рано или поздно приходится что-то заучивать. Будь-то какой-либо иностранный язык, или географические названия. Для этой цели отлично подходит программа anki. Это простая программа для заучивания. Люди сами создают карточки, например с каким-то вопросом, а потом при нажатии появляется ответ.
Я пользуюсь ей уже около месяца, и могу точно сказать, anki — очень помогает в моём изучении японского языка.
Благодаря этой программе получается заучивать до 10-15 иероглифов в день, а потом в последующие дни повторять и закреплять их. Программа сама предоставляет варианты которые нужно повторить, заучить, или которые вы уже точно запомнили. Достаточно только честно выбирать статус карточки (трудно запоминается, хорошо, уже запомнил и.т.д.) В ней очень просто разобраться, и так же огромным плюсом является наличие приложения для телефонов — ankidroid.
Но не всё так радужно. Самой ключевой проблемой является сам принцип карточек. Их составляют обычные люди, а это значит, что в них с очень большой долей вероятности могут присутствовать ошибки, либо неточности. На этот случай в приложении имеется рейтинг карточек и комментарии к ним от пользователей, это очень помогает выбрать хороший и проверенный набор.
В заключение, хотелось бы сказать, что это весьма полезная программа, если вам надо что-то заучить или зазубрить. Однако её нужно использовать вкупе с другими методами. Поскольку зубрёжка никогда не принесёт результата, если не использовать ту информацию, что вы заучили. Она просто забудется.
Достоинства
- Бесплатно
- Легко понятная
- Обширный список карточек
- Помогает учиться
Источник: irecommend.ru
Отзывы о программе Anki
Я имею ввиду колоды неоткрвает, за сегодня 9 посмотрел в течении 4 минут, но там че то с ответами не то нету да нет незнаю, есть минуты и тупые ответы. География России, а щас вообще перестало открывать.
2 | 2 | Ответить
Беляев про Anki 2.1.5 [07-12-2018]
Вообщем скачал касперский, че то перестало ссылки открывать, хз в чем дело, неучит и все.
2 | 3 | Ответить
дыбка а в про Anki 2.1.5 [15-11-2018]
три раза устанавливал и удалял. разобраться не просто -но теперь без нее вообще не представляю как можно учиться!
2 | 3 | Ответить
Александр про Anki 2.0.48 [31-07-2018]
Самый главный недостаток Anki — после ее загрузки пользоваться ею невозможно! Нужно изучать ее, лучше всего на ютубе. Мне как-то пришло на почту письмо с предложением установить ее. Так там автор подробно описал, как ее запустить для работы. Все получилось, а потом нужно было переустанавливать винду, а я сдуру удалил письмо из ящика. И теперь надо искать, как ею пользоваться.
Там там сам черт ногу сломит! Это главная недоработка разработчика этой проги.
2 | 2 | Ответить
Valentina про Anki 2.0.41 [12-03-2017]
Сижу 3 дня.Ничего не получается. Это просто какая-то головоломка! Делаю всё по шагово, всё равно не получается.Уже сил нет. Придётся вызвать мастера, чтобы помог. Не понимаю что не так!
3 | 17 | Ответить
Пользователь про Anki 2.0.31 [19-03-2016]
Получались пока поняли как использовать, использовали для изучения иностранного языка. Но когда научились, то вообще не представляю как без нее учить много и быстро и дёшево вообще можно только с не рекомендую
4 | 11 | Ответить
svetlana про Anki 2.0.31 [25-03-2015]
Очень помогает в обучении!!
4 | 2 | Ответить
Лана:)) про Anki 2.0.3 [30-06-2014]
я вообще не понимаю как пользоваться этой хренью. с
2 | 16 | Ответить
из деревни про Anki 2.0.3 [26-12-2013]
Для авиамодельных кружков подойдет ?
7 | 6 | Ответить
Источник: www.softportal.com