Skip to content
0xOualidPublic

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiniC

A collection of C fundamentals, exercises, and projects created while learning and improving my C programming skills.

This repository is a personal learning workspace where I practice C programming through small programs, exercises, and progressively more challenging projects.


Repository Structure

.
├── Fundamentals/
│   └── C fundamentals and learning material
│
├── Projects/
│   ├── 01-Easy/
│   │   ├── str_copy.c
│   │   ├── data_size.c
│   │   ├── int_swap.c
│   │   └── ...
│   │
│   ├── 02-Medium/
│   │   └── Intermediate-level C projects
│   │
│   └── 03-Hard/
│       └── More challenging C projects
│
├── .gitignore
├── LICENSE
└── README.md

Purpose

The goal of this repository is to document my progress while learning C and to provide a place to experiment with programming concepts.

Rather than only following tutorials, this repository focuses on writing actual C programs, solving problems, and building projects.

The projects and exercises become progressively more challenging as I improve my understanding of the language.


Technologies

The main language used throughout this repository is:

  • C
  • C Standard Library

Depending on the project, additional libraries or system APIs may be used.


Compiling and Running the Projects

1. Clone the repository

git clone https://github.com/olidbk/MiniC.git

2. Enter the repository

cd MiniC

3. Compile a C project

For example:

gcc Projects/Easy/calculator.c -o calculator

4. Run the program

On Linux/macOS:

./calculator

On Windows:

calculator.exe

You can also use another C compiler such as clang:

clang Projects/Easy/calculator.c -o calculator

Some projects may require additional compiler flags, libraries, or dependencies. If a project has specific requirements, they will be documented alongside the project.


Progress

This repository is a work in progress.

As I continue learning C, new exercises, experiments, and projects will be added.

Current Focus

  • Strengthening C fundamentals
  • Understanding variables, data types, and operators
  • Learning pointers and memory management
  • Working with arrays and strings
  • Understanding structs and enums
  • Learning file handling
  • Practicing functions and modular programming
  • Improving problem-solving skills
  • Understanding how C interacts with memory
  • Writing cleaner and more maintainable code
  • Gradually increasing project complexity

Disclaimer

Some projects in this repository are created specifically for learning and experimentation.

They are not necessarily designed to be production-ready applications. Some programs may intentionally demonstrate simple, inefficient, or experimental approaches in order to practice a particular C programming concept.

Some projects may also intentionally explore low-level concepts such as memory management, pointers, and system behavior. These programs should be used responsibly.


Contributions

This repository is primarily a personal learning project.

Suggestions, improvements, and constructive feedback are welcome.

If you find a bug or have an idea for improving a project, feel free to open an issue or submit a pull request.


License

This project is licensed under the MIT License.

See the LICENSE file for more information.


About This Repository

This repository represents my ongoing journey with C programming.

From simple exercises and basic programs to increasingly complex projects, the main goal is to keep learning, experimenting, understanding how things work under the hood, and improving one project at a time.

Releases

Packages

Contributors

Languages