Coming from Python ? Start here.
- Understanding why C doesn't have
append()or automatic memory. - Read: Python Vs C Programing
The absolute building blocks
- Variables,
printf,scanf, simple math, ASCII. - Check out: BMI Calculator, Temperature Converter.
Teaching the computer to make decisions.
if-else,switchstatements, loops (for,while).- Check out: Leap Year Checker, Pattern Printing (Floyd's Triangle).
Algorithms involved in integer properties. Good for interview prep.
- Modulo operator, digit extraction, base conversion.
- Check out: Armstrong Numbers, Binary ↔ Decimal, Number to Words.
Handling lists of data
- Indexing, memory layout, bounds checking.
- Check out: Reversing arrays, Finding Min/Max.
Classic Computer Science algorithms you need to know.
- Efficient data retrieval and organization.
- Check out: Bubble Sort, Binary Search, Merge Sort.
The "scary" stuff (that isn't actually that scary if you pay attention).
- Memory addresses, dynamic allocation (
malloc/free), pointer arithmetic. - Check out: Custom
atoi/itoa, Sparse Matrix Compression.
Putting it all together into something usable.
- Tic-Tac-Toe: Full game logic with 2D arrays.
- Number Guessing Game: Random generation and loops.
I used a Makefile to keep things simple. No need to type gcc manually for every program.
-
Clone the Repo:
git clone https://github.com/TheTimelessRecall/C-Odyssey.git cd C-Odyssey -
Compile everything:
make
This creates a
bin/folder with all your executables inside. -
Run a program:
./bin/tic_tac_toe
(Or whatever program you want to run)
-
Clean up:
make clean
- CS50x (Harvard): The gold standard. It is free, difficult, and covers the computer science concepts
- Jacob Sorber: A computer science professor who explains exactly what happens in memory
- Fork it.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Format your code using the included
.clang-format. - Commit and Push.
- Open a Pull Request.

