This repository documents my journey in learning the C programming language. It contains various projects and exercises that showcase my progress and understanding of C concepts.
-
C Syntax Fundamentals
- Variables and data types (int, string, array)
- Pointers
- Control structures
-
File I/O
- Reading and writing files
- Bit manipulation in files
-
Advanced Topics
- Networking
- Threading
- Data Structures in C (trees, dictionaries, linked lists, queues)
- Static library creation
- Object-Oriented Programming principles in C
This learning path follows two main resources:
- Low Level Academy courses on File Manipulation, Networking, and Threading
- Web Server Development Playlist by Eric O Meehan on YouTube
These resources provide a structured approach to learning advanced C programming concepts and system-level development.
This file-based database system simulates SQLite functionality:
- Creation of new database files
- CRUD operations (Create, Read, Update, Delete)
- Command-line interface for database interactions
This project demonstrates file manipulation, data structures, and CLI design in C.
Building a web server from scratch, similar to Flask or Express.js:
- Implementing routing capabilities
- Template rendering
- Database integration
- Exploring networking concepts in C
- Implementing multi-threading for concurrent connections
Following the Low Level Academy curriculum to dive into assembly language programming.
This journey has ignited curiosity in various areas:
- Microcontrollers and embedded systems (e.g., STM32 Nucleo board)
- Bare metal programming
- Modern systems programming languages (Rust, Zig)
- Hardware hacking tools (Flipper Zero)
- Microchip architecture and design
My ultimate objective is to combine the custom web server with the database system to create a full-stack C application. This will involve:
- Defining routes (similar to Express.js or Flask)
- Rendering templates
- Implementing database search and storage functionalities
This project showcases my dedication to low-level programming and my ability to build complex systems from the ground up. If you're interested in collaborating or discussing opportunities related to C programming, systems development, or database design, please feel free to reach out.