C++ Crash Course
C++ is one of the most widely used languages for real-world software. In the hands of a knowledgeable programmer, C++ can produce small, efficient, and readable code that any programmer would be proud of.
Designed for intermediate to advanced programmers, C++ Crash Course cuts through the weeds to get you straight to the core of C++17, the most modern revision of the ISO standard. Part 1 covers the core of the C++ language, where you'll learn about everything from types and functions, to the object life cycle and expressions. Part 2 introduces you to the C++ Standard Library and Boost Libraries, where you'll learn about all of the high-quality, fully-featured facilities available to you. You'll cover special utility classes, data structures, and algorithms, and learn how to manipulate file systems and build high-performance programs that communicate over networks.
You'll learn all the major features of modern C++, including: Fundamental types, reference types, and user-defined ty ...
The Rust Programming Language
The Rust Programming Language is the official book on Rust: an open source systems programming language that helps you write faster, more reliable software. Rust offers control over low-level details (such as memory usage) in combination with high-level ergonomics, eliminating the hassle traditionally associated with low-level languages.
The authors of The Rust Programming Language, members of the Rust Core Team, share their knowledge and experience to show you how to take full advantage of Rust's features - from installation to creating robust and scalable programs. You'll begin with basics like creating functions, choosing data types, and binding variables and then move on to more advanced concepts, such as: Ownership and borrowing, lifetimes, and traits; Using Rust's memory safety guarantees to build fast, safe programs; Testing, error handling, and effective refactoring; Generics, smart pointers, multithreading, trait objects, and advanced pattern matching; Using Cargo, Rust's b ...
The Secret Life of Programs
Many coders are unfamiliar with the underlying technologies that make their programs run. But why should you care when your code appears to work? Because you want it to run well and not be riddled with hard-to-find bugs. You don't want to be in the news because your code had a security problem.
Lots of technical detail is available online but it's not organized or collected into a convenient place. In The Secret Life of Programs, veteran engineer Jonathan E. Steinhart explores - in depth - the foundational concepts that underlie the machine. Subjects like computer hardware, how software behaves on hardware, as well as how people have solved problems using technology over time.
You'll learn: How the real world is converted into a form that computers understand, like bits, logic, numbers, text, and colors; The fundamental building blocks that make up a computer including logic gates, adders, decoders, registers, and memory; Why designing programs to match computer hardware, especia ...
Your Linux Toolbox
Get the most out of your Linux system using tools you already have! These illustrated zines by Julia Evans will teach you how simple it can be to tame the powerful beast called Linux. And for the first time, her tips and tricks are together in one place.
Find out what your programs are doing and why. Understand how your system's parts talk to each other and what to do when they bicker. And see how a cat GIF travels from a distant server to your very own screen.
Includes 7 zines: So You Want to Be a Wizard; Bite-Size Linux! Networking, ACK! Let's Learn tcpdump! Linux Debugging Tools You'll Love; Spying on Your Programs with strace; Profiling & Tracing with perf. ...
Python Crash Course, 2nd Edition
This is the 2nd edition of the best selling Python book in the world. Python Crash Course, 2nd Edition is a straightforward introduction to the core of Python programming. Author Eric Matthes dispenses with the sort of tedious, unnecessary information that can get in the way of learning how to program, choosing instead to provide a foundation in general programming concepts, Python fundamentals, and problem solving. Three real-world projects in the second part of the book allow readers to apply their knowledge in useful ways.
Readers will learn how to create a simple video game, use data visualization techniques to make graphs and charts, and build and deploy an interactive web application. Python Crash Course, 2nd Edition teaches beginners the essentials of Python quickly so that they can build practical programs and develop powerful programming techniques. ...
Bayesian Statistics the Fun Way
Probability and statistics are increasingly important in a huge range of professions. But many people use data in ways they don't even understand, meaning they aren't getting the most from it. Bayesian Statistics the Fun Way will change that.
This book will give you a complete understanding of Bayesian statistics through simple explanations and un-boring examples. Find out the probability of UFOs landing in your garden, how likely Han Solo is to survive a flight through an asteroid belt, how to win an argument about conspiracy theories, and whether a burglary really was a burglary, to name a few examples.
By using these off-the-beaten-track examples, the author actually makes learning statistics fun. And you'll learn real skills, like how to: How to measure your own level of uncertainty in a conclusion or belief; Calculate Bayes theorem and understand what it's useful for; Find the posterior, likelihood, and prior to check the accuracy of your conclusions; Calculate distributions ...
Micro:bit for Mad Scientists
The BBC micro:bit is a tiny, inexpensive, and surprisingly powerful computer that you can use to build cool things and experiment with code. The 30 simple projects and experiments in this book will show you how to use the micro:bit to build a secret science lab - complete with robots, door alarms, lie detectors, and more - as you learn basic coding and electronics skills.
Here are just some of the projects you'll build: A light-controlled guitar you can play just by waving your hand; A working lie detector; A self-watering plant care system; A two-wheeled robot; A talking robotic head with moving eyes; A door alarm made with magnets.
Learn to code like a Mad Scientist! ...
A Beginner's Guide to 3D Modeling
A Beginner's Guide to 3D Modeling is a project-based, straightforward introduction to computer-aided design (CAD). You'll learn how to use Autodesk Fusion 360, the world's most powerful free CAD software, to model gadgets, 3D print your designs, and create realistic images just like an engineering professional - with no experience required!
Hands-on modeling projects and step-by-step instructions throughout the book introduce fundamental 3D modeling concepts. As you work through the projects, you'll master the basics of parametric modeling and learn how to create your own models, from simple shapes to multipart assemblies. Once you've mastered the basics, you'll learn more advanced modeling concepts like sweeps, lofts, surfaces, and rendering, before pulling it all together to create a robotic arm.
You'll learn how to: Design a moving robotic arm, a door hinge, a teapot, and a 20-sided die; Create professional technical drawings for manufacturing and patent applications; Model sp ...
Real-World Bug Hunting
Learn how people break websites and how you can, too. Real-World Bug Hunting is the premier field guide to finding software bugs. Whether you're a cyber-security beginner who wants to make the internet safer or a seasoned developer who wants to write secure code, ethical hacker Peter Yaworski will show you how it's done.
You'll learn about the most common types of bugs like cross-site scripting, insecure direct object references, and server-side request forgery. Using real-life case studies of rewarded vulnerabilities from applications like Twitter, Facebook, Google, and Uber, you'll see how hackers manage to invoke race conditions while transferring money, use URL parameter to cause users to like unintended tweets, and more.
Each chapter introduces a vulnerability type accompanied by a series of actual reported bug bounties. The book's collection of tales from the field will teach you how attackers trick users into giving away their sensitive information and how sites may reveal ...
Rootkits and Bootkits
Rootkits and Bootkits will teach you how to understand and counter sophisticated, advanced threats buried deep in a machine's boot process or UEFI firmware.
With the aid of numerous case studies and professional research from three of the world's leading security experts, you'll trace malware development over time from rootkits like TDL3 to present-day UEFI implants and examine how they infect a system, persist through reboot, and evade security software.
As you inspect and dissect real malware, you'll learn: How Windows boots - including 32-bit, 64-bit, and UEFI mode - and where to find vulnerabilities; The details of boot process security mechanisms like Secure Boot, including an overview of Virtual Secure Mode (VSM) and Device Guard; Reverse engineering and forensic techniques for analyzing real malware, including bootkits like Rovnix/Carberp, Gapz, TDL4, and the infamous rootkits TDL3 and Festi; How to perform static and dynamic analysis using emulation and tools like Bochs ...
Make Your Own Pixel Art
Hand anyone a pencil and paper and they can start drawing, but it's just as easy to draw digitally using a keyboard and mouse. With Make Your Own Pixel Art, pixel artist Jennifer Dawe and game designer Matthew Humphries walk you step-by-step through the available tools, pixel art techniques, the importance of shapes, colors, shading, and how to turn your art into animation. By the end of the book, you'll be creating art far beyond what's possible on paper!
Make Your Own Pixel Art will teach you how to: Create pixel art using the most popular art software and the common tools they provide; Draw with pixels, including coverage of sculpting, shading, texture, and color use; The basics of motion and how to animate your pixel art creations; Best practices for saving, sharing, sketching, and adding emotion to your art.
With a dash of creativity and the help of Make Your Own Pixel Art, your digital drawings can be brought to life, shared with the world, and form a basis for a career in ...