https://github.com/asem-hamid/learn-c
This repository is designed to help beginners learn C programming through code examples, projects, and detailed explanations.
https://github.com/asem-hamid/learn-c
beginner-friendly c
Last synced: 11 months ago
JSON representation
This repository is designed to help beginners learn C programming through code examples, projects, and detailed explanations.
- Host: GitHub
- URL: https://github.com/asem-hamid/learn-c
- Owner: asem-hamid
- License: mit
- Created: 2024-05-19T09:10:11.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-27T14:01:02.000Z (about 1 year ago)
- Last Synced: 2025-05-21T21:40:26.397Z (about 1 year ago)
- Topics: beginner-friendly, c
- Language: C
- Homepage:
- Size: 303 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Learn C

Welcome to the Learn C repository! This repository is designed to help beginners learn
C programming through code examples, projects, and detailed explanations.
Additionally, contributions from the community are highly encouraged to enhance and expand the content.
## Table of Contents
- [Introduction](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L19)
- [Features](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L31)
- [Getting Started](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L39)
- [Usage](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L64)
- [Chapter List](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L71)
- [Contributing](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L100)
## Introduction
This repository contains a collection of C programming tutorials, examples, and projects.
It is designed to be a comprehensive resource for anyone looking to
learn C from scratch or to deepen their understanding of the language.
Hi, I'm [Asem Hamid](https://www.linkedin.com/in/asemhamid/), the creator of this repository.
My goal is to share my learning journey in C programming with the community in a way
that is easy to understand and beneficial to learners of all levels.
I hope you find this repository helpful, and I look forward to seeing your contributions to improve it.
## Features
- **Beginner-Friendly:** Simple and easy-to-follow code examples.
- **Comprehensive Coverage:** Topics ranging from basic syntax to advanced concepts.
- **Interactive Projects:** Hands-on projects like a Snake-Ladder Game to reinforce learning.
- **Community Contributions:** Open for contributions to continuously improve and expand the content.
## Getting Started
To get started with the code and content in this repository, follow these steps:
1. **Install and set up prerequisites :** [vs-code](https://github.com/asem-hamid/learn-c/blob/main/content/00-prerequisites/vs-code.md) , [c compiler](https://github.com/asem-hamid/learn-c/blob/main/content/00-prerequisites/compiler.md) , [git](https://github.com/asem-hamid/learn-c/blob/main/content/00-prerequisites/git.md)
2. **Clone the Repository:**
```sh
git clone https://github.com/asem-hamid/learn-c.git
cd learn-c
cd content
```
3. **Explore the Code:** Browse through the folders and files to find tutorials, examples, and projects.
4. **Run the Code:** Compile and run the examples using a C compiler
```sh
gcc filename.c -o filename
./filename
```
## Usage
- **Compile and Run Examples:** Navigate to the desired folder and compile the code using a C compiler.
- **Modify and Experiment:** Feel free to modify the code to see how changes affect the output.
- **Learn and Understand:** Read the comments and documentation within the code to understand each concept.
## Chapter List
### Basics
- [01-basic](https://github.com/asem-hamid/learn-c/tree/main/content/01-basic:) Introduction to basic concepts, syntax, and structure of C programs.
- [02-operators:](https://github.com/asem-hamid/learn-c/tree/main/content/02-operators) Detailed explanations and examples of different operators in C.
- [03-conditional:](https://github.com/asem-hamid/learn-c/tree/main/content/03-conditional) Control flow statements like if-else and switch-case.
- [04-loop:](https://github.com/asem-hamid/learn-c/tree/main/content/04-loop) Looping constructs including for, while, and do-while loops.
- [05-function:](https://github.com/asem-hamid/learn-c/tree/main/content/05-function) Functions, their declarations, definitions, and usage.
### Intermediate
- [06-recursion:](https://github.com/asem-hamid/learn-c/tree/main/content/06-recursion) Recursive functions and their applications.
- [07-array:](https://github.com/asem-hamid/learn-c/tree/main/content/07-array) Arrays, both single-dimensional and multi-dimensional.
- [08-pointer:](https://github.com/asem-hamid/learn-c/tree/main/content/08-pointer) Pointers, pointer arithmetic, and pointers to arrays and functions.
- [09-string:](https://github.com/asem-hamid/learn-c/tree/main/content/09-string) String operations and functions.
- [10-structures:](https://github.com/asem-hamid/learn-c/tree/main/content/10-structures) User-defined data types using structures.
### Advanced
- [11-unions:](https://github.com/asem-hamid/learn-c/tree/main/content/11-unions) Unions and their usage.
- [12-DMA:](https://github.com/asem-hamid/learn-c/tree/main/content/12-DMA) Dynamic Memory Allocation using malloc, calloc, realloc, and free.
- [13-file-handling:](https://github.com/asem-hamid/learn-c/tree/main/content/13-file-handling) File input and output operations.
- [extra:](https://github.com/asem-hamid/learn-c/tree/main/content/extra) Additional topics and advanced concepts.
### Projects :
- [Snake and Ladder Game](https://github.com/asem-hamid/learn-c/blob/main/projects/snake-and-ladder.md)
## Contributing
For detailed guidelines, check the [CONTRIBUTING.md](https://github.com/asem-hamid/learn-c/blob/main/CONTRIBUTING.md) .
## License
This project is licensed under the MIT License. See the [LICENSE](https://github.com/asem-hamid/learn-c/blob/main/LICENSE) file for details.