Practical C
A comprehensive guide to the C programming language
This book is a comprehensive guide on the C programming language, offering a blend of foundational knowledge and practical applications. Starting with a brief about the author, the book delves into the history, importance, and workings of the C compiler, differentiating between source files and header files. It guides readers through a comprehensive understanding of static and dynamic libraries and their interaction with CMake.
The second chapter dives deep into C's basic syntax, data types, operators, control structures, and key elements such as `size_t`, `typedef`, `sizeof`, and the `volatile` keyword. This section also provides a detailed explanation of error handling, structures, enumerations, functions, arrays, strings, and pointers.
The third chapter stands out due to its focus on practical C programming, including bit manipulation, list, set, and map data structures, socket programming, file processing, and concurrency. It covers graphic programming with OpenGL, audio files, parallel computing with OpenCL and CUDA, and the comparison between them. It explores data integrity, privacy with asymmetric encryption, and securing sensitive data. This section also features interfacing C with assembly language, Java, Python, shell commands, and specifics about memory location access.
The fourth chapter emphasizes safety-critical code development, presenting the Power of 10 rules. The fifth chapter elucidates code optimization techniques, debugging, testing with GDB, and the Check framework for unit testing, highlighting common pitfalls.
Finally, the book culminates with a chapter providing practical projects and exercises for self-assessment, including solutions and explanations. This book serves as an extensive resource for both beginners and advanced learners aiming to master C programming.
By "Practical C" on Amazon
Professional Java
From Basic to Advanced Industry Practices
This comprehensive guide to Java programming is an indispensable resource for anyone eager to master one of the most widely-used programming languages globally. Ideal for both novices and seasoned developers, the book thoroughly covers an extensive range of crucial Java topics. From the basics of syntax and data types to the complexities of object-oriented programming, multithreading, and network programming, it provides an in-depth exploration of every fundamental aspect of Java.
The book goes beyond just the core features like the Collections Framework, Streams, Lambdas, and the new Date-Time API. It also delves into powerful frameworks such as Spring Boot and Hibernate, essential for modern Java development. These frameworks enable the creation of efficient, scalable applications with minimal boilerplate code, proving indispensable in contemporary software engineering.
In addition to these, the guide encompasses essential tools for effective Java development, including Maven and Git, integral for project management and version control. These tools are discussed in detail, equipping readers with the knowledge necessary to confidently handle complex development environments.
Further, the book provides extensive coverage of Java's Database Connectivity (JDBC) API and dives into advanced topics such as Java Reflection, Regular Expressions, and the Java Native Interface (JNI). These sections offer valuable insights into the more sophisticated aspects of Java, ensuring a well-rounded understanding.
A significant emphasis is also placed on security aspects in Java programming, exploring key tools like Java Keytool and delving into cryptography and secure application development. This focus is vital in today's digital landscape, where secure coding practices are paramount.
Moreover, the book addresses an often-overlooked aspect of development: testing. It includes comprehensive discussions on testing frameworks like JUnit and PITest, emphasizing the importance of automated testing in maintaining and ensuring the quality of code. These sections cover everything from basic unit testing to advanced techniques like mutation testing, vital for any serious Java development.
Filled with practical applications, real-world examples, best practices, and effective tips, this book is designed to apply Java’s capabilities in various scenarios. Each chapter is meticulously crafted to enhance comprehension, making this book a vital tool for anyone aspiring to excel in Java programming.
Whether you're a student, a professional developer, or a hobbyist, this guide will serve as your comprehensive companion in the expansive realm of Java. It promises an engaging and informative journey into the world of advanced software development, arming you with the knowledge and skills needed to thrive in the field of Java programming.
By "Professional Java" on Amazon