Dua carita kumaha ANKI tiasa ngabantosan anjeun diajar basa asing sareng nyiapkeun wawancara

Kuring salawasna yakin yén programer puguh mangrupakeun programmer alus. Naha? Kusabab menta hiji worker teuas pikeun ngalakukeun hiji hal, anjeunna bakal balik sarta ngalakukeun eta. Sareng programer anu puguh bakal nyéépkeun waktos 2-3 kali langkung seueur, tapi bakal nyerat naskah anu bakal dilakukeun pikeun anjeunna. Butuh waktu anu teu munasabah pikeun ngalakukeun ieu pertama kalina, tapi kalayan tugas-tugas anu diulang-ulang pendekatan ieu bakal mayar pisan gancang. Kuring nganggap sorangan programer puguh. Ieu mukadimah, ayeuna hayu urang turun ka bisnis.

Carita hiji

Sababaraha taun ka pengker abdi wondered kumaha abdi tiasa ngaronjatkeun Inggris abdi. Henteu aya anu langkung saé tibatan maca sastra. Kuring ngagaleuh pamaca éléktronik, ngaunduh buku sareng kuring ngamimitian maca. Bari maca, kuring terus manggihan kecap nu teu biasa. Kuring langsung narjamahkeun aranjeunna nganggo kamus anu diwangun kana pamaca, tapi kuring perhatikeun hiji fitur: kecap-kecap henteu hoyong diinget. Nalika kuring datang di sakuliah kecap ieu deui sababaraha kaca engké, kalawan 90% probability I deui diperlukeun tarjamah, sarta ieu lumangsung unggal waktu. Kacindekan éta yén éta henteu cekap ngan ukur narjamahkeun kecap anu teu biasa nalika maca, anjeun kedah ngalakukeun anu sanés. Pilihan idéal nyaéta pikeun ngenalkeun kana kahirupan sapopoe sareng mimitian nganggo éta, tapi kuring henteu cicing di nagara anu nyarios basa Inggris sareng ieu henteu mungkin. Lajeng abdi inget yen kuring pernah maca ngeunaan Spasi Ulangan.

Naon eta jeung naon eta didahar jeung? Pondokna, aya ieu kurva forgetting, cutatan salajengna ti Wikipedia:

Parantos dina jam kahiji, dugi ka 60% sadaya inpormasi anu ditampi hilap; 10 jam saatos ngapalkeun, 35% tina naon anu diajar tetep aya dina mémori. Lajeng prosés forgetting proceeds lalaunan, sarta sanggeus 6 poé ngeunaan 20% tina total jumlah suku kata mimitina diajar tetep dina mémori, sarta jumlah anu sarua tetep dina mémori sanggeus sabulan.

Jeung kacindekan ti dieu

Kacindekan anu tiasa ditarik dumasar kana kurva ieu nyaéta pikeun ngapalkeun anu efektif perlu ngulang deui bahan anu diapalkeun.

Ku kituna urang datang nepi ka hiji gagasan pengulangan spasi.

NKI mangrupikeun program sumber anu gratis sareng kabuka anu ngalaksanakeun ideu pengulangan jarak jauh. Kantun nempatkeun, kartu flash komputerisasi gaduh patarosan di hiji sisi jeung jawaban di sisi séjén. Kusabab anjeun tiasa ngalakukeun patarosan / jawaban nganggo biasa html/css/javascript, mangka urang bisa disebutkeun yen eta boga kemungkinan sabenerna limitless. Sajaba ti éta, éta expandable kalawan husus plugins, sarta salah sahijina bakal mangpaat pisan pikeun urang dina mangsa nu bakal datang.

Sacara manual nyieun kartu téh panjang, tedious, sarta kalawan kamungkinan luhur, sanggeus bari anjeun bakal poho ngeunaan tugas ieu, sarta ku kituna di sawatara titik kuring nanya ka sorangan patarosan, naha mungkin pikeun ngajadikeun otomatis tugas ieu. Dina jawaban eta enya, anjeun tiasa. Sareng kuring ngalakukeun éta. Abdi langsung nyarios, langkung seueur POC (Bukti Konsep), tapi nu bisa dipaké. Lamun aya minat ti pamaké sarta pamekar séjén kalibet, mangka bisa dibawa ka produk rengse nu malah pamaké téhnisna buta huruf bisa ngagunakeun. Ayeuna, ngagunakeun utilitas kuring peryogi sababaraha pangaweruh ngeunaan program.

Kuring maca buku ngagunakeun program AIRreader. Éta gaduh kamampuan pikeun nyambungkeun kamus éksternal, sareng nalika anjeun narjamahkeun kecap, éta ngahémat kecap anu anjeun nyauran pikeun ditarjamahkeun kana file téks. Anu tetep nyaéta narjamahkeun kecap-kecap ieu sareng nyiptakeun kartu ANKI.

Mimitina kuring nyobian nganggo pikeun tarjamah Tarjamah Google, Lingvo API jsb. Tapi hal teu hasil kalawan layanan bébas. Kuring béak wates bébas nalika prosés pangwangunan, salian ti éta, nurutkeun syarat lisénsi, kuring henteu ngagaduhan hak pikeun cache kecap. Di sawatara titik kuring sadar yén kuring kudu narjamahkeun kecap sorangan. Hasilna, modul ditulis dsl2html nu Anjeun tiasa nyambungkeun kamus DSL sareng saha anu terang kumaha ngarobihna HTML formatna.

Ieu mangrupikeun éntri kamus dina *.html, pilihan kuring dibandingkeun pilihan GoldenDict

Dua carita kumaha ANKI tiasa ngabantosan anjeun diajar basa asing sareng nyiapkeun wawancara

Méméh néangan kecap dina kamus disambungkeun, kuring mawa ka wangun kamus (lemma) ngagunakeun perpustakaan Stanford CoreNLP. Nyatana, kusabab perpustakaan ieu, kuring mimiti nyerat dina Java sareng rencana aslina nyaéta nyerat sadayana dina Java, tapi dina prosésna kuring mendakan perpustakaan. node-java kalawan nu bisa rélatif gampang ngaéksekusi kode Java ti nodejs sarta sababaraha kode ditulis dina JavaScript. Upami kuring mendakan perpustakaan ieu sateuacana, moal aya hiji baris anu ditulis dina Java. Proyék sisi sanésna anu dilahirkeun dina prosés nyaéta nyiptakeun gudang kalayan dokuméntasi DSL nu kapanggih dina jaringan dina format *.chm, dirobah sarta dibawa kana wujud ketuhanan. Upami panulis file aslina nyaéta pangguna ku nickname yozhic Nalika anjeunna ningali tulisan ieu, kuring hatur nuhun pisan pikeun padamelan anu parantos dilakukeun; tanpa dokuméntasina, kuring sigana moal bakal suksés.

Janten, abdi gaduh kecap dina basa Inggris, éntri kamusna dina format *.html, Sadaya anu tetep nyaéta pikeun ngahijikeun sadayana, nyiptakeun tulisan ANKI tina daptar kecap sareng lebetkeun kana pangkalan data ANKI. Pikeun tujuan ieu proyék di handap ieu dijieun data2anki. Éta tiasa nyandak daptar kecap salaku input, narjamahkeun, nyiptakeun ANKI *.html artikel sarta catetan aranjeunna dina database ANKI. Dina ahir tulisan aya petunjuk ngeunaan cara ngagunakeunana. Samentawis waktos, carita kadua dimana pengulangan jarak tiasa mangpaat.

Carita kadua.

Sadayana jalma anu milari spesialisasi anu langkung / kirang mumpuni, kalebet programer, disanghareupan kedah nyiapkeun wawancara. Seueur konsép anu ditaroskeun dina wawancara anu anjeun henteu dianggo dina prakték sapopoé sareng hilap. Nalika nyiapkeun wawancara, ngabalikeun catetan, buku, buku rujukan, kuring disanghareupan kanyataan yén peryogi seueur waktos sareng perhatian pikeun nyaring inpormasi anu anjeun parantos terang sabab éta henteu salawasna atra sareng anjeun kedah terang. baca taliti pikeun ngarti naon éta. Nalika anjeun sumping ka topik anu leres-leres kedah diulang, sering kajadian yén anjeun parantos bosen sareng kualitas persiapan anjeun sangsara. Dina sababaraha waktos panginten, naha henteu nganggo kartu ANKI pikeun ieu ogé? Contona, nalika nyieun catetan ngeunaan hiji topik, geuwat nyieun catetan dina bentuk tanya jawab, lajeng mun anjeun ngulang deui, anjeun bakal langsung nyaho naha anjeun terang jawaban kana patarosan ieu atanapi henteu.

Hiji-hijina masalah anu timbul nyaéta ngetikkeun patarosan anu panjang pisan sareng pikasebeleun. Pikeun ngagampangkeun prosésna, data2anki proyék I ditambahkeun fungsi ngarobah markdown téks dina kartu ANKI. Sadaya anu anjeun peryogikeun nyaéta nyerat hiji file ageung dimana patarosan sareng waleran bakal ditandaan ku sekuen karakter anu tos ditangtukeun, dimana parser bakal ngartos dimana patarosan sareng dimana jawabanana.

Sakali file ieu dijieun, anjeun ngajalankeun data2anki sarta nyieun kartu ANKI. The file aslina gampang pikeun ngédit sarta babagi, Anjeun ngan perlu mupus kartu pakait (s) tur ngajalankeun program deui, sarta versi anyar bakal dijieun.

Instalasi jeung pamakéan

  1. Masang ANKI + AnkiConnect

    1. Unduh ANKI ti dieu: https://apps.ankiweb.net/
    2. Pasang plugin AnkiConnect: https://ankiweb.net/shared/info/2055492159

  2. setting data2anki

    1. Ngundeur data2anki ti gudang github
      git clone https://github.com/anatoly314/data2anki
    2. Pasang dependensi
      cd data2anki && npm install
    3. Unduh java dependencies https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Ngabongkar bungkusan jar-dependencies.zip jeung nempatkeun eusina dina data2anki/java/jars

  3. Paké pikeun narjamahkeun kecap:

    1. Dina file data2anki/config.json:

      • dina konci mode asupkeun nilai dsl2anki

      • dina konci modules.dsl.anki.deckName и modules.dsl.anki.modelName nulis sasuai Ngaran Dek и model Ngaran (kudu geus dijieun saméméh nyieun kartu). Ayeuna ngan ukur jinis modél anu dirojong dasar:

        Mibanda widang hareup jeung tukang, sarta bakal nyieun hiji kartu. Téks anu anjeun lebetkeun di Hareup bakal némbongan di payun kartu, sareng téks anu anjeun lebetkeun di Balik bakal muncul dina tonggong kartu.

        mana kecap aslina? Médan hareup, sareng tarjamahan bakal aya dina Sawah tukang.

        Henteu aya masalah pikeun nambihan dukungan Dasar (sareng kartu dibalikkeun), dimana kartu sabalikna bakal dijieun pikeun kecap jeung tarjamahan, dimana dumasar kana tarjamahan anjeun bakal kudu inget kecap aslina. Sadaya anu anjeun peryogikeun nyaéta waktos sareng kahayang.

      • dina konci modules.dsl.dictionariesPath ngadaptarkeun hiji Asép Sunandar Sunarya kalawan disambungkeun *.dsl kamus. Unggal kamus disambungkeun mangrupakeun diréktori dimana file kamus aya luyu jeung format: Struktur kamus DSL

      • dina konci modules.dsl.wordToTranslatePath asupkeun jalur ka daptar kecap nu Anjeun hoyong tarjamahkeun.

    2. Jalankeun kalayan ngajalankeun aplikasi ANKI
      node data2ankiindex.js
    3. UNTUNG!!!

  4. Mangpaat pikeun nyieun kartu tina markdown

    1. Dina file data2anki/config.json:

      • dina konci mode asupkeun nilai markdown2anki
      • dina konci modules.markdown.anki.deckName и modules.dsl.anki.modelName nulis sasuai Ngaran Dek и model Ngaran (kudu geus dijieun saméméh nyieun kartu). Pikeun markdown2anki modeu ukur tipe model dirojong dasar.
      • dina konci modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors Anjeun nulis pamilih jeung nu Anjeun cirian awal pananya jeung jawaban, masing-masing. Garis kalawan pamilih sorangan moal parsed sarta moal mungkas nepi di kartu; parser bakal ngamimitian gawé ti baris salajengna.

        Contona, kartu patarosan/jawaban ieu:

        Dua carita kumaha ANKI tiasa ngabantosan anjeun diajar basa asing sareng nyiapkeun wawancara

        Éta bakal katingali sapertos kieu dina markdown:
        #QUESTION# ## Patarosan 5. Tulis hiji fungsi mul nu bakal dianggo leres lamun invoked kalawan sintaksis handap. ```Javascript console.log(mul(2)(3)(4)); // kaluaran: 24 console.log (mul (4) (3) (4)); // kaluaran: 48 ``` #JAWABAN# Di handap ieu kode dituturkeun ku katerangan kumaha gawéna: ```fungsi JavaScript mul (x) {fungsi balik (y) {// fungsi anonim balik fungsi (z) { // fungsi anonim balik x * y * z; }; }; } ``` Di dieu fungsi `mul` narima argumen kahiji jeung mulangkeun fungsi anonim nu nyokot parameter kadua jeung mulangkeun fungsi anonim nu nyokot parameter katilu jeung mulangkeun multiplication argumen nu keur disalurkeun dina saterusna Dina fungsi Javascript ditetepkeun. jero boga aksés ka variabel fungsi luar jeung fungsi mangrupa objek kelas munggaran sangkan bisa balik ku fungsi ogé sarta diliwatan salaku argumen dina fungsi sejen. - Fungsi mangrupa conto tina tipe Obyék - Fungsi bisa mibanda sipat sarta boga tumbu deui ka métode konstruktor na - Fungsi bisa disimpen salaku variabel - Fungsi bisa lulus salaku parameter pikeun fungsi sejen - Fungsi bisa jadi balik ti fungsi sejen
        

        Conto dicokot ti dieu: 123-JavaScript-Wawancara-Patarosan

        Aya ogé file sareng conto dina folder proyék examples/markdown2anki-example.md

      • dina konci modules.markdown.pathToFile
        tuliskeun jalur ka file dimana *.md file patarosan / jawaban

    2. Jalankeun kalayan ngajalankeun aplikasi ANKI
      node data2ankiindex.js
    3. UNTUNG!!!

Ieu mangrupikeun tampilan dina telepon sélulér:

hasil

Kartu anu ditampi dina versi desktop ANKI disingkronkeun tanpa masalah sareng awan ANKI (gratis dugi ka 100mb), teras anjeun tiasa dianggo dimana-mana. Aya klien pikeun Android sarta iPhone, jeung anjeun ogé tiasa make eta dina browser a. Hasilna, upami anjeun gaduh waktos anu anjeun teu gaduh artos, teras tinimbang ngagulung ka Facebook atanapi ucing dina Instagram, anjeun tiasa diajar anu énggal.

epilog

Salaku kuring disebutkeun, ieu téh leuwih ti hiji POC digawé nu bisa Anjeun pake ti produk rengse. Sakitar 30% tina standar parser DSL henteu dilaksanakeun, sareng ku kituna, upamana, teu sakabéh éntri kamus nu aya dina kamus bisa kapanggih, aya ogé ide pikeun nuliskeun deui JavaScript, sabab kuring hayang "konsistensi", jeung sajaba ti, ayeuna teu ditulis pisan optimal. Ayeuna parser ngawangun tangkal, tapi dina pamadegan mah ieu teu perlu jeung teu perlu ngahesekeun kode. DI markdown2anki modeu, gambar teu parsed. Kuring bakal nyobian motong saeutik-saeutik, tapi saprak kuring keur nulis keur diri, kuring mimitina bakal ngajawab masalah anu kuring sorangan bakal lengkah, tapi lamun aya nu hayang mantuan, teras anjeun wilujeng sumping. Upami anjeun gaduh patarosan ngeunaan program éta, kuring bakal resep ngabantosan masalah kabuka dina proyék anu relevan. Tulis kritik sareng saran sanés di dieu. Kuring miharep proyék ieu bakal mangpaat ka batur.

PS Lamun aya bewara kasalahan naon (jeung, hanjakalna, aya sababaraha), nulis ka kuring dina pesen pribadi, Kuring gé ngabenerkeun sagalana.

sumber: www.habr.com

Tambahkeun komentar