หนังสือที่สามารถเข้าถึงได้เกี่ยวกับการตั้งโปรแกรมการทำงาน [ปิด]


17

ฉันกำลังมองหาหนังสือที่อธิบายการเขียนโปรแกรมการทำงานในลักษณะที่สามารถเข้าถึงได้ นอกจากนี้ฉันต้องการที่ไม่น่าเบื่อเกินไปและไม่ใช้ภาษาที่ลึกลับ

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

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


3
ฉันอยากรู้ว่ามีภาษาใดที่คุณนึกไว้เมื่อคุณพูดว่าคุณไม่ต้องการใช้ "ภาษาลึกลับ"
MatrixFrog

@ MatrixFrog: ฉันแน่ใจ 99% ว่า "ภาษาลึกลับ" เขาหมายถึง Scheme เขาอาจทราบว่า SICP จะเป็นหนังสือเล่มแรกที่แนะนำ
user16764

@ user16764 แต่ "เข้าถึงได้" นั่นจะเป็นวิธีการออกแบบโปรแกรม (หรือ2 เอ็ด. ) ตามเหตุผลที่ได้รับจากผู้เขียน (s) ในโครงสร้างและแปลความหมายของหลักสูตรวิทยาการคอมพิวเตอร์
Mark C

คำตอบ:


13

ฉันจะเริ่มต้นด้วย " The Little Schemer " (และอาจเป็น " The Reasoned Schemer " หลังจากนั้น)

หากคุณคิดว่า Scheme ลึกลับเกินไปหรือหากคุณชอบจาวาสคริปต์ Douglas Crockford ได้แปลแบบฝึกหัดมากมายไว้ใน Javascript: http://javascript.crockford.com/little.html

หากคุณสนุกกับ C # " การเขียนโปรแกรมฟังก์ชั่นการใช้งานจริง " โดย Tomas Petricek จะเป็นจุดเริ่มต้นที่ยอดเยี่ยม มันยังทำหน้าที่เป็นการแนะนำที่ดีเกี่ยวกับ F #


10

ถ้าคุณชอบภาษาที่พิมพ์แบบคงที่และ [วงเล็บ]:

Haskell ในขณะที่ค่อนข้างหนักในความบริสุทธิ์ของกระบวนทัศน์การเขียนโปรแกรมมีหนึ่งในการแนะนำที่ดีที่สุดในภาษาที่ฉันเคยเห็นในรูปแบบของ"เรียนรู้คุณ Haskell เพื่อประโยชน์ที่ดี!" แบบฟอร์มหนังสือเป็นทางเลือกเนื่องจากเว็บไซต์นี้ให้บริการฟรี แต่เป็นผู้เขียนคนเดียวที่ฉันไม่รู้สึกว่าถูกครอบงำโดย Real World Haskellนั้นดี แต่จริงๆแล้วมันดีกว่าที่จะติดตาม [Learn..Good] RWH นั้นฟรีด้วยตัวเลือก papery goodness

จาก Haskell คุณสามารถเปลี่ยนไปใช้ตัวแปร ML อื่น ๆ ได้อย่างง่ายดายเช่นF #หรือOCamlซึ่งมีการใช้กันอย่างแพร่หลาย สำหรับเลือดออกขอบATS

ถ้าคุณชอบ (และวงเล็บแบบไดนามิก Dynamic_Typing):

Scheme เป็นฟังก์ชั่นที่เน้นการใช้งานของภาษา Lisp สองภาษาหลักซึ่งเล็กกว่าและบริสุทธิ์กว่า Common LISP แต่ใช้กันอย่างแพร่หลายในอุตสาหกรรมน้อยกว่า ฉันเองชอบโครงสร้างและการตีความของโปรแกรมคอมพิวเตอร์แต่มันเป็นทฤษฎีที่ค่อนข้างหนักสำหรับหนังสือซึ่งในขณะที่การกลืนยากสักหน่อยจะทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้น

หากคุณต้องการ Common Lisp แบบCommon Common LispหรือLand of Lispดูเหมือนว่าเป็นการลงทุนที่ดีสิ่งแรกคือออนไลน์ฟรีและเกมที่สองนั้นราคาถูกและค่อนข้างสำคัญ (สำหรับบางคน) เกมที่เน้น มันมีประสิทธิภาพมากกว่า แต่บริสุทธิ์น้อยกว่า Scheme

จากสิ่งเหล่านี้คุณสามารถขยายสู่Clojure ได้หากต้องการ มันเป็นเสียงกระเพื่อมสำหรับ JVM ดังนั้นจึงง่ายต่อการปรับใช้และสามารถป้องกันค่าใช้จ่ายในการถูก Clojure "วิชาการ" สามารถปรับใช้กับ. NET และข้ามไปยัง Javascript ได้ สำหรับ NET พื้นเมืองลองIronScheme

นอกจากนี้คุณยังสามารถแยกความแตกต่างและเรียนรู้ทั้งสองอย่างพร้อมกันด้วยการเขียนโครงการด้วยตัวคุณเองใน 48 ชั่วโมงใน Haskell


ถ้าคุณไปกับ SICP นอกจากนี้ยังมีวิดีโอบรรยายจำนวนมากในหนังสือชื่อดังที่สุดเหล่านี้: groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures Paul Graham เป็นนักเขียนที่ดีและมีหนังสือฟรีเกี่ยวกับ ทำไมเสียงกระเพื่อมคือหัวเข่าของผึ้งpaulgraham.com/onlisptext.html
simoraman

1
ฉันกำลังอ่าน Real World Haskell เวอร์ชันออนไลน์ฟรีและความสามารถในการอ่านความคิดเห็นในขณะที่อ่านข้อความมีประโยชน์อย่างยิ่ง ดังนั้นแม้ว่าคุณจะได้รับรุ่นกระดาษคุณอาจต้องการอ่านรุ่นออนไลน์ด้วย บางส่วนมีความสับสนน้อยลงกับความคิดเห็น
MatrixFrog

4

แหล่งที่มาโปรดของฉันคือการแนะนำอ่อนโยนต่อ Haskell ฉันได้อ่านส่วนหนึ่งของLearn You a Haskellและ The RealReader Haskell ของ HaskellและCraft of Programming Programming ของ Simon Thompson แต่ฉันก็ทำดีกว่า มันเป็นเหมือน K&R ของ Haskell: เอกสารบางอย่างที่ผลิตโดยผู้สร้างภาษา ไม่พูดมากไม่สนับสนุน แต่ไม่พยายามเกลี้ยกล่อมให้คุณรู้


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

1
อืมอาจารย์ไม่แน่ใจว่าฉันจะใช้ภาพนั้น แต่ยังไงก็ตาม มันไม่ได้เป็นความรุนแรงหรือเป็นปัญหาภายใน แต่ฉันจะเห็นด้วยกับส่วนที่เหลือ "อ่อนโยน" เป็นอารมณ์ขันเล็กน้อยที่นี่ ชอบ "ข้อเสนอเล็กน้อย"
JohnL4

1
ใช่ฉันใช้เวลา ... เสรีภาพในการสร้างสรรค์เล็กน้อย ;] ต้องใช้ความอดทนทางจิตใจสักหน่อยเพื่อที่จะผ่านบางสิ่งบางอย่างทื่อ ๆ เมื่อเปรียบเทียบกับเนื้อหาเบื้องต้นอื่น ๆ ในช่วงเวลาเหล่านี้ (สำหรับภาษาใด ๆ ไม่ใช่แค่ Haskell) การเปรียบเทียบกับ K&R ทำให้ฉันคิดว่าคุณคุ้นเคยกับสไตล์แบบนั้นแล้ว ฉันมักจะสันนิษฐานว่า "อ่อนโยน" มีความหมายตรงกันข้ามกับการเรียนรู้จาก Haskell Report และเอกสารการวิจัยหลายชุด
CA McCann

1

http://hop.perl.plover.com/รวมหนังสือที่คุณสามารถดาวน์โหลดได้ฟรี มันอธิบายถึงวิธีการใช้เทคนิคการทำงานมากมายใน Perl

สิ่งที่กล่าวมาส่วนใหญ่สามารถแปลเป็น JavaScript, Ruby หรือ Python ได้อย่างง่ายดาย


1

ฉันกำลังเรียนรู้การเขียนโปรแกรมฟังก์ชั่นด้วยตัวเอง อย่างไรก็ตามฉันเรียนรู้การใช้ Haskell

นี่คือหนังสือออนไลน์สองเล่ม (คุณสามารถซื้อหนังสือเหล่านี้ในปกแข็ง iirc)

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

ผู้คนได้พัฒนา WebServers, Bittorrent Clients และแอปพลิเคชั่นในโลกแห่งความเป็นจริงโดยใช้ Haskell อย่างไรก็ตามฉันเองใช้มันเพื่อเรียนรู้แนวคิดแล้วนำไปใช้กับ C # & F # ซึ่งทำงานได้ดีมาก

สนุก.


1

ฉันได้ยินเรื่องดีๆเกี่ยวกับ "โครงสร้างและการตีความโปรแกรมคอมพิวเตอร์" หลายครั้ง มันเป็นหนังสือจริงดังนั้นคุณอาจต้องการที่จะได้รับมันในกระดาษเป็นอย่างดีเห็นhttp://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871

มีอิสระที่นี่http://mitpress.mit.edu/sicp/ ( http://mitpress.mit.edu/sicp/full-text/book/book.html ) และยังมีวิดีโอบรรยาย ( http: //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ )


SICP เป็นคนดี แต่ไม่สามารถเข้าถึงได้ในประสบการณ์ของฉัน
วิลเล็ม

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