C++ for dinosaurs: Guide for readable, maintainable, reusable and faster code


Book Description

This is a guide for creating readable, maintainable, reusable and faster code. No object oriented programming is involved. Out of all techniques which aim to improve your product's quality, readability has the highest return on effort. - Quality: Bugs are found mostly by reviewing other people's code. You can't review somebody else's code if you cannot read it. Bugs are not found by unit-tests, because unit-tests are created to capture errors that are known to exist. - Efficiency: Maintenance takes about 80% of developers' time. Therefore, spending some time in writing better code will save you more time during maintenance. - Performance: Unreadable code is difficult to reason about. Any opportunities for optimisation that may exist are often impossible to spot. The six techniques described are easy, therefore: - students can apply them - C programmers can follow it without changing programming paradigm - you can write idiomatic C++, instead of writing like C, Java, or Fortran.




Code Complete


Book Description

Widely considered one of the best practical guides to programming, Steve McConnell’s original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices—and hundreds of new code samples—illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking—and help you build the highest quality code. Discover the timeless techniques and strategies that help you: Design for minimum complexity and maximum creativity Reap the benefits of collaborative development Apply defensive programming techniques to reduce and flush out errors Exploit opportunities to refactor—or evolve—code, and do it safely Use construction practices that are right-weight for your project Debug problems quickly and effectively Resolve critical construction issues early and correctly Build quality into the beginning, middle, and end of your project




Programming


Book Description

An introduction to programming by the inventor of C++, Programming prepares students for programming in the real world. This book assumes that they aim eventually to write non-trivial programs, whether for work in software development or in some other technical field. It explains fundamental concepts and techniques in greater depth than traditional introductions. This approach gives students a solid foundation for writing useful, correct, maintainable, and efficient code. This book is an introduction to programming in general, including object-oriented programming and generic programming. It is also a solid introduction to the C++ programming language, one of the most widely used languages for real-world software. It presents modern C++ programming techniques from the start, introducing the C++ standard library to simplify programming tasks.




Learning Boost C++ Libraries


Book Description

Filled with dozens of working code examples that illustrate the use of over 40 popular Boost libraries, this book takes you on a tour of Boost, helping you to independently build the libraries from source and use them in your own code. The first half of the book focuses on basic programming interfaces including generic containers and algorithms, strings, resource management, exception safety, and a miscellany of programming utilities that make everyday programming chores easy. Following a short interlude that introduces template metaprogramming and functional programming, the later chapters are devoted to systems programming interfaces, focusing on directory handling, I/O, concurrency, and network programming




Teaching Tech Together


Book Description

Hundreds of grassroots groups have sprung up around the world to teach programming, web design, robotics, and other skills outside traditional classrooms. These groups exist so that people don't have to learn these things on their own, but ironically, their founders and instructors are often teaching themselves how to teach. There's a better way. This book presents evidence-based practices that will help you create and deliver lessons that work and build a teaching community around them. Topics include the differences between different kinds of learners, diagnosing and correcting misunderstandings, teaching as a performance art, what motivates and demotivates adult learners, how to be a good ally, fostering a healthy community, getting the word out, and building alliances with like-minded groups. The book includes over a hundred exercises that can be done individually or in groups, over 350 references, and a glossary to help you navigate educational jargon.




The UNIX-haters Handbook


Book Description

This book is for all people who are forced to use UNIX. It is a humorous book--pure entertainment--that maintains that UNIX is a computer virus with a user interface. It features letters from the thousands posted on the Internet's "UNIX-Haters" mailing list. It is not a computer handbook, tutorial, or reference. It is a self-help book that will let readers know they are not alone.




Embedded Systems


Book Description

Nowadays, embedded systems - computer systems that are embedded in various kinds of devices and play an important role of specific control functions, have permeated various scenes of industry. Therefore, we can hardly discuss our life or society from now onwards without referring to embedded systems. For wide-ranging embedded systems to continue their growth, a number of high-quality fundamental and applied researches are indispensable. This book contains 13 excellent chapters and addresses a wide spectrum of research topics of embedded systems, including parallel computing, communication architecture, application-specific systems, and embedded systems projects. Embedded systems can be made only after fusing miscellaneous technologies together. Various technologies condensed in this book as well as in the complementary book "Embedded Systems - Theory and Design Methodology", will be helpful to researchers and engineers around the world.




Rust in Action


Book Description

"This well-written book will help you make the most of what Rust has to offer." - Ramnivas Laddad, author of AspectJ in Action Rust in Action is a hands-on guide to systems programming with Rust. Written for inquisitive programmers, it presents real-world use cases that go far beyond syntax and structure. Summary Rust in Action introduces the Rust programming language by exploring numerous systems programming concepts and techniques. You'll be learning Rust by delving into how computers work under the hood. You'll find yourself playing with persistent storage, memory, networking and even tinkering with CPU instructions. The book takes you through using Rust to extend other applications and teaches you tricks to write blindingly fast code. You'll also discover parallel and concurrent programming. Filled to the brim with real-life use cases and scenarios, you'll go beyond the Rust syntax and see what Rust has to offer in real-world use cases. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Rust is the perfect language for systems programming. It delivers the low-level power of C along with rock-solid safety features that let you code fearlessly. Ideal for applications requiring concurrency, Rust programs are compact, readable, and blazingly fast. Best of all, Rust’s famously smart compiler helps you avoid even subtle coding errors. About the book Rust in Action is a hands-on guide to systems programming with Rust. Written for inquisitive programmers, it presents real-world use cases that go far beyond syntax and structure. You’ll explore Rust implementations for file manipulation, networking, and kernel-level programming and discover awesome techniques for parallelism and concurrency. Along the way, you’ll master Rust’s unique borrow checker model for memory management without a garbage collector. What's inside Elementary to advanced Rust programming Practical examples from systems programming Command-line, graphical and networked applications About the reader For intermediate programmers. No previous experience with Rust required. About the author Tim McNamara uses Rust to build data processing pipelines and generative art. He is an expert in natural language processing and data engineering. Table of Contents 1 Introducing Rust PART 1 RUST LANGUAGE DISTINCTIVES 2 Language foundations 3 Compound data types 4 Lifetimes, ownership, and borrowing PART 2 DEMYSTIFYING SYSTEMS PROGRAMMING 5 Data in depth 6 Memory 7 Files and storage 8 Networking 9 Time and timekeeping 10 Processes, threads, and containers 11 Kernel 12 Signals, interrupts, and exceptions




Code Complete, 2nd Edition


Book Description

Widely considered one of the best practical guides to programming, Steve McConnell s original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices-and hundreds of new code samples-illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking-and help you build the highest quality code.




Professional Mobile Application Development


Book Description

Create applications for all major smartphone platforms Creating applications for the myriad versions and varieties of mobile phone platforms on the market can be daunting to even the most seasoned developer. This authoritative guide is written in such as way that it takes your existing skills and experience and uses that background as a solid foundation for developing applications that cross over between platforms, thereby freeing you from having to learn a new platform from scratch each time. Concise explanations walk you through the tools and patterns for developing for all the mobile platforms while detailed steps walk you through setting up your development environment for each platform. Covers all the major options from native development to web application development Discusses major third party platform development acceleration tools, such as Appcelerator and PhoneGap Zeroes in on topics such as developing applications for Android, IOS, Windows Phone 7, and Blackberry Professional Mobile Cross Platform Development shows you how to best exploit the growth in mobile platforms, with a minimum of hassle.