Å·±¦ÓéÀÖ

Jump to ratings and reviews
Rate this book

Head First Series

Head First C: A Brain-Friendly Guide

Rate this book
Ever wished you could learn C from a book? Head First C provides a complete learning experience for C and structured imperative programming. With a unique method that goes beyond syntax and how-to manuals, this guide not only teaches you the language, it helps you understand how to be a great programmer. You'll learn key areas such as language basics, pointers and pointer arithmetic, and dynamic memory management. Advanced topics include multi-threading and network programming—topics typically covered on a college-level course.

This book also features labs: in-depth projects intended to stretch your abilities, test your new skills, and build confidence. Head First C mimics the style of college-level C courses, making it ideal as an accessible textbook for students.

We think your time is too valuable to waste struggling with new concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First C uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep.

629 pages, Paperback

First published December 22, 2011

124 people are currently reading
410 people want to read

About the author

David Griffiths

3Ìýbooks1Ìýfollower
David Griffiths began programming at age 12, when he saw a documentary on the work of Seymour Papert. At age 15, he wrote an implementation of Papert's computer language LOGO. After studying Pure Mathematics at University, he began writing code for computers and magazine articles for humans. He's worked as an agile coach, a developer, and a garage attendant, but not in that order. He can write code in over 10 languages and prose in just one, and when not writing, coding, or coaching, he spends much of his spare time travelling with his lovely wife and co-author Dawn.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
109 (43%)
4 stars
103 (41%)
3 stars
31 (12%)
2 stars
6 (2%)
1 star
2 (<1%)
Displaying 1 - 27 of 27 reviews
Profile Image for Felix.
345 reviews360 followers
August 4, 2022
I was a big fan of this book in the beginning. If the humour clicks with you, it is kinda funny, and the explanations in general were pretty good. Occasionally I found myself checking Tutorialspoint to clarify something, but for the most part the explanations in this book are more than sufficient. The best thing about this books is definitely the number of exercises and how frequently they occur. My biggest issue with other C books that I've read has been a lack of practice material. This isn't a problem here. This book has quizzes, short exercises and a few in-depth projects. You can do as many or as few of them as you like.

The interesting thing is that the focus in this book is very much on developing command line tools. I guess this is one of the more likely use-cases for C, but the applicability of this approach will depend a lot on the reader. There isn't a whole lot in here about data structures or algorithms. The theoretical side seems to be kept to a minimum. Almost everything is tied to hypothetical use-cases - which is fine, except for the fact that I'm not sure that many of these use-cases would actually employ C in the real world in 2022. They're mostly just showing how you might want to use C to solve small data processing tasks like passing messages from one place to another or converting units from imperial to metric measures. These tasks are often less trivial that they sound (one of the message passing tasks towards the end of the book involves piping data from an RSS feed), but it still feels a little strange to me to use C to perform these tasks. You could complete most of these tasks with a single line of code in most other languages.

The reader's mileage may vary. This book certainly taught me a lot of things that I didn't already know. It also teaches a lot about how to use gcc correctly rather than being dependent on third party tools. I mostly hadn't encountered that stuff in other books on C, and I'm now more confident handling C-related tasks at the command line. I've certainly learned a lot of stuff about C, so I can't complain on that front, but I definitely need to move on to another book to learn many of the other interesting things that weren't covered here.
Profile Image for Yitzchak.
18 reviews4 followers
July 13, 2012
This was a really good C book. The other ones I looked at were overly dry. At first glance this book looked too casual and chaotic, but I found it was an entertaining as well as informative walk through beginning C.

The only drawback, and it was major, was that the labs were much more advanced than the routine programming examples and exercises in the book; I felt like I needed something in between. Also, the labs assumed too much; the first required an Arduino machine to connect to, the second required a webcam that could talk to your C implementation, and the third assumed you're coding on a graphics-enabled machine. I'm working on a Linux server virtual machine, so I would have liked a more text-friendly lab.

Now on to one of the more dry but thorough books. K&R anyone?
Profile Image for Liz.
115 reviews13 followers
January 11, 2017
Review to come.
Profile Image for Josh Kisb.
1 review1 follower
December 18, 2016
This book is excellent for those wanting to gain better grasp of programming concepts using C language.
It covers a wide range of different topics in a fun and easy to understand way. I cannot remember the last time i had fun reading and learning

Some people do not like the jokes and fun because they are oh so serious they want to read a manual and they are able to remember all of it but if you are a normal human being who enjoys a little humor and having fun while learning then this is the book for you.
I still remember what i learnt 2 years after reading it because it is just that effective in helping people understand
1 review
January 18, 2019
Currently 407 pages in, at the part where they explain the linker process and honestly it's just a mess to understand what the hell they are talking about, the problem I have currently with it, is that they explain too little, say -l does this ,-i does that, and here you have a god damn exercise with no clues what so ever, and not much development about it. I just want to throw it out the window. Less jokes more explaining, want some jokes put them after you're certain we've understood it. But maybe I'm just dumb
Profile Image for RecursiveHaiku.
100 reviews2 followers
December 20, 2019
The bad: Very outdated biases and unfunny jokes.
The good: Everything else. As someone who had some very basic programming understanding at the time of reading, this book helped me understand the basics of C (and to some extent, of every C-style language).
It covers a broad range of topics, all the way from the very basics, to some dabbing into multi-processing and networking.
Profile Image for Jordan Hoover.
111 reviews8 followers
February 28, 2021
A C book that isnt just the minutiae of the language design, but actually tells you what you can do with it? Color me impressed.

The only drawback is, like others have mentioned, the labs seemed completely undoable without a significant amount of outside work.
Profile Image for Bad.
5 reviews
March 2, 2021
THIS BOOK IS NOT FOR BEGINNERS!

Well, we already know that. In the beginning the book told us that not to read it if one don't have knowledge over at least one another programming language.

I wanted to read this book as a beginner but this demotivated me and I moved this in my reading list. I learned C programming from various other sources. The book told me to learn one programming language. I thought why not learn C and then read it. LOL. But then again, at first it was okay but as I was reading through the book, each concept was getting harder to grasp. It was pretty hard for me to continue but I tried to continue anyway. They din explain things clearly. Introduced some concept and then directly into code approach seemed fine but they should've explained the concept more clearly. I found it real hard to understand even though I already knew C. I'm now literally questioning my knowledge, wtf -_-

The book tried a different approach with all the graphics and photos that was amazing but I couldn't understand things properly, so it doesn't matter actually.

Anyway, I found it real hard to grasp what the book was teaching. I'm now leaving this book after reading till chapter 9.

I think the book has some important and interesting things to offer. All the chapter looked interesting and appealing with so much information to offer. If only they explained briefly for dumb folks like me it would've been a awesome. I'll try to gather more knowledge about the concepts mentioned as they din explained at all.

I hope to give it another shot after gathering some more knowledge, learning some more stuff.

So, do not read this if you're just starting or you think you're an intermediate C programmer otherwise you're good to go. That's what I think.

369 reviews76 followers
September 12, 2021
5 stars in terms of a technical books.
Very well written. I think anyone with a moderate background in software should enjoy this book. Best introduction to C that I've read.

If you want to read an intro to C, this is the one I would recommend.

Like all tech books, it could use an update, especially the 3 labs. The main content is mostly current and I think all of the examples compiled for me without any significant complications.
4 reviews
Read
August 26, 2022
compare the way how clients and server exchange messages with a knock-knock joke! how brilliant!
Profile Image for Tae.
53 reviews13 followers
April 3, 2023
I’ll probably be using this book as a reference, I learned a lot. however the jokes and analogies make it longer than necessary. Or it could be the same length and deeper
Profile Image for Vicki.
531 reviews238 followers
June 7, 2024
I love this entire series and this is no exception
Profile Image for Chad.
273 reviews20 followers
January 28, 2015
I felt some conflict over how to rate this. The gimmicky BS, sprawling waste of my time and money in its conceptual repetitiveness, and ADHD-oriented antipedagogical style is worth a two-star rating at best, and some of the author's inherent biases might edge it down to being worth less than one star. The way it focuses on the pragmatic necessities of writing C programs for a variety of purposes, starting with the simple basics that make it easy to get started on writing small and useful utilities for one's own daily use, on the other hand, was a refreshing change of pace from the utter failure of every other C book I've encountered to do so. In fact, this book covered some of the material that every C programmer should learn, but pretty much no books ever teach.

I ended up giving it two stars, because no matter how nice it is to find a book that covers the topics this book covers, it's just not right to give a book so badly written and formatted an even marginally good rating. It's still worth reading for the information in it, once you get past the highly distracting whirlwind of nonsense and conga line of dancing pigs.

edit: I suppose it should not surprise me that, as of this edit, there are only three other readers who have bothered to give it a review, and one of them is a duplicate of another that is essentially a contentless one-liner. A book written for people with pathologically short attention spans and a need for faddish gimmicks to keep them interested would not, generally, seem like the kind of thing to elicit thoughtful reviews even from those who liked it.
5 reviews3 followers
August 29, 2016
I read this book preparing for a little assignment for a course that gave a minimal intro to C programming and it served it's purpose really well.

I actually liked the little jokes in and around the text and together with the layout of the book, it was fun to turn to the next page.

If you want an intro to C without having to read through paper-like scripts of technical writing, I recommend you start with this book an move on to more advanced reading after.
Profile Image for Mik Vargas.
62 reviews
May 26, 2016
This book is a really good starting point for C. I have learnt a bunch of things, and I strongly recommend to read it to someone who is interested in learning C. I was taking the course Practical Programming in C offered for free at the MIT Open Courseware which was really useful to improve the knowledge.
Profile Image for Bonface M. K..
63 reviews19 followers
May 5, 2017
The main goal of this book was to present C in a way that's easy to comprehend. I felt that they achieved that with me. Read the full review here:
13 reviews5 followers
October 6, 2014
A book with concepts,lot of funny images :),interesting ideas,OUT-OF-BOX approach to write content.GOOD for people who want to learn C PROGRAMMING.
Profile Image for Luke.
150 reviews18 followers
February 16, 2015
Excellent introduction to C with exercises of varying levels of difficulty. My next step will be delving into the Linux kernel.
Profile Image for Wafa.
92 reviews21 followers
March 21, 2016
I'm using this book as my extra exercises in understanding C, it is really a great book for beginners.
1 review
Read
November 22, 2016
i like this book, very very.:V
This entire review has been hidden because of spoilers.
1 review4 followers
December 3, 2012
Best and Must read book for C. Very useful in case we already have basic exposure to C programming.
Profile Image for Maxim ChetruÅŸca.
32 reviews20 followers
August 10, 2014
The topics covered in this book are great but the explanations presented are not always the best.
5 reviews
December 22, 2015
Can be lengthy at times, but their introduction to pointers and pointer arithmetic is great.
4 reviews
June 6, 2018
This was a really good C book. before it i thought i know C, but i found i know nothing about it.
in this book from chapter 2 start talking about memory and pointer and use it all over the book,
start covering pointer to function , variadic function, many make and linker command , how to create system process and how to handle it and using signal handler, dividing you code down to libraries and it cover static and dynamic one,enum and struct, sockets and networking, threads and how to protect shared variable by MUTEX, also give hint about GDB,GPROf,GCOV.
all of this in comedic way and alot of funny images,
This is the first “technical� book that made me laugh.
Displaying 1 - 27 of 27 reviews

Can't find what you're looking for?

Get help and learn more about the design.