Open Source Society University – โรดแมปเรียนรู้ด้วยตนเองด้านวิทยาการคอมพิวเตอร์ฟรี
(github.com/ossu)- หลักสูตร OSSU มอบ เส้นทางการศึกษาวิทยาการคอมพิวเตอร์แบบครบถ้วน ฟรี ผ่านสื่อออนไลน์จากมหาวิทยาลัยชั้นนำทั่วโลก
- โครงสร้างเลียนแบบหลักสูตรวิทยาการคอมพิวเตอร์ระดับปริญญาตรีด้วยช่วงเริ่มต้น แกนหลัก ขั้นสูง และโปรเจกต์สุดท้าย
- ทุกคอร์สและงานที่ได้รับมอบหมายเป็น ฟรี หรือส่วนใหญ่ฟรี แต่อาจมีค่าใช้จ่ายในบางงานประเมินผล
- มี เครือข่ายสนับสนุนผู้เรียนระดับโลก ที่คึกคัก เช่น ชุมชน Discord และมีการอัปเดตทรัพยากรอย่างต่อเนื่อง
- ผู้เรียนสามารถปรับจังหวะและเลือกเส้นทางได้อย่างยืดหยุ่น ทั้งแบบเรียนเดี่ยวหรือเรียนเป็นกลุ่ม ตามสถานการณ์ของตนเอง
OSSU คืออะไร และทำไมจึงสำคัญ
OSSU(Open Source Society University) คือหลักสูตรโอเพนซอร์สที่ออกแบบมาเพื่อให้ทุกคนสามารถเรียนรู้ในระดับเทียบเท่าปริญญาด้านวิทยาการคอมพิวเตอร์ได้ด้วยตนเองโดยไม่เสียค่าใช้จ่าย โดยใช้คอร์สและสื่อสาธารณะจากมหาวิทยาลัยชั้นนำของโลก เช่น Harvard, MIT และ Princeton เป้าหมายไม่ใช่การถ่ายทอดความรู้แบบครั้งเดียวจบ แต่คือการมอบ ประสบการณ์การเรียนรู้ที่สมดุลระหว่างทฤษฎี การปฏิบัติ และการประยุกต์ใช้
- คัดเลือกสื่อการเรียนฟรีคุณภาพสูงที่เปิดเผยออนไลน์ทั้งหมด
- สะท้อนมาตรฐานหลักสูตรปริญญาตรีพื้นฐานด้านวิศวกรรมคอมพิวเตอร์ระดับสากลอย่างเคร่งครัด เช่น มาตรฐาน CS2013
- มุ่งสำหรับผู้ที่สามารถสร้างแรงจูงใจให้ตนเอง สร้างนิสัยการเรียนรู้อย่างต่อเนื่อง และขอความช่วยเหลือจากชุมชนผู้เรียนทั่วโลกได้
โครงสร้างหลักสูตรและจุดเด่น
- ช่วงเริ่มต้น(Introduction to CS) : ทดลองสัมผัสแนวคิดพื้นฐานและความสนุกของวิทยาการคอมพิวเตอร์และการเขียนโปรแกรม รวมถึง Python programming, ทฤษฎีการคำนวณ, โครงสร้างข้อมูลพื้นฐาน และอัลกอริทึม
- แกนหลัก(Core CS) : เป็นส่วนที่เทียบเท่าหลักสูตรมหาวิทยาลัยชั้นปีที่ 3 ครอบคลุมการเขียนโปรแกรม(เชิงฟังก์ชัน, เชิงวัตถุ, การออกแบบซอฟต์แวร์), คณิตศาสตร์(คณิตศาสตร์ไม่ต่อเนื่อง, สถิติ, ความน่าจะเป็น, แคลคูลัส), ระบบ(สถาปัตยกรรมคอมพิวเตอร์, OS, เครือข่าย), ทฤษฎี(อัลกอริทึม, ปัญหา NP เป็นต้น), ความปลอดภัย, การประยุกต์ใช้ และจริยธรรม
- ขั้นสูง(Advanced CS) : เป็นช่วงเทียบเท่าปีสุดท้ายของหลักสูตร สามารถเลือกเรียนสาขาที่สนใจจากการเขียนโปรแกรมเชิงลึก ระบบ ทฤษฎี ความมั่นคงปลอดภัยสารสนเทศ และคณิตศาสตร์ขั้นสูง
- โปรเจกต์สุดท้าย: นำความรู้ที่เรียนมาใช้ทำโปรเจกต์จริง พร้อมแบ่งปันและให้เพื่อนผู้เรียนทั่วโลกช่วยตรวจสอบผลลัพธ์ ใช้เป็นหลักฐานทักษะเชิงปฏิบัติและพอร์ตโฟลิโอสมัครงานได้
รูปแบบการเรียนและค่าใช้จ่าย
- สามารถเรียนตามหลักสูตรได้ทั้งแบบเดี่ยวหรือแบบกลุ่ม
- แนะนำให้เรียนแต่ละส่วนตามลำดับ แต่หากมีความรู้เดิมอยู่แล้วก็สามารถข้ามได้
- ทุกคอร์สเรียนได้ฟรีทางออนไลน์ บางแพลตฟอร์ม(Coursera, edX เป็นต้น) อาจมีค่าใช้จ่ายเมื่อส่งงาน/สอบ/ประเมินโปรเจกต์ แต่โดยมาก ตัวการเรียนเองยังฟรี ทั้งยังมีคำแนะนำเรื่องการขอความช่วยเหลือทางการเงิน(ทุนการศึกษา/Financial Aid) เพื่อลดภาระค่าใช้จ่าย
- มีเทมเพลต Google สเปรดชีตสำหรับช่วยติดตามความคืบหน้าและวันที่คาดว่าจะเรียนจบ
ชุมชนและการสนับสนุน
- มี เซิร์ฟเวอร์ Discord สำหรับผู้เข้าร่วม – ใช้พูดคุยเกี่ยวกับคอร์ส ถามคำถาม และเชื่อมต่อกับเพื่อนร่วมเรียนอย่างคึกคัก
- มีช่องทางรับฟีดแบ็กอย่างต่อเนื่อง เช่น GitHub Issue และข้อเสนอเพื่อปรับปรุงหลักสูตร
- สามารถเพิ่มประวัติการเรียน OSSU ลงในโปรไฟล์ LinkedIn ได้
แนะนำให้ตรวจสอบหลักสูตรล่าสุดผ่านเว็บไซต์ทางการและ GitHub repository
รายการหลักสูตรโดยละเอียด
ข้อกำหนดเบื้องต้น
- Core CS ต้องมี คณิตศาสตร์ระดับมัธยมปลาย(พีชคณิต, เรขาคณิต, ช่วงก่อนแคลคูลัส)
- Advanced CS จะเลือกเรียนได้หลังจากเรียนส่วนแกนหลักครบแล้ว
- วิชา Advanced systems ต้องใช้ความรู้ฟิสิกส์พื้นฐานระดับมัธยมปลาย
บทนำสู่ CS(Introduction to CS)
- ก้าวแรกของวิทยาการคอมพิวเตอร์ แนะนำการคำนวณพื้นฐาน การเขียนโปรแกรมเชิงคำสั่ง โครงสร้างข้อมูล อัลกอริทึม ฯลฯ
- คอร์สบังคับ: 'Introduction to Computer Science and Programming using Python' (14 สัปดาห์)
แกนหลัก CS(Core CS)
การเขียนโปรแกรม
- ฝึกปฏิบัติอย่างกว้างขวาง ครอบคลุมเชิงฟังก์ชัน/เชิงวัตถุ/การทดสอบ/แพตเทิร์น/การกำหนดชนิด/ความหลากหลายของภาษา
- Systematic Program Design, Programming Languages (A–C), Object-Oriented Design, Software Architecture เป็นต้น
คณิตศาสตร์
- รวมคณิตศาสตร์ไม่ต่อเนื่อง การพิสูจน์ทางคณิตศาสตร์ สถิติพื้นฐาน Big-O ความน่าจะเป็น และแคลคูลัส
เครื่องมือและสภาพแวดล้อมการพัฒนา
- เครื่องมือสำคัญสำหรับงานจริง เช่น terminal, shell scripting, vim, command line, version control(git)
ระบบ
- ทำความเข้าใจหลักการทำงานของคอมพิวเตอร์โดยรวม ตั้งแต่ฮาร์ดแวร์ไปจนถึงระบบปฏิบัติการและเครือข่าย
- ตัวอย่าง: โปรเจกต์ Nand to Tetris, OS Three Easy Pieces, Networking เป็นต้น
ทฤษฎี
- รวมการวิเคราะห์อัลกอริทึม divide and conquer กราฟ dynamic programming ปัญหา NP เป็นต้น
ความปลอดภัย
- รวมวิชาเลือกด้านพื้นฐานความมั่นคงปลอดภัยสารสนเทศ การเขียนโค้ดอย่างปลอดภัย การวิเคราะห์ช่องโหว่ เครือข่าย/การเข้ารหัส เป็นต้น
การประยุกต์ใช้
- ครอบคลุมงานประยุกต์จริงอย่างกว้างขวาง เช่น ฐานข้อมูล machine learning คอมพิวเตอร์กราฟิกส์ และวิศวกรรมซอฟต์แวร์
จริยธรรม
- เน้นจริยธรรมสำคัญสำหรับนักเทคโนโลยี เช่น บริบททางสังคมของเทคโนโลยี ความเป็นมืออาชีพ ทรัพย์สินทางปัญญา และความเป็นส่วนตัวของข้อมูล
ขั้นสูง CS(Advanced CS)
- เลือกตามสายอาชีพ/ความสนใจ เช่น การเขียนโปรแกรมแบบขนาน คอมไพเลอร์ ภาษาอย่าง Haskell/Prolog การดีบัก/การทดสอบซอฟต์แวร์
- มีตัวเลือกกว้างขวางทั้งสถาปัตยกรรมคอมพิวเตอร์ การวิเคราะห์เชิงตัวเลข/ตรรกะ/ความน่าจะเป็น ทฤษฎีการคำนวณ ความมั่นคงปลอดภัยสารสนเทศ การสร้างระบบ เป็นต้น
โปรเจกต์สุดท้าย(Final Project)
- เลือกโปรเจกต์เชิงปฏิบัติ ออกแบบ ลงมือทำ และแชร์ผลงาน
- ตัวอย่างตัวเลือก: บริการ full-stack, robotics, data mining, big data, IoT, cloud computing, data science, game development เป็นต้น
- ทำได้ทั้งออกแบบเองหรือใช้คอร์สที่แนะนำ
หลังเรียนจบ
- ใช้รับรองว่ามีความรู้เทียบเท่าปริญญาตรีในสาขา CS
- แนะนำให้ต่อยอดสู่การเตรียมสมัครงาน การอ่านเชิงลึก(List ที่มีให้) และการพบปะนักพัฒนาแบบออฟไลน์
- สนับสนุนให้สำรวจเทคโนโลยีใหม่(ภาษาอย่าง Elixir/Rust/Idris เป็นต้น)
กฎการดำเนินงานและทีม
- ปฏิบัติตาม OSSU Code of Conduct
- มีคำแนะนำการแสดงและจัดการความคืบหน้าของตนบน GitHub(ใช้ kanban)
ทีมงานหลักของ OSSU
- Eric Douglas(ผู้ก่อตั้ง OSSU), Josh Hanson(ผู้ดูแลด้านเทคนิค), Waciuma Wanjohi(ผู้ดูแลด้านวิชาการ) และผู้มีส่วนร่วมจากทั่วโลกคนอื่น ๆ
สรุป
OSSU เปิดทางให้ทุกคนทั่วโลกพัฒนาความสามารถระดับเทียบเท่าปริญญาด้านวิทยาการคอมพิวเตอร์ได้ ฟรี และก้าวเข้าสู่งานจริงกับเส้นทางอาชีพในอุตสาหกรรม IT สมัยใหม่ได้อย่างกว้างขวาง
การผสมผสานระหว่างความยืดหยุ่นของจังหวะการเรียน มาตรฐานที่เข้มงวด ชุมชนระดับโลก และสื่อฟรีคุณภาพสูง คือจุดแข็งสำคัญเมื่อเทียบกับหลักสูตรสาธารณะอื่น ๆ
4 ความคิดเห็น
> ผมคิดว่าข่าวแนว "อย่าเรียนคอมไซ" นั้นพลาดประเด็นความหมายที่แท้จริงไป
แปลออกมาได้ถึงอารมณ์ดีจัง น่าทึ่งนะ 555
OSSU Open Source Society University - เรียน Computer Science ด้วยตนเอง
เหมือนว่าเคยแนะนำไว้ตั้งแต่ช่วงแรก ๆ ของ GeekNews แล้วนะครับ ระหว่างนั้นก็มีการเพิ่มเนื้อหาเข้ามาอีกค่อนข้างมาก
ความคิดเห็นจาก Hacker News
ในฐานะวิศวกรที่มีประสบการณ์ ฉันคิดว่า OSSU เป็นที่ที่ดีมากถ้าคุณอยากช่วยผู้เรียน
ฉันกำลังดำเนินโครงการการศึกษาที่ช่วยให้นักเรียนเรียนวิศวกรรมคอมพิวเตอร์ด้วยตัวเองได้ และก็มักใช้อ้างอิงหลักสูตร OSSU ด้วย
การเรียนด้วยตัวเองมีข้อดีหลายอย่าง แต่ก็เป็นสิ่งที่นักเรียนต้องรู้ด้วยว่ามีเรื่องที่ต้องระวัง
คุณต้องขยันทำเรื่อง "signaling" และ networking ด้วยตัวเองมากขึ้น และผลประโยชน์ทางสังคมที่ได้ตอนสังกัดมหาวิทยาลัยนั้นมักขาดหายไปในการเรียนด้วยตัวเอง
การไม่มีปริญญาถือได้ว่าเป็นสถานะ "marked" ซึ่งดูคำอธิบายได้ ที่นี่
เวลาเกิดความผิดพลาดหรือเจอความยากลำบาก ก็มักจะโทษได้ง่ายว่าเป็นเพราะไม่มีปริญญา
ผู้รับสมัครบางคนมองว่าการจ้างคนที่ไม่มีปริญญามีความเสี่ยงทางการเมือง จึงอาจทำให้เข้าทำงานได้ยากตั้งแต่ต้น
ไม่ใช่เรื่องที่เอาชนะไม่ได้ แต่เพราะแบบนั้นเราจึงเตรียมรับมือและหาทางข้ามมันไปตั้งแต่แรก
ข้อดีของการเรียนด้วยตัวเองคือเรียนได้เร็วกว่า และสามารถเรียนทุกอย่างในบริบทที่เชื่อมโยงกันโดยไม่ต้องวนซ้ำกับขั้นตอนที่ไม่จำเป็น
ถ้าคุณพบว่าพื้นฐานยังไม่แน่น ก็ย้อนกลับไปเรียนตอนนั้นได้
ฉันคิดว่านี่เป็นรูปแบบการเรียนที่หลีกเลี่ยงไม่ได้สำหรับสายงานเทคนิค แต่ก็ไม่ได้เหมาะกับนักเรียนทุกคน
ในความเป็นจริง น่าเสียดายที่หลายคนถูก "บังคับ" ให้เรียนด้วยตัวเองเพราะสถานะการเงินทำให้ไปมหาวิทยาลัยไม่ได้
ถ้าไม่เข้าใจ trade-off ให้ดี มันก็ยิ่งลำบาก
อ้างอิง: Divepod
ฉันมีประสบการณ์เป็นเมนเทอร์ให้หลายคนในเส้นทางการเรียนด้วยตัวเอง
ตอนที่เพิ่งจบมัธยม ฉันยังเด็กและตัดสินใจพลาดจนเรียนปริญญา CS ไม่จบ ทำให้พลาดโอกาสดี ๆ ไป
ส่วนตัวฉันคิดว่า Teach Yourself CS เป็นทางเลือกที่ดีกว่า
ฉันเป็นตัวอย่างว่าคุณสามารถสร้างอาชีพได้ด้วยการเรียนด้วยตัวเองล้วน ๆ
ฉันทำงานในวงการนี้มาเกิน 20 ปีแล้ว
แต่ถ้าเลือกเส้นทางนี้ ก็มีบริษัทและบทบาทที่คุณ "ไม่มีวัน" ไปถึงได้อย่างชัดเจน
บริษัทแบบนั้นส่วนใหญ่ก็คือบริษัทชั้นนำที่สุด งานเงินเดือนสูงสุด และงานเงื่อนไขดีที่สุด
สิ่งที่สำคัญยิ่งกว่าตัวปริญญาคือเครือข่ายศิษย์เก่า ถ้าคุณมีปริญญา ก็จะมี "คลับใหญ่" ที่คนจากสถาบันเดียวกันพร้อมจะรับเข้าทำงาน
ถ้าเรียนด้วยตัวเอง คุณจะไม่มีวันมีเครือข่ายแบบนั้น
ความจริงคืออะไร? คุณจะเหลือแต่งานที่คนอื่นปฏิเสธกันหมด ที่ทำงานเพี้ยน ๆ สแกม สตาร์ตอัปเงินไม่พอ หรือบริษัทที่กำลังวิกฤตเต็มไปหมด
ต่อให้ได้ตำแหน่งดี ๆ แบบหายากจริง ๆ ก็อยู่ได้นานยาก
เงินเดือนต่ำกว่า และเสี่ยงถูกเอาเปรียบได้ง่ายกว่า
การได้หลาย offer พร้อมกันก็ยาก ทำให้ตำแหน่งต่อรองในตลาดลดลง
สุดท้ายเส้นทางอาชีพทั้งเส้นอาจรู้สึกเหมือนเป็นอีก financial track ไปเลย
การหางานยากกว่ามาก ต้องพยายามมากขึ้นสองเท่า
คุณมักถูกตั้งข้อสงสัยคล้าย ๆ ปมด้อยเรื่องคุณสมบัติ ทั้งจากตัวเองและเพื่อนร่วมงาน
ความผิดพลาดเพียงครั้งเดียวส่งผลรุนแรงมาก
ถึงอย่างนั้นมันก็ยังดีกว่าไม่ทำอะไรเลย แต่ถ้ามีโอกาส ฉันคิดว่าไปเรียนมหาวิทยาลัยจะดีกว่า
ฉันไม่ได้อยากลดทอนประสบการณ์ของคุณนะ แต่ฉันเรียนด้วยตัวเอง 100% และเคยทำงานในบริษัทหลากหลายประเภท ทั้งบริษัทใหญ่ ยูนิคอร์น และสตาร์ตอัป
ฉันทำงานเป็นนักพัฒนาซอฟต์แวร์อยู่หลายปีก่อนจะกลับไปเรียนเพื่อเอาปริญญา CS
เรื่องนี้จริงอยู่ระดับหนึ่ง แต่ส่วนใหญ่จะจริงเฉพาะช่วงเริ่มต้นและตอนที่ความสามารถของคุณยังอยู่กลุ่มล่างในหมู่เพื่อนร่วมงาน
ฉันค่อนข้างใกล้เคียง ADHD และก็อยู่ใน autism spectrum บางส่วน
สิ่งที่มักถูกลืมในการคุยเรื่องนี้คือ เหตุผลที่ใหญ่ที่สุดของการเรียนวิทยาการคอมพิวเตอร์ ไม่จำเป็นต้องเป็นเรื่องหางานหรือเพิ่มทักษะการทำงานเสมอไป
ฉันสงสัยว่าการที่หลักสูตรนี้ประกอบด้วยคอร์ส "ฟรีและโอเพนซอร์ส" เท่านั้น จะกลายเป็นข้อจำกัดเสียเองหรือเปล่า
ฉันคิดว่าถ้าอยากเรียนให้จริงจัง ก็ควรพร้อมลงทุนกับสื่อการเรียนคุณภาพดีโดยไม่ลังเล
เห็นด้วยกับความเห็นนี้
ฉันคิดว่าปริญญาช่วยชดเชยจุดอ่อนทางสังคมส่วนใหญ่ได้
ในหลายคอมเมนต์มีการปะปนกันระหว่างแนวคิดที่ว่าโรงเรียนช่วยสร้างเครือข่าย กับแนวคิดที่ว่าบางที่รับเฉพาะคนจากบางสถาบัน
เป็นความจริงที่โอกาสหางานผ่านคนรู้จักจากมหาวิทยาลัยหรือในสายงานมีมากขึ้น
แต่ยิ่งอาชีพก้าวหน้า อิทธิพลของเครือข่ายที่สร้างหลังมหาวิทยาลัยกลับยิ่งมากกว่า
ตำแหน่งที่ต้องใช้ปริญญาจากมหาวิทยาลัยเฉพาะ หรือปริญญาเอกนั้น มีความหมายในฐานะ "สัญญาณ" มากกว่าเรื่องเครือข่าย
กล่าวคือเป็นสัญญาณที่น่าเชื่อถือจนคนจ้างไม่ต้องถามต่อมากนัก
ส่วน self-learner ต้องหาทางอ้อมหรือใช้ความพยายามเพิ่มเติม
ต้องพุ่งไปที่การทำให้คนสนใจจากความสัมพันธ์ส่วนตัวหรือผลงานของตัวเอง หรือได้โอกาสผ่านการแนะนำจนข้ามกระบวนการรับสมัครตามปกติ
เวลาฉันได้ยินคำพูดว่า "โอกาสถูกตัดทิ้งไปเลย" มันทำให้นึกถึงแนวคิดที่ว่า แม้โชคจะไม่ใช่กลยุทธ์ แต่ถ้าเพิ่มจำนวนครั้งที่ลอง โอกาสเจอความโชคดีก็สูงขึ้น
ฉันสงสัยจริง ๆ ว่าเป้าหมายคืออะไรกันแน่
น่าเสียดายที่ในการถกเถียงแบบนี้ ทั้งสองฝ่ายมักมีท่าทีปกป้องตัวเองมากเกินไป
เจ๋งมากจริง ๆ