การศึกษา11 คอร์สสอน Data Structure and Algorithms ออนไลน์ที่ใช้งานได้จริง

11 คอร์สสอน Data Structure and Algorithms ออนไลน์ที่ใช้งานได้จริง

Data Structure หรือ “โครงสร้างข้อมูล” คือการรวบรวม ดำเนินการ และจัดการข้อมูลต่างๆ ซึ่งจะรวมไปถึงความสัมพันธ์ของข้อมูลต่างๆ และฟังก์ชันที่สามารถประยุกต์ใช้กับข้อมูลดังกล่าวด้วย เพื่อที่การใช้งานจะได้ทำได้อย่างง่ายดายและมีประสิทธิภาพ

ขณะที่ Algorithm หรือ “อัลกอริทึม” คือลำดับของคำสั่งที่ส่งไปยังคอมพิวเตอร์เพื่อสั่งให้แก้ไขปัญหาหรือคำนวณสิ่งต่างๆ ซึ่งการที่ Algorithm จะทำงานได้อย่างที่นักพัฒนาต้องการก็ต้องอาศัย Data Structure ที่เก็บรักษาและจัดการข้อมูลนั่นเอง

ทั้งสองสิ่งนี้เป็นหัวใจสำคัญของหลายสาขาวิชาไม่ว่าจะเป็น Computer Science, Data Science และ Software Development โดยทั่วไปแล้วบริษัทเทคโนโลยีทั่วไปอย่างเช่น Amazon, Google, และ Microsoft มักถามคำถามเกี่ยวกับสองสิ่งนี้ในการสัมภาษณ์

ดังนั้นถ้าคุณปรารถนาที่จะประกอบอาชีพในสายงานเหล่านี้ ความรู้ในส่วนของ Data Structure และ Algorithm จึงเป็นสิ่งที่ขาดไม่ได้อย่างแน่นอน

Image by Gerd Altmann from Pixabay

อย่างไรก็ดีนักพัฒนาที่เรียนรู้การเขียนโปรแกรมด้วยตนเองมักประสบปัญหาเมื่อเจอกับคำถามเหล่านี้ในการสัมภาษณ์ เพราะพวกเขาไม่ได้เรียนเนื้อหาของ Data Structure และ Algorithm เหมือนกับนักพัฒนาที่เรียนจบ Computer Science โดยตรงในมหาวิทยาลัย ก่อให้เกิดเป็นความเสียเปรียบขึ้นมา

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

ข้อควรทราบ: ราคาและเงื่อนไขต่างๆ ของคอร์สเรียนอาจจะเปลี่ยนแปลงไปได้ โปรดตรวจสอบกับทางเว็บไซต์ผู้ให้บริการก่อนซื้ออีกครั้งหนึ่งครับ

แนะนำแพลตฟอร์ม

คอร์สที่ผมจะแนะนำอยู่ในแพลตฟอร์มของ Udemy และ Coursera ถ้าใครไม่รู้จักและอยากทราบรายละเอียดการเรียนว่าเป็นอย่างไร ลองอ่านเพิ่มเติมได้ที่บทความแพลตฟอร์มเรียนออนไลน์ของผมครับ

ในส่วนของ Udacity นั้นรายละเอียดต่างๆ ผมได้ใส่ไว้ด้านล่างแล้วครับ

Udacity

Udacity เป็นแพลตฟอร์มคุณภาพเยี่ยมที่สอนทักษะต่างๆ ทางด้านเทคโนโลยีไม่ว่าจะเป็น Data Science, การเขียนโปรแกรมทั่วไป หรือแม้กระทั่ง Digital Marketing

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

1. Data Structures and Algorithms

คอร์สชั้นยอดของ Udacity ที่จะสอน Data Structure and Algorithms และเนื้อหาอื่นๆ ที่เกี่ยวข้องอย่างครบถ้วน นอกจากคอร์สนี้จะเตรียมตัวให้คุณพร้อมกับการสัมภาษณ์งานแล้ว คุณยังจะได้เรียนรู้เกี่ยวกับ Scenario ต่างๆ ที่คุณอาจจะได้พบเจอในการทำงานอีกด้วยครับ

ข้อควรทราบ: สำหรับคอร์สนี้คุณจะได้เรียน Data Structure โดยใช้ภาษา Python ดังนั้นคุณควรจะเข้าใจภาษา Python เป็นอย่างดี แต่ถ้าคุณจะสัมภาษณ์งานในตำแหน่งที่ใช้ภาษาอื่น ผมแนะนำให้ข้ามคอร์สนี้ไปและเลือกคอร์สอื่นทางด้านล่างจะดีกว่าครับ

คอร์สสอน Data Structure and Algorithms ของ Udacity
คอร์สสอน Data Structure and Algorithms ของ Udacity

รายละเอียดของสิ่งที่คุณจะได้เรียนมีดังต่อไปนี้

  1. Data Structures – ในส่วนแรก คุณจะได้เรียนสาระสำคัญของ Data Structures ที่ใช้ในการเก็บข้อมูล คุณจะได้ลองใช้หลากหลายวิธีในการจัดการ Data Structure และลองประเมินประสิทธิภาพของแต่ละวิธีอย่างเป็นระบบ และเข้าใจว่า Data Structure แต่ละตัวมีข้อดีข้อเสียอย่างไร
  2. Basic Algorithms – คุณจะได้เรียนและลองใช้งาน Algorithms ระดับพื้นฐานแต่ละรูปแบบ รวมไปถึงการใช้งาน Recursion และแก้ไข Algorithms ในรูปแบบต่างๆ อย่างละเอียด
  3. Advanced Algorithms – ในส่วนสุดท้ายนี้ คุณจะได้เรียน Algorithms ระดับสูงอย่างเช่น Brute-Force-Greedy Algorithms, Graph Algorithms รวมไปถึงคอนเซปต์สำคัญอย่าง Dynamic Programming

อย่างไรก็ดี Udacity ไม่ได้ให้คุณแค่คอร์สออนไลน์เท่านั้น แต่ยังให้สิ่งเหล่านี้ด้วย

  • แบบฝึกหัดตลอดจนคำถามแบบสมจริงที่คุณจะได้ฝึกฝนมากกว่า 100 ข้อ โดยคุณจะได้รับ feedback ในทุกๆ ข้อว่างานของคุณเป็นอย่างไร
  • Mentor Support – ทีมงานผู้เชี่ยวชาญจะอยู่กับคุณ 24/7 ที่จะช่วยคุณแก้ไขปัญหา ข้อสงสัยทุกอย่างในการเรียน
  • Career Services – ทีมงานของ Udacity จะช่วยเหลือคุณในการสมัครงานตั้งแต่ตรวจสอบ Resume, ปรับแก้ Github Portfolio ไปจนถึงแก้ไข LinkedIn Portfolio ให้ดูเป็นมืออาชีพครับ

ระยะเวลาทั้งหมดในการเรียนคอร์สนี้จะอยู่ที่ 4 เดือน ขณะที่ Workload ต่อสัปดาห์จะอยู่ที่ 10 ชั่วโมง ซึ่งถือว่ามากกว่าคอร์สออนไลน์ทั่วไปเรียกได้ว่าเท่าตัวเลยทีเดียว แต่ด้วยเนื้อหาและโปรเจคที่แน่นขนาดนี้ คุณสามารถมั่นใจได้เลยว่าไม่ใช่คอร์สแบบขายฝันแบบว่าเรียน 7 ชั่วโมงแล้วเป็น Full Stack Web Developer ได้สบายๆ ครับ

ในส่วนของราคาจะอยู่ที่ $399 หรือประมาณ 11,970 บาทต่อเดือน ถ้าสมัครทั้งหมด 4 เดือนในคราวเดียวจะได้ส่วนลด 30% หรือแค่ $279 หรือประมาณ 8,370 บาทต่อเดือน

อย่างไรก็ดี Udacity แจกส่วนลดบ่อยมาก (ลด 50%-75%) หรือว่าให้ Financial Support (มีค่าเท่ากับลด 75% แต่ต้องลงทะเบียนฟรีก่อน) ทำให้คุณอาจจะจ่ายค่าเรียนแค่ $100 หรือว่า 3,000 บาทต่อเดือนครับ ซึ่งถ้าคุณเรียนจบภายใน 1-2 เดือน ค่าเรียนก็จะไม่เกิน 6,000 บาท

หลายคนอาจสงสัยว่าคอร์สสอน Data Structure ของ Udacity มีราคาสูงจะคุ้มค่าหรือไม่ โดยส่วนตัวผมมองว่าคุ้มครับ เพราะนอกจากคุณจะได้เรียนกับคนที่เก่งระดับโลกแล้ว คุณยังได้รับการช่วยเหลือจากผู้เชี่ยวชาญอย่างสมบูรณ์ด้วย ซึ่งยากจะมีแพลตฟอร์มออนไลน์ไหนให้คุณได้ครับ

Udemy

คอร์สที่ 2-9 อยู่ในแพลตฟอร์มของ Udemy

ทั้งนี้คอร์สสอน Data Structure และ Algorithms บน Udemy จะมีหลายแบบด้วยกัน โดยจะแบ่งออกไปตามภาษาเช่น Javascript, Python, C++ ฯลฯ ซึ่งแน่นอนว่าคุณก็ควรเลือกภาษาที่ตรงกับตำแหน่งที่คุณจะไปสมัคร

อย่างเช่นถ้าคุณเป็น Javascript Developer ก็ย่อมต้องเลือกคอร์สที่สอน Javascript Data Structures and Algorithms เป็นต้น

คุณควรซื้อคอร์สกับ Udemy ในช่วงที่ลดราคาเท่านั้น เพราะการลดราคานั้นแรงมากถึง 90% ทำให้คอร์สเหลือเพียงไม่กี่ร้อยบาทเท่านั้นเอง การลดราคาเองก็มีแทบทุกสัปดาห์ด้วย

ถ้าคุณเปิดลิงค์แล้ว คอร์สไม่ลดราคา ผมแนะนำให้รอ 2-5 วันครับ หรือว่าสมัครแจ้งเตือนกับ Victory Tale ไว้ก็ได้เพื่อที่ผมจะได้แจ้งให้ทุกคนทราบ

2. JavaScript Algorithms and Data Structures Masterclass

คอร์สนี้สอนโดย Colt Steele หัวหน้าผู้สอนของ Bootcamp ชั้นนำของสหรัฐอเมริกาอย่าง Galvanize ตัวเขานั้นมีประสบการณ์การสอนมาอย่างล้นหลามทั้งสอนแบบสดและออนไลน์

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

สำหรับคอร์สนี้ก็ตามชื่อเลยครับ นั่นก็คือจะสอน Data Structures และ Algorithms สำหรับภาษา Javascript โดยคุณจะได้เรียนสิ่งต่อไปนี้

  • เรียนรู้คอนเซปต์ของ Big O Notation
  • วิเคราะห์ประสิทธิภาพของ Arrays และ Objects
  • Problem Solving Approach/Patterns
  • การใช้งาน Recursion
  • Search Algorithms อย่างเช่น Linear Search, Binary Search ฯลฯ
  • Sorting Algorithms อย่างเช่น Bubble Sort, Selection Sort, Insert Sort, Merge Sort, Quick Sort, Radix Sort
  • แนะนำโครงสร้างของ Data Structures
  • Singly/Doubly Linked Lists
  • Binary Search Trees, Trees Traversal, Binary Heaps
  • Graphs, Graph Traversal
  • และอื่นๆ อีกมากมาย

นอกจากเนื้อหาแบบวีดิโอกว่า 21.5 ชั่วโมงที่คุณจะได้เรียนในคอร์สนี้แล้ว คุณยังได้ลองทำแบบฝึกหัดเกี่ยวกับ Data Structure และ Algorithm อีกมากมายถึง 85 ชุดด้วยกัน แบบฝึกหัดเหล่านี้จะสอดแทรกอยู่ในบทเรียนต่างๆ เพื่อที่คุณจะได้รับการประเมินผลในสิ่งที่เรียนไปครับ

สำหรับคอร์สนี้ได้รับคะแนนรีวิวสูงถึง 4.7/5.0 จากนักเรียนกว่า 57,700 คนครับ

3. The Coding Interview Bootcamp: Algorithms + Data Structures

คอร์สนี้สอนโดย Stephen Grider ผู้เป็น Javascript Developer ที่มีประสบการณ์มานับสิบปี และเคยรับหน้าที่ในการช่วยเหลือวิศวกรซอฟต์แวร์หน้าใหม่อีกด้วย

เนื้อหาในคอร์สจะเน้นไปที่การช่วยเหลือผู้สมัครในการสัมภาษณ์แบบ coding ของนักพัฒนา Javascript โดยตรง ดังนั้นภายในคอร์สจะอธิบายวิธีการตอบคำถามที่เกี่ยวข้องกับ Data Structures และ Algorithm ที่พบบ่อยอย่างละเอียด รวมไปถึงเทคนิคต่างๆในการสัมภาษณ์ด้วยครับ

โดยรวมแล้วคอร์สนี้เป็นทางเลือกที่ยอดเยี่ยมสำหรับใครที่กำลังจะสัมภาษณ์งานที่เกี่ยวข้องกับ Javascript อย่างเช่น Javascript developer แต่ไม่เหมาะเท่าไรนัก ถ้าคุณต้องการเรียนเนื้อหาทั่วไปของ Algorithms และ Data Structures ครับ ซึ่งถ้าคุณไม่ได้สัมภาษณ์ ผมแนะนำให้เลือกคอร์สแรกจะดีกว่าครับ

จากจำนวนนักเรียนกว่า 65,000 คน คอร์สนี้ได้คะแนนรีวิวไปถึง 4.7/5.0 เลยทีเดียวครับ

4. Data Structures and Algorithms: In-Depth using Python

คอร์สนี้สอนโดย Syed Mohiuddin ผู้เชี่ยวชาญในส่วนของ Data Analysis และ Machine Learning

ทั้งนี้คอร์สนี้ไม่ใช่คอร์สติวสัมภาษณ์ และจะเป็นการสอน Data Structures และ Algorithms ที่สามารถนำไปต่อยอดได้จริง สำหรับใครที่หาคอร์สสัมภาษณ์เองก็จะได้ความรู้มากมาย แม้ว่าจะไม่ใช่คอร์สสำหรับการสัมภาษณ์โดยตรงก็ตามครับ

ในส่วนของเนื้อหาจะประกอบด้วย

  • Basic Python – เรียน Python ในระดับพื้นฐาน ไม่ว่าจะเป็น Data Types ไปจนถึง Functions ต่างๆ
  • การวิเคราะห์ Algorithm (Asymptotic Analysis)
  • Recursion (Tail and Head/Tree/Indirect)
  • Searching and Sorting Algorithms
  • เจาะลึก Linked List (ละเอียดมากถึงเกือบ 6 ชั่วโมง)
  • Stacks/Queues/DEque
  • Trees (Binary/Binary Search/Balanced Search)
  • Heaps
  • Hashing and Graphs

จากที่ผมตรวจสอบมาคอร์สนี้น่าจะเป็นคอร์สที่สอน Data Structures และ Algorithms ใน Python ที่ดีที่สุดคอร์สหนึ่งเลยทีเดียว เนื้อหาของคอร์สนี้ยาว 35 ชั่วโมง และอธิบายส่วนต่างๆ อย่างละเอียด อย่างไรก็ดีในการเรียนคอร์สนี้คุณควรจะมีพื้นฐาน Python เบื้องต้นมาก่อนครับ

คะแนนรีวิวคอร์สนี้ได้ไป 4.4/5.0 จากนักเรียนกว่า 11,100 คนครับ

5. Python for Data Structures, Algorithms, and Interviews!

คอร์สนี้เป็นคอร์สของ Jose Portilla ผู้ดำรงตำแหน่งเป็น Head of Data Science ของบริษัท Pierian Data Inc. ซึ่งทำหน้าที่สอนเนื้อหา Data Science และ Python ให้สำหรับบุคลากรของบริษัทชั้นนำของโลกครับ ดังนั้นเขามีประสบการณ์มากมาย ซึ่งจะถ่ายทอดให้กับคุณได้อย่างแน่นอน

ภายในคอร์สจะเป็นการผสมผสานกันอย่างลงตัวของเนื้อหา Data Structures และ Algorithm และเจาะลึกการสัมภาษณ์งานที่ต้องใช้ Python โดยแต่ละบทจะมีการสอดแทรกคำถามที่อาจจะถูกถามได้ในการสัมภาษณ์ลงไปด้วยครับ

เนื้อหาที่จะอยู่ในคอร์สนี้คือ

  • Algorithm Analysis and Big O Concepts
  • Array Sequences
  • Stack Queues and Deques
  • Linked Lists (Singly/Doubly)
  • Recursion
  • Trees (Binary Heap, Binary Search Trees)
  • Searching and Sorting (Bubble, Selection, Insertion Sort ฯลฯ)
  • Graph Algorithms
  • จัดเต็มการเตรียมตัวสัมภาษณ์ให้พร้อมที่สุดสำหรับใครที่อยากเป็น Python Developer หรืออาชีพอื่นๆ ที่เกี่ยวข้อง

รวมแล้วเนื้อหาสำหรับวีดิโอมีความยาว 16.5 ชั่วโมงด้วยกัน ส่วนคะแนนรีวิวได้ไป 4.4/5.0 จากนักเรียนเกือบ 54,000 คนครับ

6. Data Structures and Algorithms: Deep Dive Using Java

คอร์สนี้สอนโดย Tim Buchalka นักพัฒนาซอฟต์แวร์ที่มีประสบการณ์นานกว่า 35 ปี และทีมงานของเขา สำหรับคอร์สนี้จะเป็นการอธิบายถึง Data Structure และ Algorithm อย่างละเอียด

คุณจะได้เข้าใจถึงโครงสร้างต่างๆ ว่าทั้งสองสิ่งนี้ทำงานอย่างไร รวมไปถึงข้อดีข้อเสียของ Data Structure หลากหลายตัว คุณจะได้เลือกตัวที่ดีที่สุดสำหรับ data ของคุณได้ครับ

ในการเรียน คุณควรจะมีพื้นฐาน Java มาก่อน อย่างไรก็ดีถ้าคุณเคยเรียนภาษาแบบ OOP (Object Oriented Programming) มาก่อนก็เรียนคอร์สนี้ได้เช่นกันครับ

สิ่งที่เขาจะสอนในคอร์สนี้ได้แก่

  • Arrays/Big-O Notation
  • Sort Algorithms (Bubble/Selection/Insertion/Merge ฯลฯ๗
  • Singly/Doubly Lists (ทั้งทฤษฎีและการใช้งาน)
  • Stacks/Queues
  • Hashtables, Linear Probing, Bucket Sort
  • Binary Search Trees/Heaps
  • และอื่นๆ อีกมากมาย

โดยรวมแล้วคอร์สนี้จะให้รายละเอียดที่ยอดเยี่ยมเกี่ยวกับ Data Structure และ Algorithm โดยเฉพาะในส่วนของการ Implementation ที่ครบถ้วนสมบูรณ์แบบ นอกจากนี้คุณจะได้ทำ Challenge ตลอดระยะเวลาการเรียนกว่า 16 ชั่วโมง ทำให้ความรู้ที่เรียนไม่หลงลืมครับ

สำหรับใครที่จะไปสัมภาษณ์ คอร์สนี้จะให้ความรู้ดีๆ ที่นำไปใช้ตอบคำถามได้เช่นกัน แต่ว่าจะไม่ได้เจาะลึกเหมือนกับคอร์สต่อไปครับ ส่วนคะแนนรีวิวของคอร์สนี้ได้ไป 4.4/5.0 จากผู้เรียนมากกว่า 40,000 คน

7. Data Structures in Java – Part I (+INTERVIEW QUESTIONS)

คอร์สนี้จัดทำโดย Balazs Holczer วิศวกรสาย simulation ที่มีประสบการณ์ในการใช้ Java มาอย่างยาวนานนับสิบปี ในคอร์สนี้เขาจะมาสอนความรู้เบื้องต้นเกี่ยวกับ Data Structure และ Algorithm รวมไปถึงแนะแนวการสัมภาษณ์อีกด้วยครับ

เนื้อหาในคอร์สนี้ประกอบด้วย 6 ส่วนหลักๆ นั่นคือ

  1. พื้นฐานของ Data Structures ตั้งแต่ Data Types, Arrays, Linked Lists
  2. ความรู้เกี่ยวกับ Stacks, Queues และ Heap Memory
  3. Tree Data Structures และ Search Trees ต่างๆ เช่น Binary search trees ฯ,ฯ
  4. Hashing และ Hashtables
  5. LRU Cache
  6. Binary Indexed Tree

นอกจากเนื้อหาทั่วไปแล้ว ผู้สอนจะสอดแทรกคำถามที่น่าจะปรากฏในการสัมภาษณ์งาน Java ลงไปในทุกๆ บทด้วย ทำให้คุณพร้อมสำหรับทุกคำถามที่จะเข้ามา และตอบได้อย่างมีความรู้และน่าประทับใจครับ

รวมแล้วภายในคอร์สมีทั้งหมด 14.5 ชั่วโมง อย่างไรก็ดีก่อนที่จะเรียนคุณจะต้องมีความรู้ในส่วนของ Core Java มาดีระดับหนึ่งครับ

ในส่วนของคะแนนรีวิวได้ไป 4.4/5.0 จากนักเรียนกว่า 11,300 คน

8. Mastering Data Structures & Algorithms using C and C++

คอร์สที่จัดทำโดย Abdul Dari โปรแกรมเมอร์ที่มีประสบการณ์นานกว่า 20 ปีในการใช้งาน C++ และ VC++ ในคอร์สนี้เขาจะถ่ายทอดความรู้ในส่วนของ Data Structure และ Algorithm โดยใช้ C และ C++ ให้กับคุณ คุณจะได้เรียนรู้ วิเคราะห์ และใช้งาน Data Structure ของจริงแบบละเอียดมากเลยครับ

สำหรับการเรียนคอร์สนี้ คุณจะต้องเคยเรียน C และ C++ มาก่อนและใช้งานได้คล่องแคล่วในระดับหนึ่งครับ รวมแล้วเนื้อหาแบบวีดิโอของคอร์สนี้ยาวถึง 56.5 ชั่วโมง โดยประกอบด้วย

  • Basic C and C++ – ทบทวนเนื้อหา C และ C++ ที่คุณควรทราบ
  • Recursion รูปแบบต่างๆ เช่น Tail, Head, Tree, Indirect, Nested Recursion
  • Array Representation, Array ADT
  • Strings/Matrices/Sparse Matrix
  • Linked List
  • Stack/Queues
  • Trees เช่น Binary Search Trees, AVL Trees และ Search Trees
  • Heap
  • เทคนิคในส่วนของ Sorting และ Hashing
  • Graphs

จุดเด่นของคอร์สนี้คือความละเอียดและเนื้อหาแบบ All-in-one ชนิดที่เรียกว่าคุณไม่จำเป็นต้องหาคอร์สอื่นมาเรียนอีกเลย นอกจากนี้คุณยังได้ความรู้ที่พร้อมสรรพสำหรับการสัมภาษณ์ด้วย ในการสอนจะเป็นการสอนบน Whiteboard สลับกับ Coding ครับ ถ้าคุณต้องการ Source code ก็มีให้ดาวน์โหลดไปใช้งานครับ

คอร์สนี้ได้คะแนนรีวิวสูงถึง 4.6/5.0 จากนักเรียนทั้งหมด 41,600 คนครับ

9. Master the Coding Interview: Data Structures + Algorithms

คอร์สนี้เป็นคอร์สสำหรับ Coding Interview ล้วนๆ ที่จัดทำโดย Andrei Neagoie วิศวกรซอฟต์แวร์ที่มีประสบการณ์การทำงานใน Silicon Valley นานนับทศวรรษ ตัวคอร์สจะเป็นแบบติวเข้มในส่วนของ Data Structure และ Algorithm แต่ไม่ได้โฟกัสไปที่ภาษาใดภาษาหนึ่งเหมือนกับคอร์สอื่นๆ

ดังนั้นถ้าคุณกำลังสัมภาษณ์งานในภาษาอื่นๆ ที่ไม่ใช่ Javascript, Python, Java หรือ C++ การเรียนคอร์สนี้ก็เป็นทางเลือกที่น่าสนใจครับ

ภายในคอร์สจะแบ่งออกเป็น 4 ส่วนหลักๆ ได้แก่

  1. ฺBig O Notation
  2. เนื้อหาของ Data Structures ตั้งแต่ Arrays, Hashed Tables, Linked Lists, ไปจนถึง Stacks, Queues, Trees และ Graphs
  3. เนื้อหาในส่วนของ Algorithms ตั้งแต่ Recursion, Sorting, Searching, Dynamic Programming
  4. เจาะลึก Coding Interview โดยจะเริ่มตั้งแต่วิธีการที่ช่วยให้คุณได้สัมภาษณ์ ไปจนถึงการเตรียมตัวให้พร้อมที่สุดในการสัมภาษณ์ และต่อรองเงินเดือน

นอกจากเนื้อหาแบบวีดิโอที่ยาวกว่า 19 ชั่วโมงแล้ว คุณจะได้ลองทำแบบฝึกหัดต่างๆ ไม่ว่าจะเป็นในส่วนของ Technical (Data Structure and Algorithm) และส่วนของ Soft Skill อย่างเช่นการสัมภาษณ์ หลังจากคุณเรียนจบแล้ว คุณจะได้มั่นใจมากขึ้นเมื่อเข้าสู่สนามจริงครับ

ผู้เรียนคอร์สนี้มีมากกว่า 60,000 คน และตัวคอร์สได้คะแนนรีวิวสูงถึง 4.6/5.0 เลยทีเดียว

นอกเหนือจากคอร์สนี้แล้ว Udemy ยังมีคอร์สสอน Data Structure ที่น่าสนใจอีกมากมาย ถ้าคุณรู้สึกว่า 8 คอร์สนี้ยังไม่ตอบโจทย์ ผมแนะนำให้ดูเพิ่มที่ Data Structures Courses ครับ

Coursera

คอร์สที่ 9-10 อยู่ในแพลตฟอร์มของ Coursera

เราไปดูกันดีกว่าคอร์สสอน Data Structure และ Algorithm ใน Coursera มีอะไรบ้าง

10. Data Structures and Algorithms Specialization

หลักสูตรที่จัดทำโดย University of California – San Diego คอร์สนี้จะนำคุณไปเจาะลึก Algorithmic Programming อย่างละเอียด และปูพื้นฐานสำคัญสำหรับการทำงานในสาขา Software Engineering หรือ Data Science ต่อไปครับ

ภายในหลักสูตรจะมีทั้งหมด 6 คอร์สย่อยด้วยกันได้แก่

  1. Algorithmic Toolbox – สอนพื้นฐานของเทคนิคอัลกอรึทึมในการแก้ไขปัญหาต่างๆ ในการคำนวณ ไม่ว่าจะเป็น sorting and searching, divide and conquer, dynamic programming ทั้งในส่วนของทฤษฎีและเรียนรู้จาก Case Studies ครับ นอกจากนี้ยังได้ลองสร้างอัลกอริทึมใหม่ของตนเองอีกด้วย
  2. Data Structures – สอนการใช้งาน Data Structures ในหลากหลายภาษา และยังได้เรียนจากตัวอย่างจริงด้วย เช่น Dropbox ทำอย่างไรให้การอัพโหลดไฟล์ใช้เวลาสั้นมาก
  3. Algorithms on Graphs – สอนการประยุกต์ใช้อัลกอริทึมใน Graphs ต่างๆ เช่น Graph Traversal, Shortest Path Algorithms ฯลฯ
  4. Algorithms on Strings – แนะนำการใช้งานอัลกอริทึมใน Strings เช่นอธิบายโครงสร้างของ search engine
  5. Advanced Algorithms and Complexity – สอนการใช้งานอัลกอริทึมระดับสูงอย่างเช่น networks flows รวมไปถึงการประยุกต์ใช้ในอุตสาหกรรมต่างๆ ไม่ว่าจะเป็น Computer Vision หรือว่า Portfolio Optimization ใน Finance
  6. Genome Assembly Programming Challenge – นำความรู้จาก 5 คอร์สที่เรียนไปมาทำโปรเจคพิเศษ คุณจะได้จำลองตนเองเป็น Bioinformaticians ในปี ค.ศ.2011 ที่ประเทศเยอรมนี ซึ่งมีหน้าที่ในการตรวจสอบหาการวิวัฒนาการของเชื้อแบคทีเรียที่ก่อให้เกิดโรคระบาด เพื่อที่นักวิจัยจะได้นำไปหาวิธีหยุดโรคระบาดต่อไป

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

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

อย่างไรก็ดีในการเรียนคุณจะต้องมีความรู้ในการเขียนโปรแกรมในภาษาเหล่านี้อย่างน้อย 1 ภาษา ได้แก่ C++, Java, Javascript, Python, C, C#, Kotlin และ Haskell ครับ

สำหรับค่าเรียนจะอยู่ที่ $49 หรือประมาณ 1,470 บาทต่อเดือนครับ ทั้งนี้ถ้าคุณใช้เวลาเรียน 8 เดือนตามคำแนะนำ ค่าเรียนจะอยู่ที่ $392 หรือประมาณ 11,760 บาท แต่แน่นอนว่าคุณสามารถเรียนให้เร็วกว่านั้นได้ ค่าเรียนก็จะถูกลงครับ

อย่างไรก็ดีถ้าคุณคิดว่าจะใช้เวลา 8 เดือนหรือมากกว่า การสมัคร Coursera Plus จะคุ้มค่ากว่า (รายละเอียดอยู่ด้านล่างครับ)

11. Algorithms Specialization

หลักสูตรคุณภาพเยี่ยมที่จัดทำโดย Stanford University มหาวิทยาลัยอันดับต้นๆ ของประเทศสหรัฐอเมริกาและโลก หลักสูตรนี้จะสอน Data Structure และ Algorithm โดยโฟกัสที่อย่างหลังเป็นพิเศษ คุณจะได้เรียนวิธีการคิดแบบนักวิทยาศาสตร์คอมพิวเตอร์ รวมไปถึงเข้าใจพื้นฐานของการออกแบบและวิเคราะห์อัลกอริทึมครับ

ภายในหลักสูตรประกอบด้วย 4 คอร์สย่อยได้แก่

  1. Divide and Conquer, Sorting and Searching and Randomized Algorithms – เรียนรู้เกี่ยวกับ Big O Notation และเทคนิคต่างๆ ของอัลกอริทึมอาทิเช่น Divide and Conquer และ Sorting and Searching
  2. Graph Search, Shortest Paths and Data Structures – เจาะลึกโครงสร้างของ Data Structure อย่างเช่น Heaps และ Hashtables และลองใช้งาน Graph Search ในการหาเส้นทางที่เส้นที่สุด ฯลฯ
  3. Greedy Algorithms, Minimum Spanning Trees and Dynamic Programming – เรียนในส่วนของ Greedy Algorithms อย่างเช่น Minimum Spanning Trees และ Clustering รวมไปถึงตอนเซปต์ของ Dynamic Programming อย่างเช่น Knapsack และ Sequence Alignment
  4. Shortest Paths Revisited, NP-Complete Problems and What to Do About Them – เจาะลึกในส่วนของ Shortest Paths ระดับสูงและ NP-Completeness คุณจะได้ทราบว่าคอนเซปต์เหล่านี้ส่งผลอย่างไรต่อการออกแบบอัลกอริทึม และการแก้ปัญหาอื่นๆ

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

ค่าเรียนคอร์สนี้จะอยู่ที่ $49 หรือประมาณ 1,470 บาทต่อเดือนเหมือนกับหลักสูตรที่แล้ว โดยจะใช้เวลาเรียนให้จบ 4 เดือน ถ้าคุณใช้เวลาเรียน 4 ชั่วโมงต่อสัปดาห์ครับ

ข้อควรทราบ: ถ้าคุณเกิดสนใจในคอร์สหรือหลักสูตรของ Coursera มากกว่า 1 คอร์ส ผมแนะนำให้สมัคร Coursera Plus ไปเลยจะคุ้มค่ากว่าครับ (ถูกกว่า + เข้าถึงคอร์สได้มากกว่า)

บทความล่าสุด

Victory Tale ไม่อนุญาตให้คัดลอกบทความไปโพสที่ใดทุกกรณี การฝ่าฝืนมีโทษทางกฎหมาย

error: Content is protected !!