Skip to content

Repository that contains folders about c programing

Notifications You must be signed in to change notification settings

Kiri23/LearningC

Repository files navigation

Learning C Programming

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.

Learning Path

  1. C Syntax Fundamentals

    • Variables and data types (int, string, array)
    • Pointers
    • Control structures
  2. File I/O

    • Reading and writing files
    • Bit manipulation in files
  3. 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:

These resources provide a structured approach to learning advanced C programming concepts and system-level development.

Key Projects

1. Database in File

View Project

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.

2. Web Server (In Progress)

view project

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

3. Assembly Programming (Upcoming)

Following the Low Level Academy curriculum to dive into assembly language programming.

Sparked Interests

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

Future Goals

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

For Potential Collaborators and Recruiters

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.

About

Repository that contains folders about c programing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published