ANKI сизге чет тилин үйрөнүүгө жана интервьюга даярданууга кантип жардам берери тууралуу эки окуя

Мен ар дайым жалкоо программист жакшы программист деп ишенчүмүн. Неге? Анткени мээнеткечтен бир нерсе сурасаң, барып аткарат. Ал эми жалкоо программист 2-3 эсе көп убакыт коротот, бирок аны аткара турган сценарий жазат. Муну биринчи жолу жасоо үчүн негизсиз көп убакыт талап кылынышы мүмкүн, бирок кайталанган тапшырмалар менен бул ыкма абдан тез натыйжа берет. Мен өзүмдү жалкоо программист деп эсептейм. Бул преамбула болчу, эми ишке киришели.

биринчи окуя

Бир нече жыл мурун мен англис тилимди кантип жакшыртсам болот деп ойлончумун. Адабий окуудан артык эч нерсе оюма келген жок. Мен электрондук окурман сатып алдым, китептерди жүктөп алдым жана окуй баштадым. Окуп жатып бейтааныш сөздөрдү кезиктирдим. Мен аларды дароо окурманга орнотулган сөздүктөрдүн жардамы менен котордум, бирок мен бир өзгөчөлүгүн байкадым: сөздөр эсте калгысы келген жок. Мен бул сөздү бир нече барактан кийин дагы жолуктурганымда, 90% ыктымалдуулук менен кайра котормо керек болчу, жана ар бир жолу. Жыйынтык: окуп жатканда тааныш эмес сөздөрдү жөн эле которуу аздык кылат, башка нерсе кылыш керек. Аны күнүмдүк жашоого киргизүү жана аны колдонуу идеалдуу вариант болмок, бирок мен англис тилдүү өлкөдө жашабайм жана бул мүмкүн эмес. Анан бир жолу окуганымды эстедим Аралык кайталоо.

Бул эмне жана аны эмне менен жейт? Кыскасы, бул бар унутуу ийри, андан ары Википедиядан цитата:

Биринчи сааттын ичинде бардык алынган маалыматтын 60%ке чейин унутулат, жаттап алгандан 10 саат өткөндөн кийин үйрөнгөндөрдүн 35% эсинде калат. Андан кийин унутуу процесси жай жүрүп, 6 күндөн кийин алгач үйрөнүлгөн муундардын жалпы санынын 20%ке жакыны эс тутумда, ал эми бир айдан кийин да ошол эле сан эс тутумда калат.

Ошондон корутунду

Бул ийри сызыктын негизинде чыгарыла турган тыянактар ​​эффективдүү жаттоо үчүн жаттаган материалды кайталоо зарыл.

Ошентип, биз бир идея менен келдик аралыкта кайталоо.

АКИ мейкиндикти кайталоо идеясын ишке ашырган толугу менен акысыз жана ачык программа. Жөнөкөй сөз менен айтканда, компьютерлештирилген флеш-карталардын бир тарабында суроо, экинчи тарабында жооп бар. Кадимки колдонуу менен суроолорду/жоопторду жасай аласыз html/css/javascript, анда биз анын чындап эле чексиз мүмкүнчүлүктөрү бар деп айта алабыз. Мындан тышкары, ал атайын менен кеңейтилет плагиндер, жана алардын бири келечекте бизге абдан пайдалуу болот.

Карточкаларды кол менен түзүү узак, тажатма жана чоң ыктымалдуулук менен, бир аз убакыт өткөндөн кийин бул тапшырманы унутуп каласыз, ошондуктан бир учурда мен өзүмө суроо бердим, бул ишти автоматташтыруу мүмкүнбү? Жооп ооба, мүмкүн. Мен аны жасадым. Мен дароо айтам, бул көбүрөөк POC (концепциянын далили), бирок кайсынысын колдонсо болот. Эгер колдонуучулардын жана башка иштеп чыгуучулардын кызыгуусу болсо, анда аны техникалык жактан сабатсыз колдонуучулар да колдоно ала турган даяр продукцияга айлантса болот. Эми менин утилитамды колдонуу программалоо боюнча бир аз билимди талап кылат.

Программанын жардамы менен китептерди окуйм AI Reader. Ал тышкы сөздүктөрдү бириктирүү мүмкүнчүлүгүнө ээ жана сиз сөздү которгондо котормого чакырган сөздү тексттик файлга сактап калат. Бул сөздөрдү которуу жана ANKI карталарын түзүү гана калды.

Алгач котормодо колдонууга аракет кылдым Google которуу, Lingvo API жана башкалар. Бирок бекер кызматтар менен баары жакшы болгон жок. Мен иштеп чыгуу процессинде бекер чекти түгөттүм, андан тышкары, лицензиянын шарттарына ылайык, менде сөздөрдү кэш кылууга укугум жок болчу. Бир убакта мен сөздөрдү өзүм которуу керек экенин түшүндүм. Натыйжада, модуль жазылган dsl2html ага туташа аласыз DSL сөздүктөр жана аларды кантип айландырууну ким билет HTML формат.

Сөздүк жазуусу ушундай көрүнөт *.html, менин вариантым вариантка салыштырмалуу GoldenDict

ANKI сизге чет тилин үйрөнүүгө жана интервьюга даярданууга кантип жардам берери тууралуу эки окуя

Байланышкан сөздүктөрдөн бир сөздү издөөдөн мурун, мен аны алып келем сөздүк формасы (лемма) китепкананы колдонуу Stanford CoreNLP. Чынында, бул китепкананын аркасында мен Java тилинде жаза баштадым жана баштапкы планда бардыгын Java тилинде жазуу болчу, бирок процессте мен китепкананы таптым. node-java анын жардамы менен сиз Java кодун nodejsден салыштырмалуу оңой аткара аласыз жана коддун бир бөлүгү JavaScriptте жазылган. Эгер мен бул китепкананы мурда тапкан болсом, Java тилинде бир да сап жазылмак эмес. Процессинде пайда болгон дагы бир кошумча долбоор - бул түзүү DSL документтери менен репозиторий тармакта табылган * форматында.chm, айландырылып, кудайлык формага келтирилген. Эгерде түпнуска файлдын автору ник аты боюнча колдонуучу болсо йожик Ал бул макаланы көргөндө, мен ага кылган иши үчүн абдан ыраазымын; анын документтери болбосо, мен ийгиликке жете алмак эмесмин.

Ошентип, менде англис тилинде бир сөз бар, анын форматындагы сөздүк жазуусу *.html, бардыгын чогултуу, сөздөрдүн тизмесинен ANKI макалаларын түзүү жана аларды ANKI маалымат базасына киргизүү гана калды. Бул үчүн төмөнкү долбоор түзүлгөн data2anki. Ал сөздөрдүн тизмесин киргизүү, которуу, ANKI түзө алат *.html макалаларды жана аларды ANKI маалымат базасына жазыңыз. Макаланын аягында аны кантип колдонуу керектиги боюнча көрсөтмөлөр бар. Ошол эле учурда, экинчи окуя мейкиндик менен кайталоо пайдалуу болушу мүмкүн.

Экинчи окуя.

Квалификациялуу адистикти, анын ичинде программисттерди издеп жүргөн бардык адамдар интервьюга даярдануу зарылдыгына туш болушат. Интервьюда суралган түшүнүктөрдүн көбү күнүмдүк практикада колдонулбайт жана алар унутулуп калат. Интервьюга даярданууда, конспекттерди, китепти, маалымдаманы барактап жатканда, мен сиз билген маалыматты иргеп алуу көп убакытты жана көңүл бурууну талап кыла турган фактыга туш болдум, анткени алар дайыма эле ачык-айкын боло бербейт жана анын эмне экенин түшүнүү үчүн кунт коюп окугула. Чынында эле кайталоону талап кылган темага келгенде, көп учурда сиз чарчап, даярдануунун сапаты начарлайт. Бир убакта мен ойлодум, эмне үчүн бул үчүн ANKI карталарын колдонбойм? Мисалы, бир тема боюнча конспект жазып жатканда дароо суроо-жооп түрүндөгү жазуу түзүңүз, анан аны кайталаганыңызда бул суроонун жообун билесизби же жокпу, дароо билесиз.

Бир гана маселе, суроолорду терүү абдан узун жана түйшүктүү болгон. Процессти жеңилдетүү үчүн, data2anki долбоорго мен конверттөө функциясын коштум Markdown ANKI карталарындагы текст. Сизге болгону бир чоң файлды жазуу керек, анда суроолор жана жооптор белгилердин алдын ала белгиленген ырааттуулугу менен белгиленет, анын жардамы менен талдоочу суроонун жана жооптун кайда экенин түшүнөт.

Бул файл түзүлгөндөн кийин, сиз data2anki иштетесиз жана ал ANKI карталарын түзөт. Түпнуска файлды түзөтүү жана бөлүшүү оңой, сиз жөн гана тиешелүү картаны(ларды) өчүрүп, программаны кайра иштетишиңиз керек, ошондо жаңы версия түзүлөт.

Орнотуу жана колдонуу

  1. ANKI + AnkiConnect орнотулууда

    1. Бул жерден ANKI жүктөп алыңыз: https://apps.ankiweb.net/
    2. AnkiConnect плагинин орнотуу: https://ankiweb.net/shared/info/2055492159

  2. жөндөө data2anki

    1. Жүктөп алуу data2anki github репозиторийинен
      git clone https://github.com/anatoly314/data2anki
    2. Көз карандылыкты орнотуу
      cd data2anki && npm install
    3. Java көз карандылыгын жүктөп алыңыз https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Пакеттен чыгаруу jar-dependencies.zip жана анын мазмунун жайгаштырыңыз data2anki/java/jars

  3. Сөздөрдү которуу үчүн колдонуңуз:

    1. Файлда data2anki/config.json:

      • ачкычта режими маанини киргизиңиз dsl2anki

      • ачкычта modules.dsl.anki.deckName и modules.dsl.anki.modelName ошого жараша жаз Палубанын аталышы и модель Name (карталарды түзүүдөн мурун мурунтан эле түзүлүшү керек). Учурда моделдин түрү гана колдоого алынат негизги:

        Алдыңкы жана Арткы талаалары бар жана бир картаны түзөт. Алдыңкы жагына киргизген текст картанын алдыңкы жагында, ал эми Артка киргизген текст картанын арткы бетинде пайда болот.

        оригиналдуу сөз кайда? Алдыңкы талаа, жана котормо ичинде болот Арткы талаа.

        Колдоо кошуу үчүн эч кандай көйгөй жок Негизги (жана тескери карта), бул жерде сөз жана котормо үчүн тескери карта түзүлөт, мында котормонун негизинде сиз түпнуска сөздү эстеп калуу керек болот. Сизге болгону убакыт жана каалоо керек.

      • ачкычта modules.dsl.dictionariesPath туташкан * менен массивди каттоо.dsl сөздүктөр. Ар бир туташкан сөздүк бул форматка ылайык сөздүк файлдары жайгашкан каталог: DSL сөздүк түзүмү

      • ачкычта modules.dsl.wordToTranslatePath которууну каалаган сөздөрдүн тизмесине жолду киргизиңиз.

    2. ANKI тиркемеси иштеп жатканда ишке киргизиңиз
      node data2ankiindex.js
    3. ПАЙДА!!!

  4. Markdownдан карталарды түзүү үчүн колдонот

    1. Файлда data2anki/config.json:

      • ачкычта режими маанини киргизиңиз markdown2anki
      • ачкычта modules.markdown.anki.deckName и modules.dsl.anki.modelName ошого жараша жаз Палубанын аталышы и модель Name (карталарды түзүүдөн мурун мурунтан эле түзүлүшү керек). үчүн markdown2anki режими гана моделдин түрү колдоого алынат негизги.
      • ачкычта modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors сиз тиешелүүлүгүнө жараша суроонун жана жооптун башталышын белгилеген селекторлорду жазасыз. Селектордун өзү бар сап талданбайт жана картада бүтпөйт, талдоочу кийинки саптан иштей баштайт.

        Мисалы, бул суроо/жооп картасы:

        ANKI сизге чет тилин үйрөнүүгө жана интервьюга даярданууга кантип жардам берери тууралуу эки окуя

        Бул белгилөөдө мындай болот:
        #СУРОО# ## 5-суроо. Төмөнкү синтаксис менен чакырылганда туура иштей турган mul функциясын жазыңыз. ```javascript console.log(mul(2)(3)(4)); // output : 24 console.log(mul(4)(3)(4)); // чыгарылыш : 48 ``` #ANWER# Төмөндө коддон кийин анын кантип иштээри түшүндүрүлөт: ```javascript функциясы mul (x) { return function (y) { // анонимдүү функция кайтаруу функциясы (z) { // анонимдүү функцияны кайтаруу x * y * z; }; }; } ``` Бул жерде `mul` функциясы биринчи аргументти кабыл алат жана экинчи параметрди кабыл алган анонимдүү функцияны кайтарат жана үчүнчү параметрди кабыл алган жана катары менен берилип жаткан аргументтердин көбөйүшүн кайтарат Javascript функциясында аныкталган ичинде тышкы функциянын өзгөрмөсүнө кирүү мүмкүнчүлүгү бар жана функция биринчи класстын объекти болуп саналат, андыктан ал функция тарабынан да кайтарылып, башка функцияда аргумент катары берилиши мүмкүн. - Функция Объект түрүнүн бир мисалы болуп саналат - Функция касиеттерге ээ болушу мүмкүн жана анын конструктор ыкмасына шилтемеси бар - Функция өзгөрмө катары сакталышы мүмкүн - Функция башка функцияга параметр катары берилиши мүмкүн - Функция болушу мүмкүн башка функциядан кайтып келди
        

        Бул жерден алынган мисал: 123-JavaScript-Интервью-суроолор

        Долбоордун папкасында мисалдар бар файл да бар examples/markdown2anki-example.md

      • ачкычта modules.markdown.pathToFile
        файлдын жолун жазыңыз, анда *.ру суроо/жооп файлы

    2. ANKI тиркемеси иштеп жатканда ишке киргизиңиз
      node data2ankiindex.js
    3. ПАЙДА!!!

Бул мобилдик телефондо кандай көрүнөт:

жыйынтык

ANKIнин рабочий версиясында алынган карталар ANKI булуту менен көйгөйсүз синхрондолот (100 мб чейин бош), андан кийин сиз аларды бардык жерде колдоно аласыз. Android жана iPhone үчүн кардарлар бар жана сиз аны браузерде да колдоно аласыз. Натыйжада, эгер сизде эч нерсе коротпогон убактыңыз болсо, анда Facebook же Instagramдагы мышыктарды максатсыз сыдыруунун ордуна, сиз жаңы нерсени үйрөнө аласыз.

эпилогунда

Мен айтып өткөндөй, бул даяр продукцияга караганда колдоно турган иштеген POC. DSL талдоочу стандартынын болжол менен 30% ишке ашырылган эмес, ошондуктан, мисалы, сөздүктөрдөгү бардык сөздүк жазууларды табууга болбойт, аны кайра жазуу идеясы да бар JavaScript, Мен "ырааттуулугу" келет, анткени, жана андан тышкары, азыр абдан оптималдуу жазылган эмес. Азыр талдоочу даракты куруп жатат, бирок менин оюмча, бул керексиз жана кодду татаалдаштыруунун кереги жок. IN markdown2anki режиминде, сүрөттөр талданбайт. Аз-аздан кескенге аракет кылам, бирок өзүм үчүн жазып жаткандыктан, биринчи кезекте өзүм басып кете турган көйгөйлөрдү чечем, бирок кимдир бирөө жардам берүүнү кааласа, анда макул болуңуз. Программа боюнча суроолоруңуз болсо, мен тиешелүү долбоорлордо ачык маселелер аркылуу жардам берүүгө даярмын. Башка сын жана сунуштарды бул жерге жазыңыз. Бул долбоор кимдир бирөө үчүн пайдалуу болот деп ишенем.

PS Эгер кандайдыр бир каталарды байкасаңыз (жана, тилекке каршы, кээ бирлери бар), мага жеке билдирүүгө жазыңыз, мен баарын оңдойм.

Source: www.habr.com

Комментарий кошуу