Dy histori se si ANKI mund t'ju ndihmojë të mësoni një gjuhë të huaj dhe të përgatiteni për një intervistë

Gjithmonë kam besuar se një programues dembel është një programues i mirë. Pse? Sepse kërkoni një punëtor të vështirë të bëjë diçka, ai do të shkojë dhe ta bëjë atë. Dhe një programues dembel do të shpenzojë 2-3 herë më shumë kohë, por do të shkruajë një skenar që do ta bëjë atë për të. Mund të duhet një kohë e paarsyeshme për ta bërë këtë herën e parë, por me detyra të përsëritura kjo qasje do të shpërblehet shumë shpejt. Unë e konsideroj veten një programues dembel. Kjo ishte preambula, tani le t'i drejtohemi punës.

Historia e parë

Disa vite më parë pyesja veten se si mund ta përmirësoja anglishten time. Nuk më erdhi në mendje asgjë më e mirë se leximi i letërsisë. Bleva një lexues elektronik, shkarkova libra dhe fillova të lexoj. Gjatë leximit, më takonte vazhdimisht fjalë të panjohura. I përktheva menjëherë duke përdorur fjalorët e integruar në lexues, por vura re një veçori: fjalët nuk donin të mbaheshin mend. Kur e ndesha sërish këtë fjalë disa faqe më vonë, me një probabilitet 90% përsëri kisha nevojë për përkthim dhe kjo ndodhte çdo herë. Përfundimi ishte se nuk mjaftonte thjesht të përktheshit fjalë të panjohura gjatë leximit, duhet të bëni diçka tjetër. Opsioni ideal do të ishte futja e tij në jetën e përditshme dhe fillimi i përdorimit të tij, por unë nuk jetoj në një vend anglishtfolës dhe kjo nuk ka gjasa. Pastaj m'u kujtua se kisha lexuar dikur Përsëritje në hapësirë.

Çfarë është dhe me çfarë hahet? Me pak fjalë, ekziston kjo harresa kurbë, citim i mëtejshëm nga Wikipedia:

Tashmë brenda orës së parë, deri në 60% e të gjithë informacionit të marrë harrohet; 10 orë pas memorizimit, 35% e asaj që është mësuar mbetet në kujtesë. Pastaj procesi i harresës vazhdon ngadalë dhe pas 6 ditësh rreth 20% e numrit të përgjithshëm të rrokjeve të mësuara fillimisht mbetet në kujtesë dhe e njëjta sasi mbetet në kujtesë pas një muaji.

Dhe përfundimi nga këtu

Përfundimet që mund të nxirren në bazë të kësaj kurbe janë se për memorizimin efektiv është e nevojshme të përsëritet materiali i memorizuar.

Kështu na erdhi një ide përsëritje në distancë.

ANKI është një program plotësisht i lirë dhe me burim të hapur që zbaton idenë e përsëritjes në distancë. E thënë thjesht, kartat e kompjuterizuara flash kanë një pyetje në njërën anë dhe një përgjigje nga ana tjetër. Meqenëse mund të bëni pyetje/përgjigje duke përdorur rregullisht html/css/javascript, atëherë mund të themi se ka mundësi vërtet të pakufishme. Përveç kësaj, është i zgjerueshëm me speciale shtojcat, dhe njëra prej tyre do të jetë shumë e dobishme për ne në të ardhmen.

Krijimi manual i kartave është i gjatë, i lodhshëm dhe me një probabilitet të lartë, pas një kohe do ta harroni këtë detyrë, dhe kështu në një moment i bëra vetes pyetjen, a është e mundur të automatizoni këtë detyrë. Përgjigja është po, mundeni. Dhe e bëra. Unë do të them menjëherë, është më shumë POC (Proof of Concept), por që mund të përdoret. Nëse ka interes nga përdoruesit dhe zhvilluesit e tjerë përfshihen, atëherë ai mund të sillet në një produkt të përfunduar që mund ta përdorin edhe përdoruesit teknikisht analfabetë. Tani, përdorimi i programit tim kërkon disa njohuri të programimit.

Kam lexuar libra duke përdorur programin AIRreader. Ka aftësinë për të lidhur fjalorë të jashtëm dhe kur përktheni një fjalë, ruan fjalën që thirrët për përkthim në një skedar teksti. Mbetet vetëm përkthimi i këtyre fjalëve dhe krijimi i kartave ANKI.

Në fillim u përpoqa të përdorja për përkthim Google Translate, Lingvo API etj. Por gjërat nuk funksionuan me shërbimet falas. Kam ezauruar kufirin e lirë gjatë procesit të zhvillimit, përveç kësaj, sipas kushteve të licencës, nuk kam pasur të drejtë të ruaj fjalët në cache. Në një moment kuptova se më duhej t'i përkthej vetë fjalët. Si rezultat, u shkrua një modul dsl2html me të cilat mund të lidheni fjalorë DSL dhe kush di t'i shndërrojë në HTML formatin

Kështu duket një hyrje në fjalor në *. Html, opsioni im në krahasim me opsionin GoldenDict

Dy histori se si ANKI mund t'ju ndihmojë të mësoni një gjuhë të huaj dhe të përgatiteni për një intervistë

Para se të kërkoj një fjalë në fjalorë të lidhur, e sjell atë në forma e fjalorit (lema) duke përdorur bibliotekën Stanford CoreNLP. Në fakt, për shkak të kësaj biblioteke, unë fillova të shkruaj në Java dhe plani fillestar ishte të shkruaja gjithçka në Java, por gjatë procesit gjeta bibliotekën nyja-java me të cilin mund të ekzekutoni relativisht lehtë kodin Java nga nodejs dhe një pjesë e kodit është e shkruar në JavaScript. Nëse do ta kisha gjetur këtë bibliotekë më herët, asnjë rresht i vetëm nuk do të ishte shkruar në Java. Një tjetër projekt anësor që lindi në këtë proces është krijimi depo me dokumentacion DSL e cila u gjet në rrjet në formatin *.km, i konvertuar dhe i sjellë në formë hyjnore. Nëse autori i skedarit origjinal është një përdorues me pseudonim yozhic Kur e sheh këtë artikull, e falënderoj shumë për punën që ka bërë, pa dokumentacionin e tij, me shumë mundësi nuk do të kisha pasur sukses.

Pra, unë kam një fjalë në anglisht, hyrjen e saj në fjalor në formatin *. Html, gjithçka që mbetet është të bashkojmë gjithçka, të krijojmë artikuj ANKI nga lista e fjalëve dhe t'i futim në bazën e të dhënave ANKI. Për këtë qëllim u krijua projekti i mëposhtëm data2anki. Mund të marrë një listë fjalësh si hyrje, të përkthejë, të krijojë ANKI *. Html artikuj dhe t'i regjistroni në bazën e të dhënave ANKI. Në fund të artikullit ka udhëzime se si ta përdorni. Ndërkohë, historia e dytë është ajo ku përsëritjet në distancë mund të jenë të dobishme.

Historia e dytë.

Të gjithë njerëzit në kërkim të një specialiteti më shumë/më pak të kualifikuar, përfshirë programuesit, përballen me nevojën për t'u përgatitur për një intervistë. Shumë nga konceptet që kërkohen në intervista nuk i përdorni në praktikën e përditshme dhe ato harrohen. Kur përgatitesha për një intervistë, duke shfletuar shënime, një libër, një libër referimi, u përballa me faktin se kërkon shumë kohë dhe vëmendje për të shoshitur informacionin që tashmë i dini, sepse nuk është gjithmonë i dukshëm dhe duhet të lexojeni me kujdes për të kuptuar se çfarë është.e parëndësishme. Kur vini në një temë që vërtet duhet të përsëritet, shpesh ndodh që tashmë jeni të lodhur dhe cilësia e përgatitjes suaj vuan. Në një moment mendova, pse të mos përdor kartat ANKI edhe për këtë? Për shembull, kur mbani shënime për një temë, krijoni menjëherë një shënim në formën e një pyetje dhe përgjigje, dhe më pas kur ta përsërisni, do të kuptoni menjëherë nëse e dini përgjigjen e kësaj pyetjeje apo jo.

Problemi i vetëm që lindi ishte se shtypja e pyetjeve ishte shumë e gjatë dhe e lodhshme. Për ta bërë më të lehtë procesin, data2anki Projekti i shtova funksionalitetin e konvertimit Markdown teksti në kartat ANKI. Gjithçka që ju nevojitet është të shkruani një skedar të madh në të cilin pyetjet dhe përgjigjet do të shënohen me një sekuencë të paracaktuar karakteresh, me anë të së cilës analizuesi do të kuptojë se ku është pyetja dhe ku është përgjigja.

Pasi të krijohet ky skedar, ju ekzekutoni data2anki dhe ai krijon karta ANKI. Skedari origjinal është i lehtë për t'u modifikuar dhe shpërndarë, ju vetëm duhet të fshini kartën(at) përkatëse dhe të ekzekutoni përsëri programin dhe do të krijohet një version i ri.

Instalimi dhe përdorimi

  1. Instalimi i ANKI + AnkiConnect

    1. Shkarkoni ANKI nga këtu: https://apps.ankiweb.net/
    2. Instaloni shtojcën AnkiConnect: https://ankiweb.net/shared/info/2055492159

  2. Instalim data2anki

    1. Shkarko data2anki nga depoja e github
      git clone https://github.com/anatoly314/data2anki
    2. Instaloni varësitë
      cd data2anki && npm install
    3. Shkarkoni varësinë nga java https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Shpaketimi jar-varësi.zip dhe vendosni përmbajtjen e tij data2anki/java/jars

  3. Përdorni për të përkthyer fjalët:

    1. Në dosje data2anki/config.json:

      • në çelës mënyrë shkruani vlerën dsl2anki

      • në çelës modules.dsl.anki.deckName и modules.dsl.anki.modelName shkruani në përputhje me rrethanat Emri i kuvertës и Emri Modeli (duhet të krijohet tashmë përpara krijimit të kartave). Aktualisht mbështetet vetëm lloji i modelit Themelor:

        Ka fushat e përparme dhe të pasme dhe do të krijojë një kartë. Teksti që futni "Përpara" do të shfaqet në pjesën e përparme të kartës dhe teksti që futni "Prapa" do të shfaqet në pjesën e pasme të kartës.

        ku eshte fjala origjinale? Fusha e përparme, dhe përkthimi do të jetë në Fusha e pasme.

        Nuk ka asnjë problem për të shtuar mbështetje Karta bazë (dhe e kundërt), ku do të krijohet një kartë e pasme për fjalën dhe përkthimin, ku në bazë të përkthimit do t'ju duhet të mbani mend fjalën origjinale. Gjithçka që ju nevojitet është koha dhe dëshira.

      • në çelës modules.dsl.dictionariesPath regjistroni një grup me të lidhur *.dsl fjalorë. Çdo fjalor i lidhur është një drejtori në të cilën skedarët e fjalorit ndodhen në përputhje me formatin: Struktura e fjalorit DSL

      • në çelës modules.dsl.wordToTranslatePath futni shtegun për në listën e fjalëve që dëshironi të përktheni.

    2. Niseni duke ekzekutuar aplikacionin ANKI
      node data2ankiindex.js
    3. FITIMI!!!

  4. Përdoret për krijimin e kartave nga shënimi

    1. Në dosje data2anki/config.json:

      • në çelës mënyrë shkruani vlerën markdown2anki
      • në çelës modules.markdown.anki.deckName и modules.dsl.anki.modelName shkruani në përputhje me rrethanat Emri i kuvertës и Emri Modeli (duhet të krijohet tashmë përpara krijimit të kartave). Për markdown2anki Lloji i modelit vetëm në modalitet mbështetet Themelor.
      • në çelës modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors ju shkruani përzgjedhës me të cilët shënoni përkatësisht fillimin e pyetjes dhe përgjigjes. Vetë rreshti me përzgjedhësin nuk do të analizohet dhe nuk do të përfundojë në kartë; analizuesi do të fillojë të punojë nga rreshti tjetër.

        Për shembull, kjo kartë pyetje/përgjigje:

        Dy histori se si ANKI mund t'ju ndihmojë të mësoni një gjuhë të huaj dhe të përgatiteni për një intervistë

        Do të duket kështu në shenjë:
        #QUESTION# ## Pyetja 5. Shkruani një funksion mul i cili do të funksionojë siç duhet kur thirret me sintaksën e mëposhtme. ``` tastiera javascript.log(mul(2)(3)(4)); // dalje : 24 console.log(mul(4)(3)(4)); // output : 48 ``` #ANSWER# Më poshtë është kodi i ndjekur nga shpjegimi se si funksionon: ```funksioni javascript mul (x) {funksioni kthyes (y) { // funksioni anonim i kthimit të funksionit (z) { // kthimi i funksionit anonim x * y * z; }; }; } ``` Këtu funksioni `mul` pranon argumentin e parë dhe kthen funksionin anonim i cili merr parametrin e dytë dhe kthen funksionin anonim i cili merr parametrin e tretë dhe kthen shumëzimin e argumenteve i cili kalohet në mënyrë të njëpasnjëshme në funksionin Javascript të përcaktuar. brenda ka akses në variablin e funksionit të jashtëm dhe funksioni është objekti i klasit të parë, kështu që mund të kthehet edhe nga funksioni dhe të kalojë si argument në një funksion tjetër. - Një funksion është një shembull i tipit Object - Një funksion mund të ketë veti dhe ka një lidhje me metodën e tij konstruktor - Një funksion mund të ruhet si variabël - Një funksion mund të kalojë si parametër në një funksion tjetër - Një funksion mund të jetë kthyer nga një funksion tjetër
        

        Shembull i marrë nga këtu: 123-JavaScript-Intervistë-Pyetje

        Ekziston edhe një skedar me shembuj në dosjen e projektit examples/markdown2anki-example.md

      • në çelës modules.markdown.pathToFile
        shkruani shtegun e skedarit ku *.md dosje pyetje/përgjigje

    2. Niseni duke ekzekutuar aplikacionin ANKI
      node data2ankiindex.js
    3. FITIMI!!!

Ja si duket në një celular:

Result

Kartat e marra në versionin desktop të ANKI sinkronizohen pa probleme me renë ANKI (falas deri në 100 mb), dhe më pas mund t'i përdorni kudo. Ka klientë për Android dhe iPhone, dhe mund ta përdorni edhe në një shfletues. Si rezultat, nëse keni kohë për të cilën nuk keni asgjë për të shpenzuar, atëherë në vend që të lëvizni pa qëllim nëpër Facebook ose macet në Instagram, mund të mësoni diçka të re.

epilog

Siç e përmenda, kjo është më shumë një POC funksionale që mund ta përdorni sesa një produkt i përfunduar. Rreth 30% e standardit të analizuesit DSL nuk është zbatuar, dhe për këtë arsye, për shembull, jo të gjitha hyrjet e fjalorit që janë në fjalor mund të gjenden, ekziston edhe një ide për ta rishkruar atë JavaScript, sepse dua "konsistencë", dhe përveç kësaj, tani nuk është shkruar shumë në mënyrë optimale. Tani analizuesi po ndërton një pemë, por për mendimin tim kjo është e panevojshme dhe nuk ka nevojë të komplikojë kodin. NË markdown2anki modaliteti, imazhet nuk analizohen. Do mundohem te shkurtoj pak nga pak, por meqenese po shkruaj per vete do te zgjidh problemet qe une vete do te shkel, por nese dikush do te ndihmoje atehere ju mirepresim. Nëse keni pyetje rreth programit, do të jem i lumtur t'ju ndihmoj përmes çështjeve të hapura në projektet përkatëse. Shkruani kritika dhe sugjerime të tjera këtu. Shpresoj se ky projekt do të jetë i dobishëm për dikë.

PS Nëse vëreni ndonjë gabim (dhe, për fat të keq, ka disa), më shkruani në një mesazh personal, unë do të korrigjoj gjithçka.

Burimi: www.habr.com

Shto një koment