ฉันกำลังเรียนรู้จาวาวันนี้
ฉันต้องการเป็นนักพัฒนาองค์กรที่ประสบความสำเร็จ แล้วอัลกอริธึมและโครงสร้างข้อมูลใดที่ฉันควรมีความเชี่ยวชาญ คุณจะแนะนำหนังสือเล่มไหน
ในการเป็นผู้พัฒนา Java ที่ประสบความสำเร็จฉันจำเป็นต้องรู้อัลกอริธึมขั้นสูงทั้งหมดเช่นที่ได้รับใน CLRS หรือไม่?
คุณสามารถแนะนำรายการหัวข้อที่ฉันควรเรียนรู้ตามลำดับความสำคัญของลำดับถัดมา
บอกชื่อบางหัวข้อที่ฉันต้องรู้ เช่นการค้นหาการเรียงลำดับกราฟต้นไม้เป็นต้น?
มันเป็นการดีที่คุณกระตือรือร้นที่จะขยายและพัฒนาทักษะการเขียนโปรแกรมของคุณ อย่างไรก็ตามเป็นสิ่งสำคัญที่จะไม่ถือว่าอัลกอริทึมเป็นรายการสิ่งที่ต้องจดจำ สิ่งที่คุณจำเป็นต้องรู้เพื่อเป็นนักพัฒนาที่ดี (ใน Java หรือสิ่งอื่นสำหรับเรื่องนั้น) คือการเข้าใจการวิเคราะห์อัลกอริทึม
คุณเรียนรู้สิ่งนี้โดยการเรียนรู้โครงสร้างข้อมูลและอัลกอริธึมที่เลือกน้อยและการเรียนรู้เพื่อวิเคราะห์ประสิทธิภาพในแง่ของเวลาและพื้นที่ (หน่วยความจำ) การค้นหาการเรียงลำดับกราฟต้นไม้กองซ้อนสิ่งที่ดีทั้งหมดนั้น สิ่งนี้ควรเป็นไปตามพื้นฐานบางประการของทฤษฎีการคำนวณและคณิตศาสตร์แบบแยกส่วน (แม้ว่าในขอบเขตของ Java เราไม่เคยใช้สองหัวข้อเหล่านี้โดยตรง - ประโยชน์ของพวกเขาคือทางอ้อม)
แยกการเรียนรู้ภาษาโปรแกรม (ในกรณีของคุณ Java) ด้วยการเรียนรู้การวิเคราะห์อัลกอริทึม (ซึ่งแตกต่างจาก "การท่องจำ" ของอัลกอริทึมและโครงสร้างข้อมูล)
George T. Heineman, Gary Pollice และ "Algorithms in a Nutshell" ของ Gary Seliceเป็นการเริ่มต้นที่ดี "อัลกอริทึม" โดย Sanjoy Dasgupta, Christos Papadimitriou และ Umesh Vaziraniเป็นตำราเรียนที่ดีอีกเรื่องหนึ่ง
ความคิดที่ดีที่สุดคือการใช้หลักสูตรสินเชื่อ 9-12 หลักสูตรในการเขียนโปรแกรมก่อนที่จะเข้าเรียนหลักสูตรระดับปริญญาตรีระดับ 3000 ในขั้นตอนวิธี นอกจากนี้การศึกษาด้วยตนเองกับหนังสือสองเล่มที่ฉันกล่าวถึงอาจเป็นทางเลือกที่ดี (การศึกษาด้วยตนเองอาจไม่เหมาะสำหรับทุกคน)
โชคดี!