De istwa sou fason ANKI ka ede w aprann yon lang etranje epi prepare w pou entèvyou

Mwen toujou kwè ke yon pwogramè parese se yon pwogramè bon. Poukisa? Paske mande yon travayè di pou l fè yon bagay, li pral fè l. Ak yon pwogramè parese pral pase 2-3 fwa plis tan, men li pral ekri yon script ki pral fè li pou li. Li ka pran yon tan ki pa rezonab pou fè sa premye fwa, men ak travay repete apwòch sa a pral peye byen vit. Mwen konsidere tèt mwen yon pwogramè parese. Se te preambule a, kounye a ann desann nan biznis.

Yon istwa

Kèk ane de sa mwen te mande ki jan mwen te kapab amelyore angle mwen an. Pa gen anyen ki pi bon pase lekti literati. Mwen te achte yon lektè elektwonik, telechaje liv epi mwen te kòmanse li. Pandan m t ap li, mwen te kontinye jwenn mo ki pa abitye. Mwen te tradui yo imedyatman lè l sèvi avèk diksyonè ki te bati nan lektè a, men mwen te remake yon karakteristik: mo yo pa t vle sonje. Lè mwen te rankontre mo sa a ankò kèk paj pita, ak yon pwobabilite 90% mwen te bezwen tradiksyon ankò, e sa te rive chak fwa. Konklizyon an te ke li pa t 'ase tou senpleman tradui mo abitye pandan y ap li, ou bezwen fè yon lòt bagay. Opsyon ideyal la ta dwe prezante li nan lavi chak jou epi kòmanse sèvi ak li, men mwen pa ap viv nan yon peyi ki pale angle e sa a se fasil. Lè sa a, mwen sonje ke mwen yon fwa li sou Espas repetisyon.

Ki sa li ye ak ki sa li manje? Nan ti bout tan, gen sa a koub bliye, plis site soti nan Wikipedia:

Deja nan premye èdtan an, jiska 60% nan tout enfòmasyon yo resevwa bliye; 10 èdtan apre memorizasyon, 35% nan sa yo te aprann rete nan memwa. Lè sa a, pwosesis la nan bliye monte tou dousman, epi apre 6 jou apeprè 20% nan kantite total silab okòmansman aprann rete nan memwa, ak menm kantite lajan an rete nan memwa apre yon mwa.

Ak konklizyon an soti isit la

Konklizyon yo ki ka trase ki baze sou koub sa a se ke pou memorize efikas li nesesè repete materyèl la memorize.

Se konsa, nou te vini ak yon lide repetisyon espas.

АNKI se yon pwogram sous konplètman gratis ak louvri ki aplike lide nan repetisyon espas. Senpleman mete, kat flash enfòmatik gen yon kesyon sou yon bò ak yon repons sou lòt la. Depi ou ka fè kesyon/repons lè l sèvi avèk regilye html/css/javascript, Lè sa a, nou ka di ke li gen posiblite vrèman illimité. Anplis de sa, li se dilatabl ak espesyal grefon, ak youn nan yo pral trè itil pou nou nan tan kap vini an.

Manyèlman kreye kat se long, fatigan, ak yon gwo pwobabilite, apre yon ti tan ou pral bliye sou travay sa a, e konsa nan kèk pwen mwen te poze tèt mwen kesyon an, èske li posib otomatize travay sa a. Repons lan se wi, ou kapab. Apre sa, mwen te fè li. Mwen pral di touswit, li plis POC (Prèv konsèp), men ki ka itilize. Si gen enterè nan men itilizatè yo ak lòt devlopè patisipe, Lè sa a, li ka pote nan yon pwodwi fini ke menm itilizatè teknikman analfabèt ka itilize. Koulye a, lè l sèvi avèk sèvis piblik mwen an mande pou kèk konesans nan pwogramasyon.

Mwen li liv lè l sèvi avèk pwogram nan AI Reader. Li gen kapasite pou konekte diksyonè ekstèn, epi lè ou tradui yon mo, li sove mo ou te rele pou tradiksyon an nan yon dosye tèks. Tout sa ki rete se tradui mo sa yo epi kreye kat ANKI.

Okòmansman mwen te eseye itilize pou tradiksyon Google Translate, Lingvo API elatriye. Men, bagay yo pa t mache ak sèvis gratis. Mwen fin itilize limit gratis la pandan pwosesis devlopman an, anplis de sa, dapre kondisyon ki nan lisans lan, mwen pa t 'gen dwa nan kachèt mo yo. Nan kèk pwen, mwen reyalize ke mwen te bezwen tradui mo yo tèt mwen. Kòm yon rezilta, yo te ekri yon modil dsl2html kote ou ka konekte diksyonè DSL ak ki moun ki konnen ki jan yo konvèti yo nan HTML fòma.

Men sa yon antre diksyonè a sanble nan *.html, opsyon mwen an konpare ak opsyon an GoldenDict

De istwa sou fason ANKI ka ede w aprann yon lang etranje epi prepare w pou entèvyou

Anvan ou chache yon mo nan diksyonè konekte, mwen pote l 'bay fòm diksyonè (lèm) itilize bibliyotèk la Stanford CoreNLP. An reyalite, akòz bibliyotèk sa a, mwen te kòmanse ekri nan Java ak plan orijinal la te ekri tout bagay nan Java, men nan pwosesis la mwen te jwenn bibliyotèk la. ne-java ak ki ou ka relativman fasil egzekite Java kòd soti nan nodejs ak kèk nan kòd la ekri nan JavaScript. Si mwen te jwenn bibliyotèk sa a pi bonè, pa t ap ekri yon sèl liy nan Java. Yon lòt bò pwojè ki te fèt nan pwosesis la se kreyasyon an depo ak dokiman DSL ki te jwenn sou rezo a nan fòma *.chm, konvèti ak pote nan fòm diven. Si otè a nan dosye orijinal la se yon itilizatè pa tinon yozhic Lè li wè atik sa a, mwen remèsye l anpil pou travay li fè a; san dokiman li yo, mwen gen anpil chans pa ta reyisi.

Se konsa, mwen gen yon mo nan lang angle, antre diksyonè li nan fòma *.html, tout sa ki rete se mete tout bagay ansanm, kreye atik ANKI nan lis mo yo epi antre yo nan baz done ANKI. Pou rezon sa a te kreye pwojè sa a data2anki. Li ka pran yon lis mo kòm antre, tradui, kreye ANKI *.html atik epi anrejistre yo nan baz done ANKI. Nan fen atik la gen enstriksyon sou kòman yo sèvi ak li. Nan entre-temps la, dezyèm istwa a se kote repetisyon espas ka itil.

Dezyèm istwa a.

Tout moun k ap chèche yon espesyalite plis/mwens kalifye, ki gen ladan pwogramè yo, ap fè fas ak nesesite pou prepare pou yon entèvyou. Anpil nan konsèp ke yo mande nan entèvyou ou pa itilize nan pratik chak jou epi yo bliye yo. Lè m ap prepare pou yon entèvyou, gade nan nòt, yon liv, yon liv referans, mwen te fè fas ak lefèt ke li pran anpil tan ak atansyon pou filtre enfòmasyon ke ou deja konnen paske li pa toujou evidan epi ou oblije li ak anpil atansyon pou w konprann sa li ye. Lè ou rive nan yon sijè ki vrèman bezwen repete, li souvan rive ke ou deja fatige ak kalite preparasyon ou soufri. Nan kèk pwen mwen te panse, poukisa yo pa sèvi ak kat ANKI pou sa a tou? Pou egzanp, lè w ap pran nòt sou yon sijè, imedyatman kreye yon nòt nan fòm yon kesyon ak repons, epi Lè sa a, lè ou repete li, ou pral imedyatman konnen si ou konnen repons lan nan kesyon sa a oswa ou pa.

Pwoblèm nan sèlman ki te parèt se ke tape soti kesyon yo te trè long ak fatigan. Pou fè pwosesis la pi fasil, data2anki pwojè mwen te ajoute konvèti fonctionnalités make tèks nan kat ANKI. Tout sa ou bezwen se ekri yon gwo dosye kote kesyon ak repons yo pral make ak yon sekans predetermine nan karaktè, pa ki analizeur a pral konprann ki kote kesyon an ye ak ki kote repons lan ye.

Yon fwa yo fin kreye dosye sa a, ou kouri data2anki epi li kreye kat ANKI. Fichye orijinal la fasil pou edite ak pataje, ou jis bezwen efase kat ki koresponn lan (yo) epi kouri pwogram nan ankò, epi yo pral kreye yon nouvo vèsyon.

Enstalasyon ak itilizasyon

  1. Enstale ANKI + AnkiConnect

    1. Telechaje ANKI soti isit la: https://apps.ankiweb.net/
    2. Enstale Plugin AnkiConnect: https://ankiweb.net/shared/info/2055492159

  2. Enstalasyon data2anki

    1. Telechaje data2anki soti nan repozitwa github
      git clone https://github.com/anatoly314/data2anki
    2. Enstale depandans
      cd data2anki && npm install
    3. Telechaje depandans java https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Debake jar-dependencies.zip epi mete sa ki ladan l data2anki/java/jars

  3. Itilize pou tradui mo:

    1. Nan dosye data2anki/config.json:

      • nan kle a mòd antre valè a dsl2anki

      • nan kle a modules.dsl.anki.deckName и modules.dsl.anki.modelName ekri kòmsadwa Non pil и Non ki gen konpòtman egzanplè (yo dwe deja kreye anvan yo kreye kat). Kounye a se sèlman kalite modèl la sipòte Esansyèl:

        Gen jaden devan ak dèyè, epi li pral kreye yon kat. Tèks ou antre nan Devan ap parèt sou devan kat la, ak tèks ou antre nan Devan ap parèt sou do kat la.

        kote mo orijinal la? Jaden devan, epi tradiksyon an pral nan Retounen jaden.

        Pa gen pwoblèm pou ajoute sipò Debaz (ak kat ranvèse), kote yo pral kreye yon kat ranvèse pou mo a ak tradiksyon, kote ki baze sou tradiksyon an w ap bezwen sonje mo orijinal la. Tout sa ou bezwen se tan ak dezi.

      • nan kle a modules.dsl.dictionariesPath anrejistre yon etalaj ki konekte *.dsl diksyonè. Chak diksyonè konekte se yon anyè kote fichye diksyonè yo sitiye an akò ak fòma a: Estrikti diksyonè DSL

      • nan kle a modules.dsl.wordToTranslatePath antre nan chemen an nan lis mo ou vle tradui yo.

    2. Lanse ak aplikasyon ANKI kouri
      node data2ankiindex.js
    3. PWOFI!!!

  4. Itilizasyon pou kreye kat soti nan markdown

    1. Nan dosye data2anki/config.json:

      • nan kle a mòd antre valè a markdown2anki
      • nan kle a modules.markdown.anki.deckName и modules.dsl.anki.modelName ekri kòmsadwa Non pil и Non ki gen konpòtman egzanplè (yo dwe deja kreye anvan yo kreye kat). Pou markdown2anki mòd sèlman kalite modèl sipòte Esansyèl.
      • nan kle a modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors ou ekri seleksyon ak ki ou make kòmansman an nan kesyon an ak repons, respektivman. Liy ki gen seleksyon an tèt li pa pral analize epi yo pa pral fini nan kat la; analizeur a ap kòmanse travay nan pwochen liy lan.

        Pa egzanp, kat kesyon/repons sa a:

        De istwa sou fason ANKI ka ede w aprann yon lang etranje epi prepare w pou entèvyou

        Li pral sanble sa a nan markdown:
        #KESYON# ## Kesyon 5. Ekri yon fonksyon mil ki pral travay byen lè yo envoke ak sentaks sa a. ```javascript console.log(mul(2)(3)(4)); // pwodiksyon : 24 console.log(mul(4)(3)(4)); // pwodiksyon : 48 ``` #REPONS# Anba a se kòd ki te swiv pa eksplikasyon sou kijan li fonksyone: ```javascript function mul (x) { return function (y) { // anonim fonksyon return function (z) { // fonksyon anonim retounen x * y * z; }; }; } ``` Isit la fonksyon `mul` aksepte premye agiman an epi retounen fonksyon anonim ki pran dezyèm paramèt la epi retounen fonksyon anonim ki pran twazyèm paramèt la epi retounen miltiplikasyon agiman yo pase an sisesif. Nan fonksyon Javascript defini. andedan gen aksè a varyab fonksyon ekstèn ak fonksyon se objè a premye klas pou li ka retounen pa fonksyon an tou epi pase kòm yon agiman nan yon lòt fonksyon. - Yon fonksyon se yon egzanp nan kalite Objè a - Yon fonksyon ka gen pwopriyete epi li gen yon lyen tounen nan metòd konstrukteur li yo - Yon fonksyon ka estoke kòm varyab - Yon fonksyon ka pase kòm yon paramèt nan yon lòt fonksyon - Yon fonksyon ka retounen nan yon lòt fonksyon
        

        Egzanp yo pran soti isit la: 123-JavaScript-Entèvyou-Kesyon

        Genyen tou yon dosye ak egzanp nan katab pwojè a examples/markdown2anki-example.md

      • nan kle a modules.markdown.pathToFile
        ekri chemen an nan dosye a kote *.md dosye kesyon/repons

    2. Lanse ak aplikasyon ANKI kouri
      node data2ankiindex.js
    3. PWOFI!!!

Men sa li sanble sou yon telefòn mobil:

Rezilta

Kat yo resevwa sou vèsyon an Desktop nan ANKI yo senkronize san pwoblèm ak nwaj la ANKI (gratis jiska 100mb), ak Lè sa a, ou ka itilize yo toupatou. Gen kliyan pou android ak iPhone, epi ou ka itilize li tou nan yon navigatè. Kòm yon rezilta, si ou gen tan ke ou pa gen anyen yo depanse sou, Lè sa a, olye pou yo defile san objektif nan Facebook oswa chat sou Instagram, ou ka aprann yon bagay nouvo.

Épilogue

Kòm mwen mansyone, sa a se plis nan yon POC k ap travay ke ou ka itilize pase yon pwodwi fini. Apeprè 30% nan estanda analizè DSL la pa aplike, ak Se poutèt sa, pa egzanp, se pa tout antre diksyonè ki nan diksyonè yo ka jwenn, gen tou yon lide pou reekri li nan JavaScript, paske mwen vle "konsistans", ak san konte, kounye a li pa ekri trè optimal. Koulye a, analizeur a ap bati yon pye bwa, men nan opinyon mwen sa a pa nesesè epi li pa bezwen konplike kòd la. NAN markdown2anki mòd, imaj yo pa analize. Mwen pral eseye koupe piti piti, men depi mwen ekri pou tèt mwen, mwen pral premye rezoud pwoblèm yo ke mwen menm mwen pral etap sou yo, men si nenpòt moun ki vle ede, Lè sa a, ou se akeyi. Si ou gen kesyon sou pwogram nan, mwen pral kontan ede nan pwoblèm ouvè nan pwojè ki enpòtan yo. Ekri lòt kritik ak sijesyon isit la. Mwen espere pwojè sa a ap itil yon moun.

PS Si ou remake nenpòt erè (e, malerezman, gen kèk), ekri m 'nan yon mesaj pèsonèl, mwen pral korije tout bagay.

Sous: www.habr.com

Add nouvo kòmantè