Δύο ιστορίες για το πώς το ANKI μπορεί να σας βοηθήσει να μάθετε μια ξένη γλώσσα και να προετοιμαστείτε για μια συνέντευξη

Πάντα πίστευα ότι ένας τεμπέλης προγραμματιστής είναι καλός προγραμματιστής. Γιατί; Γιατί ζητήστε από έναν σκληρά εργαζόμενο να κάνει κάτι, θα πάει και θα το κάνει. Και ένας τεμπέλης προγραμματιστής θα ξοδέψει 2-3 φορές περισσότερο χρόνο, αλλά θα γράψει ένα σενάριο που θα του το κάνει. Μπορεί να χρειαστεί αδικαιολόγητα πολύς χρόνος για να γίνει αυτό την πρώτη φορά, αλλά με επαναλαμβανόμενες εργασίες αυτή η προσέγγιση θα αποδώσει πολύ γρήγορα. Θεωρώ τον εαυτό μου τεμπέλη προγραμματιστή. Αυτό ήταν το προοίμιο, τώρα ας περάσουμε στην υπόθεση.

Ιστορία πρώτη

Πριν από μερικά χρόνια αναρωτιόμουν πώς θα μπορούσα να βελτιώσω τα αγγλικά μου. Δεν μου ήρθε τίποτα καλύτερο από το να διαβάζω λογοτεχνία. Αγόρασα έναν ηλεκτρονικό αναγνώστη, κατέβασα βιβλία και άρχισα να διαβάζω. Καθώς διάβαζα, συνέχιζα να συναντώ άγνωστες λέξεις. Τα μετέφρασα αμέσως χρησιμοποιώντας τα ενσωματωμένα λεξικά στον αναγνώστη, αλλά παρατήρησα ένα χαρακτηριστικό: οι λέξεις δεν ήθελαν να τις θυμούνται. Όταν συνάντησα ξανά αυτή τη λέξη μερικές σελίδες αργότερα, με πιθανότητα 90% χρειάστηκα ξανά μετάφραση, και αυτό συνέβαινε κάθε φορά. Το συμπέρασμα ήταν ότι δεν αρκούσε απλώς να μεταφράζετε άγνωστες λέξεις ενώ διαβάζετε, πρέπει να κάνετε κάτι άλλο. Η ιδανική επιλογή θα ήταν να το εισάγω στην καθημερινή ζωή και να αρχίσω να το χρησιμοποιώ, αλλά δεν ζω σε αγγλόφωνη χώρα και αυτό είναι απίθανο. Μετά θυμήθηκα ότι κάποτε είχα διαβάσει Διάστημα επανάληψης.

Τι είναι και με τι τρώγεται; Με λίγα λόγια, υπάρχει αυτό ξεχνώντας καμπύλη, περαιτέρω απόσπασμα από τη Wikipedia:

Ήδη μέσα στην πρώτη ώρα, έως και το 60% όλων των πληροφοριών που λαμβάνονται ξεχνιούνται· 10 ώρες μετά την απομνημόνευση, το 35% των πληροφοριών που μαθεύτηκαν παραμένει στη μνήμη. Στη συνέχεια, η διαδικασία της λήθης προχωρά αργά και μετά από 6 ημέρες περίπου το 20% του συνολικού αριθμού των συλλαβών που είχαν αρχικά μάθει παραμένει στη μνήμη και το ίδιο ποσό παραμένει στη μνήμη μετά από ένα μήνα.

Και το συμπέρασμα από εδώ

Τα συμπεράσματα που μπορούν να εξαχθούν με βάση αυτή την καμπύλη είναι ότι για αποτελεσματική απομνημόνευση είναι απαραίτητη η επανάληψη του απομνημονευμένου υλικού.

Έτσι, καταλήξαμε σε μια ιδέα επανάληψη σε απόσταση.

ANKI είναι ένα εντελώς δωρεάν και ανοιχτού κώδικα πρόγραμμα που υλοποιεί την ιδέα της επανάληψης σε διάστημα. Με απλά λόγια, οι ηλεκτρονικές κάρτες flash έχουν μια ερώτηση στη μία πλευρά και μια απάντηση στην άλλη. Επειδή μπορείτε να κάνετε ερωτήσεις/απαντήσεις χρησιμοποιώντας τακτικά html/css/javascript, τότε μπορούμε να πούμε ότι έχει πραγματικά απεριόριστες δυνατότητες. Επιπλέον, είναι επεκτάσιμο με ειδικές πρόσθετα, και ένα από αυτά θα μας είναι πολύ χρήσιμο στο μέλλον.

Η μη αυτόματη δημιουργία καρτών είναι μακρά, κουραστική και με μεγάλη πιθανότητα, μετά από λίγο θα ξεχάσετε αυτήν την εργασία, και έτσι κάποια στιγμή έθεσα στον εαυτό μου την ερώτηση, είναι δυνατόν να αυτοματοποιηθεί αυτή η εργασία. Η απάντηση είναι ναι, μπορείτε. Και το έκανα. Θα πω αμέσως, είναι περισσότερα POC (Proof of concept), αλλά που μπορεί να χρησιμοποιηθεί. Εάν υπάρχει ενδιαφέρον από χρήστες και συμμετέχουν άλλοι προγραμματιστές, τότε μπορεί να μεταφερθεί σε ένα τελικό προϊόν που μπορούν να χρησιμοποιήσουν ακόμη και τεχνικά αναλφάβητοι χρήστες. Τώρα, η χρήση του βοηθητικού προγράμματος μου απαιτεί κάποιες γνώσεις προγραμματισμού.

Διαβάζω βιβλία χρησιμοποιώντας το πρόγραμμα AIRreader. Έχει τη δυνατότητα να συνδέει εξωτερικά λεξικά και όταν μεταφράζετε μια λέξη, αποθηκεύει τη λέξη που καλέσατε για μετάφραση σε ένα αρχείο κειμένου. Το μόνο που μένει είναι να μεταφραστούν αυτές οι λέξεις και να δημιουργηθούν κάρτες ΑΝΚΙ.

Στην αρχή προσπάθησα να χρησιμοποιήσω για μετάφραση Google Translate, Lingvo API και τα λοιπά. Αλλά τα πράγματα δεν λειτούργησαν με τις δωρεάν υπηρεσίες. Εξάντλησα το δωρεάν όριο κατά τη διαδικασία ανάπτυξης, επιπλέον, σύμφωνα με τους όρους της άδειας, δεν είχα δικαίωμα αποθήκευσης λέξεων. Κάποια στιγμή κατάλαβα ότι έπρεπε να μεταφράσω τις λέξεις μόνος μου. Ως αποτέλεσμα, γράφτηκε μια ενότητα dsl2html στο οποίο μπορείτε να συνδεθείτε Λεξικά DSL και ποιος ξέρει πώς να τα μετατρέψει σε HTML μορφή.

Έτσι φαίνεται μια καταχώρηση λεξικού στο *. Html, η επιλογή μου σε σύγκριση με την επιλογή GoldenDict

Δύο ιστορίες για το πώς το ANKI μπορεί να σας βοηθήσει να μάθετε μια ξένη γλώσσα και να προετοιμαστείτε για μια συνέντευξη

Πριν ψάξω για μια λέξη σε συνδεδεμένα λεξικά, τη μεταφέρω στο φόρμα λεξικού (λήμμα) χρησιμοποιώντας τη βιβλιοθήκη Stanford CoreNLP. Στην πραγματικότητα, λόγω αυτής της βιβλιοθήκης, άρχισα να γράφω σε Java και το αρχικό σχέδιο ήταν να γράψω τα πάντα σε Java, αλλά στην πορεία βρήκα τη βιβλιοθήκη κόμβος-java με το οποίο μπορείτε σχετικά εύκολα να εκτελέσετε κώδικα Java από το nodejs και μέρος του κώδικα είναι γραμμένο σε JavaScript. Αν είχα βρει αυτή τη βιβλιοθήκη νωρίτερα, δεν θα είχε γραφτεί ούτε μια γραμμή σε Java. Ένα άλλο παράπλευρο έργο που γεννήθηκε στην πορεία είναι η δημιουργία αποθετήριο με τεκμηρίωση DSL που βρέθηκε στο δίκτυο με τη μορφή *.χμ, μετατράπηκε και έφερε σε θεϊκή μορφή. Εάν ο συντάκτης του αρχικού αρχείου είναι χρήστης με ψευδώνυμο γιόζικ Όταν βλέπει αυτό το άρθρο, τον ευχαριστώ πολύ για τη δουλειά που έχει κάνει· χωρίς την τεκμηρίωσή του, πιθανότατα δεν θα τα κατάφερνα.

Λοιπόν, έχω μια λέξη στα αγγλικά, την καταχώρισή της στο λεξικό με τη μορφή *. Html, το μόνο που μένει είναι να συνδυάσουμε τα πάντα, να δημιουργήσουμε άρθρα ANKI από τη λίστα λέξεων και να τα εισάγουμε στη βάση δεδομένων ANKI. Για το σκοπό αυτό δημιουργήθηκε το παρακάτω έργο data2anki. Μπορεί να πάρει μια λίστα λέξεων ως είσοδο, μετάφραση, δημιουργία ANKI *. Html άρθρα και να τα καταγράψετε στη βάση δεδομένων ANKI. Στο τέλος του άρθρου υπάρχουν οδηγίες για τον τρόπο χρήσης του. Εν τω μεταξύ, η δεύτερη ιστορία είναι όπου οι επαναλήψεις σε απόσταση μπορεί να είναι χρήσιμες.

Η δεύτερη ιστορία.

Όλοι οι άνθρωποι που αναζητούν μια περισσότερο ή λιγότερο εξειδικευμένη ειδικότητα, συμπεριλαμβανομένων των προγραμματιστών, αντιμετωπίζουν την ανάγκη να προετοιμαστούν για μια συνέντευξη. Πολλές από τις έννοιες που ζητούνται σε συνεντεύξεις δεν τις χρησιμοποιείτε στην καθημερινή πρακτική και ξεχνιούνται. Όταν προετοιμαζόμουν για μια συνέντευξη, ξεφυλλίζοντας σημειώσεις, ένα βιβλίο, ένα βιβλίο αναφοράς, αντιμετώπισα το γεγονός ότι χρειάζεται πολύς χρόνος και προσοχή για να κοσκινίσω πληροφορίες που ήδη γνωρίζετε, επειδή δεν είναι πάντα προφανείς και πρέπει να διαβάστε το προσεκτικά για να καταλάβετε τι είναι.άσχετο. Όταν έρχεστε σε ένα θέμα που πραγματικά χρειάζεται να επαναληφθεί, συμβαίνει συχνά να είστε ήδη κουρασμένοι και να υποφέρει η ποιότητα της προετοιμασίας σας. Κάποια στιγμή σκέφτηκα, γιατί να μην χρησιμοποιήσω κάρτες ANKI και για αυτό; Για παράδειγμα, όταν κρατάτε σημειώσεις για ένα θέμα, δημιουργήστε αμέσως μια σημείωση με τη μορφή ερώτησης και απάντησης και, στη συνέχεια, όταν την επαναλάβετε, θα μάθετε αμέσως εάν γνωρίζετε την απάντηση σε αυτήν την ερώτηση ή όχι.

Το μόνο πρόβλημα που προέκυψε ήταν ότι η πληκτρολόγηση των ερωτήσεων ήταν πολύ μεγάλη και κουραστική. Για να διευκολυνθεί η διαδικασία, data2anki έργο Πρόσθεσα τη λειτουργία μετατροπής χαμήλωση τιμής κείμενο σε κάρτες ANKI. Το μόνο που χρειάζεται είναι να γράψετε ένα μεγάλο αρχείο στο οποίο οι ερωτήσεις και οι απαντήσεις θα επισημαίνονται με μια προκαθορισμένη ακολουθία χαρακτήρων, με την οποία ο αναλυτής θα καταλάβει πού είναι η ερώτηση και πού είναι η απάντηση.

Μόλις δημιουργηθεί αυτό το αρχείο, εκτελείτε το data2anki και δημιουργεί κάρτες ANKI. Το αρχικό αρχείο είναι εύκολο να επεξεργαστείτε και να μοιραστείτε, απλά πρέπει να διαγράψετε τις αντίστοιχες κάρτες και να εκτελέσετε ξανά το πρόγραμμα και θα δημιουργηθεί μια νέα έκδοση.

Εγκατάσταση και χρήση

  1. Εγκατάσταση ANKI + AnkiConnect

    1. Κατεβάστε το ANKI από εδώ: https://apps.ankiweb.net/
    2. Εγκαταστήστε το πρόσθετο AnkiConnect: https://ankiweb.net/shared/info/2055492159

  2. Εγκατάσταση data2anki

    1. Κατεβάστε data2anki από το αποθετήριο github
      git clone https://github.com/anatoly314/data2anki
    2. Εγκαταστήστε εξαρτήσεις
      cd data2anki && npm install
    3. Λήψη εξαρτήσεων java https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. Αποσυσκευασία jar-dependencies.zip και τοποθετήστε το περιεχόμενό του data2anki/java/jars

  3. Χρησιμοποιήστε για να μεταφράσετε λέξεις:

    1. Στο αρχείο data2anki/config.json:

      • στο κλειδί τρόπος εισάγετε την τιμή dsl2anki

      • στο κλειδί modules.dsl.anki.deckName и modules.dsl.anki.modelName γράψε ανάλογα Όνομα καταστρώματος и Όνομα μοντέλου (πρέπει να έχει ήδη δημιουργηθεί πριν από τη δημιουργία καρτών). Προς το παρόν υποστηρίζεται μόνο ο τύπος μοντέλου Βασικο:

        Έχει πεδία μπροστά και πίσω και θα δημιουργήσει μία κάρτα. Το κείμενο που εισάγετε μπροστά θα εμφανίζεται στο μπροστινό μέρος της κάρτας και το κείμενο που εισάγετε στο Πίσω θα εμφανίζεται στο πίσω μέρος της κάρτας.

        που είναι η αρχική λέξη; Μπροστινό πεδίο, και η μετάφραση θα είναι μέσα Πίσω πεδίο.

        Δεν υπάρχει πρόβλημα με την προσθήκη υποστήριξης Βασική (και αντίστροφη κάρτα), όπου θα δημιουργηθεί μια αντίστροφη κάρτα για τη λέξη και τη μετάφραση, όπου με βάση τη μετάφραση θα πρέπει να θυμάστε την αρχική λέξη. Το μόνο που χρειάζεστε είναι χρόνος και επιθυμία.

      • στο κλειδί modules.dsl.dictionariesPath καταχωρήστε έναν πίνακα με συνδεδεμένο *.dsl λεξικά. Κάθε συνδεδεμένο λεξικό είναι ένας κατάλογος στον οποίο βρίσκονται τα αρχεία λεξικού σύμφωνα με τη μορφή: Δομή λεξικού DSL

      • στο κλειδί modules.dsl.wordToTranslatePath εισάγετε τη διαδρομή προς τη λίστα των λέξεων που θέλετε να μεταφράσετε.

    2. Εκκινήστε με την εφαρμογή ANKI σε λειτουργία
      node data2ankiindex.js
    3. ΚΕΡΔΟΣ!!!

  4. Χρήσεις για τη δημιουργία καρτών από τη σήμανση

    1. Στο αρχείο data2anki/config.json:

      • στο κλειδί τρόπος εισάγετε την τιμή markdown2anki
      • στο κλειδί modules.markdown.anki.deckName и modules.dsl.anki.modelName γράψε ανάλογα Όνομα καταστρώματος и Όνομα μοντέλου (πρέπει να έχει ήδη δημιουργηθεί πριν από τη δημιουργία καρτών). Για markdown2anki υποστηρίζεται μόνο τύπος μοντέλου Βασικο.
      • στο κλειδί modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors γράφεις επιλογείς με τους οποίους σημειώνεις την αρχή της ερώτησης και της απάντησης αντίστοιχα. Η γραμμή με τον ίδιο τον επιλογέα δεν θα αναλυθεί και δεν θα καταλήξει στην κάρτα· ο αναλυτής θα αρχίσει να λειτουργεί από την επόμενη γραμμή.

        Για παράδειγμα, αυτή η κάρτα ερωτήσεων/απαντήσεων:

        Δύο ιστορίες για το πώς το ANKI μπορεί να σας βοηθήσει να μάθετε μια ξένη γλώσσα και να προετοιμαστείτε για μια συνέντευξη

        Θα μοιάζει με αυτό στη σήμανση:
        #QUESTION# ## Ερώτηση 5. Γράψτε μια συνάρτηση mul η οποία θα λειτουργεί σωστά όταν καλείται με την παρακάτω σύνταξη. ```javascript console.log(mul(2)(3)(4)); // έξοδος : 24 console.log(mul(4)(3)(4)); // output : 48 ``` #ANSWER# Ακολουθεί ο κώδικας ακολουθούμενος από την εξήγηση του τρόπου λειτουργίας του: ``` javascript function mul (x) { return function (y) { // ανώνυμη συνάρτηση return function (z) { // ανώνυμη συνάρτηση επιστροφή x * y * z; }; }; } ``` Εδώ η συνάρτηση `mul` δέχεται το πρώτο όρισμα και επιστρέφει την ανώνυμη συνάρτηση που παίρνει τη δεύτερη παράμετρο και επιστρέφει την ανώνυμη συνάρτηση που παίρνει την τρίτη παράμετρο και επιστρέφει τον πολλαπλασιασμό των ορισμάτων που μεταβιβάζονται διαδοχικά στη συνάρτηση Javascript που ορίζεται Το inside έχει πρόσβαση στην εξωτερική μεταβλητή συνάρτησης και η συνάρτηση είναι το αντικείμενο πρώτης κατηγορίας, ώστε να μπορεί να επιστραφεί και από τη συνάρτηση και να περάσει ως όρισμα σε άλλη συνάρτηση. - Μια συνάρτηση είναι μια παρουσία του τύπου Αντικειμένου - Μια συνάρτηση μπορεί να έχει ιδιότητες και έχει έναν σύνδεσμο πίσω στη μέθοδο κατασκευής της - Μια συνάρτηση μπορεί να αποθηκευτεί ως μεταβλητή - Μια συνάρτηση μπορεί να μεταβιβαστεί ως παράμετρος σε μια άλλη συνάρτηση - Μια συνάρτηση μπορεί να επέστρεψε από άλλη λειτουργία
        

        Παράδειγμα από εδώ: 123-JavaScript-Συνέντευξη-Ερωτήσεις

        Υπάρχει επίσης ένα αρχείο με παραδείγματα στον φάκελο του έργου examples/markdown2anki-example.md

      • στο κλειδί modules.markdown.pathToFile
        γράψτε τη διαδρομή προς το αρχείο όπου *.md αρχείο ερώτησης/απάντησης

    2. Εκκινήστε με την εφαρμογή ANKI σε λειτουργία
      node data2ankiindex.js
    3. ΚΕΡΔΟΣ!!!

Έτσι φαίνεται σε ένα κινητό τηλέφωνο:

Αποτέλεσμα

Οι κάρτες που λαμβάνονται στην επιτραπέζια έκδοση του ANKI συγχρονίζονται χωρίς προβλήματα με το σύννεφο ANKI (δωρεάν έως 100mb) και στη συνέχεια μπορείτε να τις χρησιμοποιήσετε παντού. Υπάρχουν πελάτες για Android και iPhone και μπορείτε επίσης να το χρησιμοποιήσετε σε πρόγραμμα περιήγησης. Ως αποτέλεσμα, αν έχετε χρόνο στον οποίο δεν έχετε τίποτα να ξοδέψετε, τότε αντί να κάνετε άσκοπη κύλιση στο Facebook ή τις γάτες στο Instagram, μπορείτε να μάθετε κάτι νέο.

Επίλογος

Όπως ανέφερα, αυτό είναι περισσότερο ένα λειτουργικό POC που μπορείτε να χρησιμοποιήσετε παρά ένα τελικό προϊόν. Περίπου το 30% του προτύπου ανάλυσης DSL δεν εφαρμόζεται, και ως εκ τούτου, για παράδειγμα, δεν μπορούν να βρεθούν όλες οι καταχωρήσεις λεξικού που βρίσκονται σε λεξικά, υπάρχει επίσης μια ιδέα να το ξαναγράψετε το JavaScript, γιατί θέλω «συνέπεια», και επιπλέον, τώρα δεν είναι γραμμένο και πολύ βέλτιστα. Τώρα ο αναλυτής δημιουργεί ένα δέντρο, αλλά κατά τη γνώμη μου αυτό είναι περιττό και δεν χρειάζεται να περιπλέξει τον κώδικα. ΣΕ markdown2anki λειτουργία, οι εικόνες δεν αναλύονται. Θα προσπαθήσω να κόψω σιγά σιγά, αλλά μιας και γράφω για τον εαυτό μου, θα λύσω πρώτα από όλα τα προβλήματα που θα πατήσω εγώ ο ίδιος, αλλά αν θέλει κάποιος να βοηθήσει, είναι ευπρόσδεκτος. Εάν έχετε ερωτήσεις σχετικά με το πρόγραμμα, θα χαρώ να βοηθήσω μέσω ανοιχτών θεμάτων στα σχετικά έργα. Γράψτε άλλες κριτικές και προτάσεις εδώ. Ελπίζω αυτό το έργο να είναι χρήσιμο σε κάποιον.

Υ.Γ.Αν παρατηρήσετε κάποια λάθη (και, δυστυχώς, υπάρχουν κάποια), γράψτε μου σε προσωπικό μήνυμα, θα τα διορθώσω όλα.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο