
Ask HN: How to learn C in 2016? - poushkar
I would love to teach myself some C and wonder if there is something better&#x2F;faster than good old Ritchie&#x27;s C book.
======
victorhugo31337
What's the rush?

[http://norvig.com/21-days.html](http://norvig.com/21-days.html)

Learning C is difficult because you need to know how the machine actually
works. Trust me, there are no shortcuts. The year can be 2036, learning C will
be the same.

With that said, these books are excellent:

[http://www.amazon.com/Programming-Language-Brian-W-
Kernighan...](http://www.amazon.com/Programming-Language-Brian-W-
Kernighan/dp/0131103628/ref=sr_1_1?ie=UTF8&qid=1464209573&sr=8-1&keywords=C+programming)

[http://www.amazon.com/Expert-Programming-Peter-van-
Linden/dp...](http://www.amazon.com/Expert-Programming-Peter-van-
Linden/dp/0131774298/ref=sr_1_1?ie=UTF8&qid=1464209579&sr=8-1&keywords=Deep+C+Secrets)

[http://www.amazon.com/Primer-Plus-6th-Developers-
Library/dp/...](http://www.amazon.com/Primer-Plus-6th-Developers-
Library/dp/0321928423/ref=sr_1_2?ie=UTF8&qid=1464209585&sr=8-2&keywords=C+Primer)

~~~
GregBuchholz
The Peter van Linden book: Expert C Programming is available on-line:

[http://www.madar.com.pl/demo/expert.pdf](http://www.madar.com.pl/demo/expert.pdf)

------
petr_tik
I am making my way through Zed Shaw’s [0] learn C the hard way [1]. I know
many people won't like Zed's disregard for K&R, but the exact level of initial
difficulty depends on your background. If C is your first compiled language
(it is for me), you should appreciate Zed’s smooth guidance through the world
of makefiles, valgrinds and necessary tooling to start learning C programming.

Another advantage of learn C the hard way is how data structure oriented it is
– the exercise involve implementing BST, linked lists and other data
structures, which gives you a great understanding of how basic data structures
are implemented and used on hardware (sort of) level. IMO, C needs an
accessible learning resource for beginners to have the high-level
understanding of necessary tools and basics of compilation and all expert
books like K&R are too intimidating. Zed is trying to occupy that niche, which
draws a lot of fire from 20+ years of experience C hackers, who learnt it by
building their own computer nand gates.

Hope this helps.

0 -
[http://c.learncodethehardway.org/book/](http://c.learncodethehardway.org/book/)
1 - [https://github.com/petr-tik/lcthw](https://github.com/petr-tik/lcthw)

~~~
poushkar
Thank you, it looks very interesting!

------
gravypod
The only way to learn a language is to start programming, fail, and fix your
mistakes. Compilers like GCC and clang will provide a lot of useful debugging
info.

You can also break your program into chunks, google for how to do each chunk,
and work it into the program.

Try and read up on the syntax of the language, and what different symbols
mean. (*, &, || and the like)

