DEV Community

Discussion on: When you want to learn C in 2019

Collapse
 
benjcal profile image
Benjamin Calderon

cool! I was afraid that LCTHW was going to be sort of high level-ish. I'll take a look!

I'm going through Build Your Own Lisp because I find myself in sorely need of learn more tooling (autotools) and stdlib.

Thanks for the comment :)

Collapse
 
jabawaka profile image
Jabawaka

"Learn C the hard way" is definitely a great book for modern C. Other than that, I find that like with almost any other programming learning challenge, the best thing to do is find something you want to build and do so in C!

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

I absolutely agree. However, as a self-trained developer in several languages, I have learned there is significant value to following books and courses. When you learn via a project, you only absorb those parts of the language you needed.

Case in point, although I first started using Python in 2011, it wasn't until 2018 that I learned several tools in Python, including decorators and list comprehensions. Why? I'd never needed them, or else, never realized I could use them in place of some approaches I was more used to. Despite nearly seven years of regular Python development, I knew I had some massive gaps in my knowledge, so I started going through a comprehensive Udemy course for the language, and I'm so glad I did!

This isn't to say that projects aren't important -- you won't ever truly master a language until you build something meaningful in it -- rather, one should pair project-based learning with a good quality book or self-paced course.

Or, if all else fails, go read the documentation cover to cover. (Some of us are demented enough that we can do that.)

Collapse
 
k2t0f12d profile image
Bryan Baldwin • Edited

John Calcote, Autotools: A Practitioner's Guide

Collapse
 
jmlgh profile image
Javi ML

Another excellent book is "Crafting Interpreters" by Bob Nystrom. The second part of the book (still in progress) is how to create an interpreter in C
craftinginterpreters.com/contents....