Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/book/learning-c
https://github.com/book/learning-c
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/book/learning-c
- Owner: book
- Created: 2019-01-17T17:50:58.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-05-27T09:48:03.000Z (over 4 years ago)
- Last Synced: 2024-10-03T12:36:18.065Z (4 months ago)
- Language: C
- Size: 110 KB
- Stars: 3
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Learning C
Learn C by pairing (mostly remotely) with an experienced C programmer.
Stated long term goal: to become fluent and confident in C, in order to
be interested, willing, and able to hack the perl core.# Roadmap
A combination of pairing sessions, code reviews, home work, transmission.
## Pairing projects
* [Hello, World!](00-hello/) (0)
* Implement a [hashtable](01-hashtable/) from scratch (1)
* Turn the hashtable into a library (2)
* Implement a double-ended linked list with which you can "push, pop,
shift, and unshift" items.
* Write a library providing the hashtable and double-ended linked list
* Write a custom allocator
* Bind to a C library using XS## Homework projects (to review)
* Solve the [Advent of code](https://adventofcode.com/) [in C](AoC/)
* A list of [challenging projects](http://web.eecs.utk.edu/~azh/blog/challengingprojects.html)## Learning tools on the way
* [make](https://www.gnu.org/software/make/manual/make.html)
* [valgrind](http://valgrind.org/docs/manual/manual.html)
* [gcov](https://gcc.gnu.org/onlinedocs/gcc/Gcov.html)# Resources
## Books
* *[21st Century C](https://learning.oreilly.com/library/view/21st-century-c/9781491904428/)*, Ben Klemens
* *Obfuscated C and Other Mysteries*, Don Libes
* *[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sites/default/files/sicp/index.html)*, Harold Abelson and Gerald Jay Sussman
* *[How to Design Programs](https://htdp.org/)*, Matthias Felleisen, Robert Bruce Findler, Matthew Flatt and Shriram Krishnamurthi## Videos
* [Structure and Interpretation of Computer Programs Video lectures](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/)
## Others
* [Awesome C](https://github.com/kozross/awesome-c): a curated list of C good stuff.
* [Racket](http://www.racket-lang.org/)