Giter Club home page Giter Club logo

clings's Introduction

      _ _                 
     | (_)                
  ___| |_ _ __   __ _ ___ 
 / __| | | '_ \ / _` / __|
| (__| | | | | | (_| \__ \
 \___|_|_|_| |_|\__, |___/
                 __/ |    
                |___/     

What is clings?

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.

demo

Dependencies

  1. gcc
  2. make

You can install everything need (on ubuntu) with:

sudo apt-get install build-essential

How do I use it?

  1. Clone clings to your local machine
  2. Open clings in your favorite text editor
  3. Open a terminal session
  4. Split your screen so you can view them side by side
  5. Compile and start clings
make
./clings
  1. Start at exercise_01 and continue from there

Contributions

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.

Exercise Creation Instructions:

  1. Create a new directory for the exercise based on the name provided in the issue.
  2. Create a readme with an explanation for the user. This should teach them what they need to know without giving the answer.
  3. 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.

Note: The objective is not to directly copy the examples or code in the book. We want to create exercises based on the concepts covered in the chapter. The book is serving as a rough guideline for the exercises. Once we have all the exercises from the book, all contributors will work together to figure out how to consolidate and come up with a final set of exercises as the book can be redundant in some spots.

Feel free to ask questions if you need more details.

Exercise Directory structure

  1. README.md file is required
  2. N number of ".c" exercises can be included, the program will work through them dynamically
  3. At the top of any exercise, provide vague explanation of the objective of the exercise without giving the answer

To do

  1. Rustlings has the concept of asking for a hint, will eventually look to integrate this

Note

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.

clings's People

Contributors

danwritecode avatar sleaper avatar 7etsuo avatar wilcockj avatar louis77 avatar

Stargazers

Andrew Pynch avatar Rafael-Benicio avatar Robert Wiley avatar Kaif Khan avatar  avatar gustavo avatar Cal Bach avatar Jakub Mańczak avatar  avatar  avatar Martin Navrátil avatar Philip Snyder avatar Dari0 avatar  avatar  avatar  avatar  avatar  avatar Mr. Rc avatar Constantin Câmpean avatar Charles Nguyen avatar  avatar Adewole Conde avatar  avatar  avatar Marina Cyborg avatar Maths Coder avatar Derek Belloni avatar  avatar Hugo Tárrega avatar Craig avatar  avatar  avatar

Watchers

 avatar  avatar

clings's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.