Best C Programming Language Books
C is a general-purpose programming language that is extremely popular, simple, and flexible. It is machine-independent, structured programming language which is used extensively in various applications
1. C Programming Language, 2nd Edition
Author: by Brian W. Kernighan
Published at: Pearson; 2nd edition (March 22, 1988)
The authors present the complete guide to ANSI standard C language programming. Written by the developers of C, this new version helps readers keep up with the finalized ANSI standard for C while showing how to take advantage of C’s rich set of operators, economy of expression, improved control flow, and data structures.
The 2/E has been completely rewritten with additional examples and problem sets to clarify the implementation of difficult language constructs. For years, C programmers have let K&R guide them to building well-structured and efficient programs. Now this same help is available to those working with ANSI compilers.
Includes detailed coverage of the C language plus the official C language reference manual for at-a-glance help with syntax notation, declarations, ANSI changes, scope rules, and the list goes on and on.
2. Make: Electronics: Learning Through Discovery
Author: by Charles Platt
Published at: Make Community, LLC; 2nd edition (September 22, 2015)
“This is teaching at its best!” Hans Camenzind, inventor of the 555 timer (the world’s most successful integrated circuit).”A fabulous book: well written, well paced, fun, and informative. I also love the sense of humor. It’s very good at disarming the fear.And it’s gorgeous.
I’ll be recommending this book highly.” Tom Igoe, author of Physical Computing and Making Things Talk. A “magnificent and rewarding book…. Every step of this structured instruction is expertly illustrated with photos and crisp diagrams…. This really is the best way to learn.” Kevin Kelly, in Cool Tools.
The first edition of Make: Electronics established a new benchmark for introductory texts. This second edition enhances that learning experience. Using full color on every page, hundreds of photographs and diagrams convey concepts with unmatched clarity. Platt uses a hands on approach throughout.
You learn by building your own simple circuits. You begin by blowing a fuse or burning out an LED to demonstrate voltage, amperage, and electrical resistance. As it says on the cover, “Burn things out, mess things up that’s how you learn!”The hands on approach continues with basic switching circuits.
3. Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
Author: by Scott Meyers
Published at: O'Reilly Media, Incorporated; 1st edition (December 5, 2014)
Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e.G., auto type declarations, move semantics, lambda expressions, and concurrency support). The challenge is learning to use those features effectivelyso that your software is correct, efficient, maintainable, and portable.
That’s where this practical book comes in. It describes how to write truly great software using C++11 and C++14i.E.Using modern C++. Topics include: The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functions The relationships among std::move, std::forward, rvalue references, and universal references Techniques for writing clear, correct, effective lambda expressions How std::atomic differs from volatile, how each should be used, and how they relate to C++’s concurrency API How best practices in “old” C++ programming (i.E., C++98) require revision for software development in modern C++ Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers’ earlier books, but covers entirely new material.
4. Access 2019 Bible
Author: by Michael Alexander
Published at: Wiley; 1st edition (October 23, 2018)
Master database creation and management Access 2019 Bible is your, comprehensive reference to the world’s most popular database management tool. With clear guidance toward everything from the basics to the advanced, this go-to reference helps you take advantage of everything Access 2019 has to offer.
Whether you’re new to Access or getting started with Access 2019, you’ll find everything you need to know to create the database solution perfectly tailored to your needs, with expert guidance every step of the way. The companion website features all examples and databases used in the book, plus trial software and a special offer from Database Creations.
Start from the beginning for a complete tutorial, or dip in and grab what you need when you need it. Access enables database novices and programmers to store, organize, view, analyze, and share data, as well as build powerful, integrable, custom database solutions but databases can be complex, and difficult to navigate.
This book helps you harness the power of the database with a solid understanding of their purpose, construction, and application. Understand database objects and design systems objects Build forms, create tables, manipulate datasheets, and add data validation Use Visual Basic automation and XML Data Access Page design Exchange data with other Office applications, including Word, Excel, and more From database fundamentals and terminology to XML and Web services, this book has everything you need to maximize Access 2019 and build the database you need.
5. Programming Arduino: Getting Started with Sketches, Second Edition (Tab)
Author: by Simon Monk
Published at: McGraw-Hill Education TAB; 2nd edition (June 9, 2016)
Publisher’s Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality, authenticity, or access to any online entitlements included with the product. Program Arduino with ease! This thoroughly updated guide shows, step by step, how to quickly program all Arduino models.
Programming Arduino: Getting Started with Sketches, Second Edition, features easy to follow explanations, fun examples, and downloadable sample programs. Discover how to write basic sketches, use Arduino’s modified C language, store data, and interface with the Web. You will also get hands on coverage of C++, library writing, and programming Arduino for the Internet of Things.
No prior programming experience is required! Understand Arduino hardware fundamentals Set up the software, power up your Arduino, and start uploading sketches Learn C language basics Add functions, arrays, and strings to your sketches Program Arduino’s digital and analog inputs and outputs Use functions from the standard Arduino library Write sketches that can store data Interface with displays, including OLEDs and LCDs Connect to the Internet and configure Arduino as a Web server Develop interesting programs for the Internet of Things Write your own Arduino libraries and use object oriented programming methods
6. Effective C: An Introduction to Professional C Programming
Author: by Robert C. Seacord
Published at: No Starch Press (August 4, 2020)
A detailed introduction to the C programming language for experienced programmers. The world runs on code written in the C programming language, yet most schools begin the curriculum with Python or Java. Effective C bridges this gap and brings C into the modern era-covering the modern C17 Standard as well as potential C2x features.
With the aid of this instant classic, you’ll soon be writing professional, portable, and secure C programs to power robust systems and solve real-world problems.Robert C. Seacord introduces C and the C Standard Library while addressing best practices, common errors, and open debates in the C community.
Developed together with other C Standards committee experts, Effective C will teach you how to debug, test, and analyze C programs. You’ll benefit from Seacord’s concise explanations of C language constructs and behaviors, and from his 40 years of coding experience.
You’ll learn: How to identify and handle undefined behavior in a C program The range and representations of integers and floating-point values How dynamic memory allocation works and how to use nonstandard functions How to use character encodings and types How to perform I/O with terminals and filesystems using C Standard streams and POSIX file descriptors How to understand the C compiler’s translation phases and the role of the preprocessor How to test, debug, and analyze C programsEffective C will teach you how to write professional, secure, and portable C code that will stand the test of time and help strengthen the foundation of the computing world.
7. Learn C Programming: A beginner's guide to learning C programming the easy and disciplined way
Author: by Jeff Szuhay
Published at: Packt Publishing (June 26, 2020)
Get started with writing simple programs in C while learning the skills that will help you work with practically any programming language Key Features Learn essential C concepts such as variables, data structures, functions, loops, and pointers Get to grips with the core programming aspects that form the base of many modern programming languages Explore the expressiveness and versatility of the C language with the help of sample programs Book Description C is a powerful general-purpose programming language that is excellent for beginners to learn.
This book will introduce you to computer programming and software development using C. If you’re an experienced developer, this book will help you to become familiar with the C programming language. This C programming book takes you through basic programming concepts and shows you how to implement them in C.
Throughout the book, you’ll create and run programs that make use of one or more C concepts, such as program structure with functions, data types, and conditional statements. You’ll also see how to use looping and iteration, arrays, pointers, and strings.
8. C++ Concurrency in Action
Author: by Anthony Williams
Published at: Manning Publications; 2nd edition (February 10, 2019)
SummaryThis bestseller has been updated and revised to cover all the latest changes to C++ 14 and 17! C++ Concurrency in Action, Second Edition teaches you everything you need to write robust and elegant multithreaded applications in C++17. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the TechnologyYou choose C++ when your applications need to run fast. Well-designed concurrency makes them go even faster. C++ 17 delivers strong support for the multithreaded, multiprocessor programming required for fast graphic processing, machine learning, and other performance-sensitive tasks. This exceptional book unpacks the features, patterns, and best practices of production-grade C++ concurrency.
About the BookC++ Concurrency in Action, Second Edition is the definitive guide to writing elegant multithreaded applications in C++. Updated for C++ 17, it carefully addresses every aspect of concurrent development, from starting new threads to designing fully functional multithreaded algorithms and data structures.
9. Algorithmic Thinking: A Problem-Based Introduction
Author: by Daniel Zingaro
Published at: No Starch Press (December 15, 2020)
A hands-on, problem-based introduction to building algorithms and data structures to solve problems with a computer. Algorithmic Thinking will teach you how to solve challenging programming problems and design your own algorithms. Daniel Zingaro, a master teacher, draws his examples from world-class programming competitions like USACO and IOI.
You’ll learn how to classify problems, choose data structures, and identify appropriate algorithms. You’ll also learn how your choice of data structure, whether a hash table, heap, or tree, can affect runtime and speed up your algorithms; and how to adopt powerful strategies like recursion, dynamic programming, and binary search to solve challenging problems.
Line-by-line breakdowns of the code will teach you how to use algorithms and data structures like: The breadth-first search algorithm to find the optimal way to play a board game or find the best way to translate a book Dijkstra’s algorithm to determine how many mice can exit a maze or the number of fastest routes between two locations The union-find data structure to answer questions about connections in a social network or determine who are friends or enemies The heap data structure to determine the amount of money given away in a promotion The hash-table data structure to determine whether snowflakes are unique or identify compound words in a dictionaryNOTE: Each problem in this book is available on a programming-judge website.
10. C Programming Absolute Beginner's Guide
Author: by Greg Perry
Published at: Que Publishing; 3rd edition (August 7, 2013)
Updated for C11 Write powerful C programswithout becoming a technical expert! This book is the fastest way to get comfortable with C, one incredibly clear and easy step at a time. You’ll learn all the basics: how to organize programs, store and display data, work with variables, operators, I/O, pointers, arrays, functions, and much more.
C programming has neverbeen this simple! Who knew how simple C programming could be? This is today’s best beginner’s guide to writing C programsand to learning skills you can use with practically any language. Its simple, practical instructions will help you start creating useful, reliable C code, from games to mobile apps.
Plus, it’s fully updated for the new C11 standard and today’s free, open source tools! Here’s a small sample of what you’ll learn: Discover free C programming tools for Windows, OS X, or Linux Understand the parts of a C program and how they fit together Generate output and display it on the screen Interact with users and respond to their input Make the most of variables by using assignments and expressions Control programs by testing data and using logical operators Save time and effort by using loops and other techniques Build powerful data-entry routines with simple built-in functions Manipulate text with strings Store information, so it’s easy to access and use Manage your data with arrays, pointers, and data structures Use functions to make programs easier to write and maintain Let C handle all your program’s math for you Handle your computer’s memory as efficiently as possible Make programs more powerful with preprocessing directives
11. Concurrency in Go: Tools and Techniques for Developers
Author: by Katherine Cox-Buday
Published at: O'Reilly Media; 1st edition (August 22, 2017)
Concurrency can be notoriously difficult to get right, but fortunately, the Go open source programming language makes working with concurrency tractable and even easy. If you’re a developer familiar with Go, this practical book demonstrates best practices and patterns to help you incorporate concurrency into your systems.
Author Katherine Cox-Buday takes you step-by-step through the process. You’ll understand how Go chooses to model concurrency, what issues arise from this model, and how you can compose primitives within this model to solve problems. Learn the skills and tooling you need to confidently write and implement concurrent systems of any size.
Understand how Go addresses fundamental problems that make concurrency difficult to do correctlyLearn the key differences between concurrency and parallelismDig into the syntax of Go’s memory synchronization primitivesForm patterns with these primitives to write maintainable concurrent codeCompose patterns into a series of practices that enable you to write large, distributed systems that scaleLearn the sophistication behind goroutines and how Go’s runtime stitches everything together
12. C Programming: A Modern Approach, 2nd Edition
Author: by K. N. King
Published at: W. W. Norton & Company; 2nd edition (April 19, 2008)
The first edition of C Programming: A Modern Approach was popular with students and faculty alike because of its clarity and comprehensiveness as well as its trademark Q&A sections. Professor King’s spiral approach made it accessible to a broad range of readers, from beginners to more advanced students.
With adoptions at over 225 colleges, the first edition was one of the leading C textbooks of the last ten years. The second edition maintains all the book’s popular features and brings it up to date with coverage of the C99 standard.
The new edition also adds a significant number of exercises and longer programming projects, and includes extensive revisions and updates.
13. Linux Kernel Development
Author: by Robert Love
Published at: Addison-Wesley Professional; 3rd edition (June 22, 2010)
Linux Kernel Development details the design and implementation of the Linux kernel, presenting the content in a manner that is beneficial to those writing and developing kernel code, as well as to programmers seeking to better understand the operating system and become more efficient and productive in their coding.
The book details the major subsystems and features of the Linux kernel, including its design, implementation, and interfaces. It covers the Linux kernel with both a practical and theoretical eye, which should appeal to readers with a variety of interests and needs.
The author, a core kernel developer, shares valuable knowledge and experience on the 2.6 Linux kernel. Specific topics covered include process management, scheduling, time management and timers, the system call interface, memory addressing, memory management, the page cache, the VFS, kernel synchronization, portability concerns, and debugging techniques.
This book covers the most interesting features of the Linux 2. 6 kernel, including the CFS scheduler, preemptive kernel, block I/O layer, and I/O schedulers. The third edition of Linux Kernel Development includes new and updated material throughout the book: An all-new chapter on kernel data structures Details on interrupt handlers and bottom halves Extended coverage of virtual memory and memory allocation Tips on debugging the Linux kernel In-depth coverage of kernel synchronization and locking Useful insight into submitting kernel patches and working with the Linux kernel community
14. Introduction to Computing Systems: From Bits and Gates to C and Beyond
Author: by Yale N. Patt
Published at: McGraw-Hill Education; 2nd edition (August 5, 2003)
Introduction to Computing Systems: From bits & gates to C & beyond, now in its second edition, is designed to give students a better understanding of computing early in their college careers in order to give them a stronger foundation for later courses.
The book is in two parts: (a) the underlying structure of a computer, and (b) programming in a high level language and programming methodology. To understand the computer, the authors introduce the LC-3 and provide the LC-3 Simulator to give students hands-on access for testing what they learn.
To develop their understanding of programming and programming methodology, they use the C programming language. The book takes a “motivated” bottom-up approach, where the students first get exposed to the big picture and then start at the bottom and build their knowledge bottom-up.
Within each smaller unit, the same motivated bottom-up approach is followed. Every step of the way, students learn new things, building on what they already know. The authors feel that this approach encourages deeper understanding and downplays the need for memorizing.
15. Professional C++
Author: by Marc Gregoire
Published at: Wrox; 5th edition (February 24, 2021)
Improve your existing C++ competencies quickly and efficiently with this advanced volume Professional C++, 5th Edition raises the bar for advanced programming manuals. Complete with a comprehensive overview of the new capabilities of C++20, each feature of the newly updated programming language is explained in detail and with examples.
Case studies that include extensive, working code round out the already impressive educational material found within. Without a doubt, the new 5th Edition of Professional C++ is the leading resource for dedicated and knowledgeable professionals who desire to advance their skills and improve their abilities.
This book contains resources to help readers: Maximize the capabilities of C++ with effective design solutions Master little-known elements of the language and learn what to avoid Adopt new workarounds and testing/debugging best practices Utilize real-world program segments in your own applications Notoriously complex and unforgiving, C++ requires its practitioners to remain abreast of the latest developments and advancements.