ภาษาที่ขับเคลื่อนระบบปฏิบัติการ คอมไพเลอร์ และฮาร์ดแวร์ฝังตัว
C ไม่ใช่เพียงความอยากรู้ทางประวัติศาสตร์ — เป็นภาษาที่อยู่เบื้องใต้ Linux ฐานข้อมูล SQLite ตัวแปล CPython และ firmware ของไมโครคอนโทรลเลอร์เกือบทั้งหมดที่จัดส่งออกมาในปัจจุบัน การทำความเข้าใจ C หมายถึงการทำความเข้าใจว่าหน่วยความจำจริง ๆ ทำงานอย่างไร โปรเซสเซอร์ดำเนินการคำสั่งของคุณอย่างไร และทำไมภาษาระดับสูงทุกภาษาจึงทำการแลกเปลี่ยนแบบนั้น หลักสูตรนี้ครอบคลุม C ตั้งแต่ printf แรกของคุณจนถึงการเขียน memory allocator ตาราง hash linked list และตัวแปล
สิ่งที่คุณจะเรียนรู้
คุณจะเริ่มต้นด้วยตัวดำเนินการ control flow formatted I/O และ type casting จากนั้นเข้าสู่ standard library — math.h string.h ctype.h — และหัวข้อเฉพาะของ C เช่น enumerations command-line arguments storage classes และ preprocessor macros ส่วนระดับกลางครอบคลุม pointers และ dynamic memory management function pointers และ callbacks variadic functions และโปรเจกต์หลายไฟล์แบบมอดูลาร์ คุณจะนำไปใช้โครงสร้างข้อมูลหลักตั้งแต่เริ่มต้น: linked lists binary trees hash tables และ dynamic arrays คอร์สระดับสูงครอบคลุม multithreading และ concurrency socket programming inter-process communication memory debugging ด้วย Valgrind และ network programming ด้วย epoll
เส้นทางการเรียนรู้
สามสิบเก้าคอร์สขยายจาก A1 ถึง C1 คอร์ส A1 และ A2 สร้างไวยากรณ์ recursion และ standard library หนึ่งเกบคอร์ส B1 สร้างทักษะเชิงปฏิบัติ — file handling bit manipulation structures และ unions และ preprocessor สิบคอร์ส B2 ลึกขึ้นไป: dynamic memory sorting algorithms hash tables และสิ้นสุดด้วย C Building a Memory Allocator เจ็ดคอร์ส C1 ปิดหลักสูตรด้วยการทำงานระดับระบบ: Multithreading and Concurrency C Socket Programming C Memory Debugging with Valgrind C Writing a Simple Interpreter และ C Network Programming with epoll
วิธีการทำงาน
แต่ละคอร์สแบ่งออกเป็นบทเรียนสั้น ๆ ที่มีจุดประสงค์ชัดเจน ซึ่งคุณทำให้สำเร็จในตัวแก้ไขโค้ดที่อยู่ในตัวพร้อมข้อเสนอแนะแบบเรียลไทม์เกี่ยวกับผลลัพธ์ของคุณ ติวเตอร์ AI พร้อมใช้งานเมื่อใดก็ตามที่คุณติดขัดกับ segfault linker error หรือ off-by-one ในการคำนวณตัวชี้ ความคืบหน้าถูกติดตามต่อบทเรียนเพื่อให้คุณสามารถหยุดชั่วคราวและดำเนินการต่อในระหว่างเซสชันโดยไม่สูญเสียตำแหน่งของคุณ