ฉันเชื่อมาโดยตลอดว่าโปรแกรมเมอร์ที่ขี้เกียจก็คือโปรแกรมเมอร์ที่ดี ทำไม เพราะขอให้คนทำงานหนักทำอะไรเขาก็จะไปทำ และโปรแกรมเมอร์ขี้เกียจจะใช้เวลามากกว่า 2-3 เท่า แต่จะเขียนสคริปต์ที่จะทำเพื่อเขา อาจใช้เวลานานเกินสมควรในการทำเช่นนี้ในครั้งแรก แต่การทำงานซ้ำๆ วิธีนี้จะให้ผลเร็วมาก ฉันคิดว่าตัวเองเป็นโปรแกรมเมอร์ที่ขี้เกียจ นั่นคือคำนำ ทีนี้มาลงลึกเรื่องธุรกิจกันดีกว่า
เรื่องที่หนึ่ง
ไม่กี่ปีที่ผ่านมา ฉันสงสัยว่าจะพัฒนาภาษาอังกฤษของฉันได้อย่างไร ไม่มีอะไรดีไปกว่าการอ่านวรรณกรรม ฉันซื้อเครื่องอ่านอิเล็กทรอนิกส์ ดาวน์โหลดหนังสือ และเริ่มอ่าน ในขณะที่อ่าน ฉันมักจะเจอคำศัพท์ที่ไม่คุ้นเคย ฉันแปลทันทีโดยใช้พจนานุกรมที่มีอยู่ในเครื่องอ่าน แต่ฉันสังเกตเห็นคุณสมบัติหนึ่ง: ไม่ต้องการจดจำคำศัพท์ เมื่อฉันเจอคำนี้อีกครั้งในสองสามหน้าต่อมา ด้วยความน่าจะเป็น 90% ที่ฉันจำเป็นต้องแปลอีกครั้ง และสิ่งนี้ก็เกิดขึ้นทุกครั้ง สรุปก็คือการแปลคำที่ไม่คุ้นเคยขณะอ่านนั้นไม่เพียงพอ คุณต้องทำอย่างอื่น ทางเลือกที่เหมาะสมที่สุดคือการแนะนำมันในชีวิตประจำวันและเริ่มใช้มัน แต่ฉันไม่ได้อยู่ในประเทศที่พูดภาษาอังกฤษและไม่น่าเป็นไปได้ แล้วฉันก็จำได้ว่าครั้งหนึ่งฉันเคยอ่านเกี่ยวกับ
มันคืออะไรและกินกับอะไร? สรุปมีเท่านี้ครับ
ภายในชั่วโมงแรกข้อมูลมากถึง 60% ที่ได้รับจะถูกลืม และ 10 ชั่วโมงหลังจากการท่องจำ 35% ของสิ่งที่เรียนรู้จะยังคงอยู่ในความทรงจำ จากนั้น กระบวนการลืมดำเนินไปอย่างช้าๆ และหลังจาก 6 วัน ประมาณ 20% ของจำนวนพยางค์ที่เรียนเริ่มแรกทั้งหมดจะยังคงอยู่ในความทรงจำ และจำนวนเท่ากันจะยังคงอยู่ในความทรงจำหลังจากผ่านไปหนึ่งเดือน
และบทสรุปต่อจากนี้
ข้อสรุปที่สามารถสรุปได้ขึ้นอยู่กับเส้นโค้งนี้คือเพื่อการท่องจำที่มีประสิทธิภาพจำเป็นต้องทำซ้ำเนื้อหาที่จดจำ
เราก็เลยเกิดไอเดียขึ้นมา
การสร้างการ์ดด้วยตนเองนั้นใช้เวลานาน น่าเบื่อ และมีความเป็นไปได้สูง หลังจากนั้นไม่นาน คุณจะลืมงานนี้ และเมื่อถึงจุดหนึ่ง ฉันก็ถามตัวเองว่า เป็นไปได้ไหมที่จะทำให้งานนี้เป็นแบบอัตโนมัติ คำตอบคือใช่ คุณทำได้ และฉันก็ทำมัน ฉันจะพูดทันทีมันมากขึ้น
ฉันอ่านหนังสือโดยใช้โปรแกรม
ตอนแรกฉันพยายามใช้ในการแปล
นี่คือลักษณะรายการพจนานุกรมใน *. htmlตัวเลือกของฉันเมื่อเทียบกับตัวเลือก
ก่อนจะหาคำในพจนานุกรมที่เชื่อมโยงกันก็นำมาให้
ฉันมีคำเป็นภาษาอังกฤษรายการพจนานุกรมอยู่ในรูปแบบ *. htmlสิ่งที่เหลืออยู่คือรวบรวมทุกอย่างเข้าด้วยกัน สร้างบทความ ANKI จากรายการคำแล้วป้อนลงในฐานข้อมูล ANKI เพื่อจุดประสงค์นี้โครงการต่อไปนี้จึงถูกสร้างขึ้น
เรื่องที่สอง.
ทุกคนที่กำลังมองหาความเชี่ยวชาญพิเศษที่มีคุณสมบัติไม่มากก็น้อย รวมถึงโปรแกรมเมอร์ ต้องเผชิญกับความจำเป็นในการเตรียมตัวสำหรับการสัมภาษณ์ แนวคิดหลายประการที่ถูกถามในการสัมภาษณ์ที่คุณไม่ได้ใช้ในชีวิตประจำวันและถูกลืมไป เมื่อเตรียมตัวสัมภาษณ์ พลิกดูบันทึก หนังสือ หนังสืออ้างอิง ผมต้องเผชิญกับความจริงที่ว่ามันต้องใช้เวลาและความเอาใจใส่อย่างมากในการกรองข้อมูลที่คุณรู้อยู่แล้ว เพราะมันไม่ชัดเจนเสมอไปและคุณต้อง อ่านให้ละเอียดเพื่อทำความเข้าใจว่ามันคืออะไร ไม่เกี่ยวข้อง เมื่อคุณมาถึงหัวข้อที่ต้องทำซ้ำจริงๆ มักจะเกิดขึ้นว่าคุณเหนื่อยแล้วและคุณภาพในการเตรียมตัวก็แย่ลง เมื่อถึงจุดหนึ่ง ฉันคิดว่าทำไมไม่ใช้การ์ด ANKI เพื่อสิ่งนี้ด้วยล่ะ ตัวอย่างเช่น เมื่อจดบันทึกหัวข้อใดหัวข้อหนึ่ง ให้สร้างบันทึกในรูปแบบคำถามและคำตอบทันที จากนั้นเมื่อคุณทำซ้ำ คุณจะรู้ได้ทันทีว่าคุณรู้คำตอบสำหรับคำถามนี้หรือไม่
ปัญหาเดียวที่เกิดขึ้นคือการพิมพ์คำถามยาวและน่าเบื่อมาก เพื่อให้กระบวนการง่ายขึ้น
เมื่อไฟล์นี้ถูกสร้างขึ้น คุณจะเรียกใช้ data2anki และสร้างการ์ด ANKI ไฟล์ต้นฉบับนั้นง่ายต่อการแก้ไขและแชร์ คุณเพียงแค่ต้องลบการ์ดที่เกี่ยวข้องและรันโปรแกรมอีกครั้ง จากนั้นเวอร์ชันใหม่จะถูกสร้างขึ้น
การติดตั้งและการใช้งาน
-
กำลังติดตั้ง ANKI + AnkiConnect
- ดาวน์โหลด ANKI จากที่นี่:
https://apps.ankiweb.net/ - ติดตั้งปลั๊กอิน AnkiConnect:
https://ankiweb.net/shared/info/2055492159
- ดาวน์โหลด ANKI จากที่นี่:
-
การติดตั้ง
data2anki - ดาวน์โหลด
data2anki จากพื้นที่เก็บข้อมูล GitHubgit clone https://github.com/anatoly314/data2anki
- ติดตั้งการพึ่งพา
cd data2anki && npm install
- ดาวน์โหลดการพึ่งพา Java
https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip - กำลังแกะกล่อง jar-dependencies.zip และใส่เนื้อหาลงไป data2anki/java/jars
- ดาวน์โหลด
-
ใช้ในการแปลคำศัพท์:
-
ในไฟล์ data2anki/config.json:
-
ในคีย์ โหมด ป้อนค่า dsl2anki
-
ในคีย์ modules.dsl.anki.deckName и modules.dsl.anki.modelName เขียนตามนั้น
ชื่อเด็ค иชื่อรุ่น (ต้องสร้างไว้แล้วก่อนสร้างการ์ด) ปัจจุบันรองรับเฉพาะประเภทโมเดลเท่านั้น ขั้นพื้นฐาน:มีช่องด้านหน้าและด้านหลัง และจะสร้างการ์ดใบเดียว ข้อความที่คุณป้อนไว้ด้านหน้าจะปรากฏที่ด้านหน้าของการ์ด และข้อความที่คุณป้อนไว้ด้านหลังจะปรากฏที่ด้านหลังของการ์ด
คำเดิมอยู่ที่ไหน? สนามหน้าและคำแปลจะเข้ามา สนามหลัง.
ไม่มีปัญหาในการเพิ่มการสนับสนุน บัตรพื้นฐาน (และบัตรกลับด้าน)โดยที่บัตรย้อนกลับจะถูกสร้างขึ้นสำหรับคำและการแปล โดยที่คุณจะต้องจดจำคำต้นฉบับตามการแปล สิ่งที่คุณต้องมีคือเวลาและความปรารถนา
-
ในคีย์ modules.dsl.dictionariesPath ลงทะเบียนอาร์เรย์ด้วยการเชื่อมต่อ *.ดีเอสแอล พจนานุกรม พจนานุกรมที่เชื่อมต่อแต่ละพจนานุกรมคือไดเร็กทอรีที่ไฟล์พจนานุกรมอยู่ตามรูปแบบ:
โครงสร้างพจนานุกรม DSL
-
ในคีย์ modules.dsl.wordToTranslatePath ป้อนเส้นทางไปยังรายการคำที่คุณต้องการแปล
-
- เปิดโดยที่แอปพลิเคชัน ANKI ทำงานอยู่
node data2ankiindex.js
- กำไร!!!
-
-
ใช้สำหรับสร้างการ์ดจากมาร์กดาวน์
-
ในไฟล์ data2anki/config.json:
- ในคีย์ โหมด ป้อนค่า markdown2anki
- ในคีย์ modules.markdown.anki.deckName и modules.dsl.anki.modelName เขียนตามนั้น
ชื่อเด็ค иชื่อรุ่น (ต้องสร้างไว้แล้วก่อนสร้างการ์ด) สำหรับ markdown2anki รองรับโหมดเฉพาะรุ่นเท่านั้น ขั้นพื้นฐาน. -
ในคีย์ modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors คุณเขียนตัวเลือกที่คุณทำเครื่องหมายจุดเริ่มต้นของคำถามและคำตอบตามลำดับ บรรทัดที่มีตัวเลือกจะไม่ถูกแยกวิเคราะห์และจะไม่จบลงในการ์ด parser จะเริ่มทำงานจากบรรทัดถัดไป
ตัวอย่างเช่น การ์ดคำถาม/คำตอบนี้:
มันจะมีลักษณะเช่นนี้ในมาร์กดาวน์:
#QUESTION# ## คำถามที่ 5. เขียนฟังก์ชัน mul ซึ่งจะทำงานอย่างถูกต้องเมื่อเรียกใช้ด้วยไวยากรณ์ต่อไปนี้ ```จาวาสคริปต์ console.log(mul(2)(3)(4)); // เอาต์พุต : 24 console.log(mul(4)(3)(4)); // เอาต์พุต : 48 ``` #ANSWER# ด้านล่างนี้คือโค้ดตามด้วยคำอธิบายวิธีการทำงาน: ```ฟังก์ชัน javascript mul (x) { return function (y) { // ฟังก์ชัน anonymous return function (z) { // ฟังก์ชั่นที่ไม่ระบุชื่อส่งคืน x * y * z; }; }; } ``` ในที่นี้ ฟังก์ชัน `mul` ยอมรับอาร์กิวเมนต์แรกและส่งกลับฟังก์ชันนิรนามซึ่งรับพารามิเตอร์ตัวที่สอง และส่งกลับฟังก์ชันนิรนามซึ่งรับพารามิเตอร์ตัวที่สาม และส่งกลับการคูณของอาร์กิวเมนต์ที่ถูกส่งต่อไปตามลำดับ ในฟังก์ชัน Javascript ที่กำหนด inside มีสิทธิ์เข้าถึงตัวแปรฟังก์ชันภายนอก และฟังก์ชันเป็นอ็อบเจ็กต์คลาสแรก ดังนั้นฟังก์ชันจึงสามารถส่งคืนได้เช่นกัน และส่งผ่านเป็นอาร์กิวเมนต์ในฟังก์ชันอื่น - ฟังก์ชันเป็นตัวอย่างหนึ่งของประเภท Object - ฟังก์ชันสามารถมีคุณสมบัติและมีลิงก์กลับไปยังวิธี Constructor - ฟังก์ชันสามารถจัดเก็บเป็นตัวแปรได้ - ฟังก์ชันสามารถส่งผ่านเป็นพารามิเตอร์ไปยังฟังก์ชันอื่นได้ - ฟังก์ชันสามารถ กลับจากฟังก์ชันอื่น
ตัวอย่างที่นำมาจากที่นี่:
123-JavaScript-สัมภาษณ์-คำถาม นอกจากนี้ยังมีไฟล์พร้อมตัวอย่างอยู่ในโฟลเดอร์โปรเจ็กต์
examples/markdown2anki-example.md
- ในคีย์ modules.markdown.pathToFile
จดเส้นทางไปยังไฟล์โดยที่ *.md ไฟล์คำถาม/คำตอบ
- เปิดโดยที่แอปพลิเคชัน ANKI ทำงานอยู่
node data2ankiindex.js
- กำไร!!!
-
นี่คือลักษณะที่ปรากฏบนโทรศัพท์มือถือ:
ผล
การ์ดที่ได้รับบน ANKI เวอร์ชันเดสก์ท็อปจะถูกซิงโครไนซ์โดยไม่มีปัญหากับคลาวด์ ANKI (ฟรีสูงสุด 100mb) จากนั้นคุณสามารถใช้การ์ดเหล่านั้นได้ทุกที่ มีไคลเอนต์สำหรับ Android และ iPhone และคุณสามารถใช้ในเบราว์เซอร์ได้ เป็นผลให้หากคุณมีเวลาโดยไม่มีอะไรจะใช้จ่าย แทนที่จะเลื่อนดู Facebook หรือแมวบน Instagram อย่างไร้จุดหมาย คุณสามารถเรียนรู้สิ่งใหม่ ๆ ได้
ถ้อยคำส
ดังที่ได้กล่าวไปแล้ว นี่เป็น POC ที่ใช้งานได้ซึ่งคุณสามารถใช้ได้มากกว่าผลิตภัณฑ์สำเร็จรูป ประมาณ 30% ของมาตรฐานตัวแยกวิเคราะห์ DSL ไม่ได้ถูกนำมาใช้ ดังนั้น
ป.ล. หากคุณสังเกตเห็นข้อผิดพลาดใด ๆ (และน่าเสียดายที่มีข้อผิดพลาดอยู่บ้าง) โปรดเขียนถึงฉันทางข้อความส่วนตัว ฉันจะแก้ไขทุกอย่างให้ถูกต้อง
ที่มา: will.com