C Programming Learning Guide
C Programming Learning Guide¶
Introduction¶
This folder contains materials for systematically learning C programming. From basic syntax to embedded systems, you can learn step-by-step through hands-on projects.
Target Audience: Programming beginners ~ intermediate learners
Learning Roadmap¶
[Basics] [Intermediate] [Advanced] [Embedded]
│ │ │ │
▼ ▼ ▼ ▼
Setup ──────▶ Dynamic Array ───▶ Snake Game ────▶ Embedded Basics
│ │ │ │
▼ ▼ ▼ ▼
Review ─────▶ Linked List ───▶ Mini Shell ───▶ Bit Operations
│ │ │ │
▼ ▼ ▼ ▼
Calculator ─▶ File Encrypt ──▶ Multithreading ▶ GPIO Control
│ │ │
▼ ▼ ▼
Guessing ───▶ Stack & Queue Serial Comm
│ │
▼ ▼
Address Book ▶ Hash Table
Prerequisites¶
- Basic computer usage skills
- Terminal/command-line experience (recommended)
- Text editor or IDE usage
File List¶
| Filename | Difficulty | Key Content |
|---|---|---|
| 01_Environment_Setup.md | ⭐ | Development environment setup, compiler installation |
| 02_C_Basics_Review.md | ⭐ | Variables, data types, operators, control structures, functions |
| 03_Project_Calculator.md | ⭐ | Functions, switch-case, scanf |
| 04_Project_Number_Guessing.md | ⭐ | Loops, random numbers, conditionals |
| 05_Project_Address_Book.md | ⭐⭐ | Structures, arrays, file I/O |
| 06_Project_Dynamic_Array.md | ⭐⭐ | malloc, realloc, free |
| 07_Project_Linked_List.md | ⭐⭐⭐ | Pointers, dynamic data structures |
| 08_Project_File_Encryption.md | ⭐⭐ | File processing, bit operations |
| 09_Project_Stack_Queue.md | ⭐⭐ | Data structures, LIFO/FIFO |
| 10_Project_Hash_Table.md | ⭐⭐⭐ | Hashing, collision handling |
| 11_Project_Snake_Game.md | ⭐⭐⭐ | Terminal control, game loop |
| 12_Project_Mini_Shell.md | ⭐⭐⭐⭐ | fork, exec, pipes |
| 13_Project_Multithreading.md | ⭐⭐⭐⭐ | pthread, synchronization |
| 14_Embedded_Basics.md | ⭐ | Arduino, GPIO basics |
| 15_Bit_Operations.md | ⭐⭐ | Bit masking, registers |
| 16_Project_GPIO_Control.md | ⭐⭐ | LED, button, debouncing |
| 17_Project_Serial_Communication.md | ⭐⭐ | UART, command parsing |
| 18_Debugging_Memory_Analysis.md | ⭐⭐⭐ | GDB, Valgrind, AddressSanitizer |
| 19_Advanced_Embedded_Protocols.md | ⭐⭐⭐ | PWM, I2C, SPI, ADC |
| 20_Advanced_Pointers.md | ⭐⭐⭐ | Pointer arithmetic, multi-level pointers, function pointers, dynamic memory |
| 21_Network_Programming.md | ⭐⭐⭐⭐ | TCP/UDP sockets, client-server, I/O multiplexing (select/poll) |
| 22_IPC_and_Signals.md | ⭐⭐⭐⭐ | Pipes, shared memory, message queues, signal handling |
Recommended Learning Path¶
Beginner (C Introduction)¶
- Environment Setup → Basics Review → Calculator → Number Guessing → Address Book
Intermediate (Data Structures & Pointers)¶
- Advanced Pointers → Dynamic Array → Linked List → File Encryption → Stack & Queue → Hash Table
Advanced (Systems Programming)¶
- Snake Game → Mini Shell → Multithreading → Network Programming → IPC & Signals
Embedded (Arduino)¶
- Embedded Basics → Bit Operations → GPIO Control → Serial Communication → Advanced Embedded Protocols
Debugging (Optional)¶
- Debugging and Memory Analysis (recommended after completing all courses)
Related Materials¶
- Docker Learning - Development environment containerization
- Git Learning - Version control