Zwou Geschichten iwwer wéi d'ANKI Iech hëllefe kann eng Friemsprooch ze léieren a sech op en Interview virzebereeden

Ech hunn ëmmer gegleeft datt e faul Programméierer e gudde Programméierer ass. Firwat? Well en haart Aarbechter froen eppes ze maachen, hie wäert goen an et maachen. An e faulen Programméierer wäert 2-3 Mol méi Zäit verbréngen, awer schreift e Skript deen et fir hien mécht. Et kann eng onraisonnabel laang Zäit huelen fir dëst déi éischte Kéier ze maachen, awer mat widderholl Aufgaben wäert dës Approche ganz séier ausbezuelen. Ech betruecht mech als liddereg Programméierer. Dat war de Preambel, elo gi mer op d'Geschäft.

Geschicht eng

Virun e puer Joer hunn ech mech gefrot wéi ech meng Englesch kéint verbesseren. Näischt Besseres koum an de Kapp wéi Literatur liesen. Ech hunn en elektronesche Lieser kaaft, Bicher erofgelueden an ugefaang ze liesen. Beim Liesen sinn ech ëmmer erëm op onbekannte Wierder komm. Ech hunn se direkt iwwersat mat den Dictionnairen déi an de Lieser agebaut sinn, awer ech hunn eng Feature gemierkt: d'Wierder wollten net erënnert ginn. Wéi ech dëst Wuert e puer Säiten méi spéit erëm begéint hunn, hunn ech mat 90% Wahrscheinlechkeet erëm Iwwersetzung gebraucht, an dat ass all Kéier geschitt. D'Konklusioun war datt et net genuch wier fir onbekannt Wierder beim Liesen einfach ze iwwersetzen, Dir musst eppes anescht maachen. Déi ideal Optioun wier et an den Alldag anzeféieren an et ze benotzen, awer ech liewen net an engem engleschsproochege Land an dat ass onwahrscheinlech. Dunn hunn ech mech drun erënnert datt ech eng Kéier iwwer gelies hunn Spaced Widderhuelung.

Wat ass et a mat wat gëtt et giess? Kuerz gesot, et gëtt dëst vergiessen Curve, weider Zitat aus der Wikipedia:

Schonn an der éischter Stonn gi bis zu 60% vun all kritt Informatioun vergiess; 10 Stonnen no der Erënnerung bleiwen 35% vun deem wat geléiert gouf an der Erënnerung. Dann geet de Prozess vun der Vergiessen lues weider, an no 6 Deeg bleift ongeféier 20% vun der Gesamtzuel vun ufanks geléierten Silben an der Erënnerung, an déi selwecht Quantitéit bleift an der Erënnerung no engem Mount.

An d'Konklusioun vun hei

D'Conclusiounen, déi op dëser Kurve gezunn kënne ginn, sinn datt fir effektiv Memoriséierung et néideg ass dat gespäichert Material ze widderhuelen.

Also hu mir op eng Iddi komm spatzen Widderhuelung.

ANKI ass e komplett gratis an Open Source Programm deen d'Iddi vun der spatzen Widderhuelung implementéiert. Einfach gesot, computeriséiert Flash Kaarten hunn eng Fro op der enger Säit an eng Äntwert op der anerer. Well Dir Froen / Äntwerte maache kënnt mat regelméissegen html/css/javascript, da kënne mir soen datt et wierklech onbegrenzt Méiglechkeeten huet. Zousätzlech ass et erweiderbar mat speziellen Plugins, an ee vun hinnen wäert eis an Zukunft ganz nëtzlech sinn.

Manuell Kaarten erstellen ass laang, langweileg, a mat enger grousser Wahrscheinlechkeet, no enger Zäit wäert Dir dës Aufgab vergiessen, an dofir hunn ech mech irgendwann gefrot, ob et méiglech ass dës Aufgab ze automatiséieren. D'Äntwert ass jo, Dir kënnt. An ech hunn et gemaach. Ech soen direkt, et ass méi POC (Proof of Concept), mä déi benotzt ka ginn. Wann et Interessi vun de Benotzer ass an aner Entwéckler bedeelegen sech, da kann et zu engem fäerdege Produkt bruecht ginn, deen och technesch analfabet Benotzer kënne benotzen. Elo, meng Utility ze benotzen erfuerdert e puer Wëssen iwwer d'Programméierung.

Ech liesen Bicher mam Programm AI Lieser. Et huet d'Fäegkeet extern Dictionnairen ze verbannen, a wann Dir e Wuert iwwersetzt, späichert et d'Wuert, dat Dir fir Iwwersetzung an eng Textdatei geruff hutt. Alles wat bleift ass dës Wierder ze iwwersetzen an ANKI Kaarten ze kreéieren.

Am Ufank hunn ech probéiert fir Iwwersetzung ze benotzen Google Iwwersetzer, Lingvo API etc. Awer d'Saachen hunn net mat gratis Servicer geklappt. Ech hunn d'gratis Limit während dem Entwécklungsprozess erschöpft, zousätzlech, laut de Konditioune vun der Lizenz, hat ech net d'Recht Wierder ze cache. Irgendwann hunn ech gemierkt datt ech d'Wierder selwer muss iwwersetzen. Als Resultat gouf e Modul geschriwwen dsl2html op déi Dir konnektéiere kënnt DSL Wierderbuch an dee weess wéi se an ëmsetzen HTML format.

Dëst ass wéi en Wierderbuch-Entrée ausgesäit an *.html, meng Optioun am Verglach zu der Optioun GoldenDict

Zwou Geschichten iwwer wéi d'ANKI Iech hëllefe kann eng Friemsprooch ze léieren a sech op en Interview virzebereeden

Ier ech no engem Wuert a verbonne Dictionnairen sichen, bréngen ech et op Wierderbuchform (Lemma) mat der Bibliothéik Stanford Core ENG. Tatsächlech, wéinst dëser Bibliothéik, hunn ech ugefaang op Java ze schreiwen an den urspréngleche Plang war alles op Java ze schreiwen, awer am Prozess hunn ech d'Bibliothéik fonnt node-java mat deem Dir relativ einfach Java Code vun Nodejs ausféiere kënnt an e puer vum Code ass a JavaScript geschriwwe ginn. Wann ech dës Bibliothéik virdru fonnt hunn, wier net eng eenzeg Zeil am Java geschriwwe ginn. En anere Säiteprojet deen am Prozess gebuer gouf ass d'Schafung Repository mat DSL Dokumentatioun déi am Netz am Format fonnt gouf *.chm, ëmgewandelt an a gëttlech Form bruecht. Wann den Auteur vun der Originaldatei e Benotzer mam Spëtznumm ass yozhic Wann hien dësen Artikel gesäit, soen ech him villmools Merci fir seng Aarbecht, ouni seng Dokumentatioun wier ech héchstwahrscheinlech net gelongen.

Also, ech hunn e Wuert op Englesch, seng Wierderbuchentrée am Format *.html, et bleift just alles zesummen ze setzen, ANKI Artikelen aus der Lëscht vun de Wierder ze kreéieren an se an d'ANKI Datebank aginn. Fir dësen Zweck gouf de folgende Projet erstallt daten2anki. Et kann eng Lëscht vu Wierder als Input huelen, iwwersetzen, ANKI erstellen *.html Artikelen a notéiert se an der ANKI Datebank. Um Enn vum Artikel ginn et Instruktioune fir ze benotzen. An der Zwëschenzäit ass déi zweet Geschicht wou spatzen Wiederholungen nëtzlech kënne sinn.

Déi zweet Geschicht.

All Leit op der Sich no enger méi / manner qualifizéierter Spezialitéit, dorënner Programméierer, sinn konfrontéiert mat der Bedierfnes fir en Interview virzebereeden. Vill vun de Konzepter, déi an Interviewen gefrot ginn, benotzt Dir net an der alldeeglecher Praxis a si vergiess. Wann ech op en Interview virbereeden, duerch Notizen, e Buch, e Referenzbuch bléien, sinn ech konfrontéiert mat der Tatsaach datt et vill Zäit an Opmierksamkeet brauch fir Informatioun erauszefannen, déi Dir scho wësst, well se net ëmmer evident ass an Dir musst liesen et virsiichteg fir ze verstoen wat et ass.irrelevant. Wann Dir op en Thema kënnt dat wierklech widderholl muss ginn, geschitt et dacks datt Dir scho midd sidd an d'Qualitéit vun Ärer Virbereedung leid. Irgendwann hunn ech geduecht, firwat net och ANKI Kaarte fir dëst benotzen? Zum Beispill, wann Dir Notizen iwwer en Thema maacht, erstellt direkt eng Notiz a Form vun enger Fro an Äntwert, an dann wann Dir et widderhëlt, wësst Dir direkt ob Dir d'Äntwert op dës Fro wësst oder net.

Deen eenzege Problem deen entstanen ass, war datt d'Froen ausgin ganz laang an tedious war. Fir de Prozess méi einfach ze maachen, daten2anki Projet Ech dobäi Konverter Funktionalitéit Ofdreiwung Text an ANKI Kaarten. Alles wat Dir braucht ass eng grouss Datei ze schreiwen, an där d'Froen an d'Äntwerten mat enger virbestëmmter Sequenz vun Zeechen markéiert ginn, duerch déi de Parser versteet wou d'Fro ass a wou d'Äntwert ass.

Wann dës Datei erstallt ass, leeft Dir data2anki an et erstellt ANKI Kaarten. D'Original Datei ass einfach z'änneren an ze deelen, Dir musst just déi entspriechend Kaart(en) läschen an de Programm nach eng Kéier ausféieren, an eng nei Versioun gëtt erstallt.

Installatioun a Gebrauch

  1. Installéiert ANKI + AnkiConnect

    1. Download ANKI vun hei: https://apps.ankiweb.net/
    2. Installéiert AnkiConnect Plugin: https://ankiweb.net/shared/info/2055492159

  2. Kader daten2anki

    1. Eroflueden daten2anki vum Github Repository
      git clone https://github.com/anatoly314/data2anki
    2. Installéiert Ofhängegkeeten
      cd data2anki && npm install
    3. Download Java Ofhängegkeeten https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Auspacken jar-dependencies.zip a setzt säin Inhalt an data2anki/java/jars

  3. Benotzt fir Wierder ze iwwersetzen:

    1. Am Dossier data2anki/config.json:

      • am Schlëssel Modus gitt de Wäert dsl2 eng

      • am Schlëssel modules.dsl.anki.deckName и modules.dsl.anki.modelName schreiwen deementspriechend Numm Deck и Model Numm (muss scho geschaf ginn ier Dir Kaarten erstallt). Momentan gëtt nëmmen de Modelltyp ënnerstëtzt Basis:

        Huet Front an Back Felder, a wäert eng Kaart schafen. Text, deen Dir viru gitt, erschéngt op der viischter Säit vun der Kaart, an den Text, deen Dir aginn, erschéngt op der Récksäit vun der Kaart.

        wou ass dat original Wuert? Front Feld, an d'Iwwersetzung wäert an Back Feld.

        Et gëtt kee Problem fir Ënnerstëtzung ze addéieren Basis (an ëmgedréint Kaart), wou eng ëmgedréint Kaart fir d'Wuert an d'Iwwersetzung erstallt gëtt, wou Dir op Basis vun der Iwwersetzung un d'Original Wuert erënnere musst. Alles wat Dir braucht ass Zäit a Wonsch.

      • am Schlëssel modules.dsl.dictionariesPath registréiert eng Array mat verbonne *.dsl Wierderbuch. All verbonne Wierderbuch ass e Verzeechnes an deem d'Wierderbuchdateien am Aklang mam Format sinn: DSL Wierderbuch Struktur

      • am Schlëssel modules.dsl.wordToTranslatePath gitt de Wee op d'Lëscht vun de Wierder déi Dir wëllt iwwersetzen.

    2. Start mat der ANKI Applikatioun lafen
      node data2ankiindex.js
    3. PROFIT!!!

  4. Benotzt fir Kaarte vu Markdown ze kreéieren

    1. Am Dossier data2anki/config.json:

      • am Schlëssel Modus gitt de Wäert markdown2anki
      • am Schlëssel modules.markdown.anki.deckName и modules.dsl.anki.modelName schreiwen deementspriechend Numm Deck и Model Numm (muss scho geschaf ginn ier Dir Kaarten erstallt). Fir markdown2anki Modus nëmmen Modelltyp gëtt ënnerstëtzt Basis.
      • am Schlëssel modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors Dir schreift Selectoren mat deenen Dir den Ufank vun der Fro an Äntwert markéiert, respektiv. D'Linn mam Selektor selwer gëtt net parséiert a wäert net op der Kaart ophalen; de Parser fänkt vun der nächster Zeil un ze schaffen.

        Zum Beispill, dës Fro / Äntwert Kaart:

        Zwou Geschichten iwwer wéi d'ANKI Iech hëllefe kann eng Friemsprooch ze léieren a sech op en Interview virzebereeden

        Et wäert esou ausgesinn am Markdown:
        #QUESTION# ## Question 5. Schreift eng mul-Funktioun déi richteg funktionnéiert wann se mat der folgender Syntax opgeruff gëtt. ``` javascript console.log(mul(2)(3)(4)); // Ausgang: 24 console.log(mul(4)(3)(4)); // Ausgang: 48 ``` #ANSWER# Drënner ass de Code gefollegt vun der Erklärung wéi et funktionnéiert: ```javascript Funktioun mul (x) { return function (y) {// anonym function return function (z) { // anonym Funktioun zréck x * y * z; }; }; } ``` Hei akzeptéiert d'"mul" Funktioun dat éischt Argument a gëtt déi anonym Funktioun zréck déi den zweete Parameter hëlt an déi anonym Funktioun zréckkënnt déi den drëtte Parameter hëlt an d'Multiplikatioun vun Argumenter zréckginn déi a successiv weiderginn An Javascript Funktioun definéiert bannen huet Zougang zu baussenzege Funktioun Variabel a Funktioun ass den éischte Klass Objet sou datt et och vun der Funktioun zréckginn kann an als Argument an enger anerer Funktioun weidergeleet ginn. - Eng Funktioun ass eng Instanz vum Objekttyp - Eng Funktioun kann Eegeschaften hunn an huet e Link zréck op seng Konstruktormethod - Eng Funktioun kann als Variabel gespäichert ginn - Eng Funktioun kann als Parameter un eng aner Funktioun passéiert ginn - Eng Funktioun kann zréck vun enger anerer Funktioun
        

        Beispill vun hei geholl: 123-JavaScript-Interview-Froen

        Et gëtt och e Fichier mat Beispiller am Projet Dossier examples/markdown2anki-example.md

      • am Schlëssel modules.markdown.pathToFile
        schreift de Wee op d'Datei wou *.md Fro / Äntwert Fichier

    2. Start mat der ANKI Applikatioun lafen
      node data2ankiindex.js
    3. PROFIT!!!

Dëst ass wéi et op engem Handy ausgesäit:

Resultat

Kaarte kritt op der Desktop Versioun vun ANKI sinn ouni Problemer mat der ANKI Wollek synchroniséiert (gratis bis 100mb), an dann kënnt Dir se iwwerall benotzen. Et gi Clienten fir Android an iPhone, an Dir kënnt et och an engem Browser benotzen. Als Resultat, wann Dir Zäit hutt datt Dir näischt ze verbréngen hutt, da kënnt Dir eppes Neies léieren, anstatt ziellos duerch Facebook oder Kazen op Instagram ze scrollen.

Epilogue

Wéi ech gesot hunn, ass dëst méi e funktionnéierende POC deen Dir benotze kënnt wéi e fäerdegt Produkt. Ongeféier 30% vum DSL Parser Standard ass net implementéiert, an dofir, zum Beispill, net all Wierderbuch Entréen déi an Dictionnairen sinn kann fonnt ginn, et gëtt och eng Iddi fir et ëmzeschreiwen Javascript, well ech wëll "Konsistenz", an ausserdeem ass et elo net ganz optimal geschriwwen. Elo baut de Parser e Bam, awer menger Meenung no ass dat onnéideg a brauch de Code net ze komplizéieren. IN markdown2anki Modus, d'Biller ginn net parséiert. Ech wäert probéieren lues a lues ze schneiden, mee well ech fir mech schreiwen, léisen ech fir d'éischt d'Problemer op déi ech selwer trëppelen, awer wann iergendeen wëll hëllefen, da sidd Dir wëllkomm. Wann Dir Froen iwwer de Programm hutt, wäert ech gären hëllefen duerch oppen Themen an de relevante Projeten. Schreift aner Kritik a Virschléi hei. Ech hoffen, datt dëse Projet fir een nëtzlech ass.

PS Wann Dir Feeler bemierkt (an, leider, et ginn e puer), schreiwt mir an enger perséinlecher Noriicht, ech korrigéieren alles.

Source: will.com

Setzt e Commentaire