C Tips from the New School
Throw out your old ideas of C, and relearn a programming language that's substantially outgrown its origins. With 21st Century C, you'll discover up-to-date techniques that are absent from every other C text available. C isn't just the foundation of modern programming languages, it is a modern language, more » ideal for writing efficient, state-of-the-art applications. Learn to dump old habits that made sense on mainframes, and pick up the tools you need to use this evolved and aggressively simple language. No matter what programming language you currently champion, you'll agree that C rocks. « less
Learn C Programming for the Arduino
Beginning C for Arduino is written for those who have no prior experience with microcontrollers or programming but would like to experiment and learn both. This book introduces you to the C programming language, reinforcing each programming structure with a simple demonstration of how you can use C to more » control the Arduino family of microcontrollers. Author Jack Purdum uses an engaging style to teach good programming techniques using examples that have been honed during his 25 years of university teaching. « less
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. more » 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.
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. « less
Parallel programming is rapidly becoming a "must-know" skill for developers. Yet, where to start? This teach-yourself tutorial is an ideal starting point for developers who already know Windows C and C++ and are eager to add parallelism to their code. With a focus on applying tools, techniques, and language more » extensions to implement parallelism, this essential resource teaches you how to write programs for multicore and leverage the power of multicore in your programs. Sharing hands-on case studies and real-world examples, the authors examine the challenges of each project and show you how to overcome them. « less
Want to start writing games for the iPhone and iPad, but you're new to iOS development? This book provides the starting point. No matter your experience level with iOS programming, this beginner's guide covers the technologies you need to know to get started creating fun iOS games. The coverage begins more » with the tools you'll need, including Xcode and Interface Builder, then gives you a tutorial in C and Objective-C, the languages you'll need to develop for iOS. Then you'll learn how to use the Cocoa Foundation framework and the Model-View-Controller architecture. Once you have the foundation in place, you'll move on to the libraries you need to add graphics, animation and sound, control user interaction, and even allow players to play head-to-head across a network. Learning how to create games should be nearly as much fun as playing them, so this book offers a complete, playable game in nearly every chapter. Each game is created in simple, easy-to-understand parts, building to a full game by chapter's end. Author Patrick Alessi explains all the code line-by-line so you'll always know exactly what you're building. « less
Principles and Experience
Peter Smith explains the core principles underlying highly efficient build systems, surveying both system features and usage scenarios. Next, he encapsulates years of experience in creating and maintaining diverse build systems - helping you make well-informed choices about tools and practices, and avoid more » common traps and pitfalls. Throughout, he shares a wide range of practical examples and lessons from multiple environments, including Java, C++, C, and C#. « less
Still chasing bugs and watching your code deteriorate? Think TDD is only for desktop or web apps? It's not: TDD is for you, the embedded C programmer. TDD helps you prevent defects and build software with a long useful life. This is the first book to teach the hows and whys of TDD for C programmers.
Learning a language involves a process wherein you learn to rely less and less on instruction and more increasingly on the aspects of the language you've mastered. Whether you're learning French, Java, or C, at some point you'll set aside the tutorial and attempt to converse on your own. It's not necessary more » to know every subtle facet of French in order to speak it well, especially if there's a good dictionary available. Likewise, C programmers don't need to memorize every detail of C in order to write good programs. What they need instead is a reliable, comprehensive reference that they can keep nearby. C in a Nutshell is that reference. « less
This book covers everything you need to know to write professional-level cryptographic code. This expanded, improved second edition includes about 100 pages of new material as well as numerous improvements to the original text.
The chapter about random number generation has been completely rewritten, more » and the latest cryptographic techniques are covered in detail. Furthermore, this book covers the recent improvements in primality testing. « less
Recipes for Cryptography, Authentication, Input Validation & More
Password sniffing, spoofing, buffer overflows, and denial of service: these are only a few of the attacks on today's computer systems and networks. At the root of this epidemic is poorly written, poorly tested, and insecure code that puts everyone at risk. Clearly, today's developers need help figuring more » out how to write code that attackers won't be able to exploit. But writing such code is surprisingly difficult. « less