_ _
| (_)
___| |_ _ __ __ _ ___
/ __| | | '_ \ / _` / __|
| (__| | | | | | (_| \__ \
\___|_|_|_| |_|\__, |___/
__/ |
|___/
clings is a C version of the popular program "rustlings" made for the Rust programming language.
The purpose of this program is to take you from a total C noob, to somewhere beyond beginner.
- gcc
- make
You can install everything need (on ubuntu) with:
sudo apt-get install build-essential
- Clone clings to your local machine
- Open clings in your favorite text editor
- Open a terminal session
- Split your screen so you can view them side by side
- Compile and start clings
make
./clings
- Start at exercise_01 and continue from there
The best way to contribute is by helping me create new exercises. I have created an issue for each exercise that needs to be created. The issues follow the flow of "The C Programming Language" book.
To get started, find an exercise you want to work on and create a PR for it. Then refer to The C Programming Language for the specific chapter references in the issue title.
- Create a new directory for the exercise based on the name provided in the issue.
- Create a readme with an explanation for the user. This should teach them what they need to know without giving the answer.
- Create 1 or more ".c" exercise files. The file(s) should either fail to compile, or run, or both.
- The exercise files should be interactive, they should lead the user to learning the things they need to learn.
- If multiple exercises are needed to have then build up knowledge, then this is fine.
Feel free to ask questions if you need more details.
- README.md file is required
- N number of ".c" exercises can be included, the program will work through them dynamically
- At the top of any exercise, provide vague explanation of the objective of the exercise without giving the answer
- Rustlings has the concept of asking for a hint, will eventually look to integrate this
I did this as a project to help me learn C. The source code is far from perfect. I would gladly accept any code reviews and will work to fix any issues that are submitted.