การสร้างภาษาสคริปต์ใหม่สำหรับประสบการณ์การเรียนรู้? [ปิด]


13

การสร้างภาษาสคริปต์สำหรับประสบการณ์การเรียนรู้ส่วนบุคคลของฉันมีค่าหรือไม่?

เหตุผลที่ฉันถามคือมีภาษาโปรแกรมจำนวนมากที่มีอยู่แล้วฉันรู้ว่าของฉันจะไม่มีการใช้งานจริงนอกเหนือไปจากการมอบประสบการณ์การเรียนรู้ที่ดี อย่างไรก็ตามฉันเห็นข้อเสียเปรียบเพียงแค่พยายามสร้างภาษาสคริปต์เป็นประสบการณ์การเรียนรู้: มันต้องใช้เวลาและความพยายามอย่างมากซึ่งทำให้ฉันสามารถทำอะไรได้มากกว่า

การสร้างภาษาการเขียนโปรแกรม (รวมถึงการเขียนร่างวัตถุประสงค์ที่ต้องการไวยากรณ์ไวยากรณ์ผู้แปล ฯลฯ ) จะคุ้มค่ากับเวลาความพยายามและประสบการณ์การเรียนรู้หรือไม่? หรือมีโครงการอื่น ๆ ที่ฉันสามารถได้รับประโยชน์มากขึ้นจาก?


3
ตัวเลือกอื่นคือการใช้ภาษาที่มีอยู่ ฉันค่อยๆพัฒนาภาษาถิ่น ECMAScript เรียกว่าMacheteมานานกว่าหนึ่งปีและเรียนรู้ไม่น้อย
ChaosPandion

น่าสนใจฉันไม่ได้คิดอย่างนั้น
อีวาน

2
1) เรียนรู้สิ่งนี้ ... www1.idc.ac.il/tecs 2) และสิ่งนี้ ... mitpress.mit.edu/sicp
Joe Internet

คุณสามารถพิจารณาร่วมทำโครงการที่มีอยู่ v8, SpiderMonkey หรือ Python
treecoder

3
IMHO วิธีที่ดีที่สุดในการเรียนรู้ภาษาการเขียนโปรแกรมใหม่คือการใช้คอมไพเลอร์สำหรับพวกเขา (หรืออย่างน้อยสำหรับชุดย่อยที่สำคัญของภาษาต้นฉบับ) ใช่มันเป็นประสบการณ์การเรียนรู้ที่มีประโยชน์
SK-logic

คำตอบ:


15

สร้างทักษะและผลงานของคุณ

ในความคิดของฉันที่จะเป็นประสบการณ์การเรียนรู้ที่ดีมากตามที่จะ:

  • บังคับให้คุณดูที่ใต้เครื่องดูดควัน ,
  • แนะนำให้คุณได้เรียนรู้ว่าสิ่งที่ทำภายใน ,
  • ขอแนะนำให้คุณดูและเปรียบเทียบการใช้งานอื่น ๆ ,
  • รักษาทักษะอัลกอริทึมของคุณให้เร็วขึ้น
  • ทำให้คุณโค้ด (และหวังว่าเอกสาร ) มากซึ่งไม่เลวเช่นกัน
  • ให้โครงการและ codebase ที่สำคัญแก่คุณที่คุณสามารถแบ่งปันออนไลน์เพื่อให้ทุกคนได้เห็นสำหรับ:
    • ความบันเทิงส่วนบุคคลและความพึงพอใจ ,
    • จัดแสดงทักษะของคุณต่อผู้มีโอกาสเป็นนายจ้าง
    • สื่อสารและแลกเปลี่ยนกับเพื่อนที่สนใจในพื้นที่เดียวกัน
    • อาจปล่อยให้มันกลายเป็นสิ่งที่มากกว่า ...

ดังนั้นฉันเห็นสิ่งนี้ว่าเป็นผลผลิตมีประโยชน์และโดยรวมแล้ว "คุ้มค่า"

เริ่ม

ตอนนี้คุณสามารถใช้วิธีการต่าง ๆ ขึ้นอยู่กับเวลาที่คุณวางแผนที่จะใช้จ่ายกับสิ่งนี้ ... :

  • หากคุณมีกรอบเวลาที่ จำกัด ฉันจะพูดว่าดำน้ำและเขียนรหัสสิ่งนั้น
  • หากคุณมีกรอบเวลาที่กว้างขึ้นคุณก็สามารถไปได้ไกลและเขียนสเป็คบทแนะนำด้วยตนเอง ฯลฯ ...

เริ่มเล็ก

ผมค่อนข้างจะแนะนำให้คุณเริ่มต้นเล็ก ๆ ไม่มีใครที่ฉันรู้จักเขียนภาษาที่ยอดเยี่ยมได้อย่างนั้นโดยตรง คุณสะดุดและล้มลงและล้มเหลวและล้มเหลวและล้มเหลว จากนั้นคุณก็ประสบความสำเร็จในการทำงาน แต่ยังคงดูดคุณจึงเริ่มต้นอีกครั้ง และคุณเพิ่มคุณสมบัติใหม่และในที่สุดมันก็เจ๋ง แต่ทันใดนั้นคุณก็รู้ว่ามีแนวคิดพื้นฐานที่ทำให้คุณเมาในตอนแรก ดังนั้นคุณเริ่มต้นใหม่อีกครั้ง ...

ดูเหมือนการศึกษามากสำหรับฉัน

ไปข้างหน้า (และแชร์ลิงก์กับเรา)

ขนาดเล็กเช่นเดียวกับใน "สั้น"

แต่อีกครั้งผมอยากแนะนำให้คุณเริ่มต้นเล็ก ๆ อย่ากลัวถ้ามีคนบอกว่าจะต้องใช้รหัสและเวลามากมาย ไม่จำเป็นถ้าคุณไม่ได้ตั้งใจภาษาที่ซับซ้อน Alan KayและวิศวกรของXerox PARCคนอื่น ๆ ถูกกล่าวหาว่าพัฒนาSmalltalkรุ่นแรก ที่วางบนกระดาษแผ่นเดียวเพื่อให้เกิดความตึงเครียด (อ่านXerox PARC: ตัวแทนจำหน่าย Lightningเพื่อดูรายละเอียดเกี่ยวกับประวัติของPARC ) ดูเหมือนว่าวิธีการที่ดีการศึกษาและมีข้อ จำกัด เพียงพอ (ตราบใดที่ไม่เสียสละการอ่าน)

ขนาดเล็กเช่นเดียวกับใน "ข้อ จำกัด "

คุณไม่จำเป็นต้องสนับสนุนระบบประเภทขั้นสูง funcitons ที่มีลำดับสูงขึ้นและกระบวนทัศน์ที่แตกต่างกัน 42 แบบ มันอาจเป็นภาษาที่แสดงออกทางคณิตศาสตร์

นำความรู้ของผู้อื่นมาใช้ (และดูที่)

คุณอาจต้องการดูเครื่องมือที่ใช้ในการเขียนภาษาตั้งแต่เริ่มต้น คุณสามารถนำทุกอย่างกลับมาใช้ใหม่ได้เอง แต่บางทีมันก็คุ้มค่าที่จะดู lexers และ parser generators ที่มีอยู่เช่นกัน

และแน่นอนคุณอาจต้องการอ่านการสร้างคอมไพเลอร์ที่มีขนาดใหญ่


ตอนนี้ถ้าเราปรับเปลี่ยนคำถามของคุณให้เป็น "จะเป็นการใช้เวลาของคุณให้เกิดประโยชน์สูงสุดหรือไม่" มันกลายเป็นปัญหาที่แตกต่างอย่างสิ้นเชิง :)

มีโครงงานการเรียนรู้อื่น ๆ อีกมากมายที่คุณสามารถจัดการได้และนั่นจะฝึกอบรมและแสดงทักษะของคุณอย่างเท่าเทียมกันถ้าไม่ดีขึ้น มันขึ้นอยู่กับสิ่งที่คุณต้องการมุ่งหวัง


2
+1 สำหรับ "แล้วคุณจะประสบความสำเร็จในการทำงาน แต่ยังคงดูด"
อีวาน

1
@Ivan: ขอบคุณ :) นั่นอาจเป็นอีกส่วนหนึ่งที่ดีของประสบการณ์การเรียนรู้: วิปัสสนาความอ่อนน้อมถ่อมตนและความเพียร!
haylem

1
ฉันเห็นด้วยกับเฮย์เล็ม จำนวนเงินที่คุณจะได้เรียนรู้เกี่ยวกับการเขียนโปรแกรมในรุ่นทั่วไปวิธีการทำงานของภาษาวิธีการต่าง ๆ ของการใช้สิ่งต่าง ๆ จะคุ้มค่า ใช่คุณอาจจะเป็นคนเดียวที่เคยเห็นมัน แต่มันจะกลายเป็นโครงการสัตว์เลี้ยงเล็ก ๆ ของคุณที่คุณทำงานเพื่อปรับปรุงตัวเอง
RJay75

3

ฉันพูดไปข้างหน้า

การใช้ภาษาโปรแกรมครอบคลุมหลากหลายหัวข้อและคุณจะได้เรียนรู้มากมายเกี่ยวกับการทำงานของสิ่งต่างๆ คุณอาจใช้ชีวิตผ่านความพยายามครึ่งโหลหรือล้มเหลว แต่ประสบการณ์การเรียนรู้นั้นมีค่ายิ่ง


2

การออกแบบและการใช้ภาษาการเขียนโปรแกรม (ของเล่น แต่เสร็จสมบูรณ์) จริง ๆ แล้วเป็นหนึ่งในแบบฝึกหัด (จำเป็น?) ในหนึ่งในคลาส CS ส่วนของฉัน (ทั้งคลาสคอมไพเลอร์หรือแบบสำรวจภาษาโปรแกรมฉันลืมว่า ... )

อย่างน้อยศาสตราจารย์ CS คนหนึ่งก็คิดเช่นนั้น

คุณจะจบลงด้วยความชื่นชมที่ดีขึ้นมากสำหรับ "นิสัยใจคอ" ทั้งหมดที่ภาษาอื่นมี


1

มันจะใช้เวลาสักครู่ที่จะทำ คุณวางแผนที่จะรักษามันไว้หรือไม่?

การสร้างภาษาการเขียนโปรแกรม (รวมถึงการเขียนร่างวัตถุประสงค์ที่ต้องการไวยากรณ์ไวยากรณ์ผู้แปล ฯลฯ ) จะคุ้มค่ากับเวลาความพยายามและประสบการณ์การเรียนรู้หรือไม่? หรือมีโครงการอื่น ๆ ที่ฉันสามารถได้รับประโยชน์มากขึ้นจาก?

ฉันสมมติว่าสถานะทางการเงินของคุณไม่มีที่สิ้นสุดดังนั้นฉันจะบอกว่ามันไม่คุ้มค่ากับเวลา คุณสามารถใช้เวลากับโครงการที่มีประโยชน์อื่น ๆ ที่สามารถทำเงินให้คุณได้ โปรดจำไว้ว่านี่อาจไม่ใช่คำตอบที่คุณกำลังมองหา แต่จากจุดยืนเชิงตรรกะฉันจะบอกว่าภาษาการเขียนโปรแกรมของคุณอาจไม่ใช่โครงการที่ถูกต้องในขณะนี้ ฉันจะพิจารณามันหากคุณเป็นนักวิทยาศาสตร์คอมพิวเตอร์ที่เกษียณแล้วและรู้สึกว่าจำเป็นต้องมีส่วนร่วมในอุตสาหกรรม ดูเหมือนว่าคุณมีความมุ่งมั่นในการเขียนโปรแกรมและนั่นยอดเยี่ยม แต่การสร้างภาษาสคริปต์ใหม่ทั้งหมด? นั่นจะเป็นโครงการที่ยาวมาก ในเวลานั้นคุณสามารถสร้างแอพพลิเคชั่นมากมายที่คุณสามารถโยนเข้าไปในแฟ้มสะสมผลงานของคุณ ฉันคิดว่าคำถามคือ:


2
ฉันไม่รู้ ... ความรักที่ยิ่งใหญ่อย่างใดอย่างหนึ่งที่สำคัญกว่ายี่สิบแอพที่ทิ้งไปซึ่งอาจทำให้คุณมีเงินหนึ่งร้อยเหรียญ
ChaosPandion

การใช้ภาษาเฉพาะโดเมนอาจช่วยเร่งการพัฒนาโครงการที่ใช้งานได้จริงอย่างมาก ดังนั้นมันจึงเป็นเรื่องที่คุ้มค่าทางการเงิน
SK-logic

1
บางคนสร้างสิ่งต่าง ๆ เพราะพวกเขาชอบที่จะสร้างสิ่งต่าง ๆ ... ไม่ใช่เพราะการกระทำการสร้างดังกล่าวจะทำให้พวกเขาเงินสด
Jetti

@Jetti ใช่ฉันรู้. นั่นคือเหตุผลที่ฉันบอกว่าคำตอบนี้อาจไม่ใช่สิ่งที่คุณต้องการและฉันบอกได้เลยว่าคุณมีความหลงใหลในการเขียนโปรแกรม ฉันขอขอบคุณที่คุณป้อนข้อมูลเนื่องจากฉันกำลังรอให้ใครบางคนพูดสิ่งที่คุณพูดเกี่ยวกับคำตอบนี้
Ryan

@ Ryan - ขอโทษฉันพลาดส่วนนั้น
Jetti

-2

คำแนะนำของคุณคือ

อย่าบูรณาการล้อ

แรงบันดาลใจสำหรับอุปมาอุปมัยนี้อยู่ในความจริงที่ว่าล้อเป็นส่วนประกอบของความเฉลียวฉลาดของมนุษย์ทั้งโดยอาศัยอำนาจเพิ่มและความยืดหยุ่นที่ผู้ใช้ใช้และในต้นกำเนิดโบราณที่อนุญาตให้รองรับได้มากหากไม่ใช่ทั้งหมด ของเทคโนโลยีที่ทันสมัย เนื่องจากมันถูกประดิษฐ์ขึ้นมาแล้วและไม่ถือว่ามีข้อบกพร่องในการดำเนินงานใด ๆ ความพยายามที่จะบูรณาการมันจะไม่มีจุดหมายและไม่เพิ่มมูลค่าให้กับวัตถุและจะเสียเวลาทำให้ทรัพยากรของนักลงทุนจากเป้าหมายที่คุ้มค่ากว่า ซึ่งทักษะของเขาหรือเธอสามารถเพิ่มมากขึ้นอย่างมีนัยสำคัญ

คุณควรถามตัวเอง:

  • ทำไมคุณต้องสร้างสคริปต์ สคริปต์ที่มีอยู่ออกมีไม่ดีพอหรือไม่
  • คุณจะดูแลและเผยแพร่มันหรือไม่และคุณมั่นใจว่าโปรแกรมเมอร์ของคุณจะถูกใช้งานหรือไม่? หากคำตอบของคุณไม่ใช่ไม่ทำ

ฉันเข้าใจว่าคุณต้องการมีประสบการณ์การเรียนรู้มากขึ้นและด้วยเหตุผลส่วนตัวฉันคิดว่าการสร้างกรอบงานจะช่วยให้คุณได้รับประสบการณ์การเรียนรู้มากขึ้นและด้วยโบนัสที่คุณ / ทีม / ชุมชนสามารถนำมาใช้ใหม่ได้ในภายหลัง

และการ์ตูน xkcd นี้ค่อนข้างมีความเกี่ยวข้องเพียงแค่เปลี่ยน "มาตรฐาน" เป็น "ภาษา" ด้วย:

ป้อนคำอธิบายรูปภาพที่นี่


-1 เขากล่าวอย่างชัดเจนว่านี่จะเป็นประสบการณ์การเรียนรู้ส่วนตัว
GrandmasterB

เพียงแค่ต้องการเปิดเผยว่าการสร้างสคริปต์จะไม่ให้ประสบการณ์การเรียนรู้และประโยชน์ส่วนตัวกับตัวเองและชุมชน ฉันยังเพิ่มคำตอบของฉันว่าการสร้างกรอบงานจะเป็นประโยชน์กับเขาและชุมชนมากขึ้น ฉันไม่รังเกียจที่จะลงคะแนนมากขึ้นถ้าคุณรู้สึกว่ามันไม่เป็นความจริง
รูดี้

2
ใช่คุณพูดถูก - ไม่มีโปรแกรมเมอร์คนใหม่ที่จะเขียน "Hello, World!" เป็นครั้งแรก - หลังจากทั้งหมดมันจะดีกว่ามากเพียงแค่ดาวน์โหลดไฟล์ที่มีอยู่ และ " กรอบ " ในบริบทนี้คืออะไร?
SK-logic

5
@ รูดี้การใช้คอมไพเลอร์หรือล่ามนั้นเป็นทักษะพื้นฐานเล็กน้อยที่อยู่ใกล้กับ "Hello, World!" นั่นเป็นเหตุผลที่บังคับใช้ในหลักสูตร CS ที่เหมาะสม และแม้จะเป็นเรื่องเล็กน้อย แต่งานนี้สอนทักษะที่มีประโยชน์มากมายซึ่งสามารถนำไปใช้ในทางปฏิบัติในเกือบทุกด้าน จำเป็นต้องพูดถึงว่าการติดตั้ง DSL นั้นมีความสำคัญอย่างยิ่ง (โปรดทราบว่าสิ่งที่ไฮเบอร์เนตที่คุณพูดถึงคือ DSL และมีล่ามและคอมไพเลอร์จำนวนมากฝังอยู่ในนั้น
SK-logic

3
@ SK-ตรรกะ - คุณไม่ได้ช่วยให้เห็นคุณค่าในตนเองของฉันที่นี่ ... :)
ChaosPandion
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.