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.
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.
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.
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?
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
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
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.
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.
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.
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
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.
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.
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.
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.