Best of
Technical

2021

Learning Go: An Idiomatic Approach to Real-World Go Programming


Jon Bodner - 2021
    While there are plenty of tutorials available that teach Go's syntax to developers with experience in other programming languages, tutorials aren't enough. They don't teach Go's idioms, so developers end up recreating patterns that don't make sense in a Go context. This practical guide provides the essential background you need to write clear and idiomatic Go.No matter your level of experience, you'll learn how to think like a Go developer. Author Jon Bodner introduces the design patterns experienced Go developers have adopted and explores the rationale for using them. You'll also get a preview of Go's upcoming generics support and how it fits into the language.Learn how to write idiomatic code in Go and design a Go projectUnderstand the reasons for the design decisions in GoSet up a Go development environment for a solo developer or teamLearn how and when to use reflection, unsafe, and cgoDiscover how Go's features allow the language to run efficientlyKnow which Go features you should use sparingly or not at all

Understanding Distributed Systems: What every developer should know about large distributed applications


Roberto Vitillo - 2021
    It's not that there is a lack of information out there. You can find academic papers, engineering blogs, and even books on the subject. The problem is that the available information is spread out all over the place, and if you were to put it on a spectrum from theory to practice, you would find a lot of material at the two ends, but not much in the middle.That is why I decided to write a book to teach the fundamentals of distributed systems so that you don’t have to spend countless hours scratching your head to understand how everything fits together. This is the guide I wished existed when I first started out, and it's based on my experience building large distributed systems that scale to millions of requests per second and billions of devices.If you develop the back-end of web or mobile applications (or would like to!), this book is for you. When building distributed systems, you need to be familiar with the network stack, data consistency models, scalability and reliability patterns, and much more. Although you can build applications without knowing any of that, you will end up spending hours debugging and re-designing their architecture, learning lessons that you could have acquired in a much faster and less painful way.

Software Architecture: The Hard Parts: Modern Tradeoff Analysis for Distributed Architectures


Neal Ford - 2021
    These are the difficult problems architects face, what this book's authors call the hard parts. These topics have no best practices, forcing architects to understand various tradeoffs to succeed. This book discusses these hard parts by not only investigating what makes architecture so difficult, but also by providing proven ways to address these problems and make them easier.The book explores topics such as choosing an appropriate architecture, deciding on service granularity, managing workflows and orchestration, managing and decoupling contracts, managing distributed transactions, and optimizing operational characteristics such as scalability, elasticity, and performance. As practicing consultants, the authors focus on questions they commonly hear architects ask and provide techniques that enable them to discover the tradeoffs necessary to answer these questions.

Rust for Rustaceans


Jon Gjengset - 2021
    It covers everything you need to build and maintain larger code bases, write powerful and flexible applications and libraries, and confidently expand the scope and complexity of your projects.Author Jon Gjengset takes you deep into the Rust programming language, dissecting core topics like ownership, traits, concurrency, and unsafe code. You’ll explore key concepts like type layout and trait coherence, delve into the inner workings of concurrent programming and asynchrony with async/await, and take a tour of the world of no_std programming. Gjengset also provides expert guidance on API design, testing strategies, and error handling, and will help develop your understanding of foreign function interfaces, object safety, procedural macros, and much more.You'll Learn: How to design reliable, idiomatic, and ergonomic Rust programs based on best principles Effective use of declarative and procedural macros, and the difference between them How asynchrony works in Rust – all the way from the Pin and Waker types used in manual implementations of Futures, to how async/await saves you from thinking about most of those words What it means for code to be unsafe, and best practices for writing and interacting with unsafe functions and traits How to organize and configure more complex Rust projects so that they integrate nicely with the rest of the ecosystem How to write Rust code that can interoperate with non-Rust libraries and systems, or run in constrained and embedded environments Brimming with practical, pragmatic insights that you can immediately apply, Rust for Rustaceans helps you do more with Rust, while also teaching you its underlying mechanisms.

Kill It with Fire: Manage Aging Computer Systems (and Future Proof Modern Ones)


Marianne Bellotti - 2021
    Aging computer systems present complex technical challenges for organizations both large and small, and Kill It with Fire provides sound strategies for spearheading modernization efforts.Kill It with Fire examines aging computer systems, the evolution of technology over time, and how organizations can modernize, maintain, and future-proof their current systems.In playful and engaging prose, Marianne Bellotti uses real-world case studies to illustrate the technical challenges of modernizing complex legacy systems, as well as the organizational challenges of time-intensive maintenance efforts. The book explains how to evaluate existing architecture, create upgrade plans, and handle communication structures. Team exercises and historical analyses of complex computer systems make this a valuable resource for those in both older and newer companies, and will help readers restore or create systems built to evolve as time goes on.

Computer Science Unleashed: Harness the Power of Computational Systems


Wladston Ferreira Filho - 2021
    Designed for readers who don't care for academic formalities, it's a fast and easy guide. It teaches the foundations programmers and knowledge workers need to maximize their effectiveness. It explains how the Internet works from the ground up, how to analyse and derive knowledge from data, and how computers are able to predict the future with machine learning.

Becoming a Data Head: How to Think, Speak, and Understand Data Science, Statistics, and Machine Learning


Alex J. Gutman - 2021
    You'll become a more valuable employee and make your organization more successful.Thomas H. Davenport, Research Fellow, Author of Competing on Analytics, Big Data @ Work, and The AI AdvantageYou've heard the hype around data--now get the facts.In Becoming a Data Head: How to Think, Speak, and Understand Data Science, Statistics, and Machine Learning, award-winning data scientists Alex Gutman and Jordan Goldmeier pull back the curtain on data science and give you the language and tools necessary to talk and think critically about it.You'll learn how to:Think statistically and understand the role variation plays in your life and decision making Speak intelligently and ask the right questions about the statistics and results you encounter in the workplace Understand what's really going on with machine learning, text analytics, deep learning, and artificial intelligence Avoid common pitfalls when working with and interpreting data Becoming a Data Head is a complete guide for data science in the workplace: covering everything from the personalities you'll work with to the math behind the algorithms. The authors have spent years in data trenches and sought to create a fun, approachable, and eminently readable book. Anyone can become a Data Head--an active participant in data science, statistics, and machine learning. Whether you're a business professional, engineer, executive, or aspiring data scientist, this book is for you.

Staff Engineer: Leadership Beyond the Management Track


Will Larson - 2021
    At that career level, you’ll no longer be required to work towards the next promotion, and being promoted beyond it is exceptional rather than expected. At that point your career path will branch, and you have to decide between remaining at your current level, continuing down the path of technical excellence to become a Staff Engineer, or switching into engineering management. Of course, the specific titles vary by company, and you can replace “Senior Engineer” and “Staff Engineer” with whatever titles your company prefers. Over the past few years we’ve seen a flurry of books unlocking the engineering management career path, like Camille Fournier’s The Manager’s Path, Julie Zhuo’s The Making of a Manager, Lara Hogan’s Resilient Management and my own, An Elegant Puzzle. The management career isn’t an easy one, but increasingly there are maps available for navigating it. On the other hand, the transition into Staff Engineer, and its further evolutions like Principal and Distinguished Engineer, remains challenging and undocumented. What are the skills you need to develop to reach Staff Engineer? Are technical abilities alone sufficient to reach and succeed in that role? How do most folks reach this role? What is your manager’s role in helping you along the way? Will you enjoy being a Staff Engineer or you will toil for years to achieve a role that doesn’t suit you? "Staff Engineer: Leadership beyond the management track" is a pragmatic look at attaining and operating in these Staff-plus roles.

Harvard Business Review Project Management Handbook: How to Launch, Lead, and Sponsor Successful Projects (HBR Handbooks)


Antonio Nieto-Rodriguez - 2021
    

The Big Book of Small Python Projects


Al Sweigart - 2021
    The 100+ short programs in Big Book of Small Python Projects are designed to help beginning-to-intermediate programmers expand their knowledge of how to deploy Python creatively and effectively by offering coding examples that will help them to tackle their own coding challenges.The 100+ short, complete Python programs in this book are designed to help beginning-to-intermediate Python programmers broaden their skills by providing a diverse set of coding examples they can study, emulate, and draw inspiration from. The programs range from classic card and board games and mazes, to math and probability demos, and mad libs. The author includes the complete code for each program, as well as commentary and suggestions for how to modify and experiment with code.

Production Kubernetes: Building Successful Application Platforms


Josh Rosso - 2021
    In this practical book, four software engineers from VMware bring their shared experiences running Kubernetes in production and provide insight on key challenges and best practices.The brilliance of Kubernetes is how configurable and extensible the system is, from pluggable runtimes to storage integrations. For platform engineers, software developers, infosec, network engineers, storage engineers, and others, this book examines how the path to success with Kubernetes involves a variety of technology, pattern, and abstraction considerations.With this book, you will:Understand what the path to production looks like when using KubernetesExamine where gaps exist in your current Kubernetes strategyLearn Kubernetes's essential building blocks--and their trade-offsUnderstand what's involved in making Kubernetes a viable location for applicationsLearn better ways to navigate the cloud native landscape

C# 9.0 in a Nutshell: The Definitive Reference


Joseph Albahari - 2021
    C# is a language of unusual flexibility and breadth, but with its continual growth there's so much more to learn. In the tradition of O'Reilly's Nutshell guides, this thoroughly updated edition is simply the best one-volume reference to the C# language available today.Organized around concepts and use cases, C# 9.0 in a Nutshell provides intermediate and advanced programmers with a concise map of C# and .NET that also plumbs significant depths.Get up to speed on C#, from syntax and variables to advanced topics such as pointers, records, closures, and patternsDig deep into LINQ with three chapters dedicated to the topicExplore concurrency and asynchrony, advanced threading, and parallel programmingWork with .NET features, including regular expressions, networking, spans, reflection, and cryptography

Ace the Data Science Interview: 201 Real Interview Questions Asked By FAANG, Tech Startups, & Wall Street


Nick Singh - 2021
    

Design Patterns for Cloud Native Applications: Patterns in Practice Using Apis, Data, Events, and Streams


Kasun Indrasiri - 2021
    The real issue is how. With this practical guide, developers will learn about the most commonly used design patterns for building cloud native applications using APIs, data, events, and streams in both greenfield and brownfield development.You'll learn how to incrementally design, develop, and deploy large and effective cloud native applications that you can manage and maintain at scale with minimal cost, time, and effort. Authors Kasun Indrasiri and Sriskandarajah Suhothayan highlight use cases that effectively demonstrate the challenges you might encounter at each step.Learn the fundamentals of cloud native applicationsExplore key cloud native communication, connectivity, and composition patternsLearn decentralized data management techniquesUse event-driven architecture to build distributed and scalable cloud native applicationsExplore the most commonly used patterns for API management and consumptionExamine some of the tools and technologies you'll need for building cloud native systems

Python for Excel: A Modern Environment for Automation and Data Analysis


Felix Zumstein - 2021
    In fact, it's the top feature requested. What makes this combination so compelling? In this hands-on guide, Felix Zumstein--creator of xlwings, a popular open source package for automating Excel with Python--shows experienced Excel users how to integrate these two worlds efficiently.Excel has added quite a few new capabilities over the past couple of years, but its automation language, VBA, stopped evolving a long time ago. Many Excel power users have already adopted Python for daily automation tasks. This guide gets you started.Use Python without extensive programming knowledgeGet started with modern tools, including Jupyter notebooks and Visual Studio codeUse pandas to acquire, clean, and analyze data and replace typical Excel calculationsAutomate tedious tasks like consolidation of Excel workbooks and production of Excel reportsUse xlwings to build interactive Excel tools that use Python as a calculation engineConnect Excel to databases and CSV files and fetch data from the internet using Python codeUse Python as a single tool to replace VBA, Power Query, and Power Pivot

Strategic Microservices and Monoliths


Vaughn Vernon - 2021
    But that isn't always a safe assumption: in fact, in some cases, it can be disastrous, leading to architectures that serve nobody well. Strategic Microservices and Monoliths helps business decision-makers and technical team members collaborate to clearly understand their strategic problems, and identify their optimal architectural approaches, whether those turns out to be distributed microservices, well-modularized monoliths, or coarser-grade services partway between the two.Writing for executives and IT professionals alike, leading software architecture expert Vaughn Vernon and Tomasz Jaskula guide you through making balanced architecture compositional decisions based on need and purpose rather than popular opinion, so you can maximize business value and deliver systems that evolve more easily. Throughout, the authors provide realistic application examples, showing how to construct well-designed monoliths that are maintainable and extensible, and how to decompose massively tangled legacy systems into truly effective microservices.

The Switch: How the Telegraph, Telephone, and Radio Created the Computer


Chris McDonald - 2021
    

Code as Creative Medium: A Handbook for Computational Art and Design


Golan Levin - 2021
    It provides a collection of classic creative coding prompts and assignments, accompanied by annotated examples of both classic and contemporary projects, and more than 170 illustrations of creative work, and features a set of interviews with leading educators. Picking up where standard programming guides leave off, the authors highlight alternative programming pedagogies suitable for the art- and design-oriented classroom, including teaching approaches, resources, and community support structures.

The Programmer's Brain


Felienne Hermans - 2021
    This unique book teaches you concrete techniques rooted in cognitive science that will improve the way you learn and think about code.In The Programmer’s Brain: What every programmer needs to know about cognition you will learn:* Fast and effective ways to master new programming languages* Speed reading skills to quickly comprehend new code* Techniques to unravel the meaning of complex code* Ways to learn new syntax and keep it memorized* Writing code that is easy for others to read* Picking the right names for your variables* Making your codebase more understandable to newcomers* Onboarding new developers to your teamLearn how to optimize your brain’s natural cognitive processes to read code more easily, write code faster, and pick up new languages in much less time. This book will help you through the confusion you feel when faced with strange and complex code, and explain a codebase in ways that can make a new team member productive in days!about the technologyUnderstanding the cognitive functions that govern the way your brain thinks about coding will help you work smarter, not harder. You’ll improve your productivity, reduce your need for constant rewrites, and say goodbye to spending late nights struggling with new languages.about the bookThe Programmer’s Brain explores the way your brain works when it’s thinking about code. In it, you’ll master practical ways to apply these cognitive principles to your daily programming life. You’ll improve your code comprehension by turning confusion into a learning tool, and pick up awesome techniques for reading code and quickly memorizing syntax. This practical guide includes tips for creating your own flashcards and study resources that can be applied to any new language you want to master. By the time you’re done, you’ll not only be better at teaching yourself—you’ll be an expert at bringing new colleagues and junior programmers up to speed.

Web Development with Django: Learn to build modern web applications with a Python-based framework


Ben Shaw - 2021
    

Quantum Computing for the Quantum Curious


Ciárán Hughes - 2021
    A fast-growing field at the intersection of physics and computer science, quantum computing promises to have revolutionary capabilities far surpassing “classical” computation. Getting a grip on the science behind the hype can be tough: at its heart lies quantum mechanics, whose enigmatic concepts can be imposing for the novice. This classroom-tested textbook uses simple language, minimal math, and plenty of examples to explain the three key principles behind quantum computers: superposition, quantum measurement, and entanglement. It then goes on to explain how this quantum world opens up a whole new paradigm of computing. The book bridges the gap between popular science articles and advanced textbooks by making key ideas accessible with just high school physics as a prerequisite. Each unit is broken down into sections labelled by difficulty level, allowing the course to be tailored to the student’s experience of math and abstract reasoning. Problem sets and simulation-based labs of various levels reinforce the concepts described in the text and give the reader hands-on experience running quantum programs. This book can thus be used at the high school level after the AP or IB exams, in an extracurricular club, or as an independent project resource to give students a taste of what quantum computing is really about. At the college level, it can be used as a supplementary text to enhance a variety of courses in science and computing, or as a self-study guide for students who want to get ahead. Additionally, readers in business, finance, or industry will find it a quick and useful primer on the science behind computing’s future.

Crypto Dictionary: 500 Tasty Tidbits for the Curious Cryptographer


Jean-Philippe Aumasson - 2021
    It covers technical terms found in modern software analysis, such as block cipher, while providing important context for historical references like the crypto wars, sharing amusing anecdotes (ever hear of the Hasty Pudding Cipher?), and describing major conferences in the field, including Eurocrypt and Real World Crypto.Crypto Dictionary describes the field's most innovative techniques, like threshold cryptography, as well as those developed in the context of blockchain applications, in a broadly approachable way.

Robust Python: Write Clean and Maintainable Code


Patrick Viafore - 2021
    Thankfully, Python has features to help developers overcome maintainability woes.In this practical book, author Patrick Viafore shows you how to use Python's type system to the max. You'll look at user-defined types, such as classes and enums, and Python's type hinting system. You'll also learn how to make Python extensible and how to use a comprehensive testing strategy as a safety net. With these tips and techniques, you'll write clearer and more maintainable code.Learn why types are essential in modern development ecosystemsUnderstand how type choices such as classes, dictionaries, and enums reflect specific intentsMake Python extensible for the future without adding bloatUse popular Python tools to increase the safety and robustness of your codebaseEvaluate current code to detect common maintainability gotchasBuild a safety net around your codebase with linters and tests

1-Hour WordPress 2021: A visual step-by-step guide to building WordPress websites in one hour or less! (Webmaster Series)


Andy Williams - 2021
    

Vital Foresight: The Case For Active Transhumanism


David W. Wood - 2021
    We – all of us – face profound questions over the management of artificial intelligence, nanoscale computers, bio-engineering, cognitive enhancements, ubiquitous robots, drone swarms, nuclear power, planet-scale geo-engineering, and much more.What these technologies enable is, potentially, a world of extraordinary creativity, unprecedented freedom, and abundant wellbeing. That’s provided we can see clearly enough, in advance, the major disruptive opportunities we will need to seize and steer, so we can reach that destination. And provided we can step nimbly through a swath of treacherous landmines along the way.That’s no small undertaking. It will take all our wisdom and strength. It’s going to require the very highest calibre of foresight.Happily, assistance is at hand. What this book demonstrates is that vital foresight from the field of active transhumanism can help us all:1.) To resist unwarranted tech hype, whilst remaining aware that credible projections of today’s science and engineering could enable sweeping improvements in the human condition;2.) To distinguish future scenarios with only superficial attractions from those with lasting, sustainable benefits;3.) To move beyond the inaction of future shock, so we can coalesce around practical initiatives that advance deeply positive outcomes.

Engineering Production-Grade Shiny Apps


Colin Fay - 2021
    and practical advice from software development that fits in nicely with Shiny apps. You will find many nuggets of wisdom sprinkled throughout these chapters.... Eric Nantz, Host of the R-Podcast and the Shiny Developer Series (from the Foreword) [This] book is a gradual and pleasant invitation to the production-ready shiny apps world. It ...exposes a comprehensive and robust workflow powered by the {golem} package. [It] fills the not yet covered gap between shiny app development and deployment in such a thrilling way that it may be read in one sitting.... In the industry world, where processes robustness is a key toward productivity, this book will indubitably have a tremendous impact. David Granjon, Sr. Expert Data Science, Novartis Presented in full color, Engineering Production-Grade Shiny Apps helps people build production-grade shiny applications, by providing advice, tools, and a methodology to work on web applications with R. This book starts with an overview of the challenges which arise from any big web application project: organizing work, thinking about the user interface, the challenges of teamwork and the production environment. Then, it moves to a step-by-step methodology that goes from the idea to the end application. Each part of this process will cover in detail a series of tools and methods to use while building production-ready shiny applications. Finally, the book will end with a series of approaches and advice about optimizations for production. FeaturesFocused on practical matters: This book does not cover Shiny concepts, but practical tools and methodologies to use for production.Based on experience: This book is a formalization of several years of experience building Shiny applications.Original content: This book presents new methodologies and tooling, not just a review of what already exists. Engineering Production-Grade Shiny Apps covers medium to advanced content about Shiny, so it will help people that are already familiar with building apps with Shiny, and who want to go one step further.

Python Object-Oriented Programming: Build robust and maintainable object-oriented Python applications and libraries, 4th Edition


Steven F. Lott - 2021
    

Mastering Kafka Streams and Ksqldb: Building Real-Time Data Systems by Example


Mitch Seymour - 2021
    But with Kafka Streams and ksqlDB, building stream processing applications is easy and fun. This practical guide shows data engineers how to use these tools to build highly scalable stream processing applications for moving, enriching, and transforming large amounts of data in real time.Mitch Seymour, data services engineer at Mailchimp, explains important stream processing concepts against a backdrop of several interesting business problems. You'll learn the strengths of both Kafka Streams and ksqlDB to help you choose the best tool for each unique stream processing project. Non-Java developers will find the ksqlDB path to be an especially gentle introduction to stream processing.Learn the basics of Kafka and the pub/sub communication patternBuild stateless and stateful stream processing applications using Kafka Streams and ksqlDBPerform advanced stateful operations, including windowed joins and aggregationsUnderstand how stateful processing works under the hoodLearn about ksqlDB's data integration features, powered by Kafka ConnectWork with different types of collections in ksqlDB and perform push and pull queriesDeploy your Kafka Streams and ksqlDB applications to production

The System Design Interview, 2nd Edition


Lewis C. Lin - 2021
    

Job Ready Python


Haythem Balti - 2021
    Based on the highly regarded and effective Software Guild Python course, this book teaches you the basic and advanced Python concepts you will need at any entry-level Python position.With the "Pulling It Together" sections, you'll combine and integrate the concepts and lessons taught by the book, while also benefiting from:A thorough introduction to getting set up with Python Practical discussions of the basics of the Python language, including syntax, program flow, and code organization A walk through the fundamentals of Object-Oriented Programming including Classes, Objects, Interfaces, and Inheritance, and how to leverage OOP to create elegant code A focus on data processing and data analysis with Python

Responsible JavaScript


Jeremy Wagner - 2021
    But its power comes at a cost: longer load times, sluggish pages, and inaccessible content. The more we rely on client-side rendering, the more likely we are to exclude visitors with older devices, slower connections, or those who have disabled JavaScript altogether.If we want people to fully experience the sites we have worked so hard to craft, then we must be judicious in our use of JavaScript. In thoughtful detail, Jeremy Wagner shows how JavaScript can be used to progressively enhance server-side functionality, while improving speed and access for more visitors. By centering user needs every step of the way—from toolchains to metrics to testing—we can all contribute to a more inclusive, accessible, and resilient web.

Security and Microservice Architecture on AWS


Gaurav Raje - 2021
    

Technical Debt in Practice: How to Find It and Fix It


Neil Ernst - 2021
    This book offers advice on how to avoid technical debt, how to locate its sources, and how to remove it. It focuses on the practical implications of technical debt for the entire software life cycle, with examples and case studies from companies that range from Boeing to Twitter.Technical debt is normal; it is part of most iterative development processes. But if debt is ignored, over time it may become unmanageably complex, requiring developers to spend all of their effort fixing bugs, with no time to add new features--and after all, new features are what customers really value. The authors explain how to monitor technical debt, how to measure it, and how and when to pay it down. Broadening the conventional definition of technical debt, they cover requirements debt, implementation debt, testing debt, architecture debt, documentation debt, deployment debt, and social debt. They intersperse technical discussions with Voice of the Practitioner sidebars that detail real-world experiences with a variety of technical debt issues.

The Art of Writing Efficient Programs: An advanced programmer's guide to efficient hardware utilization and compiler optimizations using C++ examples


Fedor G Pikus - 2021
    Until recently, programs got faster by themselves as CPUs were upgraded, but that doesn't happen anymore. The clock frequency of new processors has almost peaked. New architectures provide small improvements to existing programs, but this only helps slightly. Processors do get larger and more powerful, but most of this new power is consumed by the increased number of processing cores and other "extra" computing units. To write efficient software, you now have to know how to program by making good use of the available computing resources, and this book will teach you how to do that.The book covers all the major aspects of writing efficient programs, such as using CPU resources and memory efficiently, avoiding unnecessary computations, measuring performance, and how to put concurrency and multithreading to good use. You'll also learn about compiler optimizations and how to use the programming language (C++) more efficiently. Finally, you'll understand how design decisions impact performance.By the end of this book, you'll not only have enough knowledge of processors and compilers to write efficient programs, but you'll also be able to understand which techniques to use and what to measure while improving performance. At its core, this book is about learning how to learn.What You Will Learn: Discover how to use the hardware computing resources in your programs effectivelyUnderstand the relationship between memory order and memory barriersFamiliarize yourself with the performance implications of different data structures and organizationsAssess the performance impact of concurrent memory accessed and how to minimize itDiscover when to use and when not to use lock-free programming techniquesExplore different ways to improve the effectiveness of compiler optimizationsDesign APIs for concurrent data structures and high-performance data structures to avoid inefficienciesWho this book is for: This book is for experienced developers and programmers who work on performance-critical projects and want to learn different techniques to improve the performance of their code. Programmers who belong to algorithmic trading, gaming, bioinformatics, computational genomics, or computational fluid dynamics communities can learn various techniques from this book and apply them in their domain of work.Although this book uses the C++ language, the concepts demonstrated in the book can be easily transferred or applied to other compiled languages such as C, Java, Rust, Go, and more.

Crafting Test-Driven Software with Python: Write test suites that scale with your applications' needs and complexity using Python and PyTest


Alessandro Molina - 2021
    

Learn to Code with JavaScript


Darren Jones - 2021
    You'll be learning to program with JavaScript - the most popular programming language on Earth. And it runs in web browsers, making it particularly suited to creating web-based apps and games. But the principles and techniques that you'll learn will provide you with a foundation to go on and learn many other languages, too.You'll learn:Programming basics, including data types, variables and moreHow to use logic to control the flow of a programHow to use loops to repeat code over and over againHow to write functions that can be used to store code in reusable blocksHow to store data in collections such as arrays, sets and mapsHow to create objects that store properties and actionsAnd much more!Along the way, you'll build a collection of fun applications, including games and interactive web pages. Start learning to code today!

Understanding Software Dynamics


Richard L. Sites - 2021
    If it doesn't, customers are unhappy--and sometimes lives are put at risk. When complex software underperforms or fails, software engineers need to identify and address the root causes. This is difficult and, historically, few tools have been available to help.In Understanding Software Dynamics , performance expert Richard L. Sites tackles the problem head on, offering expert methods and advanced tools for understanding complex, time-constrained software dynamics, improving reliability and troubleshooting challenging performance problems.Sites draws on several decades of experience pioneering software performance optimization, as well as extensive experience teaching graduate-level developers. He introduces principles and techniques for use in any environment, from embedded devices to datacenters, illuminating them with examples based on x86 or ARM processors running Linux and linked by Ethernet. He also guides readers through building and applying a powerful, new, extremely low-overhead open-source software tool, KUtrace, to precisely trace executions on every CPU core. Using insights gleaned from this tool, readers can apply nuanced solutions--not merely brute-force techniques such as turning off caches or cores. Measure and address issues associated with CPUs, memory, disk/SSD, networks, and their interactions Fix programs that are always too slow, and those that sometimes lag for no apparent reason Design useful observability, logging, and time-stamping capabilities into your code Reason more effectively about performance data to see why reality differs from expectations Identify problems such as excess execution, slow instruction execution, waiting for resources, and software locks Understanding Software Dynamics will be valuable to experienced software professionals, including application and OS developers, hardware and system architects, real-time system designers, and game developers, as well as advanced students.Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.