Search results for ""The Pragmatic Programmers""
Pragmatic Bookshelf Programming Ruby 3.2: The Pragmatic Programmers' Guide
Ruby is one of the most important programming languages in use for web development. It powers the Rails framework, which is the backing of some of the most important sites on the web. The Pickaxe Book, named for the tool on the cover, is the definitive reference on Ruby, a highly-regarded, fully object-oriented programming language. This updated edition is a comprehensive reference on the language itself, with a tutorial on the most important features of Ruby - including pattern matching and Ractors - and describes the language through Ruby 3.2. Would you like to go from first idea to working code much, much faster? Do you currently spend more time satisfying the compiler instead of your clients or end users? Are you frustrated with demanding languages that seem to get in your way instead of helping you get the work done? Are you using Rails and want to dig deeper into the underlying Ruby language? If so, then we've got a language and book for you! Ruby is a fully object-oriented language. The combination of the power of a pure object-oriented language with the convenience of a scripting language makes Ruby a favorite tool of programmers that want to get things done quickly and cleanly. This comprehensive reference manual for Ruby includes a description of the most important standard library modules, built-in classes, and modules. It also includes all the new and changed syntax and semantics introduced through Ruby 3.2, including pattern matching and Ractors, and describes the language through Ruby 3.2. What You Need: This book assumes you have a basic understanding of object-oriented programming. In general, Ruby programmers tend to favor the the command line for running their code, and they tend to use text editors rather than IDEs. Ruby runs on Windows, Linux, and MacOS.
£47.69
The Pragmatic Programmers Build a Weather Station with Elixir and Nerves: Visualize Your Sensor Data with Phoenix and Grafana
The Elixir programming language has become a go-to tool for creating reliable, fault-tolerant, and robust server-side applications. Thanks to Nerves, those same exact benefits can be realized in embedded applications. This book will teach you how to structure, build, and deploy production grade Nerves applications to network-enabled devices. The weather station sensor hub project that you will be embarking upon will show you how to create a full stack IoT solution in record time. You will build everything from the embedded Nerves device to the Phoenix backend and even the Grafana time-series data visualizations. Elixir as a programming language has found its way into many different software domains, largely in part to the rock-solid foundation of the Erlang virtual machine. Thanks to the Nerves framework, Elixir has also found success in the world of embedded systems and IoT. Having access to all of the Elixir and OTP constructs such as concurrency, supervision, and immutability makes for a powerful IoT recipe. Find out how to create fault-tolerant, reliable, and robust embedded applications using the Nerves framework. Build and deploy a production-grade weather station sensor hub using Elixir and Nerves, all while leveraging the best practices established by the Nerves community for structuring and organizing Nerves applications. Capture all of your weather station sensor data using Phoenix and Ecto in a lightweight server-side application. Efficiently store and retrieve the time-series weather data collected by your device using TimescaleDB (the Postgres extension for time-series data). Finally, complete the full stack IoT solution by using Grafana to visualize all of your time-series weather station data. Discover how to create software solutions where the underlying technologies and techniques are applicable to all layers of the project. Take your project from idea to production ready in record time with Elixir and Nerves.
£19.35
The Pragmatic Programmers Getting Clojure: Build Your Functional Skills One Idea at a Time
Behind every programming language lies a vision of how programs should be built. The vision behind Clojure is of a radically simple language framework holding together a sophisticated collection of programming features. Learning Clojure involves much more than just learning the mechanics of the language. To really get Clojure you need to understand the ideas underlying this structure of framework and features. You need this book: an accessible introduction to Clojure that focuses on the ideas behind the language as well as the practical details of writing code. Clojure attracts developers on the cutting edge and is arguably the best language for learning to program in the functional style without compromise. But this comes with a steep learning curve. Getting Clojure directly addresses this by teaching you how to think functionally as it teaches you the language. You'll learn about Clojure's powerful data structures and high-level functions, but you'll also learn what it means for a language to be functional, and how to think in Clojure's functional way. Each chapter of Getting Clojure takes a feature or two or three from the language, explains the syntax and the mechanics behind that feature so that you can make it work before digging into the deeper questions: What is the thinking behind the feature? And how does it fit in with the rest of the language? In Getting Clojure you'll learn Clojure's very simple syntax, but you'll also learn why that syntax is integral the way the language is constructed. You'll discover that most data structures in Clojure are immutable, but also why that leads to more reliable programs. And you'll see how easy it is to write Clojure functions and also how you can use those functions to build complex and capable systems. With real-world examples of how working Clojure programmers use the language, Getting Clojure will help you see the challenges of programming through the eye of experienced Clojure developers. What You Need: You will need to some background in programming. To follow along with the examples in the book, you will need Java 6 or new, Clojure 1.8 or 1.9, and Leiningen 2.
£34.65
The Pragmatic Programmers Learn Functional Programming with Elixir
Elixir's straightforward syntax and this guided tour give you a clean, simple path to learn modern functional programming techniques. No previous functional programming experience required! This book walks you through the right concepts at the right pace, as you explore immutable values and explicit data transformation, functions, modules, recursive functions, pattern matching, high-order functions, polymorphism, and failure handling, all while avoiding side effects. Don't board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally. This book will get you there. Functional programming offers useful techniques for building maintainable and scalable software that solves today's difficult problems. The demand for software written in this way is increasing - you don't want to miss out. In this book, you'll not only learn Elixir and its features, you'll also learn the mindset required to program functionally. Elixir's clean syntax is excellent for exploring the critical skills of using functions and concurrency. Start with the basic techniques of the functional way: working with immutable data, transforming data in discrete steps, and avoiding side effects. Next, take a deep look at values, expressions, functions, and modules. Then extend your programming with pattern matching and flow control with case, if, cond, and functions. Use recursive functions to create iterations. Work with data types such as lists, tuples, and maps. Improve code reusability and readability with Elixir's most common high-order functions. Explore how to use lazy computation with streams, design your data, and take advantage of polymorphism with protocols. Combine functions and handle failures in a maintainable way using Elixir features and libraries. Learn techniques that matter to make code that lives harmoniously with the language. What You Need: You'll need a computer and Elixir 1.4 or newer version installed. No previous functional programming or Elixir experience is required. Some experience with any programming language is recommended.
£31.05
The Pragmatic Programmers The Way of the Web Tester
This book is for everyone who needs to test the web. As a tester, you'll automate your tests. As a developer, you'll build more robust solutions. And as a team, you'll gain a vocabulary and a means to coordinate how to write and organize automated tests for the web. Follow the testing pyramid and level up your skills in user interface testing, integration testing, and unit testing. Your new skills will free you up to do other, more important things while letting the computer do the one thing it's really good at: quickly running thousands of repetitive tasks. This book shows you how to do three things: * How to write really good automated tests for the web. * How to pick and choose the right ones. * How to explain, coordinate, and share your efforts with others. If you're a traditional software tester who has never written an automated test before, this is the perfect book for getting started. Together, we'll go through everything you'll need to start writing your own tests. If you're a developer, but haven't thought much about testing, this book will show you how to move fast without breaking stuff. You'll test RESTful web services and legacy systems, and see how to organize your tests. And if you're a team lead, this is the Rosetta Stone you've been looking for. This book will help you bridge that testing gap between your developers and your testers by giving your team a model to discuss automated testing, and most importantly, to coordinate their efforts.The Way of the Web Tester is packed with cartoons, graphics, best practices, war stories, plenty of humor, and hands-on tutorial exercises that will get you doing the right things, the right way.
£20.69
The Pragmatic Programmers Metaprogramming Elixir
Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you'll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You'll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages. Metaprogramming is one of Elixir's greatest features. Maybe you've played with the basics or written a few macros. Now you want to take it to the next level. This book is a guided series of metaprogramming tutorials that take you step by step to metaprogramming mastery. You'll extend Elixir with powerful features and write faster, more maintainable programs in ways unmatched by other languages. You'll start with the basics of Elixir's metaprogramming system and find out how macros interact with Elixir's abstract format. Then you'll extend Elixir with your own first-class features, write a testing framework, and discover how Elixir treats source code as building blocks, rather than rote lines of instructions. You'll continue your journey by using advanced code generation to create essential libraries in strikingly few lines of code. Finally, you'll create domain-specific languages and learn when and where to apply your skills effectively. When you're done, you will have mastered metaprogramming, gained insights into Elixir's internals, and have the confidence to leverage macros to their full potential in your own projects.
£13.50
The Pragmatic Programmers The Cucumber for Java Book
Teams working on the JVM can now say goodbye forever to misunderstood requirements, tedious manual acceptance tests, and out-of-date documentation. Cucumber - the popular, open-source tool that helps teams communicate more effectively with their customers - now has a Java version, and our bestselling Cucumber Book has been updated to match. The Cucumber for Java Book has the same great advice about how to deliver rock-solid applications collaboratively, but with all code completely rewritten in Java. New chapters cover features unique to the Java version of Cucumber, and reflect insights from the Cucumber team since the original book was published. Until now it's been difficult for teams developing Java applications to learn how to benefit from Behaviour-Driven Development (BDD). This book changes all that by describing in detail how to use Cucumber to harness the power of plain language specifications in your development process. In part 1, you'll discover how to use Cucumber's Gherkin DSL to describe the behavior your customers want from the system.You'll also learn how to write Java code that interprets those plain language specifications and checks them against your application. Part 2 guides you through a worked example, using Spring, MySQL, and Jetty. Enhanced chapters teach you how to use Selenium to drive your application and handle asynchronous Ajax calls, and new chapters cover Dependency Injection (DI) and advanced techniques to help keep your test suites fast. Part 3 shows you how to integrate Cucumber with your Continuous Integration (CI) system, work with a REST web service, and even use BDD with legacy applications. Written by the creator of Cucumber and two of its most experienced users and contributors, The Cucumber for Java Book is an authoritative guide that will give you and your team all the knowledge you need to start using Cucumber with confidence.
£26.09
The Pragmatic Programmers Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the Jvm
Solve real-life programming problems with a fraction of the code that pure object-oriented programming requires. Use Scala and Clojure to solve in-depth problems with two sets of patterns: object-oriented patterns that become more concise with functional programming, and natively functional patterns. Your code will be more declarative, with fewer bugs and lower maintenance costs. Functional languages have their own patterns that enable you to solve problems with less code than object-oriented programming alone. This book introduces you, the experienced Java programmer, to Scala and Clojure: practical, production-quality languages that run on the JVM and interoperate with existing Java. By using both the statically typed, type-inferred Scala and the dynamically typed, modern Lisp Clojure, you'll gain a broad understanding of functional programming. For each pattern, you'll first see the traditional object-oriented solution, and then dig into the functional replacements in both Scala and Clojure. These patterns are common in the functional world and deserve to become part of your problem-solving toolkit. On the object-oriented side, you'll see many common patterns, such as Command, Strategy, and Null Object. On the functional side, you'll learn core functional patterns such as Memoization, Lazy Sequence, and Tail Recursion. Each pattern helps you solve a common programming problem. Working through them gives you a set of patterns you can use to solve problems you come across while writing programs. Finally, you'll learn how to work your existing Java code into new Scala or Clojure projects. You can start off small, adding functional code little by little, so you can complement your existing knowledge with Scala and Clojure as these languages gain popularity on the JVM.
£26.09
The Pragmatic Programmers Seven Languages in Seven Weeks
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With Seven Languages in Seven Weeks, by Bruce A. Tate, you'll go beyond the syntax-and beyond the 20-minute tutorial you'll find someplace online. This book has an audacious goal: to present a meaningful exploration of seven languages within a single book. Rather than serve as a complete reference or installation guide, Seven Languages hits what's essential and unique about each language. Moreover, this approach will help teach you how to grok new languages. For each language, you'll solve a nontrivial problem, using techniques that show off the language's most important features. As the book proceeds, you'll discover the strengths and weaknesses of the languages, while dissecting the process of learning languages quickly--for example, finding the typing and programming models, decision structures, and how you interact with them. Among this group of seven, you'll explore the most critical programming models of our time. Learn the dynamic typing that makes Ruby, Python, and Perl so flexible and compelling. Understand the underlying prototype system that's at the heart of JavaScript. See how pattern matching in Prolog shaped the development of Scala and Erlang. Discover how pure functional programming in Haskell is different from the Lisp family of languages, including Clojure. Explore the concurrency techniques that are quickly becoming the backbone of a new generation of Internet applications. Find out how to use Erlang's let-it-crash philosophy for building fault-tolerant systems. Understand the actor model that drives concurrency design in Io and Scala. Learn how Clojure uses versioning to solve some of the most difficult concurrency problems. It's all here, all in one place. Use the concepts from one language to find creative solutions in another-or discover a language that may become one of your favorites.
£25.19
The Pragmatic Programmers Agile Web Development with Rails 7
Rails 7 completely redefines what it means to produce fantastic user experiences and provides a way to achieve all the benefits of single-page applications - at a fraction of the complexity. Rails 7 integrates the Hotwire frameworks of Stimulus and Turbo directly as the new defaults, together with that hot newness of import maps. The result is a toolkit so powerful that it allows a single individual to create modern applications upon which they can build a competitive business. The way it used to be. Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly - you concentrate on creating the application, and Rails takes care of the details. Rails 7 brings many improvements, and this edition is updated to cover the new features and changes in best practices. We start with a step-by-step walkthrough of building a real application, and in-depth chapters look at the built-in Rails features. Follow along with an extended tutorial as you write a web-based store application. Eliminate tedious configuration and housekeeping, seamlessly incorporate JavaScript, send and receive emails, manage background jobs with ActiveJob, and build real-time features using WebSockets and ActionCable. Test your applications as you write them using the built-in unit, integration, and system testing frameworks, internationalize your applications, and deploy your applications easily and securely. Rails 1.0 was released in December 2005. This book was there from the start, and didn't just evolve alongside Rails, it evolved with Rails. It has been developed in consultation with the Rails core team. In fact, Rails itself is tested against the code in this book. What You Need: All you need is a Windows, Mac OS X, or Linux machine to do development on. This book will take you through the steps to install Rails and its dependencies. If you aren't familiar with the Ruby programming language, this book contains a chapter that covers the basics necessary to understand the material in the book.
£43.19
The Pragmatic Programmers SQL Antipatterns, Volume 1: Avoiding the Pitfalls of Database Programming
SQL is the ubiquitous language for software developers working with structured data. Most developers who rely on SQL are experts in their favorite language (such as Java, Python, or Go), but they're not experts in SQL. They often depend on antipatterns - solutions that look right but become increasingly painful to work with as you uncover their hidden costs. Learn to identify and avoid many of these common blunders. Refactor an inherited nightmare into a data model that really works. Updated for the current versions of MySQL and Python, this new edition adds a dozen brand new mini-antipatterns for quick wins. No matter which platform, framework, or language you use, the database is the foundation of your application, and the SQL database language is the standard for working with it. Antipatterns are solutions that look simple at the surface, but soon mire you down with needless work. Learn to identify these traps, and craft better solutions for the often-asked questions in this book. Avoid the mistakes that lead to poor performance and quality, and master the principles that make SQL a powerful and flexible tool for handling data and logic. Dive deep into SQL and database design, and learn to recognize the most common missteps made by software developers in database modeling, SQL query logic, and code design of data-driven applications. See practical examples of misconceptions about SQL that can lure software projects astray. Find the greatest value in each group of data. Understand why an intersection table may be your new best friend. Store passwords securely and don't reinvent the wheel. Handle NULL values like a pro. Defend your web applications against the security weakness of SQL injection. Use SQL the right way - it can save you from headaches and needless work, and let your application really shine! What You Need: The SQL examples use the MySQL 8.0 flavor, but other popular brands of RDBMS are mentioned. Other code examples use Python 3.9+ or Ruby 2.7+.
£34.65
The Pragmatic Programmers A Scrum Book
Building a successful product usually involves teams of people, and many choose the Scrum approach to aid in creating products that deliver the highest possible value. Implementing Scrum gives teams a collection of powerful ideas they can assemble to fit their needs and meet their goals. The ninety-four patterns contained within are elaborated nuggets of insight into Scruma (TM)s building blocks, how they work, and how to use them. They offer novices a roadmap for starting from scratch, yet they help intermediate practitioners fine-tune or fortify their Scrum implementations. Experienced practitioners can use the patterns and supporting explanations to get a better understanding of how the parts of Scrum complement each other to solve common problems in product development. The patterns are written in the well-known Alexandrian form, whose roots in architecture and design have enjoyed broad application in the software world. The form organizes each pattern so you can navigate directly to organizational design tradeoffs or jump to the solution or rationale that makes the solution work. The patterns flow together naturally through the context sections at their beginning and end. Learn everything you need to know to master and implement Scrum one step at a time'the agile way.
£46.79
The Pragmatic Programmers Practical Vim
Vim is a fast and efficient text editor that will make you a faster and more efficient developer. It's available on almost every OS, and if you master the techniques in this book, you'll never need another text editor. In more than 120 Vim tips, you'll quickly learn the editor's core functionality and tackle your trickiest editing and writing tasks. This beloved bestseller has been revised and updated to Vim 7.4 and includes two brand-new tips and five fully revised tips.A highly configurable, cross-platform text editor, Vim is a serious tool for programmers, web developers, and sysadmins who want to raise their game. No other text editor comes close to Vim for speed and efficiency; it runs on almost every system imaginable and supports most coding and markup languages.Learn how to edit text the "Vim way": complete a series of repetitive changes with The Dot Formula using one keystroke to strike the target, followed by one keystroke to execute the change. Automate complex tasks by recording your keystrokes as a macro. Discover the "very magic" switch that makes Vim's regular expression syntax more like Perl's. Build complex patterns by iterating on your search history. Search inside multiple files, then run Vim's substitute command on the result set for a project-wide search and replace. All without installing a single plugin! Two new tips explain how to run multiple ex commands as a batch and autocomplete sequences of words."Practical Vim, Second Edition" will show you new ways to work with Vim 7.4 more efficiently, whether you're a beginner or an intermediate Vim user. All this, without having to touch the mouse.What You Need: Vim version 7.4
£20.69
The Pragmatic Programmers Your Code As A Crime Scene
Jack the Ripper and legacy codebases have more in common than you'd think. Inspired by forensic psychology methods, you'll learn strategies to predict the future of your codebase, assess refactoring direction, and understand how your team influences the design. With its unique blend of forensic psychology and code analysis, this book arms you with the strategies you need, no matter what programming language you use. Software is a living entity that's constantly changing. To understand software systems, we need to know where they came from and how they evolved. By mining commit data and analyzing the history of your code, you can start fixes ahead of time to eliminate broken designs, maintenance issues, and team productivity bottlenecks. In this book, you'll learn forensic psychology techniques to successfully maintain your software. You'll create a geographic profile from your commit data to find hotspots, and apply temporal coupling concepts to uncover hidden relationships between unrelated areas in your code. You'll also measure the effectiveness of your code improvements. You'll learn how to apply these techniques on projects both large and small.For small projects, you'll get new insights into your design and how well the code fits your ideas. For large projects, you'll identify the good and the fragile parts. Large-scale development is also a social activity, and the team's dynamics influence code quality. That's why this book shows you how to uncover social biases when analyzing the evolution of your system. You'll use commit messages as eyewitness accounts to what is really happening in your code. Finally, you'll put it all together by tracking organizational problems in the code and finding out how to fix them. Come join the hunt for better code! What You Need: You need Java 6 and Python 2.7 to run the accompanying analysis tools. You also need Git to follow along with the examples.
£28.99
The Pragmatic Programmers Automate with Grunt
Grunt is everywhere. JavaScript projects from jQuery to Twitter Bootstrap use Grunt to convert code, run tests, and produce distributions for production. It's a build tool in the spirit of Make and Rake, but written with modern apps in mind. This book gets you up to speed with Grunt using practical hands-on examples, so you can wrangle your projects with ease. You'll learn how to create and maintain tasks and project builds, and automate your workflow with plugins and custom tasks. JavaScript has moved from being the language you love to hate to the language you need to use. And as JavaScript applications get more complex, you need a process to manage that complexity. While online tutorials just explain how to slap together a configuration file, this book goes further and shows you how to create your own tasks, design your own project templates, combine plugins together to bring a web app to life, and build your own plugins. You'll start by learning the basics of task creation, error handling, and logging as you create a simple configuration that executes basic JavaScript code using Node.js. Then you'll jump right into file manipulation as you read, write, copy, and delete files. You'll learn how Grunt's powerful multitasks work as you build a task to concatenate files together. Once you've got a grasp on these basics, you'll build a simple app with AngularJS and CoffeeScript, using Grunt to do all the heavy lifting and script processing. Finally, you'll create your own plugin so you can understand how plugins work. Each chapter contains hands-on exercises and ideas for further study. Whether you rock Ruby or sling C#, Grunt will be a useful addition to your toolbox. What You Need: This book covers Grunt 0.4.1 and higher, and requires basic knowledge of JavaScript and command-line tools on Windows, OS X, or Linux.
£13.50
The Pragmatic Programmers The Dream Team Nightmare
This first-ever interactive Agile Adventure is the gripping tale of an experienced team struggling with agile adoption. In this unique mashup of a business novel written in the gamebook format, you'll overcome common yet daunting challenges that come from using agile methods. As Jim, the agile coach, you'll learn to apply a range of thinking tools and techniques to real-life problems faced by teams and organizations. Find out what really works and what fails miserably from the consequences of your choices. And, unlike in the real world, if at first you don't succeed, you can make different choices until you get things right. Management is ready to disband your new agile team and outsource your project. Can you save The Dream Team? The Dream Team started their journey 18 months ago. Since then, life has become a nightmare. Progress has ground to a halt. Morale is low. Quality has become taboo. You have five days to figure out how to get the team back on track. There will be conflict and maybe tears. One thing is for sure: there will be plenty of tough decisions to make. Inspired by a classic gamebook series, this fun and interactive story has eight different endings designed to enrich and put your agile development knowledge and experience to the test. Packed with familiar scenarios an agile team faces every day, The Dream Team Nightmare offers you the chance to see what would happen if you could do things differently so you can change the way you do things for real with confidence. Combining practical team-building exercises with effective facilitation and Systems Thinking, by the end of the book you'll be ready to rescue projects in trouble, and get new projects off to a better start.
£17.09
The Pragmatic Programmers Crafting Rails 4 Applications 2ed
Get ready to see Rails as you've never seen it before. Learn how to extend the framework, change its behavior, and replace whole components to bend it to your will. Eight different test-driven tutorials will help you understand Rails' inner workings and prepare you to tackle complicated projects with solutions that are well-tested, modular, and easy to maintain. This second edition of the bestselling Crafting Rails Applications has been updated to Rails 4 and discusses new topics such as streaming, mountable engines, and thread safety. Rails is one of the most extensible frameworks out there. This pioneering book deep-dives into the Rails plugin APIs and shows you, the intermediate Rails developer, how to use them to write better web applications and make your day-to-day work with Rails more productive. Rails Core developer Jose Valim guides you through eight different tutorials, each using test-driven development to build a new Rails plugin or application that solves common problems with these APIs. You'll learn how the Rails rendering stack works and customize it to read templates from the database while you discover how to mimic Active Record behavior, such as validations, in any other object. You'll find out how Rails integrates with Rack, the different ways to stream data from your web application, and how to mix Rails engines and Sinatra applications into your Rails apps, so you can choose the most appropriate tool for the job. In addition, you'll improve your productivity by customizing generators and responders. This book will help you understand Rails' inner workings, including generators, template handlers, internationalization, routing, and responders. With the knowledge you'll gain, you'll create well-tested, modular, and robust solutions for your next project.
£26.09
The Pragmatic Programmers New Programmer's Survival Manual: Navigate Your Workplace, Cube Farm, or Startup
It's your first day on the job. You've got the programming chops, you're up on the latest tech, you're sitting at your workstation...now what? Give your career the jolt it needs to get going: essential industry skills to help you apply your raw programming talent and make a name for yourself. Programming commercially in the modern workplace requires skills and experience that you can't get from school or from working on your own. You need the hard-won lessons of years of experience in the workplace. Joshua D. Carter give you his. Programming at this level requires new skills---you'll build programs that dwarf anything you've done on your own. This book introduces you to practices for working on large, long-lived programs with a professional level of quality. Along the way, you'll learn tips for working efficiently with your tools, and discover new tools not often used by the student or hobbyist. Living in the corporate working environment requires its own savvy. You'll learn how to understand and navigate the business, the office, and how to deal with other people outside of your department. You'll understand where you fit into the big picture and how you contribute to the company's success. You'll also get a candid look at the tougher aspects of the job: stress, conflict, and office politics. Finally, programming is a job you can do for the long haul. This book helps you look ahead to the years to come, and your future opportunities---either as a programmer or in another role you grow into. There's nothing quite like the satisfaction of shipping a product and knowing, "I built that." Whether you work on embedded systems or web-based applications, in trendy technologies or legacy systems, this book helps you get from raw skill to an accomplished professional.
£20.69
The Pragmatic Programmers Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors
More than ever, learning to program concurrency is critical to creating faster, responsive applications. Speedy and affordable multicore hardware is driving the demand for high-performing applications, and you can leverage the Java platform to bring these applications to life. Concurrency on the Java platform has evolved, from the synchronization model of JDK to software transactional memory (STM) and actor-based concurrency. This book is the first to show you all these concurrency styles so you can compare and choose what works best for your applications. You'll learn the benefits of each of these models, when and how to use them, and what their limitations are. Through hands-on exercises, you'll learn how to avoid shared mutable state and how to write good, elegant, explicit synchronization-free programs so you can create easy and safe concurrent applications. The techniques you learn in this book will take you from dreading concurrency to mastering and enjoying it. Best of all, you can work with Java or a JVM language of your choice - Clojure, JRuby, Groovy, or Scala - to reap the growing power of multicore hardware. If you are a Java programmer, you'd need JDK 1.5 or later and the Akka 1. 0 library. In addition, if you program in Scala, Clojure, Groovy or JRuby you'd need the latest version of your preferred language. Groovy programmers will also need GPars.
£25.19
The Pragmatic Programmers Program Management for Open Source Projects: How to Guide Your Community-Driven, Open Source Project
Every organization develops a bureaucracy, and open source projects are no exception. When your structure is intentional and serves the project, it can lead to a successful and predictable conclusion. But project management alone won't get you there. Take the next step to full program management. Become an expert at facilitating communication between teams, managing schedules and project lifecycle, coordinating a process for changes, and keeping meetings productive. Make decisions that get buy-in from all concerned. Learn how to guide your community-driven open source project with just the right amount of structure. Bureaucratic processes naturally develop in large organizations, and open source projects are no different. The trick is to keep the processes intentional and in service of the project. That's program management and you have probably been doing it even if you don't have that title. Make your open source projects successful, predictable, and enjoyable by applying the principles and skills of program management in this book. See how program management differs from project management. Build trust and credibility by building relationships, sharing information, and communicating effectively. Construct efficient decision-making and governance structures, with openness and clear responsibilities. Conduct more effective and enjoyable meetings. Hold the right kind of meeting for the matters to be discussed: text, phone, video, or face-to-face. Develop release lifecycles, including release planning, schedules, and go/no-go decisions, and keep on schedule. Create and manage an effective changes process. Use your bug tracker to better understand and manage the bugs and feature requests of your project. Make decisions that get buy-in from all concerned. Develop processes that serve your open source project instead of making the project serve the process.
£26.09
The Pragmatic Programmers Effective Remote Work: For Yourself, Your Team, and Your Company
The office isn't as essential as it used to be. Flexible working hours and distributed teams are replacing decades of on-site, open-plan office culture. Wherever you work from nowadays, your colleagues are likely to be somewhere else. No more whiteboards. No more water coolers. And certainly no Ping-Pong. So how can you organize yourself, ship software, communicate, and be impactful as part of a globally distributed workforce? We'll show you how. It's time to adopt a brand new mindset. Remote working is here to stay. Come and join us. Remote working is on the rise. Whether or not we are remote workers, it is likely we are all part of a global workforce. We need to learn to interact remotely, because we are all remote from someone in some way. Rather than simply simulating the way we'd usually work together via digital means, we have to learn new communication skills and adopt a different mindset in order to work remotely effectively, efficiently, and, most importantly, healthily. We'll start by getting you set up with the right equipment and habits. Then, we'll learn the mindset of treating everyone as remote, and conquer both synchronous and asynchronous communication. You'll learn how to produce amazing artifacts, how to communicate clearly, and how to manage yourself and your teams. Then we'll look at the bigger picture: from measuring the remote readiness of your workplace, to creating a handbook for your team, to exploring remote-first culture and tackling burnout and mental well-being. Fundamentally we'll see that adopting a remote-working mindset can do wonders for our organization, our effectiveness, and our impact in our careers. It can even create a more diverse and inclusive industry for us all to work in. So what are you waiting for? The remote future is now. Be a part of it. What You Need: There are no prerequisites to reading this book, other than having had some experience of working in the software industry and a healthy curiosity.
£34.65
The Pragmatic Programmers Intuitive Python: Productive Development for Projects That Last
Developers power their projects with Python because it emphasizes readability, ease of use, and access to a meticulously maintained set of packages and tools. The language itself continues to improve with every release: writing in Python is full of possibility. But to maintain a successful Python project, you need to know more than just the language. You need tooling and instincts to help you make the most out of what's available to you. Use this book as your guide to help you hone your skills and sculpt a Python project that can stand the test of time. No matter your experience level or background, Python's batteries-included standard library and rich third-party ecosystem provide a solid foundation to build your projects on. With the right intuition and background knowledge, you can take advantage of all the power Python offers. Take a guided tour of some of Python's high points to craft a project that you can sustain and build on for a long time. Run static analysis tools to detect and eliminate classes of bugs before you run code. Experiment with Python's concurrency model and develop patterns for using Python's thread and process abstractions to their full potential. Introduce yourself to Python's type hinting system: mypy. Download and run third-party Python packages and do so safely without compromising on security. Debug code using Python's built in debugger, and try procedures out in the interactive console. Run your code under new versions of the Python interpreter to unlock performance and usability improvements. All along the way, sharpen your Python instincts so you can keep your code clean and reduce the chance of bugs. Mine Python for all you can by playing to its strengths and embracing patterns that harness its potential. What You Need: The books assumes you have some experience programming in any language (not necessarily Python). To run the code presented in the book, you'll need a Python environment which you can download from https://www.python.org/downloads/.
£19.35
The Pragmatic Programmers Explore Software Defined Radio: Use Sdr to Receive Satellite Images and Space Signals
Do you want to be able to receive satellite images using nothing but your computer, an old TV antenna, and a $20 USB stick? Now you can. At last, the technology exists to turn your computer into a super radio receiver, capable of tuning in to FM, shortwave, amateur ham, and even satellite frequencies, around the world and above it. Listen to police, fire, and aircraft signals, both in the clear and encoded. And with the book's advanced antenna design, there's no limit to the signals you can receive. Combine your desktop or laptop computer with easy-to-find, Software Defined Radio (SDR) equipment, and tune in a wide range of signals in no time at all. Then, go one step further by converting a Raspberry Pi into your own dedicated SDR device. SDR USB dongles are usually designed to receive and decode high-definition digital television broadcasts, but the rising popularity of SDR has led to several of these devices being specifically made for - and marketed to - the software radio crowd. With step-by-step instructions, you'll have no problem getting everything up and running on both Windows and Linux. The antenna is the final piece in the SDR puzzle: Which antenna do you use? What shape do you need? How big does it have to be? And where do you point it? Get all the answers you need and learn what's possible when it comes to picking out or building an antenna. And if you're not particularly handy, don't worry. You can use an old-school set of rabbit ear antennas without too much modification. Discover the fun of this growing hobby and then open your ears to the hidden signals that surround you. What You Need: You will need a relatively recent computer or laptop, running either Windows or Ubuntu Linux. You can also use a Raspberry Pi. All of the software necessary is free and open-source, and the book describes in detail where to get it and how to install it, depending on your operating system.
£14.39
The Pragmatic Programmers Agile Web Development with Rails 6
Learn Rails the way the Rails core team recommends it, along with the tens of thousands of developers who have used this broad, far-reaching tutorial and reference. If you're new to Rails, you'll get step-by-step guidance. If you're an experienced developer, get the comprehensive, insider information you need for the latest version of Ruby on Rails. The new edition of this award-winning classic is completely updated for Rails 6 and Ruby 2.6, with information on system testing, Webpack, and advanced JavaScript. Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly - you concentrate on creating the application, and Rails takes care of the details. Rails 6 brings many improvements, and this edition is updated to cover the new features and changes in best practices. We start with a step-by-step walkthrough of building a real application, and in-depth chapters look at the built-in Rails features. Follow along with an extended tutorial as you write a web-based store application. Eliminate tedious configuration and housekeeping, seamlessly incorporate Ajax and JavaScript, send and receive emails, manage background jobs with ActiveJob, and build real-time features using WebSockets and ActionCable. Test your applications as you write them using the built-in unit, integration, and system testing frameworks, internationalize your applications, and deploy your applications easily and securely. New in this edition is coverage of Action Mailer, which allows you to receive emails in your app as well as ActionText, a zero-configuration rich text editing feature. Rails 1.0 was released in December 2005. This book was there from the start, and didn't just evolve alongside Rails, it evolved with Rails. It has been developed in consultation with the Rails core team. In fact, Rails itself is tested against the code in this book. What You Need: All you need is a Windows, Mac OS X, or Linux machine to do development on. This book will take you through the steps to install Rails and its dependencies. If you aren't familiar with the Ruby programming language, this book contains a chapter that covers the basics necessary to understand the material in the book.
£41.85
The Pragmatic Programmers tmux 2
Your mouse is slowing you down. The time you spend context switching between your editor and your consoles eats away at your productivity. Take control of your environment with tmux, a terminal multiplexer that you can tailor to your workflow. With this updated second edition for tmux 2.2, you'll customize, script, and leverage tmux's unique abilities to craft a productive terminal environment that lets you keep your fingers on your keyboard's home row. You have a database console, web server, test runner, and text editor running at the same time, but switching between them and trying to find what you need takes up valuable time and breaks your concentration. By using tmux 2.2, you can improve your productivity and regain your focus. This book will show you how. This second edition includes many features requested by readers, including how to integrate plugins into your workflow, how to integrate tmux with Vim for seamless navigation - oh, and how to use tmux on Windows 10. Use tmux to manage multiple terminal sessions in a single window using only your keyboard. Manage and run programs side by side in panes, and create the perfect development environment with custom scripts so that when you're ready to work, your programs are waiting for you. Manipulate text with tmux's copy and paste buffers, so you can move text around freely between applications. Discover how easy it is to use tmux to collaborate remotely with others, and explore more advanced usage as you manage multiple tmux sessions, add custom scripts into the tmux status line, and integrate tmux with your system. Whether you're an application developer or a system administrator, you'll find many useful tricks and techniques to help you take control of your terminal.
£15.75
The Pragmatic Programmers Liftoff, 2e
Ready, set, liftoff! Align your team to one purpose: successful delivery. Learn new insights and techniques for starting projects and teams the right way, with expanded concepts for planning, organizing, and conducting liftoff meetings. Real-life stories illustrate how others have effectively started (or restarted) their teams and projects. Master coaches Diana Larsen and Ainsley Nies have successfully "lifted off" numerous agile projects worldwide. Are you ready for success?Every team needs a great start. If you're a business or product leader, team coach or agile practice lead, project or program manager, you'll gain strategic and tactical benefits from liftoffs.Discover new step-by-step instructions and techniques for boosting team performance in this second edition of "Liftoft." Concrete examples from our practices show you how to get everyone on the same page from the start as you form the team. You'll find pointers for refocusing an effort that's gone off in the weeds, and practices for working with teams as complex systems.See how to scale liftoffs for multiple teams across the enterprise, address the three key elements for collaborative team chartering, establish the optimal conditions for learning and improvement, and apply the GEFN (Good Enough for Now) rule for efficient liftoffs. Throughout the book are stories from real-life teams lifting off, as seasoned coaches describe their experiences with liftoffs and agile team chartering.Focused conversations help the team align, form, and build enough trust for collaborating. You'll build a common understanding of the teams' context within business goals. Every liftoff is unique, but success is common!
£17.09
The Pragmatic Programmers Behind Closed Doors - The Secret of Great Management
Great management is difficult to see as it occurs. It's possible to see the results of great management, but it's not easy to see how managers achieve those results. Great management happens in one-on-one meetings and with other managers - all in private. It's hard to learn management by example when you can't see it. You can learn to be a better manager - even a great manager - with this guide. You'll follow along as Sam; a manager just brought on board, learns the ropes and deals with his new team over the course of his first eight weeks on the job. From scheduling and managing resources to helping team members grow and prosper, you'll be there as Sam makes it happen. You'll find powerful tips covering: delegating effectively; using feedback and goal-setting; developing influence; handling one-on-one meetings; coaching and mentoring; deciding what work to do - and what not to do; and more. Full of tips and practical advice on the most important aspects of management, this is one of those books that can make a lasting and immediate impact on your career.
£17.99
The Pragmatic Programmers The Nature of Software Development
You need to get value from your software project. You need it "free, now, and perfect." We can't get you there, but we can help you get to "cheaper, sooner, and better." This book leads you from the desire for value down to the specific activities that help good Agile projects deliver better software sooner, and at a lower cost. Using simple sketches and a few words, the author invites you to follow his path of learning and understanding from a half century of software development and from his engagement with Agile methods from their very beginning. The book describes software development, starting from our natural desire to get something of value. Each topic is described with a picture and a few paragraphs. You're invited to think about each topic; to take it in. You'll think about how each step into the process leads to the next. You'll begin to see why Agile methods ask for what they do, and you'll learn why a shallow implementation of Agile can lead to only limited improvement. This is not a detailed map, nor a step-by-step set of instructions for building the perfect project. There is no map or instructions that will do that for you. You need to build your own project, making it a bit more perfect every day. To do that effectively, you need to build up an understanding of the whole process. This book points out the milestones on your journey of understanding the nature of software development done well. It takes you to a location, describes it briefly, and leaves you to explore and fill in your own understanding. What You Need: You'll need your Standard Issue Brain, a bit of curiosity, and a desire to build your own understanding rather than have someone else's detailed ideas poured into your head.
£17.09
The Pragmatic Programmers Explore It!
Uncover surprises, risks, and potentially serious bugs with exploratory testing. Rather than designing all tests in advance, explorers design and execute small, rapid experiments, using what they learned from the last little experiment to inform the next. Learn essential skills of a master explorer, including how to analyze software to discover key points of vulnerability, how to design experiments on the fly, how to hone your observation skills, and how to focus your efforts. Software is full of surprises. No matter how careful or skilled you are, when you create software it can behave differently than you intended. Exploratory testing mitigates those risks. Part 1 introduces the core, essential skills of a master explorer. You'll learn to craft charters to guide your exploration, to observe what's really happening (hint: it's harder than it sounds), to identify interesting variations, and to determine what expected behavior should be when exercising software in unexpected ways. Part 2 builds on that foundation. You'll learn how to explore by varying interactions, sequences, data, timing, and configurations. Along the way you'll see how to incorporate analysis techniques like state modeling, data modeling, and defining context diagrams into your explorer's arsenal. Part 3 brings the techniques back into the context of a software project. You'll apply the skills and techniques in a variety of contexts and integrate exploration into the development cycle from the very beginning. You can apply the techniques in this book to any kind of software. Whether you work on embedded systems, Web applications, desktop applications, APIs, or something else, you'll find this book contains a wealth of concrete and practical advice about exploring your software to discover its capabilities, limitations, and risks.
£20.69
The Pragmatic Programmers Pomodoro Technique Illustrated: Can You Focus - Really Focus - for 25 Minutes?
You have so much you need to accomplish today. Your list is a mile long and you find yourself getting interrupted every other minute. You'd like to tell everyone to leave you alone, but most of the interruptions are coming from you! You think of a phone call you need to make or a web site you need to check and before you know it you're answering email, checking twitter, and finding a million other things to occupy your time. You need to focus - really focus. "The Pomodoro Technique" puts you back in charge of your day. You'll apply successful techniques from software engineering to identify what you should be doing today and to help you achieve your goals. Your mind won't wander when it is fully engaged in short bursts of focused activity. Learn to work less and accomplish more using nothing more than paper, pencil, and a simple kitchen timer. Set the timer and start on your next Pomodoro. When the bell rings take a break. This personal approach to timeboxing is at the core of the Pomodoro technique and this book is filled with advice on how get started and how to tailor it to your own needs.
£17.99
The Pragmatic Programmers Designing Data Governance from the Ground Up: Six Steps to Build a Data-Driven Culture
Businesses own more data than ever before, but it's of no value if you don't know how to use it. Data governance manages the people, processes, and strategy needed for deploying data projects to production. But doing it well is far from easy: Less than one fourth of business leaders say their organizations are data driven. In Designing Data Governance from the Ground Up, you'll build a cross-functional strategy to create roadmaps and stewardship for data-focused projects, embed data governance into your engineering practice, and put processes in place to monitor data after deployment. In the last decade, the amount of data people produced grew 3,000 percent. Most organizations lack the strategy to clean, collect, organize, and automate data for production-ready projects. Without effective data governance, most businesses will keep failing to gain value from the mountain of data that's available to them. There's a plethora of content intended to help DataOps and DevOps teams reach production, but 90 percent of projects trained with big data fail to reach production because they lack governance. This book shares six steps you can take to build a data governance strategy from scratch. You'll find a data framework, pull together a team of data stewards, build a data governance team, define your roadmap, weave data governance into your development process, and monitor your data in production Whether you're a chief data officer or individual contributor, this book will show you how to manage up, get the buy-in you need to build data governance, find the right colleagues to co-create data governance, and keep them engaged for the long haul.
£21.59
The Pragmatic Programmers Concurrent Data Processing in Elixir: Fast, Resilient Applications with OTP, GenStage, Flow, and Broadway
Learn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or fault-tolerance. Most projects benefit from running background tasks and processing data concurrently, but the world of OTP and various libraries can be challenging. Which Supervisor and what strategy to use? What about GenServer? Maybe you need back-pressure, but is GenStage, Flow, or Broadway a better choice? You will learn everything you need to know to answer these questions, start building highly concurrent applications in no time, and write code that's not only fast, but also resilient to errors and easy to scale. Whether you are building a high-frequency stock trading application or a consumer web app, you need to know how to leverage concurrency to build applications that are fast and efficient. Elixir and the OTP offer a range of powerful tools, and this guide will show you how to choose the best tool for each job, and use it effectively to quickly start building highly concurrent applications. Learn about Tasks, supervision trees, and the different types of Supervisors available to you. Understand why processes and process linking are the building blocks of concurrency in Elixir. Get comfortable with the OTP and use the GenServer behaviour to maintain process state for long-running jobs. Easily scale the number of running processes using the Registry. Handle large volumes of data and traffic spikes with GenStage, using back-pressure to your advantage. Create your first multi-stage data processing pipeline using producer, consumer, and producer-consumer stages. Process large collections with Flow, using MapReduce and more in parallel. Thanks to Broadway, you will see how easy it is to integrate with popular message broker systems, or even existing GenStage producers. Start building the high-performance and fault-tolerant applications Elixir is famous for today. What You Need: You'll need Elixir 1.9+ and Erlang/OTP 22+ installed on a Mac OS X, Linux, or Windows machine.
£28.76
The Pragmatic Programmers From Objects to Functions: Build Your Software Faster and Safer with Functional Programming and Kotlin
Build applications quicker and with less effort using functional programming and Kotlin. Learn by building a complete application, from gathering requirements to delivering a microservice architecture following functional programming principles. Learn how to implement CQRS and EventSourcing in a functional way to map the domain into code better and to keep the cost of change low for the whole application life cycle. If you're curious about functional programming or you are struggling with how to put it into practice, this guide will help you increase your productivity composing small functions together instead of creating fat objects. Switching to the functional paradigm isn't easy when you're used to object-oriented programming. You need more than just lambdas and mapping over collections to get a declarative style and disentangle the state from the computations. Use transformations and compositions to help you write less code with better results. Boost your productivity and harness the power of functional programming by creating real-world applications rather than focusing on theoretical concepts. Work through a series of short exercises to find and compose pure functions, and create data structures that work like algebra. Get rid of mutable state in your software to eliminate the main source of bugs. Apply CQRS and EventSourcing patterns to translate stakeholder requirements into functional design and then into code. See how Kotlin's easy-to-learn syntax and functional-friendly approach make it a great option for a pragmatic language that integrates well with existing Java code and libraries. Leverage functional programming to build and deliver robust applications in less time and with fewer defects. What You Need: The code in this book is designed to allow you to build your application from scratch on Windows, Mac and Linux. You will need a recent IDE, we recommend IntelliJ Community Edition, and Kotlin 1.3.x or later.
£34.65
The Pragmatic Programmers Modern Vim
Turn Vim into a full-blown development environment using Vim 8's new features and this sequel to the beloved bestseller Practical Vim. Integrate your editor with tools for building, testing, linting, indexing, and searching your codebase. Discover the future of Vim with Neovim: a fork of Vim that includes a built-in terminal emulator that will transform your workflow. Whether you choose to switch to Neovim or stick with Vim 8, you'll be a better developer. A serious tool for programmers and web developers, no other text editor comes close to Vim for speed and efficiency. Make Vim the centerpiece of a Unix-based IDE as you discover new ways to work with Vim 8 and Neovim in more than 20 hands-on tips. Execute tasks asynchronously, allowing you to continue in Vim while linting, grepping, building a project, or running a test suite. Install plugins to be loaded on startup - or on-demand when you need them - with Vim 8's new package support. Save and restore sessions, enabling you to quit Vim and restart again while preserving your window layout and undo history. Use Neovim as a drop-in replacement for Vim - it supports all of the features Vim 8 offers and more, including an integrated terminal that lets you quickly perform interactive commands. And if you enjoy using tmux and Vim together, you'll love Neovim's terminal emulator, which lets you run an interactive shell in a buffer. The terminal buffers fit naturally with Vim's split windows, and you can use Normal mode commands to scroll, search, copy, and paste. On top of all that: Neovim's terminal buffers are scriptable. With Vim at the core of your development environment, you'll become a faster and more efficient developer. What You Need: You'll need a Unix-based environment and an up-to-date release of Vim (8.0 or newer). For the tips about running a terminal emulator, you'll need to install Neovim.
£28.79
The Pragmatic Programmers Mazes for Programmers
Unlock the secrets to creating random mazes! Whether you're a game developer, an algorithm connoisseur, or simply in search of a new puzzle, you're about to level up. Learn algorithms to randomly generate mazes in a variety of shapes, sizes, and dimensions. Bend them into Moebius strips, fold them into cubes, and wrap them around spheres. Stretch them into other dimensions, squeeze them into arbitrary outlines, and tile them in a dizzying variety of ways. From twelve little algorithms, you'll discover a vast reservoir of ideas and inspiration. From video games to movies, mazes are ubiquitous. Explore a dozen algorithms for generating these puzzles randomly, from Binary Tree to Eller's, each copiously illustrated and accompanied by working implementations in Ruby. You'll learn their pros and cons, and how to choose the right one for the job. You'll start by learning six maze algorithms and transition from making mazes on paper to writing programs that generate and draw them. You'll be introduced to Dijkstra's algorithm and see how it can help solve, analyze, and visualize mazes. Part 2 shows you how to constrain your mazes to different shapes and outlines, such as text, circles, hex and triangle grids, and more. You'll learn techniques for culling dead-ends, and for making your passages weave over and under each other. Part 3 looks at six more algorithms, taking it all to the next level. You'll learn how to build your mazes in multiple dimensions, and even on curved surfaces. Through it all, you'll discover yourself brimming with ideas, the best medicine for programmer's block, burn-out, and the grayest of days. By the time you're done, you'll be energized and full of maze-related possibilities! What You Need: The example code requires version 2 of the Ruby programming language. Some examples depend on the ChunkyPNG library to generate PNG images, and one chapter uses POV-Ray version 3.7 to render 3D graphics
£27.45
The Pragmatic Programmers The Healthy Programmer
To keep doing what you love, you need to maintain your own systems, not just the ones you write code for. Regular exercise and proper nutrition help you learn, remember, concentrate, and be creative--skills critical to doing your job well. Learn how to change your work habits, master exercises that make working at a computer more comfortable, and develop a plan to keep fit, healthy, and sharp for years to come. Small changes to your habits can improve your health--without getting in the way of your work. The Healthy Programmer gives you a daily plan of action that's incremental and iterative just like the software development processes you're used to. Every tip, trick, and best practice is backed up by the advice of doctors, scientists, therapists, nutritionists, and numerous fitness experts. We'll review the latest scientific research to understand how being healthy is good for your body and mind. You'll start by adding a small amount of simple activity to your day--no trips to the gym needed. You'll learn how to mitigate back pain, carpal tunnel syndrome, headaches, and many other common sources of pain. You'll also learn how to refactor your diet to properly fuel your body without gaining weight or feeling hungry. Then, you'll turn the exercises and activities into a pragmatic workout methodology that doesn't interfere with the demands of your job and may actually improve your cognitive skills. You'll also learn the secrets of prominent figures in the software community who turned their health around by making diet and exercise changes. Throughout, you'll track your progress with a "companion iPhone app":https://itunes.apple.com/us/app/the-healthy-programmer/id576258650. Finally, you'll learn how to make your healthy lifestyle pragmatic, attainable, and fun. If you're going to live well, you should enjoy it. Disclaimer This book is intended only as an informative guide for those wishing to know more about health issues. In no way is this book intended to replace, countermand, or conflict with the advice given to you by your own healthcare provider including Physician, Nurse Practitioner, Physician Assistant, Registered Dietician, and other licensed professionals. Keep in mind that results vary from person to person. This book is not intended as a substitute for medical or nutritional advice from a healthcare provider or dietician. Some people have a medical history and/or condition and/or nutritional requirements that warrant individualized recommendations and, in some cases, medications and healthcare surveillance. Do not start, stop, or change medication and dietary recommendations without professional medical and/or Registered Dietician advice. A healthcare provider should be consulted if you are on medication or if there are any symptoms that may require diagnosis or medical attention. Do not change your diet if you are ill, or on medication except under the supervision of a healthcare provider. Neither this, nor any other book or discussion forum is intended to take the place of personalized medical care of treatment provided by your healthcare provider. This book was current as of January, 2013 and as new information becomes available through research, experience, or changes to product contents, some of the data in this book may become invalid. You should seek the most up to date information on your medical care and treatment from your health care professional. The ultimate decision concerning care should be made between you and your healthcare provider. Information in this book is general and is offered with no guarantees on the part of the author, editor or The Pragmatic Programmers, LLC. The author, editors and publisher disclaim all liability in connection with the use of this book.
£23.85
The Pragmatic Programmers Arduino – A Quick Start Guide 2e
Arduino is an open-source platform that makes DIY electronics projects easier than ever. Gone are the days when you had to learn electronics theory and arcane programming languages before you could even get an LED to blink. Now, with this new edition of the bestselling Arduino: A Quick-Start Guide, readers with no electronics experience can create their first gadgets quickly. This book is up-to-date for the new Arduino Zero board, with step-by-step instructions for building a universal remote, a motion-sensing game controller, and many other fun, useful projects. This Quick-Start Guide is packed with fun, useful devices to create, with step-by-step instructions and photos throughout. You'll learn how to connect your Arduino to the Internet and program both client and server applications. You'll build projects such as your own motion-sensing game controller with a three-axis accelerometer, create a universal remote with an Arduino and a few cheap parts, build your own burglar alarm that emails you whenever someone's moving in your living room, build binary dice, and learn how to solder. In one of several new projects in this edition, you'll create your own video game console that you can connect to your TV set. This book is completely updated for the new Arduino Zero board and the latest advances in supporting software and tools for the Arduino. Sidebars throughout the book point you to exciting real-world projects using the Arduino, exercises extend your skills, and "What If It Doesn't Work" sections help you troubleshoot common problems. With this book, beginners can quickly join the worldwide community of hobbyists and professionals who use the Arduino to prototype and develop fun, useful inventions. What You Need: This is the full list of all parts you'd need for all projects in the book; some of these are provided as part of various kits that are available on the web, or you can purchase individually. Sources include adafruit.com, makershed.com, radioshack.com, sparkfun.com, and mouser.com. Please note we do not support or endorse any of these vendors, but we list them here as a convenience for you. * Arduino Zero (or Uno or Duemilanove or Diecimila) board * USB cable * Half-size breadboard * Pack of LEDs (at least 3, 10 or more is a good idea) * Pack of 100 ohm, 10k ohm, and 1k ohm resistors * Four pushbuttons * Breadboard jumper wire / connector wire * Parallax Ping))) sensor * Passive Infrared sensor * An infrared LED * A 5V servo motor * Analog Devices TMP36 temperature sensor * ADXL335 accelerometer breakout board * 6 pin 0.1" standard header (might be included with the ADXL335) * Nintendo Nunchuk Controller * Arduino Ethernet shield * Arduino Proto shield and a tiny breadboard (optional but recommended) * Piezo speaker/buzzer (optional) * Tilt sensor (optional) * A 25-30 Watts soldering iron with a tip (preferrably 1/16") * A soldering stand and a sponge * A standard 60/40 solder (rosin-core) spool for electronics work
£24.29
The Pragmatic Programmers Build an Awesome PC, 2014 Edition
Custom-build your own dream PC, have fun doing it, and save yourself a lot of money in the process. This book will give you the confidence to buy the best-of-class components and assemble them with clear, step-by-step instructions. You'll build your own PC capable of effortlessly running the most graphic and CPU-intensive games, graphics software, and programming compilers available today. And because it's a PC that you built yourself, you'll be able to keep it up to date with the latest hardware innovations. Build your own high-end personal computer capable of running the latest cutting-edge software. Easy-to-follow instructions and plenty of photos show you how to assemble your computer from start to finish, carefully pointing out areas of interest and best practices for each major component used. All PC parts from power supplies, graphics cards, RAM, CPUs, cooling fans, and cases are covered, along with a number of PC peripherals. The book will give you the confidence and freedom to build your PC just the way you want it. Each chapter focuses on a major PC function, shows you the best parts to buy, and illustrates how they fit within the build. Start with a well ventilated case and energy efficient power supply. Then install a state-of-the-art motherboard and blazingly fast CPU. Add ultra-fast memory along with solid state and traditional disk-based storage. Connect the power and data cables to this cutting-edge collection of hardware. Finish up with a multi-functional keyboard, mouse, and other high-end peripherals. With each step, you'll discover how the computer technologies recommended in the book work together to deliver the ultimate PC hardware experience. And once you're finished building your new PC, you'll learn additional techniques that will future-proof it for years to come. What You Need: A variety of PC parts and operating system software (Windows or Linux).
£13.50
The Pragmatic Programmers Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better
f you program in C++ you've been neglected. Test-driven development (TDD) is a modern software development practice that can dramatically reduce the number of defects in systems, produce more maintainable code, and give you the confidence to change your software to meet changing needs. But C++ programmers have been ignored by those promoting TDD--until now. In this book, Jeff Langr gives you hands-on lessons in the challenges and rewards of doing TDD in C++. Modern C++ Programming With Test-Driven Development, the only comprehensive treatment on TDD in C++ provides you with everything you need to know about TDD, and the challenges and benefits of implementing it in your C++ systems. Its many detailed code examples take you step-by-step from TDD basics to advanced concepts. As a veteran C++ programmer, you're already writing high-quality code, and you work hard to maintain code quality. It doesn't have to be that hard. In this book, you'll learn: * how to use TDD to improve legacy C++ systems * how to identify and deal with troublesome system dependencies * how to do dependency injection, which is particularly tricky in C++ * how to use testing tools for C++ that aid TDD * new C++11 features that facilitate TDD As you grow in TDD mastery, you'll discover how to keep a massive C++ system from becoming a design mess over time, as well as particular C++ trouble spots to avoid. You'll find out how to prevent your tests from being a maintenance burden and how to think in TDD without giving up your hard-won C++ skills. Finally, you'll see how to grow and sustain TDD in your team. Whether you're a complete unit-testing novice or an experienced tester, this book will lead you to mastery of test-driven development in C++. What You Need * A C++ compiler running under Windows or Linux, preferably one that supports C++11. Examples presented in the book were built under gcc 4.7.2. * Google Mock 1.6 (downloadable for free; it contains Google Test as well) or an alternate C++ unit testing tool. Most examples in the book are written for Google Mock, but it isn't difficult to translate them to your tool of choice. * A good programmer's editor or IDE. * cmake, preferably. Of course, you can use your own preferred make too. CMakeLists.txt files are provided for each project. Examples provided were built using cmake version 2.8.9. * Various freely-available third-party libraries are used as the basis for examples in the book. These include: - cURL - JsonCpp - Boost (filesystem, date_time/gregorian, algorithm, assign) Several examples use the boost headers/libraries. Only one example uses cURL and JsonCpp.
£28.79
The Pragmatic Programmers The Agile Samurai
Get ready to kick some software project butt. Enter the world of the agile samurai, where the most dire of software project situations are dispatched with ease and grace. By learning the ways of the agile samurai you will discover: * how to create plans and schedules your customer and your team can believe in * what characteristics make a good agile team and how to form your own * how to gather requirements in a fraction of the time using agile user stories * what to do when you discover your schedule is wrong, and how to look like a pro correcting it * how to execute fiercely by leveraging the power of the agile software engineering practices By the end of this book you will know everything you need to set up, execute, and successfully deliver agile projects. If you're a project lead, this book gives you the tools to set up and lead your agile project from start to finish. If you are an analyst, programmer, tester, usability designer, or project manager, this book gives you the insight and foundation necessary to become a valuable agile team member. Packed with best practices, war stories, and hands-on tutorial exercises, The Agile Samurai slices away the fluff and theory that make other books un-agile. This book will make a difference.
£25.19
The Pragmatic Programmers The Passionate Programmer
Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself; don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical 'Act on It' sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.
£17.09
The Pragmatic Programmers RSpec Book: Behaviour Driven Development with Rspec, Cucumber, and Friends
Behaviour Driven Development is about writing software that matters. It is an approach to agile software development that takes cues from Test Driven Development, Domain Driven Design, and Acceptance Test Driven Planning. RSpec and Cucumber are the leading Behaviour Driven Development tools in Ruby. RSpec supports Test Driven Development in Ruby through the BDD lens, keeping your focus on design and documentation while also supporting thorough testing and quick fault isolation. Cucumber, RSpec's steadfast companion, supports Acceptance Test Driven Planning with business-facing, executable requirements documentation that helps to ensure that you are writing relevant software targeted at real business needs. "The RSpec Book" will introduce you to RSpec, Cucumber, and a number of other tools that make up the Ruby BDD family. Replete with tutorials and practical examples, the "RSpec Book" will help you get your BDD on, taking you from executable requirements to working software that is clean, well tested, well documented, flexible and highly maintainable.
£27.89
The Pragmatic Programmers Learn to Program
It's easier to learn how to program a computer than it has ever been before. Now everyone can learn to write programs for themselves - no previous experience is necessary. Chris Pine takes a thorough, but lighthearted approach that teaches you the fundamentals of computer programming, with a minimum of fuss or bother. Whether you are interested in a new hobby or a new career, this book is your doorway into the world of programming. Computers are everywhere, and being able to program them is more important than it has ever been. But since most books on programming are written for other programmers, it can be hard to break in. At least it used to be. Chris Pine will teach you how to program. You'll learn to use your computer better, to get it to do what you want it to do. Starting with small, simple one-line programs to calculate your age in seconds, you'll see how to write interactive programs, to use APIs to fetch live data from the internet, to rename your photos from your digital camera, and more. You'll learn the same technology used to drive modern dynamic websites and large, professional applications. Whether you are looking for a fun new hobby or are interested in entering the tech world as a professional, this book gives you a solid foundation in programming. Chris teaches the basics, but also shows you how to think like a programmer. You'll learn through tons of examples, and through programming challenges throughout the book. When you finish, you'll know how and where to learn more - you'll be on your way. What You Need: All you need to learn how to program is a computer (Windows, macOS, or Linux) and an internet connection. Chris Pine will lead you through setting set up with the software you will need to start writing programs of your own.
£33.29
The Pragmatic Programmers Apple Game Frameworks and Technologies: Build 2D Games with SpriteKit & Swift
Design and develop sophisticated 2D games that are as much fun to make as they are to play. From particle effects and pathfinding to social integration and monetization, this complete tour of Apple's powerful suite of game technologies covers it all. Familiar with Swift but new to game development? No problem. Start with the basics and then layer in the complexity as you work your way through three exciting - and fully playable - games. In the end, you'll know everything you need to go off and create your own video game masterpiece for any Apple platform. Discover the power of Apple Game Frameworks, Xcode, and Swift by building three exciting games: Gloop Drop - a new twist on a classic arcade game, Val's Revenge - a roguelike dungeon crawler, and Hog - a social player vs. player mobile dice game. With Apple Game Frameworks, you can create high-performance, power-efficient games that work across all Apple platforms, including iOS, macOS, tvOS, and watchOS. In this book, you'll discover how to... Design and develop rich 2D gaming experiences using Apple's built-in game frameworks. Harness the power of SpriteKit using Xcode and Swift to create engaging player experiences. Use the visual Scene Editor to build complete scenes. Unleash the power of the Particle Editor to create amazing effects. Use GameplayKit to add advanced features to your games like pathfinding, artificial intelligence, and complex rule systems. Build larger, more complex worlds with tile maps and Xcode's visual Tile Map editor. Bring people together using GameKit and Game Center, Apple's social gaming network. Increase revenue with third-party banner ads and rewarded ads using Google AdMob (TM). Monetize your games with StoreKit and in-app purchases. So, grab your gear and get your game on - it's time to level up your skills. What You Need: macOS Mojave 10.14.6 or newer Xcode 11.3 or newer Basic knowledge of Swift 5.1.4 or newer
£37.35
The Pragmatic Programmers Build Talking Apps for Alexa: Creating Voice-First, Hands-Free User Experiences
Voice recognition is here at last. Alexa and other voice assistants have now become widespread and mainstream. Is your app ready for voice interaction? Learn how to develop your own voice applications for Amazon Alexa. Start with techniques for building conversational user interfaces and dialog management. Integrate with existing applications and visual interfaces to complement voice-first applications. The future of human-computer interaction is voice, and we'll help you get ready for it. For decades, voice-enabled computers have only existed in the realm of science fiction. But now the Alexa Skills Kit (ASK) lets you develop your own voice-first applications. Leverage ASK to create engaging and natural user interfaces for your applications, enabling them to listen to users and talk back. You'll see how to use voice and sound as first-class components of user-interface design. We'll start with the essentials of building Alexa voice applications, called skills, including useful tools for creating, testing, and deploying your skills. From there, you can define parameters and dialogs that will prompt users for input in a natural, conversational style. Integrate your Alexa skills with Amazon services and other backend services to create a custom user experience. Discover how to tailor Alexa's voice and language to create more engaging responses and speak in the user's own language. Complement the voice-first experience with visual interfaces for users on screen-based devices. Add options for users to buy upgrades or other products from your application. Once all the pieces are in place, learn how to publish your Alexa skill for everyone to use. Create the future of user interfaces using the Alexa Skills Kit today. What You Need: You will need a computer capable of running the latest version of Node.js, a Git client, and internet access.
£34.65
The Pragmatic Programmers 3D Game Programming for Kids 2e
You know what's even better than playing games? Programming your own! Make your own online games, even if you're an absolute beginner. Let your imagination come to 3D life as you learn real-world programming skills with the JavaScript programming language - the language used everywhere on the web. This new edition is completely revised, and takes advantage of new programming features to make game programming even easier to learn. Plus, new effects make your games even cooler. When you're done, you're going to be amazed at what you can create. Jump right in! Start programming cool stuff on page 1. Keep building new and different things until the very last page. This book wants you to play. Not just play games, but play with code. Play with programming. Because the best way to learn something is to have fun with it! This second edition is updated from start to finish to make it even easier to get started programming in JavaScript. Every example has been updated to make it easier, with new example games to explore and new 3D effects that make your games even more fun! Want a red donut? You can make hundreds of them, spinning around like mad. Want to create a star field? Make a hundred or a thousand stars. Make them red, green, or blue. Explosions? Fireworks? Planets? It's up to you. And, using a code editor created especially for this book, you'll program right in your web browser. You'll see the results of your work and imagination right away - right next to the code that you just typed! Along the way, you'll pick up a ton of programming knowledge, and dive in even deeper with some more advanced chapters. Whatever you want to do, this book has your back. Best of all, you get to create awesome games and say, I made this! What You Need: You need the latest version of the Google Chrome Web browser, available for free from https: //chrome.google.com. You also need an Internet connection to access the ICE Code Editor the first time. ICE Code Editor will be loaded onto your computer, so you won't need Internet access for later projects.
£34.65
The Pragmatic Programmers Scalable Cloud Ops with Fugue: Declare, Deploy, and Automate the Cloud
Harness the promise of the cloud with Fugue, an operating system built for the cloud. Program cloud infrastructure in a fraction of the time it takes with current tools, debug infrastructure at design time, and centralize your change control process. Written by the Fugue development team, this is the definitive resource to scalable cloud operations with Fugue. Cloud computing represents the greatest shift in computing in more than a decade. But the promise of the cloud is unrealized. The cloud isn't just about shedding the physical data center - it's about shedding the data center mindset. Cloud infrastructure can be controlled via API calls. This means we can view it as a giant general-purpose compute - and program it. That's where the Fugue operating system and the Ludwig language come in. They automate the creation, operation, enforcement, and termination of infrastructure in the cloud. This definitive Fugue guide starts with a simple website and moves on to a more robust application with evolving infrastructure needs as you walk through the steps to harnessing the cloud. With Amazon Web Services, launch infrastructure quickly. Debug in design time. Automate deployment and enforcement of your cloud. Centralize your change control process and automate continuous auditing. Rest easy knowing configuration drift, unwanted changes, and infrastructure quality issues are addressed, continuously and automatically. Hands-on chapters lead you through creating this application step by step. If you're a software engineer, architect, DevOps professional, or enterprise team leader using cloud computing for running applications and websites, this book will change the way you view cloud computing. What You Need: An Amazon Web Services (AWS) account and a basic familiarity with the AWS Console.
£34.65
The Pragmatic Programmers Rails, Angular, Postgres and Bootstrap: Powerful, Effective, Efficient, Full-Stack Web Development
Achieve awesome user experiences and performance with simple, maintainable code! Embrace the full stack of web development, from styling with Bootstrap, building an interactive user interface with Angular 4, to storing data quickly and reliably in PostgreSQL. With this fully revised new edition, take a holistic view of full-stack development to create usable, high-performing applications with Rails 5.1. Rails is a great tool for building web applications, but it's not the best at everything. Embrace the features built into your database. Learn how to use front-end frameworks. Seize the power of the application stack through Angular 4, Bootstrap, and PostgreSQL. When used together, these powerful and easy-to-use tools will open you to a new world of possibilities. This second edition is updated to cover Angular - a completely reworked front-end framework - and dives into new Postgres 9.6 features such as UPSERT. Also new is Webpack coverage, to develop the front-end code for your Rails application. Create a usable and attractive login form using Bootstrap's styles, while ensuring the database table backing it is secure using Postgres' check constraints. See how creating an advanced Postgres index for a case-insensitive search speeds up your back end - enabling you to create a dynamic user experience using Angular 4. Create reusable components that bring Bootstrap and Angular together and effectively use materialized views for caching within Postgres. Get your front end working with Webpack, use Postgres' features from migrations, and write unit tests for all of it. All of this within Rails 5.1. You'll gain the confidence to work at every level of the application stack, bringing the right solution to every problem. What You Need: This book covers Postgres 9.5, Rails 5, and Ruby 2.3. You should have some experience with basic Rails concepts and a cursory understanding of JavaScript, CSS, and SQL, but by no means need to be an expert. You'll learn how to install Postgres on your computer or use a free version of it in the cloud.
£28.79