เครดิตรูปภาพ: vgajic/E+/GettyImages
การคิดค้นอัลกอริธึมใหม่อาจดูน่ากลัวสำหรับโปรแกรมเมอร์หน้าใหม่ แต่เป็นทักษะที่สามารถฝึกฝนได้เหมือนคนอื่นๆ เริ่มต้นด้วยการค้นหาหนังสือเกี่ยวกับปัญหาอัลกอริทึมสำหรับผู้เริ่มต้น หรือโดยการเรียนวิทยาการคอมพิวเตอร์ออนไลน์หรือออฟไลน์ ฝึกฝนการเรียนรู้พื้นฐานของการออกแบบอัลกอริธึม รวมถึงการประมาณความซับซ้อนและรันไทม์ การตรวจสอบ สำหรับเคสขอบที่อาจทำให้เกิดปัญหาสำหรับอัลกอริธึมของคอมพิวเตอร์และแยกปัญหาให้เล็กลง ชิ้นส่วน
อัลกอริทึมของคอมพิวเตอร์คืออะไร
อัลกอริทึมคือขั้นตอนที่คอมพิวเตอร์หรือมนุษย์ติดตามเพื่อแก้ปัญหา การหารยาวคืออัลกอริธึมตัวอย่างที่หลายคนเรียนรู้ที่จะทำในโรงเรียน อัลกอริธึมแบบยุคลิดที่ใช้ในการหาตัวหารร่วมมากของตัวเลขสองตัว เป็นตัวอย่างทั่วไปอีกตัวอย่างหนึ่ง
วีดีโอประจำวันนี้
ในที่สุด อัลกอริธึมของคอมพิวเตอร์จะเขียนด้วยภาษาการเขียนโปรแกรมที่คอมพิวเตอร์สามารถเข้าใจได้ แต่เมื่ออัลกอริธึมกำลังดำเนินการอยู่ ที่พัฒนาแล้ว โปรแกรมเมอร์และนักวิทยาศาสตร์คอมพิวเตอร์มักจะเขียนอย่างไม่เป็นทางการเป็นร้อยแก้วก่อน แล้วจึงเขียนเป็นทางการในรูปแบบทั่วไปที่เรียกว่า รหัสเทียม
Pseudocode ดูเหมือนภาษาการเขียนโปรแกรม แต่เนื่องจากมันถูกออกแบบมาให้มนุษย์อ่านได้ มากกว่าคอมพิวเตอร์ มันจึงไม่มีกฎวากยสัมพันธ์ที่เข้มงวด
ตัวอย่างอัลกอริทึมอย่างง่ายสำหรับผู้เริ่มต้น
ตัวอย่างที่มีชื่อเสียงของอัลกอริธึมมักสอนให้นักวิทยาศาสตร์คอมพิวเตอร์และโปรแกรมเมอร์เริ่มต้น ตัวอย่างบางส่วนคือ Algorithm ของ Dijkstra ซึ่งใช้ในทฤษฎีกราฟเพื่อค้นหาเส้นทางที่สั้นที่สุดระหว่างจุดสองจุด Merge Sort ซึ่งใช้เพื่อจัดเรียงรายการข้อมูล และ RSA Algorithm ที่ใช้ในการเข้ารหัสข้อมูล ข้อมูลเหล่านี้มีอยู่มากมายในหนังสือเรียน วิดีโอ และเอกสารประกอบหลักสูตรฟรี
เว็บไซต์การเรียนรู้ออนไลน์ Khan Academy มีตัวอย่างอัลกอริทึมมากมายที่ผู้เริ่มใช้งานสามารถทดลองได้ มหาวิทยาลัยสำคัญๆ เช่น Harvard, Stanford และ Massachusetts Institute of Technology จัดหลักสูตร สื่อการสอนและวิดีโอหลักสูตรพร้อมอัลกอริธึมทั่วไปที่มีให้ทางออนไลน์สำหรับวิทยาการคอมพิวเตอร์เบื้องต้น ชั้นเรียน
นอกจากนี้ยังมีไซต์ที่มีปัญหาการแข่งขันการเขียนโปรแกรมและคำอธิบายเกี่ยวกับวิธีการแก้ไข ซึ่งสามารถช่วยให้ผู้ที่สนใจในการพัฒนาทักษะของตนได้
การพิจารณาอัลกอริทึม
เมื่อคุณกำลังคิดหาอัลกอริธึมใหม่ คุณต้องแน่ใจว่าอัลกอริธึมทำงานในทุกกรณีที่คุณคิดว่ามันควรจะเป็น และพยายามทำความเข้าใจว่าอัลกอริธึมมีประสิทธิภาพเพียงใด โดยทั่วไปแล้ว โปรแกรมเมอร์จะแบ่งอัลกอริทึมออกเป็นส่วนๆ เพื่อให้พวกเขาสามารถคิดว่าแต่ละส่วนทำงานอย่างไรและใช้เวลานานแค่ไหน นี้เรียกว่าการออกแบบโมดูลาร์
เป็นความคิดที่ดีที่จะทดสอบอัลกอริทึมด้วยตัวเองด้วยปากกาและกระดาษในกรณีง่ายๆ ก่อนที่จะเริ่มเขียนโค้ด เมื่อคุณคิดถึงประสิทธิภาพ ให้คิดถึงกรณีทั่วไป สถานการณ์ทั่วไปที่อัลกอริทึมของคุณน่าจะพบเจอ และรันไทม์กรณีที่เลวร้ายที่สุด รันไทม์กรณีที่แย่ที่สุดมักจะแสดงด้วยสิ่งที่เรียกว่า Big-O Notation