Ask HN: Where to go to learn Modern C?
I am very comfortable in high level languages (C# for example), but would like to learn more C or C++.
Should I even bother with C? I'm planning to be a full stack web dev for at least the start of my career.
Where should I start? Preferably free resources would be nice, although I'm sure my library has most of the books that could be recommended.
Should I just kind of start on this list and go from there?
http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list
9 comments
[ 2.5 ms ] story [ 36.2 ms ] thread21st Century C - Ben Klemens http://www.amazon.com/dp/1449327141/?tag=stackoverfl08-20
You asked about "Modern C" and that caught my eye. Most instructional resources on C focus on facts about C without putting them into perspective as to which C era they belong to. "21st Century C" takes an explicitly modern perspective, is opinionated as to which aspects of C you can postpone or ignore, and provides updates for people (like me) who have mostly been familiar with K&R or C89. I found it a really fun read and would definitely recommend it as #1 for your question about "Modern C".
As to if you should learn C, I am super opinionated but I think C still has a lot of value, even for someone who doesn't describe themselves as "full-stack". The reasons are obvious: the kernel is written in C, libc is written in C, the webserver serving your web application is almost definitely written in C, but if it isn't, the compiler that compiles the language it is written in is almost definitely written in C (hats off to Golang for getting off their C compiler). Despite its flaws, I love C.
Next, I'd try "C the Hard Way" which is just as beginner, but is an attempt to make C programs safer (and expose you to some of the glossed over details)
Another idea I had was maybe to just program in Rust. I'm not sure :)
In any case -- it's a great book for beginners, freely available online, and you'll know in 5 minutes whether you like the style or not.
I recommend "C Programming: A Modern Approach" by K. N. King combined with "21st Century C" recommended already.