阿博的书架
home

阿博的书架

Head First C
David Griffiths and Dawn Griffiths

Cover

Head First C

Summary

Series: Book 1 in the 编程/技术 series

Summary:

Ever wished there was an easier way to learn C from a book? Head First C is a complete learning experience that will show you how to create programs in the C language. This book helps you learn the C language with a unique method that goes beyond syntax and how-to manuals and 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, and with advanced topics such as multi-threading and network programming, Head First C can be used as an accessible text book for a college-level course.
Also, like a college course, the book features labs: projects intended to stretch your abilities, test your new skills, and build confidence. You'll go beyond the basics of the language and learn how to use the compiler, the make tool and the archiver to tackle real-world problems.
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.

Amazon.com Review

Author Interview with David & Dawn Griffiths

What made you write the book?

There are already great C books, but many of them are pretty hard for a new developer to understand. Many of the existing books were written several years ago when people were still focused on memory and chips and assembly language. That's not the case any more and we felt that the world was ready for a modern introduction to C.

Why is your book especially important now?

Because C is still hugely popular. Tiobe currently list C as the second most popular language after Java; langpop.com list it as the most popular language in the world. In the last few years, the number of platforms has increased dramatically. People don't just use desktop Windows machines any more. There are tablets, phones, and even custom Arduino devices. People are hacking Linux. Makers are building things to do who-knows-what and all of these platforms have one thing in common: they have applications written in C, or use languages that are based on C. The first thing that normally happens when a new platform is created is someone builds a C compiler for it. This book teaches people how to make the most of that.

What is the single most important thing readers will be able to do after reading your book?

Head First C takes you deeply into how memory and pointers work and how to avoid the pitfalls. That sounds like a small thing, and for most languages memory-use is not a big issue. But things like memory-pointers are a huge stumbling block for new C programmers. We teach the ways that array variables are like pointer variables, and the ways that they are very different. We take you on a journey through the stack and the heap. Show you how literals work. We even show you how to use advanced tools like valgrind to track down and fix memory problems in your code. In a fundamental way, if you understand how C uses memory, then you understand C.

Who is your intended audience?

Really anybody who's new to C, whether they're writing Linux code, or programming Arduino. But our primary audience is college students who are building their first C projects. C is popular in colleges because it's such a foundational subject. But if you're suddenly thrust into an introductory C course and you start to have problems with the code, where do you go?

What do you think is on the horizon for your readers?

C is important because it gives you a much more fundamental understanding of how the computer works. If you really understand C, you will be more equipped to learn other languages. If you know C, you can become a better Java programmer. If you learn C, you will have a better understanding of how Python works. Once you learn C, you have the foundations in place to, say, program games in C++, or write code in Objective C that will make the most of the hardware on the iPhone or iPad. Or to enter the world of open source development on Linux. C is an entry point to a whole other level of development.

About the Author

David Griffiths began programming at age 12, after being inspired by 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 and he is currently an agile coach with Exoftware in the UK, helping people to create simpler, more valuable software. He spends his free time traveling and time with his lovely wife, Dawn.

Dawn Griffiths started life as a mathematician at a top UK university where she was awarded a First-Class Honours degree in Mathematics. She went on to pursue a career in software development, and has over 15 years experience working in the IT industry. Dawn has written several books, including Head First C, Head First Statistics and Head First 2D Geometry.