ฉันเป็นนักเรียน CS และโดยสุจริตฉันไม่เข้าใจหนังสือของ Knuth [ปิด]


52

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

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


Humm สมมติว่าฉันจะเข้าใจมัน (และคุณก็เดาด้วย) แต่มันจะใช้เวลามากและมีหนังสือที่ง่ายขึ้นในปัจจุบัน ..
Nils

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

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

1
ตั้งแต่เมื่อใดโปรแกรมเมอร์จึงพิจารณา Bill Gates ที่เชื่อถือได้?
จอร์โจ

2
Courseraมี 6 หลักสูตรฟรีเกี่ยวกับอัลกอริทึม (อัลกอริทึมส่วนที่ 1 และ 2, การออกแบบอัลกอริทึมและการวิเคราะห์ส่วนที่ 1 และ 2 และ Combinatorics วิเคราะห์ส่วนที่ 1 และ 2)
แอนโธนี

คำตอบ:


39

แม้ฉันคิดว่าหนังสือของนูทนั้นค่อนข้างก้าวหน้าและยากที่จะเข้าใจ หนังสือเหล่านี้มีไว้สำหรับอัลกอริธึมการวิจัยระดับ IMHO

ดังนั้นมีหนังสือเล่มไหนบ้างที่เป็นมิตรสำหรับมือใหม่ / คนช้าอย่างฉัน

รู้เบื้องต้นเกี่ยวกับอัลกอริทึมโดย CLRSนั้นง่ายกว่ามาก

แก้ไข :

ถึงกระนั้นถ้าคุณต้องการอ่านหนังสือของนูทท์คุณควรอ่านคณิตศาสตร์คอนกรีตก่อน Knuth ต้องการให้นักเรียนของเขาตระหนักถึงส่วนพื้นฐานทางคณิตศาสตร์ของการวิเคราะห์อัลกอริทึม


5
คู่มือการออกแบบอัลกอริทึมนั้นง่ายกว่า / เข้าถึงได้ง่ายขึ้น - มันใกล้เคียงกับความสนุกในการอ่าน
Martin Beckett

อัลกอริทึมเบื้องต้นเป็นหนังสือที่ยอดเยี่ยม เราใช้สิ่งนี้สำหรับหลักสูตรอัลกอริทึม CSE แรกของฉันและฉันชอบมัน แม้ว่าฉันต้องบอกว่าฉันใช้การวนซ้ำหลายครั้งผ่านตัวอย่างเดียวกันเพื่อบอกว่าฉันเข้าใจพวกเขาจริงๆ
คริส

4
@SidCool: มีรุ่นที่ 3 CLRSพร้อมส่วนใหม่โหล
Bill the Lizard

10
หนังสือของ Knuth คือ War & Peace ของการเขียนโปรแกรม พวกเขาดี แต่ส่วนใหญ่จะใช้เพื่อทำให้ชั้นหนังสือดูน่าประทับใจ
Gaurav

6
"ถึงฉันจะคิดว่าหนังสือของนูทนั้นก้าวหน้าไปสักหน่อย"?
modesty

57

อย่าลืมอ่านคำพูดของเกทส์ทั้งหมดรวมถึงสิ่งนี้:

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

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

Michael Dorfman มีเคล็ดลับดี ๆ สำหรับการอ่านหนังสือในคำตอบของเขาสำหรับคำถาม (ตอนนี้ถูกลบ) ใน Stackoverflow เกี่ยวกับสิ่งที่ฉันจะได้รับจากการอ่าน Lot . หากคุณไม่ได้มี 10k ตัวแทนคุณยังสามารถดูคำถามและคำตอบของเขาบนเครื่อง Wayback

คุณจะได้อะไรจากการอ่านมาก ๆ ? รากฐานที่ยอดเยี่ยมในด้านวิทยาศาสตร์คอมพิวเตอร์ คุณจะเข้าใจว่าคอมพิวเตอร์ทำงานอย่างไรตั้งแต่ลอจิกเกตจนถึงคอมไพเลอร์ คุณจะคิดถึงปัญหาที่คุณไม่เคยรู้มาก่อนว่าเป็นปัญหา (เช่นวิธีที่เร็วที่สุดในการคูณคืออะไร) และดูการเชื่อมต่ออัลกอริทึมระหว่างสิ่งที่คุณไม่เคยคิดว่าเกี่ยวข้องกัน (ตัวอย่างเช่น riverbeds, RNA

ฉันไม่เห็นด้วยกับคนที่พูดว่า "สร้างซอฟต์แวร์แทนที่จะอ่านเกี่ยวกับซอฟต์แวร์สร้าง" - มีความแตกต่างระหว่างสาขาวิชาวิศวกรรมซอฟต์แวร์และวิทยาศาสตร์คอมพิวเตอร์ TAOCP เป็นเรื่องหลัง

หากคุณยังไม่ได้เริ่มฉันมีคำแนะนำเล็กน้อย

ก่อนอื่นคุณอาจต้องการเริ่มต้นด้วยเล่ม 4 มันเป็นเนื้อหาที่น่าตื่นเต้นทันสมัยและอารมณ์ขันของ Knuth ส่องผ่าน นอกจากนี้ยังมีวิดีโอให้บริการ (บนเว็บไซต์ Stanford SPCD หรือ Stanford iTunes) โดยที่ Knuth กล่าวถึงหัวข้อต่างๆ ขอแนะนำวิดีโอเหล่านี้ Fascicles 0, 1, 2, 3 และ 4 ของเล่ม 4 มีให้ใช้เป็นหนังสือปกอ่อนแยกต่างหาก เมื่อรวมกันแล้ววัสดุ V4 ที่ตีพิมพ์มีขนาดใหญ่กว่าเล่ม 3 ใด ๆ แต่แบ่งออกเป็นขนมขนาดเท่าคำกัด (ฉันสงสัยว่าเล่ม 1-3 จะดูน่ากลัวน้อยกว่าสำหรับผู้คนหรือไม่หากหนังสือแต่ละเล่มได้รับการตีพิมพ์ในรูปแบบปกอ่อนบทเดียว ... )

ฉันขอแนะนำให้คุณอ่านบทที่ 1 ในครั้งแรกและกลับไปใช้ตามความจำเป็น ในความเป็นจริงคุณอาจต้องการอ่านแต่ละส่วน (อย่างน้อย) สองครั้ง - อย่างรวดเร็วในครั้งแรกเพียงเพื่อให้ได้สัญชาตญาณและส่วนสำคัญของการขัดแย้งแล้วค่อย ๆ อย่างระมัดระวังทำความเข้าใจแต่ละขั้นตอน

อย่าลืมอ่าน Volume 1, Fascicle 1 บน MMIX แทนส่วนเก่าบน MIX MMIX นั้นดีกว่าในหลาย ๆ ด้านและคุณควรที่จะแปลง MIX ในข้อความให้เป็น MMIX ในขณะที่คุณไปด้วยกันมากกว่าที่จะพยายามหลบหลีกทั้งสองโลก

กฎทั่วไป: อย่าข้ามแบบฝึกหัด มีเนื้อหาที่ดีมากมายในคำถาม (และคำตอบ) ทำแบบฝึกหัดให้มากที่สุดเท่าที่จะทำได้ แต่อ่านพวกเขาทั้งหมด (และอ่านคำตอบเมื่อคุณได้ยิงที่ปัญหาหรือตัดสินใจที่จะให้มันผ่าน)

ในที่สุดถ้าคุณจับข้อผิดพลาดจริงๆ: อ่านดัชนี มีมุกตลก ๆ มากมายซ่อนตัวอยู่ที่นั่น

โดยปกติ StackOverflow จะเป็นสถานที่ที่ดีในการโพสต์คำถามเฉพาะเกี่ยวกับข้อความหากพวกเขาควรจะเกิดขึ้น ....

สำหรับแหล่งข้อมูลอื่นฉันพบว่าการเรียกดูพยางค์ของโรงเรียนวิทยาศาสตร์คอมพิวเตอร์ที่มีชื่อเสียงนั้นมีประโยชน์ ตัวอย่างเช่นหนังสือเรียนสำหรับคลาสอัลกอริทึมเริ่มต้น:


ลิงก์ไปที่ SO เสีย แต่ฉันพบโพสต์ที่ฉันคิดว่าคล้ายกัน: stackoverflow.com/questions/1022167/ …
asjohnson

+1 สำหรับโพสต์ต้นฉบับบน Way Back Machine และรายชื่อหนังสือจากมหาวิทยาลัยเหล่านั้น
Anthony

+1 สำหรับการแนะนำให้เริ่มต้นด้วยเล่ม 4, Fascicles 0, 1, 2, 3 และ 4 และสำหรับการอ่านเกี่ยวกับ MMIX แทนที่จะเป็น MIX ดังนั้นฉันจะเริ่มต้นด้วย Volumn 1, Fascicle 1 เพราะครอบคลุม MMIX
Shaun Luttin

ในฐานะโปรแกรมเมอร์ Java / c ฉันรู้สึกว่าโครงสร้างข้อมูลและการวิเคราะห์อัลกอริทึมใน Java ง่ายต่อการเข้าใจและฝึกฝน
Eric Wang เมื่อ

29

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

ฉันได้ยินมาว่าบางคนอ่านหนังสือของ Knuth บางส่วนแล้ว

คนส่วนใหญ่แค่ตั้งใจจะ

โดยส่วนตัวแล้วฉันจะเก็บออมไว้เพื่อการเกษียณ


22
นั่นเป็นเหตุผลว่าทำไมสำเนาที่ใช้แล้วที่สวมใส่อย่างดีมีค่ามากกว่าของใหม่
Martin Beckett

13
หากคุณเข้าใจ The Art of War คุณจะรู้ว่าคุณต้องทำให้คนอื่นคิดว่าคุณเข้าใจ Knuth เมื่อคุณไม่ทำและในทางกลับกันคุณจะไม่เข้าใจ Knuth เมื่อคุณทำ ถ้าไม่คุณไม่ และถ้าคุณเข้าใจหนังสือเล่มที่ 5 ของ Book of Five Rings คุณไม่จำเป็นต้องพูดถึง Knuth และถ้าคุณอ่านการเขียนโปรแกรม The Art of Unix ของ ESR และทำความเข้าใจกับ koans คุณไม่จำเป็นต้องมี Knuth เพราะคุณจะก้าวข้ามอุปสรรคแห่งความซับซ้อน
Christopher Mahan

20

หนังสือของ Knuth เปลี่ยนสนามของอัลกอริธึมตลอดกาล ตัวเขาเองบอกว่า '2 หน้าในหนังสือของฉันเป็นงานอาชีพของใครบางคน' และหนังสือของเขาอ่านยาก หนังสือเล่มนี้ประกอบด้วยเนื้อหาย่อจากงานด้านวิทยาศาสตร์คอมพิวเตอร์เป็นเวลาหลายปี

คุณไม่ควรรู้สึกแย่ถ้าคุณไม่เข้าใจ

ตามที่ Prasoon กล่าวไว้ CLRS เป็นหนังสือที่อ่านง่ายกว่า

คุณมีอัลกอริทึมโดย Rajasekaran, Sahni et al ซึ่งเข้าใจได้ง่าย


น่าอัศจรรย์ใจที่ได้ยิน .. ฉันคิดว่าฉันเป็นคนเดียวที่มีปัญหาในการอ่านหนังสือเล่มนี้ .. ขอบคุณมาก
Rho

7
@ Raymond Ho: ฉันไม่คิดว่าจะมีใครชอบอ่านหนังสือของ Knuth จริงๆ ฉันรู้ว่าอย่างน้อยหนึ่งคนที่มีพวกเขาในชั้นวางหนังสือเพียงเพื่อประโยชน์ในการทำให้ชั้นวางดูน่าประทับใจ
FrustratedWithFormsDesigner

12

เมื่อฉันจบการศึกษาครั้งแรกฉันหยิบ TAOCP สามเล่มแรกเป็นของขวัญรับปริญญาให้ตัวเองและพยายามอ่านให้ตรงๆ ไม่เคยจัดการเลย วันนี้ฉันได้ทำมันผ่าน 1/3 ของสามเล่มแรก (คิดว่าไม่มีลำดับเฉพาะ) วัสดุมีความหนาแน่นสูง แต่มีสามเคล็ดลับที่ฉันได้เรียนรู้ซึ่งช่วยได้มาก

ก่อนอื่นอย่าพยายามอ่านจากหน้าปกไปหน้าปก TAOCP ทำงานอ้างอิงได้มากเหมือนอะไรและฉันพบว่ามันเป็นการดีที่สุดที่จะอ่านส่วนเมื่อมันเกี่ยวข้องกับปัญหาที่คุณกำลังพยายามแก้ไข เช่นเดียวกับหลาย ๆ สิ่งในโลกการทำความเข้าใจกับการแก้ปัญหานั้นง่ายกว่ามากเมื่อคุณพบปัญหาที่พวกเขากำลังพยายามแก้ไข

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

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


10

ไม่ต้องกังวลคนส่วนใหญ่ไม่เข้าใจ The Art of Computer Programming (TAOCP) ดังนั้นอย่าคิดว่าตัวเองช้าหรือเป็นสามเณรเพราะไม่เข้าใจ - คุณก็เหมือนกับคนอื่น ๆ 99.99% ของเราที่ไม่เข้าใจ

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

ลองอ่านโพสต์: Books Programmers Don't Don't Readerโดย Bill the Lizard

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

ฉันชอบโดยส่วนตัว:


8

ฉันสะดุดคำพูดนี้จาก Bill Gates: "คุณควรส่งประวัติย่อให้ฉันถ้าคุณสามารถอ่านทั้งหมดได้" เขากำลังพูดถึงหนังสือศิลปะการเขียนโปรแกรม .. ดังนั้นฉันค่อนข้างอยากรู้อยากเห็นและต้องการอ่านทุกอย่าง แต่โดยสุจริตฉันไม่เข้าใจเลย .. I'm really not that highly intellectual being.. ดังนั้นนี่ควรเป็นเหตุผลที่ฉันไม่เข้าใจ แต่ฉันกระตือรือร้นที่จะเรียนรู้ .. ฉันกำลังอ่านเล่ม 1 เกี่ยวกับอัลโกพื้นฐาน .. ดังนั้นมีหนังสือเล่มไหนบ้างที่เป็นมิตรกับผู้เริ่มหัด / คนที่ชอบฉันช้า? ดังนั้นฉันสามารถสร้างตัวเองและหวังว่าในอนาคตฉันสามารถอ่านหนังสือของ Knuth ได้อย่างสบายใจ ..

หากคุณกำหนดตัวเองเป็นnot a highly intellectual beingแล้วคุณจะตั้งค่าตัวเองเพื่อความคาดหวังต่ำ คุณต้องทำลายความคิดนั้นถ้าคุณต้องการทำสิ่งที่คุ้มค่ากับปัญหา ในใจคุณไม่ต้องสงสัยเลยว่าคุณจะทำอะไรบางอย่างให้สำเร็จ นอกจากนี้การบรรลุเป้าหมายไม่ได้หมายความว่าคุณจะประสบความสำเร็จได้อย่างง่ายดาย

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

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

คุณต้องมีพื้นฐานของอัลกอริธึมที่หนาวเย็นและชัดเจนและคุณต้องมีการเขียนโปรแกรมจำนวนมาก (งานและ / หรือนักวิชาการ) ภายใต้เข็มขัดของคุณ - ฉันว่า 40 เครดิตสำหรับการเขียนโปรแกรมอย่างน้อย นอกจากนี้คุณยังต้องมีคณิตศาสตร์ CS ของคุณในสถานที่ที่มั่นคง

คุณไม่สามารถก้าวไปข้างหน้าได้โดยไม่ต้องเข้าใจคณิตศาสตร์แยก (และทฤษฎีการคำนวณ)

ไม่ใช่ว่าคุณจะต้องมีความรู้ในการทำงานกับปัญหาของ Knuth แต่คุณต้องมีวุฒิภาวะเพื่อให้สามารถผ่านเนื้อหาประเภทนั้นได้

ก่อนอื่นเลือกหนังสือหนึ่งเล่มและหนังสือหนึ่งเล่มเท่านั้น (หนังสือของ CLRS ตามที่แนะนำไว้ก่อนหน้า) และทำงานตั้งแต่ต้นจนจบ เมื่อใดก็ตามที่เป็นไปได้โปรแกรมที่ใช้อัลกอริทึม อย่าใช้ Java หรือ C # ไม่ใช่แม้แต่ C ++ ไปที่กระดูกเปลือย C และรับความรู้สึกในการสร้างสิ่งต่าง ๆ จากเศษโลหะกระดูกเปลือย

รับหนังสือของ Knuth เรื่อง "Concrete Mathematics" ด้วยหากคุณยังไม่ได้เรียนวิชาคณิตศาสตร์และการคำนวณเชิงทฤษฎี จะดีสำหรับคุณที่จะผ่านหนังสือเล่มนั้นเช่นกัน

จากนั้นจัดการสารานุกรมของ Knuth หนึ่งเล่มต่อครั้งในหนึ่งบท อย่าไปอีกบทหนึ่งโดยไม่เข้าใจบทแรก

ฉันขอแนะนำให้คุณอ่านโวลุ่มที่ฉัน (อัลกอริธึมพื้นฐาน) ก่อนจากนั้นจึงปรับระดับเสียง III (การค้นหาและการเรียงลำดับ) สิ่งเหล่านั้นควรเป็นเป้าหมายทันทีของคุณ จากนั้นต่อมา (มากในภายหลัง) จัดการโวลุ่ม IV (อัลกอริทึม Combinatorial) และโวลุ่ม II (อัลกอริทึมกึ่งตัวเลข)

อย่ารู้สึกแย่ถ้าคุณไม่เข้าใจในตอนแรก ฉันพยายามผ่านระดับเสียง I และ III มาเป็นเวลาหลายปี (10 ปีแล้ว)

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

จงปฏิบัติและให้เวลากับตัวเอง ลองอ่านหนังสือของ Knuth ว่าเป็นความทะเยอทะยานส่วนตัวในระยะยาวไม่ใช่ข้อพิสูจน์ทันทีว่าคุณเป็นเนื้อหาของ CS;)

มีสิ่งสำคัญอื่น ๆ อีกมากมาย (อาชีพที่ฉลาด) เพื่อฆ่าตัวตายเพื่อ;)


2
หมายเหตุ: คุณอ้างถึง Volume III สองครั้งและไม่เคยใช้ Volume II ตั้งชื่อ Volume III สองชื่อที่แตกต่างกัน
ทางเลือก

ขอขอบคุณที่แจ้งให้เราทราบ (+1) ลำดับที่ฉันหมายถึงมีดังนี้: เล่มแรก I (อัลกอริธึมพื้นฐาน), แล้ว Volume III (การค้นหาและการเรียงลำดับ), แล้ว Volume IV (combinatorial algorithm) และ Volume II (อัลกอริธึมกึ่งตัวเลข)
luis.espinal

6
+1 ไม่ใช่เพราะเรื่องยากที่เราไม่กล้า เป็นเพราะเราไม่กล้าที่จะลำบาก - เซเนกา
mouviciel

4

ก่อนที่จะเริ่ม Knuth ฉันต้องก้าวผ่านหนังสือสี่เล่มที่แตกต่างกัน สองคนแรกคือหนังสือ Sedgewickบนอัลกอริทึม ภาพรวมเหล่านี้ส่วนใหญ่อัลกอริทึมและโครงสร้างข้อมูลในแบบฟอร์มการใช้งานจริงดังนั้นคุณสามารถดูว่าพวกเขาคืออะไรและพวกเขาทำงานอย่างไร หนังสือเหล่านี้มีหลายภาษา - ฉันอ่านในภาษา C แต่ iirc พวกมันถูกเขียนเป็นภาษา Pascal และมีรุ่น C ++ และ Java อยู่ที่นั่น

หลังจากนั้นฉันทำงานผ่านส่วนที่ดีของหนังสือ Cormen เกี่ยวกับ Algorithms และใช้ Sedgewick และ Flajolet's Introduction to Analysis of Algorithmsเป็นข้อความฟรีเนื่องจากอยู่ในเส้นเลือดของความแม่นยำทางคณิตศาสตร์ของ Knuth มากกว่าหนังสือของ Cormen ฉันยังไม่ได้ทำสิ่งเหล่านี้ให้เสร็จซึ่งส่วนใหญ่จะเก็บเชอร์รี่ที่ฉันรู้สึกว่าต้องการ

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

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