การศึกษาด้วยตนเองในวิทยาศาสตร์-วิทยาศาสตร์
โปรแกรมฟรีอย่างสมบูรณ์ในการเรียนรู้หลักสูตรวิทยาศาสตร์คอมพิวเตอร์โดยหลักสูตร
รู้เบื้องต้นเกี่ยวกับวิทยาการคอมพิวเตอร์ (1-2 สัปดาห์)
- ภาพรวมของวิทยาศาสตร์คอมพิวเตอร์
- การเขียนโปรแกรมเบื้องต้น
- ภาพรวมของอัลกอริทึมและโครงสร้างข้อมูล
- องค์กรคอมพิวเตอร์และสถาปัตยกรรมขั้นพื้นฐาน
ทรัพยากร:
- รู้เบื้องต้นเกี่ยวกับวิทยาการคอมพิวเตอร์โดย Harvard University on EDX
- Codecademy เรียนรู้วิธีการเขียนรหัสหลักสูตร
พื้นฐานการเขียนโปรแกรม (4-6 สัปดาห์)
- บทนำเกี่ยวกับภาษาการเขียนโปรแกรม Python
- งบควบคุมการไหล
- ชนิดข้อมูลและโครงสร้าง
- ฟังก์ชั่นและโมดูล
- การดำเนินการอินพุตและเอาต์พุต
- การดีบักและการจัดการข้อผิดพลาด
- แนวคิดการเขียนโปรแกรมเชิงวัตถุ
ทรัพยากร:
- Python สำหรับทุกคนโดย University of Michigan on Coursera
- เรียนรู้ Python วิธีที่ยากลำบากโดย Zed Shaw
โครงสร้างข้อมูลและอัลกอริทึม (12-16 สัปดาห์)
- โครงสร้างข้อมูลพื้นฐาน (อาร์เรย์, รายการที่เชื่อมโยง, สแต็ค, คิว)
- โครงสร้างข้อมูลขั้นสูง (ต้นไม้กราฟตารางแฮช)
- การวิเคราะห์และออกแบบอัลกอริทึม
- การค้นหาและการเรียงลำดับอัลกอริทึม
- การเรียกซ้ำ
- การเขียนโปรแกรมแบบไดนามิก
- อัลกอริทึมโลภ
- อัลกอริทึมแบ่งและพิชิต
ทรัพยากร:
- โครงสร้างข้อมูลและอัลกอริทึมโดยมหาวิทยาลัยแคลิฟอร์เนียซานดิเอโกบน Coursera
- ความรู้เบื้องต้นเกี่ยวกับอัลกอริทึมโดย MIT Press
สถาปัตยกรรมคอมพิวเตอร์และระบบ (8-12 สัปดาห์)
- ภาพรวมของฮาร์ดแวร์และซอฟต์แวร์คอมพิวเตอร์
- ระบบปฏิบัติการ
- การจัดการหน่วยความจำ
- ระบบอินพุต/เอาต์พุต
- เครือข่ายคอมพิวเตอร์
- ระบบกระจาย
ทรัพยากร:
- สถาปัตยกรรมคอมพิวเตอร์โดย Princeton University on Coursera
- ระบบปฏิบัติการ: สามชิ้นง่ายโดย Remzi H. Arpaci-Dusseau และ Andrea C. Arpaci-Dusseau
ระบบฐานข้อมูล (8-12 สัปดาห์)
- ข้อมูลเบื้องต้นเกี่ยวกับฐานข้อมูล
- ระบบฐานข้อมูลเชิงสัมพันธ์ (SQL)
- การออกแบบฐานข้อมูลและการทำให้เป็นมาตรฐาน
- การสอบถามและจัดการข้อมูล
- การบริหารฐานข้อมูล
ทรัพยากร:
- รู้เบื้องต้นเกี่ยวกับฐานข้อมูลโดย Stanford University on Coursera
- SQLBOLT (บทเรียน SQL แบบโต้ตอบออนไลน์)
การพัฒนาเว็บ (8-12 สัปดาห์)
- การพัฒนาส่วนหน้า (HTML, CSS, JavaScript)
- การพัฒนาแบ็คเอนด์ (เฟรมเวิร์กเว็บการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์)
- การรวมฐานข้อมูล (SQL, ORM)
- ความปลอดภัยและการรับรองความถูกต้อง
ทรัพยากร:
- โครงการ ODIN (หลักสูตรการพัฒนาเว็บแบบเต็มฟรี)
- FreeCodecamp (หลักสูตรการพัฒนาเว็บฟรี)
วิศวกรรมซอฟต์แวร์ (8-12 สัปดาห์)
- วงจรชีวิตการพัฒนาซอฟต์แวร์
- การจัดการโครงการซอฟต์แวร์
- วิศวกรรมข้อกำหนด
- การทดสอบและการประกันคุณภาพ
- การบำรุงรักษาและวิวัฒนาการซอฟต์แวร์
ทรัพยากร:
- สิ่งจำเป็นสำหรับวิศวกรรมซอฟต์แวร์โดย University of Colorado Boulder บน Coursera
- Mythical Man-Month โดย Frederick P. Brooks Jr.
ปัญญาประดิษฐ์และการเรียนรู้ของเครื่องจักร
- ภาพรวมของปัญญาประดิษฐ์และการเรียนรู้ของเครื่องจักร
- อัลกอริธึมการเรียนรู้ภายใต้การดูแล (การถดถอยเชิงเส้น, การถดถอยโลจิสติก, ต้นไม้ตัดสินใจ, การสนับสนุนเครื่องเวกเตอร์, เพื่อนบ้าน K-Nearest, ไร้เดียงสาเบย์) (4-6 สัปดาห์)
- อัลกอริทึมการเรียนรู้ที่ไม่ได้รับการดูแล (การจัดกลุ่มการลดขนาด) (4-6 สัปดาห์)
- การเรียนรู้เสริมแรง
- เครือข่ายประสาทและการเรียนรู้อย่างลึกซึ้ง (4-6 สัปดาห์)
- การประมวลผลภาษาธรรมชาติ
- วิสัยทัศน์คอมพิวเตอร์
ทรัพยากร:
- การเรียนรู้ของเครื่องจักรโดย Andrew Ng บน Coursera
- การเรียนรู้อย่างลึกซึ้งโดย Yoshua Bengio, Ian Goodfellow และ Aaron Courville
กราฟิกคอมพิวเตอร์และการสร้างภาพ (8-12 สัปดาห์)
- ท่อกราฟิก
- การเปลี่ยนแปลงทางเรขาคณิต
- เบื้องต้นกราฟิก 2D และ 3D
- เทคนิคการแสดงผล (การติดตามเรย์, แรสเตอร์)
- ภาพเคลื่อนไหวและการจำลอง
- เทคนิคการสร้างภาพข้อมูล
ทรัพยากร:
- กราฟิกคอมพิวเตอร์โดย University of Tokyo บน EDX
- การแสดงผลแบบเรียลไทม์โดย Tomas Akenine-Möller, Eric Haines และ Naty Hoffman
ปฏิสัมพันธ์ระหว่างมนุษย์กับคอมพิวเตอร์ (8-12 สัปดาห์)
- หลักการของการออกแบบส่วนต่อประสานผู้ใช้
- กระบวนการออกแบบที่เน้นผู้ใช้เป็นศูนย์กลาง
- การทดสอบและประเมินผลการใช้งาน
- การออกแบบปฏิสัมพันธ์
- การสร้างภาพข้อมูล
- การเข้าถึงได้
ทรัพยากร:
- ปฏิสัมพันธ์ระหว่างมนุษย์กับคอมพิวเตอร์โดยมหาวิทยาลัยแคลิฟอร์เนียซานดิเอโกบน Coursera
- อย่าทำให้ฉันคิดโดย Steve Krug
ความปลอดภัยทางไซเบอร์ (8-12 สัปดาห์)
- ความปลอดภัยของเครือข่าย
- การเข้ารหัสลับ
- การรับรองความถูกต้องและการควบคุมการเข้าถึง
- การวิเคราะห์และตรวจจับมัลแวร์
- การประเมินและการจัดการความเสี่ยงด้านความปลอดภัย
ทรัพยากร:
- บทนำสู่ความปลอดภัยทางไซเบอร์โดยโรงเรียนวิศวกรรมศาสตร์มหาวิทยาลัยนิวยอร์ก Tandon บน EDX
- วิศวกรรมความปลอดภัยโดย Ross J. Anderson
เครื่องมือพัฒนาซอฟต์แวร์ (4-6 สัปดาห์)
- ระบบควบคุมเวอร์ชัน (GIT)
- สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDEs)
- การดีบักและเครื่องมือทำโปรไฟล์
- สร้างระบบอัตโนมัติและการรวมอย่างต่อเนื่อง (เจนกินส์)
ทรัพยากร:
- Git Handbook โดย GitHub
- การสอน Eclipse IDE โดย Vogella
คณิตศาสตร์สำหรับวิทยาการคอมพิวเตอร์ (8-12 สัปดาห์)
- คณิตศาสตร์ที่ไม่ต่อเนื่อง
- พีชคณิตเชิงเส้น
- ความน่าจะเป็นและสถิติ
- แคลคูลัส
- จำนวนทฤษฎี
ทรัพยากร:
- คณิตศาสตร์สำหรับวิทยาศาสตร์คอมพิวเตอร์โดย Massachusetts Institute of Technology เกี่ยวกับ MIT OpenCourSeware
- พีชคณิตเชิงเส้นโดย Gilbert Strang บน mit opencourseware
จริยธรรมและสังคมในการคำนวณ (8-12 สัปดาห์)
- ปัญหาด้านจริยธรรมในการคำนวณ
- ผลกระทบทางสังคมและการเมืองของการคำนวณ
- ปัญหาความเป็นส่วนตัวและความปลอดภัย
- ทรัพย์สินทางปัญญาและลิขสิทธิ์
- ผลกระทบทั่วโลกของการคำนวณ
ทรัพยากร:
- คอมพิวเตอร์และสังคมโดย Harvard University on EDX
- รหัส: Silicon Valley และ The Remaking of America โดย Margaret O'Mara
หวังว่าสิ่งนี้จะเป็นประโยชน์ต่อผู้อ่านทุกคนเท่าที่มันเป็นประโยชน์สำหรับฉันเช่นกัน โปรดทราบว่าเวลาโดยประมาณทั้งหมดที่จะจบหลักสูตรเหล่านี้ขึ้นอยู่กับการทำงานเต็มเวลาในขณะที่เรียน