Rong crita babagan carane ANKI bisa mbantu sampeyan sinau basa manca lan nyiapake wawancara

Aku tansah pracaya sing programer puguh iku programer apik. Kenging punapa? Amarga njaluk wong sing kerja keras, dheweke bakal nindakake. Lan programer kesed bakal nglampahi 2-3 kaping luwih, nanging bakal nulis script sing bakal nindakake kanggo wong. Bisa uga mbutuhake wektu sing ora cukup kanggo nindakake iki, nanging kanthi tugas sing bola-bali, pendekatan iki bakal dibayar kanthi cepet. Aku nganggep aku programer kesed. Iku preamble, saiki ayo padha mudhun kanggo bisnis.

Crita siji

A sawetara taun kepungkur aku kepingin weruh carane aku bisa nambah Inggris sandi. Ora ana sing luwih apik tinimbang maca sastra. Aku tuku maca elektronik, ngundhuh buku lan aku miwiti maca. Nalika maca, aku terus nemokake tembung sing ora dingerteni. Aku langsung nerjemahake nggunakake kamus sing dibangun ing maca, nanging aku weruh siji fitur: tembung ora pengin dieling-eling. Nalika aku teka tengen tembung iki maneh sawetara kaca mengko, karo 90% kemungkinan aku maneh needed terjemahan, lan iki kedaden saben wektu. Kesimpulane ora cukup mung nerjemahake tembung sing ora dingerteni nalika maca, sampeyan kudu nindakake liya. Pilihan sing becik yaiku ngenalake ing saben dinten lan miwiti nggunakake, nanging aku ora manggon ing negara sing nganggo basa Inggris lan iki ora mungkin. Banjur aku kelingan yen aku tau maca babagan Repetisi Spasi.

Apa iku lan apa sing dipangan? Ing cendhak, ana iki lali kurva, kutipan luwih saka Wikipedia:

Wis ing jam kapisan, nganti 60% kabeh informasi sing ditampa dilalekake; 10 jam sawise hafalan, 35% saka apa sing dipelajari tetep ana ing memori. Banjur proses dilalekake alon-alon, lan sawise 6 dina kira-kira 20% saka jumlah total suku kata sing dipelajari ing memori, lan jumlah sing padha tetep ing memori sawise sasi.

Lan kesimpulan saka kene

Kesimpulan sing bisa dijupuk adhedhasar kurva iki yaiku kanggo ngeling-eling sing efektif kudu mbaleni materi sing wis diapalake.

Dadi kita entuk ide repetisi spasi.

NKI minangka program gratis lan mbukak sumber sing ngetrapake ide pengulangan spasi. Cukup, kertu lampu kilat komputer duwe pitakonan ing sisih siji lan jawaban ing sisih liyane. Awit sampeyan bisa nindakake pitakonan / wangsulan nggunakake biasa html/css/javascript, banjur kita bisa ngomong sing wis kemungkinan saestu limitless. Kajaba iku, iku expandable karo khusus plugins, lan salah sijine bakal migunani banget kanggo kita ing mangsa ngarep.

Kanthi manual nggawe kertu dawa, tedious, lan karo kemungkinan dhuwur, sawise nalika sampeyan bakal lali bab tugas iki, lan ing sawetara titik aku takon dhewe pitakonan, iku bisa kanggo ngotomatisasi tugas iki. Jawabane ya, sampeyan bisa. Lan aku nindakake. Aku bakal ngomong langsung, iku luwih POC (Bukti Konsep), nanging sing bisa digunakake. Yen ana kapentingan saka pangguna lan pangembang liyane melu, banjur bisa digawa menyang produk rampung sing bisa digunakake malah pangguna sing buta huruf teknis. Saiki, nggunakake saranaku mbutuhake sawetara kawruh babagan pemrograman.

Aku maca buku nggunakake program AIRreader. Nduwe kemampuan kanggo nyambungake kamus eksternal, lan nalika nerjemahake tembung, bakal nyimpen tembung sing dijaluk terjemahan menyang file teks. Sing isih ana yaiku nerjemahake tembung kasebut lan nggawe kertu ANKI.

Kaping pisanan aku nyoba digunakake kanggo terjemahan Google Translate, Lingvo API lsp. Nanging samubarang ora bisa ditindakake kanthi layanan gratis. Aku kesel watesan free sak proses pembangunan, Kajaba iku, miturut syarat-syarat lisensi, aku ora duwe hak kanggo cache tembung. Ing sawetara titik aku nyadari yen aku kudu nerjemahake tembung kasebut dhewe. AkibatΓ©, modul ditulis dsl2html sing bisa nyambung DSL kamus lan sing ngerti carane Ngonversi menyang HTML format.

Iki minangka entri kamus ing *.html, pilihanku dibandhingake karo pilihan GoldenDict

Rong crita babagan carane ANKI bisa mbantu sampeyan sinau basa manca lan nyiapake wawancara

Sadurunge nggoleki tembung ing kamus sing nyambung, aku nggawa menyang wangun kamus (lemma) nggunakake perpustakaan Stanford CoreNLP. Nyatane, amarga perpustakaan iki, aku wiwit nulis nganggo basa Jawa lan rencana asline yaiku nulis kabeh nganggo basa Jawa, nanging ing proses aku nemokake perpustakaan kasebut. simpul-Jawa karo sampeyan bisa kanthi gampang nglakokake kode Java saka nodejs lan sawetara kode kasebut ditulis ing JavaScript. Yen aku wis nemokake perpustakaan iki, ora ana siji baris sing ditulis nganggo basa Jawa. Proyek sisih liyane sing lair ing proses kasebut yaiku nggawe gudang karo dokumentasi DSL sing ditemokake ing jaringan ing format *.chm, diowahi lan digawa menyang wujud gaib. Yen penulis file asli minangka pangguna kanthi julukan yozhic Nalika dheweke ndeleng artikel iki, aku matur nuwun banget kanggo karya sing wis ditindakake; tanpa dokumentasi, aku mesthi ora bakal sukses.

Dadi, aku duwe tembung ing basa Inggris, entri kamus ing format *.html, sing isih ana yaiku nggabungake kabeh, nggawe artikel ANKI saka dhaptar tembung lan lebokake ing basis data ANKI. Kanggo tujuan iki, proyek ing ngisor iki digawe data2anki. Bisa njupuk dhaptar tembung minangka input, nerjemahake, nggawe ANKI *.html artikel lan rekam ing database ANKI. Ing pungkasan artikel ana pandhuan babagan cara nggunakake. Sauntara kuwi, crita kapindho yaiku ing ngendi pengulangan spasi bisa migunani.

Crita kapindho.

Kabeh wong sing nggoleki spesialisasi sing luwih mumpuni, kalebu programer, kudu nyiapake wawancara. Akeh konsep sing dijaluk ing wawancara sing ora digunakake ing praktik saben dina lan dilalekake. Nalika nyiapake wawancara, mbukak cathetan, buku, buku referensi, aku ngadhepi kasunyatan manawa butuh wektu lan perhatian sing akeh kanggo nyaring informasi sing wis sampeyan ngerti amarga ora mesthi jelas lan sampeyan kudu ngerti. wacanen kanthi temen-temen supaya ngerti apa iku. Nalika sampeyan teka ing topik sing pancene kudu diulang, asring kedadeyan yen sampeyan wis kesel lan kualitas persiapan sampeyan nandhang sangsara. Ing sawetara titik aku panginten, kok ora nggunakake kertu ANKI kanggo iki banget? Contone, nalika njupuk cathetan ing topik, langsung nggawe cathetan ing wangun pitakonan lan jawaban, banjur nalika mbaleni maneh, sampeyan bakal langsung ngerti apa sampeyan ngerti jawaban kanggo pitakonan iki utawa ora.

Siji-sijine masalah sing muncul yaiku ngetik pitakonan sing dawa banget lan mboseni. Kanggo nggawe proses luwih gampang, data2anki project aku ditambahakΓ© fungsi Ngonversi markdown teks ing kertu ANKI. Sampeyan mung kudu nulis file gedhe sing pitakonan lan jawaban bakal ditandhani kanthi urutan karakter sing wis ditemtokake, sing parser bakal ngerti endi pitakonan lan endi jawabane.

Sawise file iki digawe, sampeyan mbukak data2anki lan nggawe kertu ANKI. File asli gampang diowahi lan dituduhake, sampeyan mung kudu mbusak kertu sing cocog lan mbukak program maneh, lan versi anyar bakal digawe.

Instalasi lan nggunakake

  1. Nginstal ANKI + AnkiConnect

    1. Ngundhuh ANKI saka kene: https://apps.ankiweb.net/
    2. Instal plugin AnkiConnect: https://ankiweb.net/shared/info/2055492159

  2. Instalasi data2anki

    1. Ngundhuh data2anki saka repositori github
      git clone https://github.com/anatoly314/data2anki
    2. Instal dependensi
      cd data2anki && npm install
    3. Unduh java dependencies https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Mbukak bungkus jar-dependencies.zip lan sijine isi ing data2anki/java/jars

  3. Gunakake kanggo nerjemahake tembung:

    1. Ing file data2anki/config.json:

      • ing kunci mode ketik nilai dsl2anki

      • ing kunci modules.dsl.anki.deckName ΠΈ modules.dsl.anki.modelName nulis miturut Jeneng Deck ΠΈ model Jeneng (kudu wis digawe sadurunge nggawe kertu). Saiki mung jinis model sing didhukung dhasar:

        Nduwe lapangan ngarep lan mburi, lan bakal nggawe siji kertu. Teks sing sampeyan lebokake ing Ngarep bakal katon ing ngarep kertu, lan teks sing sampeyan lebokake ing Mburi bakal katon ing mburi kertu.

        ngendi tembung asli? Lapangan ngarep, lan terjemahan bakal ana ing Lapangan mburi.

        Ora ana masalah kanggo nambah dhukungan Dasar (lan kertu dibalik), ngendi kertu mbalikke bakal digawe kanggo tembung lan terjemahan, ngendi adhedhasar terjemahan sampeyan kudu ngelingi tembung asli. Kabeh sing dibutuhake yaiku wektu lan kepinginan.

      • ing kunci modules.dsl.dictionariesPath ndhaftar larik karo disambungake *.dsl kamus. Saben kamus sing disambungake minangka direktori ing ngendi file kamus kasebut cocog karo format: Struktur kamus DSL

      • ing kunci modules.dsl.wordToTranslatePath ketik path menyang dhaptar tembung sing pengin diterjemahake.

    2. Bukak nganggo aplikasi ANKI sing mlaku
      node data2ankiindex.js
    3. UNTUNG!!!

  4. Digunakake kanggo nggawe kertu saka markdown

    1. Ing file data2anki/config.json:

      • ing kunci mode ketik nilai markdown2anki
      • ing kunci modules.markdown.anki.deckName ΠΈ modules.dsl.anki.modelName nulis miturut Jeneng Deck ΠΈ model Jeneng (kudu wis digawe sadurunge nggawe kertu). Kanggo markdown2anki mode mung jinis model didhukung dhasar.
      • ing kunci modules.markdown.selectors.startQuestionSelectors ΠΈ modules.markdown.selectors.startAnswerSelectors sampeyan nulis pamilih karo sing menehi tandha wiwitan pitakonan lan jawaban, mungguh. Baris karo pamilih dhewe ora bakal diurai lan ora bakal ana ing kertu; parser bakal miwiti kerja saka baris sabanjure.

        Contone, kertu pitakonan/jawaban iki:

        Rong crita babagan carane ANKI bisa mbantu sampeyan sinau basa manca lan nyiapake wawancara

        Bakal katon kaya iki ing markdown:
        #QUESTION# ## Pitakonan 5. Tulis fungsi mul sing bakal bisa digunakake kanthi bener nalika dijaluk nganggo sintaks ing ngisor iki. ```javascript console.log(mul(2)(3)(4)); // output: 24 console.log(mul(4)(3)(4)); // output : 48 ``` #ANSWER# Ing ngisor iki kode sing diterusake kanthi katrangan cara kerjane: ```fungsi javascript mul (x) { fungsi bali (y) {/ // fungsi bali fungsi anonim (z) { // fungsi anonim ngasilake x * y * z; }; }; } ``` Ing kene fungsi `mul` nampa argumen pisanan lan ngasilake fungsi anonim sing njupuk parameter kapindho lan ngasilake fungsi anonim sing njupuk parameter katelu lan ngasilake multiplikasi argumen sing diterusake kanthi berturut-turut Ing fungsi Javascript ditetepake. nang nduweni akses menyang variabel fungsi njaba lan fungsi obyek kelas pisanan supaya bisa bali dening fungsi uga lan liwati minangka bantahan ing fungsi liyane. - Fungsi minangka conto saka jinis Obyek - Fungsi bisa nduweni sifat lan nduweni pranala bali menyang metode konstruktor - Fungsi bisa disimpen minangka variabel - Fungsi bisa ditransfer minangka parameter menyang fungsi liyane - Fungsi bisa bali saka fungsi liyane
        

        Conto dijupuk saka kene: 123-JavaScript-Wawancara-Pitakonan

        Ana uga file kanthi conto ing folder proyek examples/markdown2anki-example.md

      • ing kunci modules.markdown.pathToFile
        tulis path menyang file ngendi *.md file pitakonan / jawaban

    2. Bukak nganggo aplikasi ANKI sing mlaku
      node data2ankiindex.js
    3. UNTUNG!!!

Iki minangka tampilan ing ponsel:

asil

Kertu sing ditampa ing versi desktop ANKI disinkronake tanpa masalah karo awan ANKI (gratis nganti 100mb), banjur sampeyan bisa nggunakake ing endi wae. Ana klien kanggo Android lan iPhone, lan sampeyan uga bisa nggunakake ing browser. AkibatΓ©, yen sampeyan duwe wektu sing ora duwe apa-apa, banjur tinimbang nggulung Facebook utawa kucing ing Instagram tanpa tujuan, sampeyan bisa sinau sing anyar.

Epilogue

Kaya sing dakkandhakake, iki luwih akeh POC sing bisa digunakake tinimbang produk sing wis rampung. Udakara 30% saka standar parser DSL ora dileksanakake, mulane, contone, ora kabeh entri kamus sing ana ing kamus bisa ditemokake, ana uga idea kanggo nulis maneh ing JavaScript, amarga aku pengin "konsistensi", lan liyane, saiki ora ditulis kanthi optimal. Saiki parser mbangun wit, nanging ing pendapatku iki ora perlu lan ora perlu rumit kode kasebut. ING markdown2anki mode, gambar ora diurai. Kula badhe nyobi sekedhik-sekedhik, ananging sarehning kula nyerat piyambak, rumiyin kula badhe ngrampungi masalah-masalah ingkang badhe kula lampahi, ananging menawi wonten ingkang kersa paring pitulungan, sumangga panjenengan sedaya kersa. Yen sampeyan duwe pitakon babagan program kasebut, aku bakal seneng mbantu ngatasi masalah mbukak ing proyek sing cocog. Tulis kritik lan saran liyane ing kene. Mugi proyek iki bakal migunani kanggo wong.

PS Yen sampeyan sok dong mirsani kasalahan (lan, sayangΓ©, ana sawetara), nulis kanggo kula ing pesen pribadi, Aku bakal mbenerake kabeh.

Source: www.habr.com

Add a comment