ทำไม Scheme เป็นภาษาแรกของฉันในมหาวิทยาลัย


80

ฉันได้ยินเกี่ยวกับ C, C ++, Java ทุกวันเมื่อใดก็ตามที่ผู้คนเริ่มพูดถึงวิทยาศาสตร์คอมพิวเตอร์ แต่ในวิชาวิทยาศาสตร์คอมพิวเตอร์ครั้งแรกของฉันเราถูกขอให้เขียนใน Scheme (DrRacket)

ทำไมถึงเป็นอย่างนั้น?

สิ่งนี้จะทำให้ความเข้าใจในการเขียนโปรแกรมในอนาคตของฉันแตกต่างกันอย่างไร

UPDATE: ฉันเรียนจบภาคแรกแล้ว แต่ยังไม่เสร็จสมบูรณ์ด้วย Scheme ในระยะที่สองของฉัน (ซึ่งตอนนี้) เราได้เข้าร่วมในการเขียนโปรแกรม C ในตอนแรกฉันรู้สึกผิดหวังที่ได้เรียนพอยน์เตอร์ แต่ตอนนี้ฉันรู้สึกดีขึ้นมาก

ไม่มีอะไรจะพูดมากกว่านี้อีกแล้ว ฉันพยายามสอนตัวเอง Java (หรือ C ++?) สำหรับส่วน OOP ที่ฉันขาดหายไป จนถึงตอนนี้ฉันยังชอบโปรแกรมที่ใช้งานได้ดีที่สุด แลมบ์ดานั้นน่าหลงใหล :)


148
ขอแสดงความยินดีด้วย (สำหรับฉัน) ดูเหมือนคุณอาจจะไปโรงเรียนแห่งหนึ่งในไม่กี่แห่งที่พยายามสอนวิทยาศาสตร์คอมพิวเตอร์ แผนการเรียนรู้เป็นภาษาแรกคือ (IMO) เป็นสิ่งที่ดีมาก ไม่มันไม่เชิงพาณิชย์เท่า ๆ กับคนอื่น ๆ แต่มันเป็นภาษาที่ยอดเยี่ยมสำหรับการเรียนรู้สาระสำคัญที่แท้จริงของวิทยาศาสตร์คอมพิวเตอร์
Jerry Coffin

21
C, C ++ และ Java เป็นผลพลอยได้จากอุตสาหกรรมวิทยาศาสตร์คอมพิวเตอร์ รากทั้งหมดของโครงการอยู่ในสาขาวิทยาศาสตร์คอมพิวเตอร์ ภาษาที่ใช้ในเชิงพาณิชย์เกี่ยวข้องกับวิทยาการคอมพิวเตอร์มากพอ ๆ กับที่ McDonalds เกี่ยวข้องกับอาหาร
JasonTrue

33
พวกเหล่านี้ถูกต้อง คุณกำลังสับสนกับการเขียนโปรแกรมคอมพิวเตอร์กับวิทยาการคอมพิวเตอร์ - ดังที่ Dijkstra กล่าวว่ามันเหมือนกับการสร้างกล้องโทรทรรศน์ที่สับสนกับดาราศาสตร์ โครงการเป็นเรื่องเกี่ยวกับภาษาที่ดีที่สุดมีสำหรับการเรียนรู้แนวคิดพื้นฐานในสาขาวิชาวิทยาการคอมพิวเตอร์ หากคุณคาดหวังว่าจะได้รับปริญญาวิทยาศาสตร์คอมพิวเตอร์เป็นเรื่องเกี่ยวกับการเรียนรู้วิธีการเขียนแอปสายธุรกิจใน Java คุณอาจลงทะเบียนในโปรแกรมที่ไม่ถูกต้อง
Eric Lippert

29
ด้วยเหตุผลเดียวกันว่าหลักสูตรสัตววิทยาสอนชีววิทยากายวิภาคศาสตร์และพฤติกรรมของสัตว์วิวัฒนาการมากกว่าวิธีการโคลนออกจากคอกช้าง
JK

4
เมื่อคุณมีเท้าของคุณภายใต้คุณด้วยการทำความเข้าใจไวยากรณ์พื้นฐานของ Scheme ลองอ่าน "The Little Schemer" มันเป็นหนังสือที่บาง แต่ถ้าคุณสามารถเข้าใจทุกอย่างในนั้นคุณจะมีความเข้าใจที่มั่นคงเกี่ยวกับพื้นฐานของภาษาโปรแกรมการทำงาน
Eric Lippert

คำตอบ:


91

ฟังดูเหมือนโรงเรียนที่ยอดเยี่ยม! เสียงกระเพื่อมตามกระบวนทัศน์ทางคณิตศาสตร์ของอัลกอริทึมอย่างใกล้ชิดมากขึ้น พวกเขาบังคับให้โปรแกรมเมอร์เรียนรู้การเรียกซ้ำและลักษณะการทำงาน นี่เป็นประสบการณ์ที่ยอดเยี่ยม โรงเรียนของคุณอยู่ในอันดับที่มี MIT ซึ่งยังคงใช้Abelson และ Sussmanสำหรับ CS 6.001 ที่ต้องการ

คุณอาจพบบทความนี้สนับสนุนและเป็นประโยชน์ในการทำความเข้าใจปัญหา


6
"แรง" อาจไม่ใช่คำที่ดีที่จะใช้ แล้วรถไฟล่ะ
Barry Brown

4
ที่จริงแล้วมีการเปลี่ยนแปลงอย่างกว้างขวางในหลักสูตร EECS ของ MIT ในช่วงสองสามปีที่ผ่านมา หลักสูตรแนะนำของพวกเขาถูกแบ่งออกเป็นสองหลักสูตรในขณะนี้ (ดูmit.edu/6.01/mercurial/fall11/www/index.htmlสำหรับครึ่งแรก) และการเรียนการสอนภาษาส่วนใหญ่อยู่ใน Python
jonsca

4
ฉันยอมรับว่า Scheme เป็นภาษาที่ยอดเยี่ยมและเป็นความคิดที่ดีที่จะเรียนรู้ อย่างไรก็ตามเรามาเผชิญหน้ากัน เกือบทุกงานเขียนโปรแกรมในโลกแห่งความจริงใช้ภาษาที่จำเป็น งานเขียนโปรแกรมที่จริงจังที่สุดต้องใช้ C ++ และโปรแกรมเมอร์ C ++ มักจะกีดกันคุณจากการใช้แนวคิดทางคณิตศาสตร์ที่ดีสำหรับการออกแบบโปรแกรมด้วยเหตุผลใดก็ตาม การเรียกซ้ำจะไม่ได้มีบทบาทสำคัญในโปรแกรมที่จำเป็นของคุณ
Felix Dombek

4
@ FelixDombek คุณแน่ใจเหรอ? ความคิดทั้งหมด ? จริงๆ? การวนซ้ำที่จำเป็นเป็นความคิดทางคณิตศาสตร์เช่นกัน
SK-logic

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

37

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

ไม่ต้องกังวล ในที่สุดคุณจะได้เรียนรู้ Java / C / C ++ ซึ่งอาจเริ่มในปีที่สองของคุณ หากคุณเริ่มเรียนรู้ Java 6 ตอนนี้ตามเวลาที่คุณเรียนจบ Java 8 จะหมดลง หรือมันจะถูกแทนที่ด้วย Python หรือภาษาอื่น ๆ ที่ยังไม่ได้คิดค้น แต่เกิดจากพายุ ดีกว่าที่จะชะลอการเรียนรู้สิ่งที่ "นิยม" ตราบเท่าที่เป็นไปได้ดังนั้นจึงไม่ล้าสมัยเมื่อคุณออกไปทำงาน

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


36

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

ยังไงก็ตามที่คุณไปโรงเรียนที่ดีมาก โรงเรียนที่ไม่ได้อยู่ในอุตสาหกรรมก็ดี
ในฐานะที่เป็นคนอื่นกล่าวว่าพวกเขาสอนคุณวิทยาศาสตร์จากการที่คุณได้รับมางานฝีมือ

ฟาร์มลิงรหัสไม่ดีหลายแห่งสอนงานฝีมือให้คุณแล้วคุณอาจจะเข้าใจวิทยาศาสตร์จากมันได้ แต่ก็ไม่รับประกัน (และคุณอาจจบลงด้วยความเข้าใจผิดแปลก ๆ เกี่ยวกับเรื่องนี้)

อย่างไรก็ตามในฐานะสมาชิกผู้มีเกียรติของฝูงชนที่ใช้งานได้เมื่อคุณออกไปจากที่นั่นคุณจะรู้สึกผิดและชื่นชมอยู่เสมอ

ซึ่งยอมรับว่าสำหรับคอมพิวเตอร์ทั่วไปที่ไม่มีอะไรใหม่

ตอนนี้คุณมีความเสี่ยงสูง:

  • พยายามที่จะตัดขึ้นในอาชีพนักวิชาการ ,
  • เริ่มดำเนินการในการแสวงหาที่PHD ,
  • ... emacs

คุณอาจจะชอบโอเพ่นซอร์ส แต่คุณจะไม่พบผู้ทำงานร่วมกันมากพอสำหรับโครงการการทำงานของคุณ


2
ขออภัยที่จะแสดงความคิดเห็น แต่ทำไม emacs? ฉันอยากรู้. ฉันอยู่ในเรือลำเดียวกันกับ OP คือ (เริ่มเรียนใหม่ในฤดูใบไม้ร่วงปีนี้) และเราจะใช้ Racket (คล้ายกับ Scheme)
Kevin Johnson

2
@KevinJohnson emacs มักถูกเรียกว่าระบบปฏิบัติการที่เขียนด้วย LISP ซึ่งช่วยให้ผู้คนจำนวนมากแก้ไขรหัสโดยไม่ได้ตั้งใจ หากคุณทำกระบวนทัศน์การทำงานและ(ถูกสอนให้ทำ)เช่นหยาบคายของไวยากรณ์ LISP ที่เหมือนกันก็มีแนวโน้มว่าคุณจะเติบโตขึ้นในฐานะโปรแกรมแก้ไขข้อความที่คุณต้องการ
ZJR

1
"สอนวิทยาศาสตร์ให้คุณซึ่งคุณจะได้รับฝีมือ": +1
Giorgio

23

สิ่งนี้จะทำให้ความเข้าใจในการเขียนโปรแกรมในอนาคตของฉันแตกต่างกันอย่างไร

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

ใส่ใจในชั้นเรียน - คุณจะได้เรียนรู้สิ่งที่น่าสนใจมากมายในภาคการศึกษานี้


14

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

ทำไมต้องเป็น Scheme และไม่ใช่ C / C ++ / Java ...

เมื่อเรียนรู้ภาษาการเขียนโปรแกรม (สามารถทำการเปรียบเทียบกับภาษาอังกฤษ) คุณเรียนรู้ไวยากรณ์ที่คุณต้องปฏิบัติตามเพื่อให้รหัสของคุณถูกต้องอย่างน่าทึ่ง อย่างไรก็ตามภาษาจะไม่สอนให้คุณรู้เหตุผลเบื้องหลังการแก้ปัญหา เพื่อที่จะเรียนรู้ตรรกะที่คุณเรียนรู้ที่แตกต่างกันกระบวนทัศน์การเขียนโปรแกรม

แต่ละภาษาสามารถนำไปใช้ (มากหรือน้อยแม่นยำ) หนึ่งกระบวนทัศน์หรือมากกว่า กระบวนทัศน์เป็นวิธีการจัดโครงสร้างตรรกะของคุณและกระบวนทัศน์ที่ดำเนินการโดย Scheme เรียกว่าFunctional Programming (FP)

ดังนั้นคำถามที่แท้จริงที่คุณถามคือ: ทำไม FP

ดังที่คุณกล่าวถึง C, C ++ และ Java (ผู้ที่ไม่ได้ใช้ FP) นั้นเป็นที่นิยมมากกว่า แท้ที่จริงแล้ว (และด้วยเหตุผลต่าง ๆ ทุกคนมีความคิดเห็น) FP ไม่ได้รับความนิยมมากในอุตสาหกรรม

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

มันคล้ายกับโรงเรียนที่สอนภาษาละตินเพื่อศึกษาวิชาภาษาอังกฤษ


1
ไม่จำเป็นต้องใช้ฟังก์ชั่นการใช้งานแม้ว่าคุณจะมีแนวโน้มที่จะทำเช่นนั้นมากกว่าใน C, C ++ และ Java
Ricky Clarkson

"มันคล้ายกับโรงเรียนที่สอนภาษาละตินเพื่อศึกษาวรรณคดีอังกฤษ": หรือชั้นเรียนระบบปฏิบัติการที่สอนระบบปฏิบัติการ Unix คล้ายระบบปฏิบัติการอื่น ๆ
Giorgio

11

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

เมื่อคุณเข้าใจแนวคิดแล้วคุณสามารถปรับใช้กับภาษาอื่นได้ง่าย


4
"ภาษาในชีวิตประจำวันที่ใช้ในธุรกิจส่วนใหญ่อาจเหมาะสำหรับการผลิตซอฟต์แวร์ที่ต้องการในวันนี้" - เมื่อพิจารณาถึงต้นทุนคุณภาพและอัตราความสำเร็จโดยทั่วไปนั่นเป็นคำพูดในแง่ดี :-)
Jörg W Mittag

นั่นเป็นความจริงอย่างแน่นอน! นั่นเป็นเหตุผลที่ฉันเขียนว่า "อาจ" แทน "คือ" :-)
perdian

1
"เมื่อคุณเข้าใจแนวคิดแล้วมันง่ายที่จะนำไปใช้กับภาษาอื่น" - คำสั่งนี้เป็นจริงเกินไป ฉันสงสัยว่าจะใช้เวลาประมาณหนึ่งสัปดาห์ในการรับไวยากรณ์ในภาษาใหม่ใด ๆ และมีความเชี่ยวชาญ ฉันสอน C / C ++ และ Assembly ในโรงเรียน แต่ฉันสอน Python ที่ด้านข้างและ Lisp สำหรับโครงการวิจัย หากไม่มีความเข้าใจพื้นฐานที่ฉันได้รับจาก Python, Lisp และ Assembly ฉันสงสัยว่าฉันจะเป็นโปรแกรมเมอร์ในวันนี้
Wayne Werner

9

หากคุณกำลังเรียนรู้กับ DrRacket ฉันจะพนันได้เลยว่าคุณกำลังใช้หลักสูตร How to Design Programs

นี่คือสิ่งที่หนึ่งในผู้เขียน (ลำเอียงที่เป็นที่ยอมรับ) ของ HtDP ได้กล่าวเกี่ยวกับวิธีการสอนของโครงการที่ได้เตรียมนักศึกษาปริญญาตรีที่มหาวิทยาลัย Northeastern สำหรับโปรแกรมการศึกษาแบบร่วมมือ ("Co-op": นักเรียนสลับภาคการศึกษาเชิงวิชาการกับภาคเต็มเวลา การจ้างงาน)

ก่อนที่ฉันจะเดินทางมาถึงภาคตะวันออกเฉียงเหนือได้ใช้หลักสูตรมาตรฐานมานานกว่าสองทศวรรษ: สามภาคเรียนของภาษาที่เป็นที่นิยมในปัจจุบัน (Pascal, C ++, Java) โดยใช้ชุดการฝึกที่เต็มไปด้วยกราฟิก หลักสูตรได้รับการเผยแพร่อย่างกว้างขวางใน SIGCSE และชุมชนที่เกี่ยวข้อง แต่มันไม่ได้ผล ที่ความสูงของฟองสบู่บนเว็บนักเรียนประมาณหนึ่งในสามเท่านั้นที่ได้รับการเขียนโปรแกรมร่วม คนอื่น ๆ ส่วนใหญ่จบลงด้วยการเป็น "นักเทคโนโลยี" ที่พวกเขาเรียกตัวเองว่า: การย้ายคอมพิวเตอร์, สคริปต์, การตั้งค่าเราเตอร์และเครือข่าย ฯลฯ และการศึกษาทั้งหมดนี้มีค่าใช้จ่าย $ 150,000 ค่าเล่าเรียน

หลังจากหนึ่งปีที่ภาคตะวันออกเฉียงเหนือคณบดีของเราขอให้ฉันไปรับช่วงแรก ตัวอย่างแรกคือความสำเร็จตรงกันข้ามกับการคาดการณ์จากคณาจารย์ท้องถิ่นบางคน แม้ว่ามันจะได้รับการพิจารณาว่าเป็นการทดลอง แต่เราเปลี่ยนมาใช้ TeachScheme! หลักสูตรถาวร คณบดีเสนอให้ฉันออกแบบหลักสูตรบริดจ์เพื่อเชื่อมต่อหลักสูตร HtDP กับหลักสูตรที่เหลือ สิ่งนี้เริ่มต้นการทำงานร่วมกันของฉันกับ HtDC กับ Viera Proulx ดูบทความด้านล่าง ภายในสองสามปีที่ผ่านมาฉันเริ่มได้ยินจากคณาจารย์ของเราว่าส่วนแบ่งของการเขียนโปรแกรมขึ้นไป ภายในปี 2550 - ครั้งสุดท้ายที่ฉันเข้าร่วมหลักสูตร - ฉันได้รับแจ้งว่าสัดส่วนของการเขียนโปรแกรมในการร่วมมือครั้งแรกเพิ่มขึ้นเป็นสองในสามและสูงกว่า ในขณะเดียวกัน TeachScheme ทั้งหมด! หลักสูตรได้รับการสอนโดยคณาจารย์จำนวนมากที่มีรูปแบบการสอนและบุคลิกลักษณะแตกต่างจากของฉัน อัตราส่วนของการเขียนโปรแกรม Co-op ได้เพิ่มขึ้นเป็นสามในสี่และอื่น ๆ และคณะปลายน้ำทั้งหมดมีความสุขกับทักษะการเขียนโปรแกรมของนักเรียน

แก้ไข:สำหรับผู้ที่สนใจในเหตุผลเบื้องหลังหลักสูตรนี่คือคำอธิบายของสถาปนิกหลัก - http://www.youtube.com/watch?v=m3be1PHW5X0


6

โรงเรียนของฉันเริ่มต้นด้วย Scheme ด้วย เหตุผลหนึ่งที่ถูกกล่าวถึงคือสิ่งนี้ช่วยยกระดับสนามเด็กเล่น Comp Sci ปีที่ 1 ส่วนใหญ่อาจมีการเปิดเผยภาษาทั่วไปบางส่วนหรือมาก มีโอกาสน้อยกว่าที่ทุกคนจะมีความรู้เกี่ยวกับโครงการจำนวนมาก


4
ฉันเห็นด้วย; ฉันเริ่ม CS รู้ Pascal, C, Basic, x86 Assembler ในขณะที่คนอื่นมีประสบการณ์ในภาษาที่แตกต่างกันหรือไม่มีเลย เราได้รับการแนะนำให้รู้จักกับ ML ซึ่งไม่เพียง แต่ไม่มีใครเคยมีประสบการณ์มาก่อน แต่มีกระบวนทัศน์ที่แปลกใหม่จนเป็นเหมือนการเริ่มต้นใหม่สำหรับผู้ที่มีประสบการณ์มากที่สุดในหมู่พวกเรา ต่อมาฉันคิดว่า ML (กระบวนทัศน์การทำงาน) เป็นสิ่งที่มีประโยชน์ที่สุดที่ฉันเรียนรู้ที่ CS
KaptajnKold

6

ที่จริงแล้ว Lisp (Scheme เป็นภาษาถิ่น) เป็น Grande Dame ของภาษาที่ใช้งานได้ (คิดว่า F #, Groovy, Clojure, Haskell ฯลฯ ) จากนั้นการฝึกอบรมนี้จะไม่ทำให้คุณเสียเปรียบในเชิงพาณิชย์เช่นนี้ หัวข้อในบล็อกการพัฒนาในขณะนี้


4

โครงการจะช่วยให้คุณเก่งและคิดในวิธีที่เหมาะสมในการใช้ภาษาโปรแกรมการทำงาน ตัวอย่างเช่น Scala เป็นลูกผสม Functional / OO ที่ค่อนข้างเจิดจ้าแม้จะมีความหนาแน่นเล็กน้อย ภาษาเช่นนี้แม้ว่าจะเป็นเครื่องหมายของอนาคต - หวังว่า

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


3

เราเสร็จสิ้นโครงการในครึ่งแรกและครึ่งแรกของภาคเรียนที่สอง มันไม่ได้จนกว่าเราจะได้ทำงานกับ C จริง ๆ แล้วฉันก็เริ่มตระหนักถึงพลังของ Scheme

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

  1. สำหรับผู้ที่ไม่มีประสบการณ์การเขียนโปรแกรมจะง่ายต่อการเรียนรู้ มีรายละเอียดทางเทคนิคไม่มากนักและมีเพียงรูปแบบพิเศษบางอย่าง
  2. จะช่วยให้นามธรรมระดับที่สูงขึ้น หลักสูตรที่ดีสามารถมุ่งเน้นไปที่การสอนวิธีการคิดโปรแกรมแทนที่จะมุ่งเน้นไปที่รายละเอียดทางเทคนิคซึ่งจะช่วยให้นักเรียนกลายเป็นโปรแกรมเมอร์ที่ดีขึ้น
  3. รายการน่าทึ่ง มีหลายอย่างที่คุณสามารถทำได้กับพวกเขา รถยนต์และ cdr พิสูจน์แล้วว่าเป็นเครื่องมือที่ทรงพลังและเป็นเพียงเมื่อคุณเริ่มทำงานกับพอยน์เตอร์ที่คุณรู้ว่า Scheme นั้นยอดเยี่ยมในการจัดการรายการ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.