How to Learn C Roadmap

Teaching yourself C is difficult, but it is doable. All things considered, I recommend you take a course on this if you are able to. If not, teaching yourself is very valid.

First, why learn C? Check out this article to learn about why you learn C to learn how the computer works.

The Curriculum

To start, get a copy of the legendary K&R aka The C Programming Language. It’s a bit intimidating, so honestly, I love as well. It’s not perfect, but it really gets the job done as a short reference guide.

Begin working through it, either writing the code yourself or using example code from this solutions guide.

In parallel, do the h0mbre C Course. Work through as much of h0mbre’s material as you can until you get stuck, and then look up the correct chapter in K&R and work through using K&R as your reference.

Keep doing this until you have finished most of of the assignments in the h0mbre course.

This will take a while, but the secret is to use the two in parallel.

Don’t worry about learning advanced data structures or algorithms beyond what is in h0mbre’s assignments. Data structures and algorithms are for computer scientists, not hackers.

Once you are done with this curriculum, you will be ready for more advanced material along this path like reverse engineering and binary exploits.


You also can check out some of these projects to get a better understanding of some low level material and how things are implemented in the kernel of your operating system:

If you are interested in getting a more complete Computer Science education, work through the Open Source Society University curriculum. It is excellent.

Overall, getting good at C involves writing a ton of code, reading a ton of code, and generally exposing yourself to challenging projects on a regular basis.