The Pragmatic Programmer, 20th Anniversary EditionFor twenty years, the lessons from The Pragmatic Programmer have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology. This classic title is regularly featured on "Top Ten" lists, and many corporations issue it to their new hires.
This new 20th Anniversary Edition offers a fresh look at the modern development landscape, cutting through the "business as usual" and tired advice from the net to help guide you through the next twenty years and beyond. Featuring new tips, new topics, and revisions throughout, you don't want to miss this one.
Andy and Dave wrote this influential, classic book to help their clients create better software and rediscover the joy of coding. Almost twenty years later, its advice is still spot on, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories.
This new edition exam ...
Designing Elixir Systems with OTPYou know how to code in Elixir; now learn to think in it. Learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. Embrace the same OTP that's kept our telephone systems reliable and fast for over 30 years. Move beyond understanding the OTP functions to knowing what's happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus.
Elixir is gaining mindshare as the programming language you can use to keep your software running forever, even in the face of unexpected errors and an ever growing need to use more processors. This power comes from an effective programming language, an excellent foundation for concurrency and its inheritance of a battle-tested framework called the OTP.
If you're using frameworks like Phoenix or Nerves, you're already experiencing ...
Software Estimation Without GuessingDevelopers hate estimation, and most managers fear disappointment with the results, but there is hope for both. You'll have to give up some widely held misconceptions: let go of the notion that "an estimate is an estimate", and estimate for your particular need. Realize that estimates have a limited shelf-life, and re-estimate frequently as needed. When reality differs from your estimate, don't lament; mine that disappointment for the gold that can be the longer-term jackpot. We'll show you how.
Estimating software development often produces more angst than value, but it doesn't have to. Identify the needs behind estimate requests and determine how to meet those needs simply and easily. Choose estimation techniques based on current needs and available information, gaining benefit while reducing cost and effort. Detect bad assumptions that might sink your project if you don't adjust your plans.
Learn strategies for effective decomposition of work and aspects of the work that likel ...
MOS Study Guide for Microsoft Excel Expert Exam MO-201Demonstrate your expert-level competency with Microsoft Excel! Designed to help you practice and prepare for Microsoft Office Specialist: Microsoft Excel Expert (Excel and Excel 2019) certification, this official Study Guide delivers: In-depth preparation for each MOS objective; Detailed procedures to help build the skills measured by the exam; Hands-on tasks to practice what you've learned; Ready-made practice files.
Sharpen the skills measured by these objectives: Manage Workbook Options and Settings; Manage and Format Data; Create Advanced Formulas and Macros; Manage Advanced Charts and Tables. ...
Using Asyncio in PythonIf you're among the Python developers put off by asyncio's complexity, it's time to take another look. Asyncio is complicated because it aims to solve problems in concurrent network programming for both framework and end-user developers. The features you need to consider are a small subset of the whole asyncio API, but picking out the right features is the tricky part. That's where this practical book comes in.
Veteran Python developer Caleb Hattingh helps you gain a basic understanding of asyncio's building blocks - enough to get started writing simple event-based programs. You'll learn why asyncio offers a safer alternative to preemptive multitasking (threading) and how this API provides a simple way to support thousands of simultaneous socket connections.
Get a critical comparison of asyncio and threading for concurrent network programming; Take an asyncio walk-through, including a quickstart guide for hitting the ground looping with event-based programming; Learn the differen ...
Next-Generation Machine Learning with SparkAccess real-world documentation and examples for the Spark platform for building large-scale, enterprise-grade machine learning applications.
The past decade has seen an astonishing series of advances in machine learning. These breakthroughs are disrupting our everyday life and making an impact across every industry.
Next-Generation Machine Learning with Spark provides a gentle introduction to Spark and Spark MLlib and advances to more powerful, third-party machine learning algorithms and libraries beyond what is available in the standard Spark MLlib library. By the end of this book, you will be able to apply your knowledge to real-world use cases through dozens of practical examples and insightful explanations.
Be introduced to machine learning, Spark, and Spark MLlib 2.4.x; Achieve lightning-fast gradient boosting on Spark with the XGBoost4J-Spark and LightGBM libraries; Detect anomalies with the Isolation Forest algorithm for Spark; Use the Spark NLP and Stanford CoreNLP lib ...
Beginning Ballerina ProgrammingDiscover the Ballerina programming language for next-generation microservices and cloud-native application development. This book shows you that Ballerina is a cutting-edge programming language which incorporates many of the latest technological advancements in programming language theory. You'll learn variables and types, modules and functions, flow control, error handling, concurrency, I/O, cloud/network programming, persistence and data access, security and more.
Additionally, Beginning Ballerina Programming introduces many foundation computer science topics along the way and doesn't assume much prior knowledge. For example, when introducing transport-level security, you will get a brief introduction to public-key cryptography, how it is different from private-key cryptography, and why it is needed. This provides an added bonus for you to learn something new and general in computer science.
After reading and using this book, you'll be proficient with Ballerina and cloud-firs ...
Real-World Software DevelopmentExplore the latest Java-based software development techniques and methodologies through the project-based approach in this practical guide. Unlike books that use abstract examples and lots of theory, Real-World Software Development shows you how to develop several relevant projects while learning best practices along the way.
With this engaging approach, junior developers capable of writing basic Java code will learn about state-of-the-art software development practices for building modern, robust and maintainable Java software. You'll work with many different software development topics that are often excluded from software develop how-to references.
Featuring real-world examples, this book teaches you techniques and methodologies for functional programming, automated testing, security, architecture, and distributed systems. ...
Beginning Game Programming with Pygame ZeroMake fun games while learning to code. Focused on making games rather than teaching programming theory, in this book you're more likely to see code on how gravity affects a missiles trajectory instead of the most efficient way to search through data. Even then the code is kept simple as games should be about playability rather than complex physics. There are links to the official documentation when you need to lookup information that isn't included in the book.
Start with a simple text based game to grasp the basics of programming in Python. Then moves on to creating simple graphical games in Pygame Zero. Not only will you learn object oriented programming to make it easier to make more complex games, you'll also work to create your own graphics and sounds. 3D graphics are a little complex. So we focus on 2D games, including spins on some classic boardgames and arcade games. All the games are designed to run on a Raspberry Pi. They will work on any Raspberry Pi, but will also work o ...
The Java WorkshopYou already know you want to learn Java, and a smarter way to learn Java 12 is to learn by doing. The Java Workshop focuses on building up your practical skills so that you can develop high-performance Java applications that work flawlessly within the JVM across web, mobile and desktop. You'll learn from real examples that lead to real results.
Throughout The Java Workshop, you'll take an engaging step-by-step approach to understanding Java. You won't have to sit through any unnecessary theory. If you're short on time you can jump into a single exercise each day or spend an entire weekend learning about Reactive programming and Unit testing. It's your choice. Learning on your terms, you'll build up and reinforce key skills in a way that feels rewarding.
Every physical print copy of The Java Workshop unlocks access to the interactive edition. With videos detailing all exercises and activities, you'll always have a guided solution. You can also benchmark yourself against assessment ...