Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions c-lang.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
## DnH C Mentorship

Goals:

- Learning C
- For intermediate learners, preferably with some exposure to programming
- Self-Driven with support & mentorship from community

---

Why C?:

- Simple (not easy), fast & portable language which is close to the computer
- Great for gaining an understanding of what makes system internals tick
- Popular in several fields of computing & programming:
- Competitive Programming
- Operating Systems, Drivers & other low-level software development
- Embedded & Edge Device Programming

---

Learning Process:

- Async Learning & Virtual Mentoring
- 5-2 Model
- We will start on a the weekend, say, on a Saturday evening with a face to face call for dissemination of study & reference material for the initial topic
- Learners will have a period of 5 days to go over this material and try out exercises
- The next Saturday evening, we will get together for Office Hours to focus on clarifying questions and doubts that the learners have
- During the Office Hours call, materials for the next topic will be shared
- repeat!
- Approx. duration for the entire programme would be 6-8 weeks

---

Expectations:

- Workload of typically 15-20 hrs/wk, but no more than 25hrs/wk.
- Feel free to log onto leverage online resources and Community Mentoring if you find yourself stuck or needing guidance.
- Able to independently go over the study material for the week, attempt to solve questions and problems presented there
- Able to Google for stuff and leverage StackOverflow for learning
- Engage with the community via Slack and help each other
- Utilize these “Office Hours” for any clarifying questions or additional explanations

---

Material:

- We will follow the [Modern C](https://modernc.gforge.inria.fr/) book by Jens Gustedt.
- We will be focusing on levels 0, 1 and 2 and briefly touching on level 3
- Additional Material & References
- [MIT CS50](https://cs50.harvard.edu/x/2020/weeks/1/) (Weeks 1 to 5 are about C)
- [Essential C](http://cslibrary.stanford.edu/101/EssentialC.pdf)
- [GNU C Programming Tutorial](http://crasseux.com/books/ctutorial/)

---

Weekly Breakdown:

| Date | Chapters |
| ------------- | ------------- |
| 14th Aug | 0.1, 0,2 |
| 21st Aug | 1.3, 1.4 |
| 28th Aug | 1.5, 1.6 |
| 4th Sep | 1.7, 1.8 |
| 11th Sep | 2.11,2.12,2.13 |
| 18th Sep | 2.14,3.15,3.16 |
| 25th Sep | 3.17,2.9,2.10 |

---

Additional Resources:

- Programming Environment Setup
- [Windows](https://www.cs.auckland.ac.nz/~paul/C/Windows/index.php)
- [MacOS](https://www.cs.auckland.ac.nz/~paul/C/Mac/index.php)
- [Linux](https://www.cyberciti.biz/faq/howto-compile-and-run-c-cplusplus-code-in-linux/)
- Alternatively, use the [Online environment](https://www.onlinegdb.com/) to test out code snippets & solve exercises

---

Community Mentoring:
- Feel free to log onto the [DnH slack](https://dev-s.slack.com) and ask questions in `#c-lang`
---