Learn C the Hard Way
- Length: 384 pages
- Edition: 1
- Language: English
- Publisher: Addison-Wesley Professional
- Publication Date: 2015-09-12
- ISBN-10: 0321884922
- ISBN-13: 9780321884923
- Sales Rank: #221539 (See Top 100 Books)
Learn C the Hard Way: Practical Exercises on the Computational Subjects You Keep Avoiding (Like C) (Zed Shaw’s Hard Way Series)
You Will Learn C!
Zed Shaw has crafted the perfect course for the beginning C programmer eager to advance their skills in any language. Follow it and you will learn the many skills early and junior programmers need to 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 and read the exercise. 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 protects itself from malicious activity and defects.
Through practical projects you’ll apply what you learn to build confidence in your new skills. Shaw teaches the key skills you need to start writing excellent C software, including
- 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
- Breaking and hacking your own C code
It’ll Be Hard at First. But Soon, You’ll Just Get It–And That Will Feel Great!
This tutorial will reward you for every minute you put into it. Soon, you’ll know one of the world’s most powerful programming languages. You’ll be a C programmer.
Watch Zed, too! The accompanying DVD contains 5+ hours of passionate, powerful teaching: a complete C video course! If you purchase the digital edition, be sure to read “Where Are the Companion Content Files” at the end of the eBook to learn how to access the videos.
Table of Contents
Exercise 0 The Setup
Exercise 1 Dust Off That Compiler
Exercise 2 Using Makefiles to Build
Exercise 3 Formatted Printing
Exercise 4 Using a Debugger
Exercise 5 Memorizing C Operators
Exercise 6 Memorizing C Syntax
Exercise 7 Variables and Types
Exercise 8 If, Else-If, Else
Exercise 9 While-Loop and Boolean Expressions
Exercise 10 Switch Statements
Exercise 11 Arrays and Strings
Exercise 12 Sizes and Arrays
Exercise 13 For-Loops and Arrays of Strings
Exercise 14 Writing and Using Functions
Exercise 15 Pointers, Dreaded Pointers
Exercise 16 Structs and Pointers to Them
Exercise 17 Heap and Stack Memory Allocation
Exercise 18 Pointers to Functions
Exercise 19 Zed’s Awesome Debug Macros
Exercise 20 Advanced Debugging Techniques
Exercise 21 Advanced Data Types and Flow Control
Exercise 22 The Stack, Scope, and Globals
Exercise 23 Meet Duff’s Device
Exercise 24 Input, Output, Files
Exercise 25 Variable Argument Functions
Exercise 26 Project logfind
Exercise 27 Creative and Defensive Programming
Exercise 28 Intermediate Makefiles
Exercise 29 Libraries and Linking
Exercise 30 Automated Testing
Exercise 31 Common Undefined Behavior
Exercise 32 Double Linked Lists
Exercise 33 Linked List Algorithms
Exercise 34 Dynamic Array
Exercise 35 Sorting and Searching
Exercise 36 Safer Strings
Exercise 37 Hashmaps
Exercise 38 Hashmap Algorithms
Exercise 39 String Algorithms
Exercise 40 Binary Search Trees
Exercise 41 Project devpkg
Exercise 42 Stacks and Queues
Exercise 43 A Simple Statistics Engine
Exercise 44 Ring Buffer
Exercise 45 A Simple TCP/IP Client
Exercise 46 Ternary Search Tree
Exercise 47 A Fast URL Router
Exercise 48 A Simple Network Server
Exercise 49 A Statistics Server
Exercise 50 Routing the Statistics
Exercise 51 Storing the Statistics
Exercise 52 Hacking and Improving Your Server