
You Will Learn C! Zed Shaw has perfected the world's best system for learning C. Follow it and you will succeed-just like the hundreds of thousands of programmers Zed has taught to date! You bring discipline, commitment, persistence, and experience with any programming language; the author supplies everything else. In Learn C the Hard Way, you'll learn C by working through 52 brilliantly crafted exercises. Watch Zed Shaw's teaching video. Type his code precisely. (No copying and pasting!) Fix your mistakes. Watch the programs run. As you do, you'll learn what good modern C programs look like, how to think more effectively about code, and how to find and fix mistakes far more efficiently. Most importantly, you'll master rigorous defensive programming techniques, so you can use any language to create software that defends itself from malicious activity and defects. Shaw teaches all the key skills you need to start writing excellent C software: Planning and attention to detail Setting up a C environment Basic syntax and idioms Compilation, make files, and linkers Operators, variables, and data types Program control Arrays and strings Functions, pointers, and structs Memory allocation I/O and files Libraries Data structures, including linked lists, sort, and search Stacks and queues Debugging, defensive coding, and automated testing Fixing stack overflows, illegal memory access, and more It'll Be Hard At First. But Soon, You'll Just Get It-And That Will Feel Great!
I worked through this and felt well-prepared to actually use C in anger when I had to.
Learn from widely used C code that is not a toy. Examples: sqlite.org, git-scm.org
If you don't understand something, look it up in the C standard doc.
Most of the time, you will want to program for speed, and C will let you. Learn and practice C profiling.
Also, you will need to learn defensive programming. The best source about this is "Learn C The Hard Way" by Zed Shaw: https://github.com/zedshaw/learn-c-the-hard-way-lectures