มหาวิทยาลัยระดับโลกหลายแห่ง เปิดสอน Coding แบบ Online ทุกคนสามารถเรียนได้โดยไม่ต้องเสียค่าใช้จ่าย วันนี้จะพาไปดูของ Harvard และ MIT กัน
ที่ Harvard มี Course ที่มีนักศึกษาลงทะเบียนเรียนมากที่สุด คือวิชา CS50 ทุกวันนี้เปิดสอนในหอประชุมขนาดใหญ่ มีการถ่ายทอดสดไปทั่วโลก และเป็น Course ที่ได้รับการยอมรับว่าดีที่สุดในโลก เปิดให้เรียน Online โดยไม่เสียค่าใช้จ่าย ที่นี่ https://cs50.harvard.edu
Course นี้เริ่มต้นจากการเขียน Code ด้วยภาพหรือที่เรียกว่า Scratch ตามด้วยภาษา C เพื่อให้เข้าใจการเขียน Code แบบ Low Level อีก 5 ครั้ง ตามด้วยภาษา Python, Flask และ SQL อย่างละครั้ง HTML/CSS/JavaScript เรียนครั้งเดียว และ Ethics ปิดท้าย รวม 11 ครั้ง ครั้งละ 2 ชั่วโมงครึ่ง
สำหรับคนที่สนใจเรียน Online แนะนำให้เรียน CS50 เพราะไม่ต้องเดินทางไปไหน จัดตารางเรียนได้เอง และเรียนกับศาสตราจารย์ที่ดีที่สุดของโลก สอนคนเดียวจะมีความต่อเนื่องของเนื้อหา วิชาไหนสอนหลายคนมักจะเรียนแล้วสับสน
ที่ CODESTAR แต่ละ Course สอนโดยคนเดียวเหมือนกัน หลักการสอนที่ CODESTAR คือ ต้องสอนดีกว่ามหาวิทยาลัยระดับโลก ไม่ว่าจะเป็น Harvard หรือ MIT หรือที่ไหนก็ตาม ลองเปรียบเทียบกันดูได้ว่าเป็นจริงหรือเปล่า
ที่ CODESTAR เปิดสอน Course ที่คล้ายกันคือ Java Software Engineer ตอนนี้เรียนครั้งละ 3 ชั่วโมง ทั้งหมด 20 ครั้ง เป็นการเรียนแบบ Low Level เหมือนกัน มีเนื้อหา Data Structures ที่ควรรู้จัก เช่น Binary Tree, Binary Search Tree, Linked List, Array, Matrix, Hash Table สอนโดยการพิมพ์ทีละตัวอักษร สร้างทีละ Node เข้าใจที่มาว่าแต่ละตัวหมายถึงอะไร
ที่ CS50 สอน Binary Search Tree และ Linked List โดยไม่ได้สร้าง Node ให้ดู เขียน Function เป็นภาษา C เพื่อค้นหาข้อมูลใน Binary Search Tree โดยการพิมพ์ Code ทั้งหมดไว้ก่อน แล้วเปิดขึ้นมาอธิบายทีละ Block
แต่ที่ CODESTAR สอนเรื่องเดียวกันโดยเริ่มจาก Binary Tree ก่อน แล้วค่อยเขียน Binary Search Tree ใส่ข้อมูลทีละตัว พิมพ์ทีละตัวอักษร เขียน Function เหมือนกัน แต่เขียนเป็นภาษา Java แถมด้วยตัวอย่างการตอบคำถามสัมภาษณ์งานระดับโลกด้าน Binary Search Tree เช่น หาผลรวมจาก Root ถึง Leaf, หาค่าที่มากที่สุดแต่ละ Level หรือ หาผลรวมแต่ละ Level สมัครงานที่ไหนก็ไม่ต้องกลัวเรื่องนี้
ในส่วนของ Algorithm ปีนี้ CS50 เน้นสอนการเรียงข้อมูล หรือ Sorting อธิบายเรื่อง Selection Sort, Bubble Sort, Merge Sort แต่ไม่ได้เขียน Code ให้ดู แต่ที่ CODESTAR อธิบายให้เข้าใจหลักการแต่ละแบบ แถมยังมี Merge Sort, Quick Sort และ Radix Sort เป็น Bonus ที่เหนือชั้น เขียนให้ดูครบทุกแบบ จะ Greedy Sort หรือ Divide & Conquer Sort ก็ใช้ได้ ต่างจาก Conquer & Divide Sort ยังไง มาเรียนด้วยกันได้ เขียนทีละตัวอักษร ให้เข้าใจที่มาที่ไป ลองมาเรียนด้วยกันจะได้เข้าใจหลักการทำงานอย่างแท้จริง
บางคนถามว่า ถ้าสอนดีขนาดนี้แล้ว ทำไมไม่ไปสอนแทน Harvard หรือ MIT ไปเลย ด้วยความยินดีครับ พร้อมตลอดเวลา ใครเชิญมาก็พร้อมไปทุกที่
ที่ MIT เปิดสอน Java แบบ Online แนะนำให้เรียน 2 วิชา คือ Software Construction in Java กับ Advanced Software Construction in Java เรียน Online ได้ทั้งคู่ ที่นี่
https://openlearninglibrary.mit.edu /courses/course-v1:MITx+6.005.1x+3T2016/about https://openlearninglibrary.mit.edu /courses/course-v1:MITx+6.005.2x+1T2017/about
ใช้เวลาเรียน 14 และ 10 สัปดาห์ ตามลำดับ
วิชานี้เริ่มต้นด้วยการอธิบายลักษณะของ Software ที่ดี 3 อย่าง ตามด้วยการทำ Code Review การ Partition Test Case การทดสอบแบบ Black Box และ White Box การทำ Test Automation
จากนั้นเป็นเรื่องของ Specification ตามด้วย Data Structures ของ Java อย่าง Equality, Immutable, Interface แบบฝึกหัดจะมี Code มาให้ส่วนนึง ให้แก้ไขให้ถูกต้อง เวลาเรียนรวม 14 สัปดาห์
ถัดไปเป็นวิชา Advanced Software Construction in Java เรียนต่ออีก 10 สัปดาห์ เริ่มจาก Recursion และ Base Case รวมถึงเปรียบเทียบกับ Iteration ตามด้วยเรื่อง Data Structures ที่เป็น Recursive เช่น Binary Tree และการใช้ Regular Expression จากนั้นเป็นเรื่อง Concurrency Threading และ Socket และปิดท้ายด้วย Message Queue และ Deadlock
แบบฝึกหัดจะคล้ายเดิม คือมี Code มาให้แก้ไข หรือเขียน Unit Testing ให้ถูกต้องตาม Partition Test Case ที่กำหนดมา ต้องลองไปเรียนดู เป็น Course ที่ดีมาก สอนด้วย Java 8 รุ่น Classic ที่ควรรู้ แม้แต่ Course ใหม่ปี 2021 ก็ยังใช้ Java 8 เหมือนเดิม แต่ล่าสุดปี 2022 มีการเปลี่ยนมาสอนด้วย TypeScript แทน ผมเรียนมาทั้งสองวิชาตั้งแต่ปี 2016 ได้ Certificate มา เอาไว้ไปสมัครงานได้ สำหรับใครที่เรียนจบแล้วก็ส่งใบสมัครงานมาได้ตลอดเวลา งานประจำเงินเดือน 30,000 บาท ถ้ามีคะแนนสอบ TOEFL iBT ตั้งแต่ 100 คะแนนขึ้นไป เงินเดือนเริ่มต้นที่ 60,000 บาท
ที่ CODESTAR เปิดสอนที่คล้ายกันคือ Java Software Engineer เริ่มต้นด้วยการเรียนภาษา Java พื้นฐาน ตามด้วย Array และ String หลักการของ Greedy, Two Pointers, และ Sliding Window ซึ่งมีความสำคัญในการสัมภาษณ์งานระดับโลก ถ้ามีคำถามเป็น Two Pointers แล้วผู้สมัครไม่เคยเห็น หรือไปใช้วิธีอื่น แสดงว่าพื้นฐานยังไม่ดี
ที่ CODESTAR เป็น Course แรกของโลกที่เรียน Keyword ของ Java ครบทั้ง 60 คำ เรียนด้วย Java 23 ใหม่ล่าสุด
ตามมาด้วย Binary Tree และ Binary Search Tree เป็น Recursive Structures เหมือน Course ระดับโลกทั่วไป ที่สำคัญคือ จะมีการเขียนให้ดูทีละตัวอักษร สร้างทีละ Node เขียน Code จริง ไม่ใช่แค่วาดรูปให้ดู เรียนแล้วต้องรู้ข้อแตกต่างระหว่าง 3 เรื่องที่ชื่อคล้ายกันคือ Binary Search, Binary Tree และ Binary Search Tree ต่อให้จบปริญญาตรีมา ก็มีแค่ไม่กี่คนที่รู้เรื่องนี้ ลองทดสอบดูได้
เรื่อง Divide and Conquer ยังไม่จบแค่นั้น เพราะต้องศึกษาให้ลึกซึ้งถึง Merge Sort ตามแนวทางของผู้คิดค้น ซึ่งถือว่าเป็น Top Secret ในโครงการ Manhattan เรียนที่ CODESTAR จะได้เขียนทั้ง Merge Sort และ Quick Sort ทีละตัวอักษร ส่วน Quick Sort มีการ Partition แบบ Two Pointers แบบดั้งเดิม และการ Partition แบบกระต่ายกับเต่าตามหนังสือของ MIT
ครึ่งเดือนหลังจะเป็นการศึกษา Framework ที่นิยมใช้ของ Java เริ่มตั้งแต่การใช้ Cloud และ Unix Commands ที่ควรรู้ การติดตั้ง Java Development Kit รุ่น 23 ใหม่ล่าสุด ศึกษากลไกการทำงานของ Redirect และ Pipe ซึ่งจะช่วยให้เข้าใจระบบ Unix มากขึ้น
ส่วน Threading มีเรียนทั้งแบบ Subclass และ Interface เขียน Multicore ด้วย Lambda Expression ฝึกหัดใช้ Collections ทั้ง ArrayList, LinkedList, TreeSet, HashSet, TreeMap, HashMap ครบทุกตัว แต่สมองคนเรามีข้อจำกัด จำอะไรมากไม่ได้ ก็อย่ากังวล เพราะใช้แค่ ArrayList ก็ทำงานได้แล้ว แต่ถ้าจะไปสัมภาษณ์งาน ก็ต้องรู้ให้ครบ
Database จะใช้ MySQL ก่อน เพื่อให้เข้าใจหลักการของ JDBC หรือ Java Database Connectivity แล้วค่อยเขียน JPA หรือ Java Persistence API คราวนี้เขียนได้ทุก DBMS ไม่ต้องยึดติดกับระบบไหน ไม่ว่าจะเป็น Oracle, SQL Server, MySQL, DB2, PostgreSQL และอื่นๆ
แนวคิดของ Spring ถูกออกแบบมาให้รองรับระบบขนาดใหญ่ที่มีความยืดหยุ่นสูง ด้วยหลักฐาน IoC และ AOP นั่นคือ Inversion of Control และ Aspect-Oriented Programming ที่ CODESTAR สอนจากการสร้างระบบขนาดเล็กให้เข้าใจหลักการก่อน แล้วค่อยศึกษาว่าระบบขนาดใหญ่ที่ซับซ้อนต้องสร้างแบบไหน
จากนั้นศึกษาแนวคิดของ HTTP ตั้งแต่ยุคแรกที่ต้องใช้ HTML และ CGI หรือ Common Gateway Interface เพื่ออ่านเขียนฐานข้อมูล ตามด้วยยุคที่สองเขียน Code แทรกลงไปใน HTML แบบ PHP หรือ JSP (JavaServer Pages) และยุคใหม่คือแบบ Model-View-Controller ด้วย Spring MVC ตามด้วย Spring Boot ซึ่งมีงานรองรับมากกว่า Framework ภาษาอื่นทุกภาษารวมกัน เรียนกันวันละเรื่อง เขียนได้ทั้ง Web Service และ Web Application
ที่ CODESTAR เป็น Course แรกของโลกที่เรียน Spring 6.x และ Spring Boot 3.x โดยเริ่มเรียนตั้งแต่เดือนมิถุนายน 2022
ช่วงท้ายจะเป็น Software Validation หรือ Testing ซึ่งก็เริ่มตั้งแต่ Black Box และ White Box การใช้ Debugger การทำ User Acceptance Test หรือ UAT การเขียน Unit Testing กับระบบ Web Service รวมถึงการ Assert ค่า จบสุดท้ายด้วย Test Automation ใช้ Selenium เขียน Code ไปทดสอบ Web ชื่อดัง
เนื้อหาที่ CODESTAR ค่อนข้างซับซ้อน ต้องอาศัยความเข้าใจแบบละเอียดลึกซึ้ง มาเรียนแล้วเขียน Code ได้ลื่นไหลเหมือนเล่นดนตรี ไม่ต้องมีพื้นฐานอะไรก็มาเรียนได้ เพราะเริ่มต้นเรียนใหม่หมด เป็นทักษะที่ไม่ขึ้นอยู่กับกาลเวลา ทำได้แล้วทำได้ตลอดไป ไม่มีวันลืม ประสบการณ์สอน Java อันดับ 1 ของโลก 6,500 ชั่วโมง สอน Full Stack อีก 4,700 ชั่วโมง ไม่มีสอน Online เปิดสอนทุกเดือน มาเรียนซ้ำได้จนกว่าจะเข้าใจ และได้งานประจำทำเงินเดือนสูงตามที่ต้องการ ถ้ามีคะแนนสอบ TOEFL iBT ตั้งแต่ 100 คะแนนขึ้นไป เงินเดือนเริ่มต้นที่ 60,000 บาท
บางคนสงสัยว่า เนื้อหาเยอะ จะเรียนเข้าใจหรือเปล่า เนื้อหาต้องเยอะอยู่แล้ว เพราะการเรียนที่ CODESTAR เดือนเดียว ต้องมีความรู้เท่ากับคนจบปริญญาตรีที่เรียน 4 ปี ถ้ามีเนื้อหาส่วนไหนที่ยังไม่เข้าใจ หรือตามไม่ทัน ก็สามารถมาเรียนได้ในเดือนถัดไป หรือมาเรียนเดือนไหนก็ได้ที่สะดวก ทำแบบฝึกหัดได้แค่ 5% สมัครงานได้ทุกที่ในเมืองไทย ทำแบบฝึกหัดได้ 30% สมัครงานได้ทุกที่ทั่วโลก
บางคนถามต่ออีกว่า แล้วจะไปเรียนมหาวิทยาลัยทำไมให้เสียเวลา 4 ปี ตอนนี้ยังไม่เคยเห็นมหาวิทยาลัยไหนที่สอนเขียน Web Service ด้วยภาษา Java ยิ่งเป็นการเขียนบน Framework ที่ชื่อว่า Spring Boot ก็แทบไม่มีเลย มหาวิทยาลัยสอนดีทุกที่ ลองไปเรียนดูได้
เนื้อหาที่มหาวิทยาลัยสอน แต่ที่ CODESTAR ไม่ได้สอนก็มีเหมือนกัน เช่น Binary Heap หรือ Fenwick Tree ที่ CODESTAR จะใช้ Binary Search Tree และ Segment Tree แทน ใช้ได้เหมือนกัน ประสิทธิภาพ O(log n) เท่ากัน แต่การเขียน Code จะไปแนวทางเดียวกันหมด จะเข้าใจได้ง่ายกว่า นั่นคือ Segment Tree เป็น Binary Search Tree แบบหนึ่ง และทั้งคู่ยังเป็น Binary Tree เหมือนกัน เรียนเข้าใจจำได้ตลอดกาล
เนื้อหาทั้งหมดของ CODESTAR และมหาวิทยาลัยชั้นนำอย่าง Harvard, MIT, Stanford, Princeton ไม่มีความลับ หรือเคล็ดลับอะไรทั้งสิ้น เนื้อหาทั้งหมด สามารถหาอ่านได้ตามหนังสือ หรือ Internet ทั่วไป อ่านหนังสือจบแล้วอยากสมัครงานก็ส่งใบสมัครงานมาได้ตลอดเวลา ไม่ต้องมีประสบการณ์อะไรทั้งสิ้น ถ้ามีคะแนนสอบ TOEFL iBT ตั้งแต่ 100 คะแนนขึ้นไป เงินเดือนเริ่มต้นที่ 60,000 บาท
ดูรายละเอียดและสมัครเรียนได้ที่นี่ https://codestar.work/register