Hadithi mbili za jinsi ANKI inaweza kukusaidia kujifunza lugha ya kigeni na kujiandaa kwa mahojiano

Siku zote niliamini kuwa mpanga programu mvivu ni mpangaji mzuri wa programu. Kwa nini? Kwa sababu mwambie mtu mwenye bidii afanye jambo fulani, atakwenda kulifanya. Na programu ya uvivu itatumia mara 2-3 zaidi, lakini itaandika script ambayo itamfanyia. Inaweza kuchukua muda mrefu bila sababu kufanya hivi mara ya kwanza, lakini kwa kazi zinazorudiwa njia hii italipa haraka sana. Ninajiona kuwa mvivu wa programu. Huo ulikuwa utangulizi, sasa wacha tuanze biashara.

Hadithi moja

Miaka michache iliyopita nilijiuliza jinsi ningeweza kuboresha Kiingereza changu. Hakuna jambo bora lililokuja akilini kuliko kusoma fasihi. Nilinunua kisoma umeme, nikapakua vitabu na nikaanza kusoma. Wakati nikisoma, niliendelea kukutana na maneno nisiyoyafahamu. Mara moja nilizitafsiri kwa kutumia kamusi zilizojengwa ndani ya msomaji, lakini niliona kipengele kimoja: maneno hayakutaka kukumbukwa. Nilipokutana na neno hili tena kurasa chache baadaye, na uwezekano wa 90% nilihitaji tena tafsiri, na hii ilifanyika kila wakati. Hitimisho lilikuwa kwamba haitoshi tu kutafsiri maneno yasiyo ya kawaida wakati wa kusoma, unahitaji kufanya kitu kingine. Chaguo bora itakuwa kuianzisha katika maisha ya kila siku na kuanza kuitumia, lakini siishi katika nchi inayozungumza Kiingereza na hii haiwezekani. Kisha nikakumbuka kwamba niliwahi kusoma kuhusu Kurudia kwa Nafasi.

Ni nini na inaliwa na nini? Kwa kifupi, kuna hii kusahau curve, nukuu zaidi kutoka Wikipedia:

Tayari ndani ya saa ya kwanza, hadi 60% ya habari yote iliyopokelewa imesahauliwa; masaa 10 baada ya kukariri, 35% ya kile kilichojifunza kinabaki kwenye kumbukumbu. Kisha mchakato wa kusahau unaendelea polepole, na baada ya siku 6 karibu 20% ya jumla ya idadi ya silabi zilizojifunza hapo awali inabaki kwenye kumbukumbu, na kiasi sawa kinabaki kwenye kumbukumbu baada ya mwezi.

Na hitimisho kutoka hapa

Hitimisho ambalo linaweza kutolewa kulingana na curve hii ni kwamba kwa kukariri kwa ufanisi ni muhimu kurudia nyenzo za kukariri.

Kwa hivyo tulikuja na wazo marudio ya nafasi.

ANKI ni programu ya bure na ya wazi kabisa ambayo hutekeleza wazo la marudio ya nafasi. Kuweka tu, kadi za flash za kompyuta zina swali upande mmoja na jibu kwa upande mwingine. Kwa kuwa unaweza kufanya maswali/majibu kwa kutumia kawaida html/css/javascript, basi tunaweza kusema kwamba ina uwezekano usio na kikomo kweli. Kwa kuongeza, inaweza kupanuliwa na maalum programu-jalizi, na mmoja wao atakuwa na manufaa sana kwetu katika siku zijazo.

Kuunda kadi kwa mikono ni ndefu, yenye kuchosha, na kwa uwezekano mkubwa, baada ya muda utasahau juu ya kazi hii, na kwa hivyo wakati fulani nilijiuliza swali, je, inawezekana kubinafsisha kazi hii. Jibu ni ndiyo, unaweza. Na nilifanya hivyo. Nitasema mara moja, ni zaidi POC (Uthibitisho wa dhana), lakini ambayo inaweza kutumika. Iwapo kuna maslahi kutoka kwa watumiaji na wasanidi programu wengine kujiunga, basi inaweza kutengenezwa kuwa bidhaa iliyokamilika ambayo hata watumiaji wasiojua kusoma na kuandika wanaweza kutumia kitaalam. Sasa, kutumia matumizi yangu kunahitaji ujuzi fulani wa programu.

Nilisoma vitabu kwa kutumia programu Kiongozi wa HEWA. Ina uwezo wa kuunganisha kamusi za nje, na unapotafsiri neno, huhifadhi neno uliloita kwa tafsiri kwenye faili ya maandishi. Kilichobaki ni kutafsiri maneno haya na kuunda kadi za ANKI.

Mwanzoni nilijaribu kutumia kwa tafsiri Google Tafsiri, API ya Lingvo na kadhalika. Lakini mambo hayakufaulu na huduma za bure. Nilimaliza kikomo cha bure wakati wa mchakato wa maendeleo, kwa kuongeza, kwa mujibu wa masharti ya leseni, sikuwa na haki ya cache maneno. Wakati fulani nilitambua kwamba nilihitaji kutafsiri maneno mwenyewe. Kama matokeo, moduli iliandikwa dsl2html ambayo unaweza kuunganisha Kamusi za DSL na ambaye anajua jinsi ya kuzibadilisha kuwa HTML umbizo.

Hivi ndivyo ingizo la kamusi linavyoonekana katika *. Html, chaguo langu ikilinganishwa na chaguo GoldenDict

Hadithi mbili za jinsi ANKI inaweza kukusaidia kujifunza lugha ya kigeni na kujiandaa kwa mahojiano

Kabla ya kutafuta neno katika kamusi zilizounganishwa, ninaleta kwa fomu ya kamusi (lemma) kwa kutumia maktaba Stanford CoreNLP. Kwa kweli, kwa sababu ya maktaba hii, nilianza kuandika katika Java na mpango wa awali ulikuwa kuandika kila kitu katika Java, lakini katika mchakato huo nilipata maktaba. nodi-java ambayo unaweza kutekeleza nambari ya Java kwa urahisi kutoka kwa nodejs na nambari zingine zimeandikwa katika JavaScript. Ikiwa ningepata maktaba hii mapema, hakuna mstari mmoja ambao ungeandikwa kwenye Java. Mradi mwingine wa upande ambao ulizaliwa katika mchakato huo ni uumbaji hazina na nyaraka za DSL ambayo ilipatikana kwenye mtandao katika umbizo *.chm, kuongoka na kuletwa katika umbo la kimungu. Ikiwa mwandishi wa faili asili ni mtumiaji kwa jina la utani yozhic Anapoona makala hii, ninamshukuru sana kwa kazi ambayo amefanya; bila hati zake, yaelekea nisingefaulu.

Kwa hivyo, nina neno kwa Kiingereza, ingizo lake la kamusi katika umbizo *. Html, kilichobaki ni kuweka kila kitu pamoja, kuunda makala za ANKI kutoka kwenye orodha ya maneno na kuziingiza kwenye hifadhidata ya ANKI. Kwa kusudi hili mradi ufuatao uliundwa data2anki. Inaweza kuchukua orodha ya maneno kama pembejeo, kutafsiri, kuunda ANKI *. Html nakala na uzirekodi kwenye hifadhidata ya ANKI. Mwishoni mwa kifungu kuna maagizo ya jinsi ya kuitumia. Wakati huo huo, hadithi ya pili ni ambapo marudio ya nafasi yanaweza kuwa muhimu.

Hadithi ya pili.

Watu wote wanaotafuta taaluma isiyo na sifa zaidi / isiyo na sifa, pamoja na waandaaji wa programu, wanakabiliwa na hitaji la kujiandaa kwa mahojiano. Dhana nyingi ambazo huulizwa katika mahojiano hutumii katika mazoezi ya kila siku na zimesahaulika. Wakati wa kujiandaa kwa mahojiano, nikipitia maelezo, kitabu, kitabu cha kumbukumbu, nilikabiliwa na ukweli kwamba inachukua muda mwingi na umakini kuchuja habari ambayo tayari unajua kwa sababu sio dhahiri kila wakati na lazima isome kwa makini ili kuelewa haina umuhimu. Unapokuja kwenye mada ambayo kwa kweli inahitaji kurudiwa, mara nyingi hutokea kwamba tayari umechoka na ubora wa maandalizi yako unateseka. Wakati fulani nilifikiri, kwa nini usitumie kadi za ANKI kwa hili pia? Kwa mfano, unapoandika maelezo juu ya mada, mara moja unda barua kwa namna ya swali na jibu, na kisha unaporudia, utajua mara moja ikiwa unajua jibu la swali hili au la.

Tatizo pekee lililojitokeza ni kwamba kuandika maswali yalikuwa marefu sana na ya kuchosha. Ili kurahisisha mchakato, data2anki mradi niliongeza utendakazi wa kubadilisha alama maandishi katika kadi za ANKI. Unachohitaji ni kuandika faili moja kubwa ambayo maswali na majibu yatawekwa alama ya mlolongo wa wahusika uliotanguliwa, ambao mchanganuzi ataelewa swali liko wapi na jibu liko wapi.

Mara faili hii inapoundwa, unaendesha data2anki na inaunda kadi za ANKI. Faili ya awali ni rahisi kuhariri na kushiriki, unahitaji tu kufuta kadi zinazofanana na kuendesha programu tena, na toleo jipya litaundwa.

Ufungaji na matumizi

  1. Inasakinisha ANKI + AnkiConnect

    1. Pakua ANKI kutoka hapa: https://apps.ankiweb.net/
    2. Sakinisha programu-jalizi ya AnkiConnect: https://ankiweb.net/shared/info/2055492159

  2. Ufungaji data2anki

    1. Pakua data2anki kutoka kwa hazina ya github
      git clone https://github.com/anatoly314/data2anki
    2. Sakinisha vitegemezi
      cd data2anki && npm install
    3. Pakua vitegemezi vya java https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Kufungua jar-dependencies.zip na uweke yaliyomo ndani data2anki/java/jars

  3. Tumia kutafsiri maneno:

    1. Katika faili data2anki/config.json:

      • katika ufunguo mode ingiza thamani dsl2anki

      • katika ufunguo modules.dsl.anki.deckName ΠΈ modules.dsl.anki.modelName andika ipasavyo Jina la Deki ΠΈ Model la (lazima tayari kuundwa kabla ya kuunda kadi). Hivi sasa ni aina ya modeli pekee inayotumika Msingi:

        Ina sehemu za Mbele na Nyuma, na itaunda kadi moja. Maandishi unayoingiza Mbele yatatokea mbele ya kadi, na maandishi utakayoingiza Nyuma yatatokea nyuma ya kadi.

        neno asili liko wapi? Uwanja wa mbele, na tafsiri itakuwa ndani Uga wa nyuma.

        Hakuna tatizo kuongeza usaidizi Kadi ya msingi (na iliyobadilishwa), ambapo kadi ya reverse itaundwa kwa neno na tafsiri, ambapo kulingana na tafsiri utahitaji kukumbuka neno la awali. Unachohitaji ni wakati na hamu.

      • katika ufunguo modules.dsl.dictionariesNjia sajili safu iliyounganishwa *.dsl kamusi. Kila kamusi iliyounganishwa ni saraka ambayo faili za kamusi ziko kwa mujibu wa umbizo: Muundo wa kamusi ya DSL

      • katika ufunguo modules.dsl.wordToTranslatePath ingiza njia ya orodha ya maneno unayotaka kutafsiri.

    2. Fungua ukitumia programu ya ANKI inayoendesha
      node data2ankiindex.js
    3. FAIDA!!!

  4. Inatumika kuunda kadi kutoka kwa alama

    1. Katika faili data2anki/config.json:

      • katika ufunguo mode ingiza thamani markdown2anki
      • katika ufunguo modules.markdown.anki.deckName ΠΈ modules.dsl.anki.modelName andika ipasavyo Jina la Deki ΠΈ Model la (lazima tayari kuundwa kabla ya kuunda kadi). Kwa markdown2anki aina ya modi pekee ndiyo inayotumika Msingi.
      • katika ufunguo modules.markdown.selectors.startQuestionSelectors ΠΈ modules.markdown.selectors.startAnswerSelectors unaandika wateule ambao unaashiria mwanzo wa swali na jibu, mtawaliwa. Mstari ulio na kichagua yenyewe hautachanganuliwa na hautaishia kwenye kadi; ​​kichanganuzi kitaanza kufanya kazi kutoka kwa mstari unaofuata.

        Kwa mfano, kadi hii ya swali/jibu:

        Hadithi mbili za jinsi ANKI inaweza kukusaidia kujifunza lugha ya kigeni na kujiandaa kwa mahojiano

        Itaonekana kama hii katika alama za chini:
        #SWALI# ## Swali la 5. Andika chaguo la kukokotoa mul ambalo litafanya kazi ipasavyo linapoombwa na sintaksia ifuatayo. ``` javascript console.log(mul(2)(3)(4)); // pato : 24 console.log(mul(4)(3)(4)); // pato : 48 ``` #JIBU# Ifuatayo ni msimbo unaofuatwa na maelezo ya jinsi inavyofanya kazi: ``` chaguo la kukokotoa la javascript mul (x) { chaguo la kukokotoa la kurejesha (y) { // chaguo la kukokotoa la kurejesha jina lisilojulikana (z) { // kazi isiyojulikana kurudi x * y * z; }; }; } ``` Hapa chaguo la kukokotoa la `mul` linakubali hoja ya kwanza na kurudisha chaguo la kukokotoa lisilojulikana ambalo huchukua kigezo cha pili na kurudisha chaguo la kukokotoa lisilojulikana ambalo huchukua kigezo cha tatu na kurudisha kuzidisha kwa hoja ambazo zinapitishwa mfululizo Katika kitendakazi cha Javascript kilivyofafanuliwa. ndani ina ufikiaji wa utofautishaji wa kazi ya nje na utendakazi ndio kitu cha darasa la kwanza kwa hivyo inaweza kurudishwa na chaguo la kukokotoa pia na kupitishwa kama hoja katika chaguo la kukokotoa. - Chaguo za kukokotoa ni mfano wa aina ya Kitu - Chaguo la kukokotoa linaweza kuwa na sifa na kuwa na kiungo cha kurudi kwenye mbinu ya mjenzi wake - Chaguo la kukokotoa linaweza kuhifadhiwa kama kibadilikaji - Chaguo la kukokotoa linaweza kupitishwa kama kigezo hadi kitendakazi kingine - Chaguo la kukokotoa linaweza kubadilishwa. imerudishwa kutoka kwa kipengele kingine
        

        Mfano uliochukuliwa kutoka hapa: 123-JavaScript-Maswali-ya-Mahojiano

        Pia kuna faili iliyo na mifano kwenye folda ya mradi examples/markdown2anki-example.md

      • katika ufunguo modules.markdown.pathToFile
        andika njia ya faili ambapo *.md swali/jibu faili

    2. Fungua ukitumia programu ya ANKI inayoendesha
      node data2ankiindex.js
    3. FAIDA!!!

Hivi ndivyo inavyoonekana kwenye simu ya rununu:

Matokeo

Kadi zilizopokelewa kwenye toleo la eneo-kazi la ANKI zinasawazishwa bila shida na wingu la ANKI (bure hadi 100mb), na kisha unaweza kuzitumia kila mahali. Kuna wateja wa Android na iPhone, na unaweza pia kuitumia kwenye kivinjari. Kama matokeo, ikiwa una wakati ambao huna chochote cha kutumia, basi badala ya kuvinjari bila malengo kupitia Facebook au paka kwenye Instagram, unaweza kujifunza kitu kipya.

Epilogue

Kama nilivyosema, hii ni zaidi ya POC inayofanya kazi ambayo unaweza kutumia kuliko bidhaa iliyomalizika. Takriban 30% ya kiwango cha kichanganuzi cha DSL hakitekelezwi, na kwa hivyo, kwa mfano, si maingizo yote ya kamusi yaliyo katika kamusi yanaweza kupatikana, pia kuna wazo la kuiandika upya JavaScript, kwa sababu ninataka "uthabiti", na zaidi ya hayo, sasa haijaandikwa vizuri sana. Sasa mpangaji anaunda mti, lakini kwa maoni yangu hii sio lazima na hauitaji kugumusha nambari. KATIKA markdown2anki hali, picha hazijachanganuliwa. Nitajaribu kupunguza kidogo kidogo, lakini kwa kuwa ninajiandikia mwenyewe, kwanza kabisa nitatatua shida ambazo mimi mwenyewe nitachukua, lakini ikiwa kuna mtu anataka kusaidia, basi unakaribishwa. Ikiwa una maswali kuhusu programu, nitafurahi kukusaidia kupitia masuala wazi katika miradi husika. Andika ukosoaji na mapendekezo mengine hapa. Natumaini mradi huu utakuwa na manufaa kwa mtu.

PS Ikiwa unaona makosa yoyote (na, kwa bahati mbaya, kuna baadhi), niandikie katika ujumbe wa kibinafsi, nitasahihisha kila kitu.

Chanzo: mapenzi.com

Kuongeza maoni