We a good story
Quick delivery in the UK

Books published by The Pragmatic Programmers

Filter
Filter
Sort bySort Popular
  • - XCTest Tips and Techniques Using Swift
    by Jon Reid
    £36.99

    Fearlessly change the design of your iOS code with solid unit tests. Use Xcode's built-in test framework XCTest and Swift to get rapid feedback on all your code - including legacy code. Learn the tricks and techniques of testing all iOS code, especially view controllers (UIViewControllers), which are critical to iOS apps.

  • - Amplify Your Influence
    by Antonio Cangiano
    £36.99

    Successful technical blogging is not easy but it's also not magic. Use these techniques to attract and keep an audience of loyal, regular readers. Leverage this popularity to reach your goals and amplify your influence in your field. Get more more users for your startup or open source project, or simply find an outlet to share your expertise.

  • by Fred Hebert
    £35.49

    Property-based testing helps you create better, more solid tests with little code. By using the PropEr framework in both Erlang and Elixir, this book teaches you how to automatically generate test cases, test stateful programs, and change how you design your software for more principled and reliable approaches. You will be able to better explore the problem space, validate the assumptions you make when coming up with program behavior, and expose unexpected weaknesses in your design. PropEr will even show you how to reproduce the bugs it found. With this book, you will be writing efficient property-based tests in no time.Most tests only demonstrate that the code behaves how the developer expected it to behave, and therefore carry the same blind spots as their authors when special conditions or edge cases show up. Learn how to see things differently with property tests written in PropEr.Start with the basics of property tests, such as writing stateless properties, and using the default generators to generate test cases automatically. More importantly, learn how to think in properties. Improve your properties, write custom data generators, and discover what your code can or cannot do. Learn when to use property tests and when to stick with example tests with real-world sample projects. Explore various testing approaches to find the one that's best for your code. Shrink failing test cases to their simpler expression to highlight exactly what breaks in your code, and generate highly relevant data through targeted properties. Uncover the trickiest bugs you can think of with nearly no code at all with two special types of properties based on state transitions and finite state machines.Write Erlang and Elixir properties that generate the most effective tests you'll see, whether they are unit tests or complex integration and system tests.What You NeedBasic knowledge of Erlang, optionally Elixir>= 20.0, with Rebar >= 3.4.0>= 20.0, Elixir >= 1.5.0

  • by Frances Buontempo
    £35.49

    Self-driving cars, natural language recognition, and online recommendation engines are all possible thanks to Machine Learning. Now you can create your own genetic algorithms, nature-inspired swarms, Monte Carlo simulations, cellular automata, and clusters. Learn how to test your ML code and dive into even more advanced topics. If you are a beginner-to-intermediate programmer keen to understand machine learning, this book is for you.Discover machine learning algorithms using a handful of self-contained recipes. Build a repertoire of algorithms, discovering terms and approaches that apply generally. Bake intelligence into your algorithms, guiding them to discover good solutions to problems.In this book, you will:Use heuristics and design fitness functions.Build genetic algorithms.Make nature-inspired swarms with ants, bees and particles.Create Monte Carlo simulations.Investigate cellular automata.Find minima and maxima, using hill climbing and simulated annealing.Try selection methods, including tournament and roulette wheels.Learn about heuristics, fitness functions, metrics, and clusters.Test your code and get inspired to try new problems. Work through scenarios to code your way out of a paper bag; an important skill for any competent programmer. See how the algorithms explore and learn by creating visualizations of each problem. Get inspired to design your own machine learning projects and become familiar with the jargon.What You Need:>= C++11), Python (2.x or 3.x) and JavaScript (using the HTML5 canvas). Also uses matplotlib and some open source libraries, including SFML, Catch and Cosmic-Ray. These plotting and testing libraries are not required but their use will give you a fuller experience. Armed with just a text editor and compiler/interpreter for your language of choice you can still code along from the general algorithm descriptions.

  • by Mark Pearl
    £21.49

    Build systems faster and more effectively with Mob Programming. Mob Programming is an approach to developing software that radically reduces defects and key-person dependencies by having a group of people work together at a single machine. See how to avoid the most common pitfalls that teams make when first starting out. Discover what it takes to create and support a successful mob. Now you can take collaborative programming to the next level with Mob Programming.Mob Programming is a natural extension of the popular Pair Programming concept, and is not restricted to a specific programming language or technology. It can be used by anyone who develops software, including dev leads, software developers, and agile coaches. The more people working on a bug or feature results in fewer dependencies on individuals, and overall increased learning for everyone involved. With more eyes on the code, you'll find you develop better solutions with fewer defects.Set up your team for success by introducing Mob Programming in a way that benefits them. Create a good first Mobbing experience for your team with a template that avoids the common traps beginners may fall into. Master a collaborative and empathic mindset to help optimize the Mobbing experience. Learn how to make adjustments when things go wrong. Adapt your mobbing to different types of development tasks. Get management buy-in for your Mobbing experiment by demonstrating the benefits. Discover the equipment and resources you need, and how to adjust your workspace for an effective mob.Get important features to market sooner, squish bugs faster, and collaborate better today with Mob Programming.What You Need:All you need is three or more programmers, a meeting workspace that's large enough to accommodate your mob, and a computer on which to work.

  • by Chris Adamson
    £35.49

    Learn the critical tips and techniques to make using Xcode for the iPhone, iPad, or Mac easier, and even fun. Explore the features and functionality of Xcode you may not have heard of. Go under the hood to discover how projects really work, so when they stop working, you'll know how to fix them. Explore the common problems developers face when using Xcode, and find out how to get the most out of your IDE. Dig into Xcode, and you'll discover it's richer and more powerful than you might have thought.Get a huge productivity boost by working with Xcode instead of against it. Instead of hacky code fixes and manual processes, once you know the the why and how of Xcode's process, you'll discover that doing things Xcode's way makes your app development more elegant and less aggravating.Explore the major features of Xcode: project management, building UIs with storyboards, code editing, compiling apps, fixing bugs and performance problems, unit- and UI testing, and source code management. Go beyond the basics and explore tasks that professionals deal with when they're working on big projects. Create storyboards that many developers can work on at once, even as projects grow to hundreds or thousands of files. Find the tools that make the code editor pleasant to work with, even in long coding sessions. Discover the right way to find and fix bugs when you have lots of code that's not always playing nicely together.Dig into specific and little-discussed features that help developers on Apple's other platforms: macOS, watchOS, and tvOS. When you're ready to distribute your app, learn how Apple's code-signing system really works. Find out when to let Xcode handle it automatically, and how to do it manually when needed.Discover how much easier and more fun iOS development is when you know the secrets of the tools.What You Need:This book requires Xcode 9 and a Mac running macOS High Sierra (10.13.2) or later. Additionally, an iOS device is recommended for on-device testing but not required.

  • by Drew Neil
    £30.99

    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.

  • by Rob Isenberg
    £28.49

    Docker does for DevOps what Rails did for web development--it gives you a new set of superpowers. Gone are works on my machine woes and lengthy setup tasks, replaced instead by a simple, consistent, Docker-based development environment that will have your team up and running in seconds. Gain hands-on, real-world experience with a tool that's rapidly becoming fundamental to software development. Go from zero all the way to production as Docker transforms the massive leap of deploying your app in the cloud into a baby step. Docker makes life as a Ruby and Rails developer easier. It helps build, ship, and run your applications, solving major problems you face every day. It allows you to run applications at scale, adding new resources as needed. Docker provides a reliable, consistent environment that's guaranteed to work the same everywhere. Docker lets you do all things DevOps without needing a PhD in infrastructure and operations. Want to spin up a cluster to run your app? No problem. Scale it up or down at will? You bet. Start by running a Ruby script without having Ruby installed on the local machine. Then Dockerize a Rails application and run it using containers, including creating your own custom Docker images tailored for running Rails apps. Describe your app declaratively using Docker Compose, specifying the software dependencies along with everything needed to run the application. Then set up continuous integration, as well as your deployment pipeline and infrastructure. Along the way, find out the best practices for using Docker in development and production environments. This book gives you a solid foundation on using Docker and fitting it into your development workflow and deployment process. What You Need: All you need is a Windows, Mac OS X or Linux machine to do development on. This book guides you through the process of installing Docker. Some basic familiarity with Linux/Unix is recommended even if you're using a Windows machine.

  • - Create Interactive Worlds with JavaScript
    by Chris Strom
    £36.99

  • by Dmitry Zinoviev
    £28.49

    Construct, analyze, and visualize networks with networkx, a Python language module. Network analysis is a powerful tool you can apply to a multitude of datasets and situations. Discover how to work with all kinds of networks, including social, product, temporal, spatial, and semantic networks. Convert almost any real-world data into a complex network--such as recommendations on co-using cosmetic products, muddy hedge fund connections, and online friendships. Analyze and visualize the network, and make business decisions based on your analysis. If you're a curious Python programmer, a data scientist, or a CNA specialist interested in mechanizing mundane tasks, you'll increase your productivity exponentially. Complex network analysis used to be done by hand or with non-programmable network analysis tools, but not anymore! You can now automate and program these tasks in Python. Complex networks are collections of connected items, words, concepts, or people. By exploring their structure and individual elements, we can learn about their meaning, evolution, and resilience. Starting with simple networks, convert real-life and synthetic network graphs into networkx data structures. Look at more sophisticated networks and learn more powerful machinery to handle centrality calculation, blockmodeling, and clique and community detection. Get familiar with presentation-quality network visualization tools, both programmable and interactive--such as Gephi, a CNA explorer. Adapt the patterns from the case studies to your problems. Explore big networks with NetworKit, a high-performance networkx substitute. Each part in the book gives you an overview of a class of networks, includes a practical study of networkx functions and techniques, and concludes with case studies from various fields, including social networking, anthropology, marketing, and sports analytics. Combine your CNA and Python programming skills to become a better network analyst, a more accomplished data scientist, and a more versatile programmer. What You Need: You will need a Python 3.x installation with the following additional modules: Pandas (>=0.18), NumPy (>=1.10), matplotlib (>=1.5), networkx (>=1.11), python-louvain (>=0.5), NetworKit (>=3.6), and generalizesimilarity. We recommend using the Anaconda distribution that comes with all these modules, except for python-louvain, NetworKit, and generalizedsimilarity, and works on all major modern operating systems.

  • by Ludovico Fischer
    £21.49

    When traditional web development techniques don't cut it, try React. Use React to create highly interactive web pages faster and with fewer errors. With a little JavaScript experience under your belt, you'll be up and running in no time creating dynamic web applications. Craft isolated components that make your apps easier to develop and maintain, with plenty of guidance on best practices. Set up automated tests, and make pages render fast for your users. See how to use your React skills to integrate with other front-end technologies when needed.Dive right into React by defining components, the basic building blocks of a React application. Integrate modern JavaScript language features such as classes and arrow functions in your app. Analyze the relationships in your data to isolate state, and sync the data model with what your users see.Once you're familiar with how a React application works, organize your code base with modules. Configure a production build and deliver your app as efficiently as possible with Webpack. Master testing with React-specific advice and tools to catch the most bugs with the least amount of code. Learn the basics of the Redux library. Define actions and manage an immutable central state with reducers, then connect Redux to your React components to build even larger and more complex interfaces. Package your React code as a standalone widget so anyone can use it in their own applications. Reuse existing JavaScript code in your React components, and build a new React view on top of an existing data model shared with a legacy application.When you finish this book, you'll be well on your way to solving your front-end problems with React.What You Need:Node.js 6.x or later, and a modern web browser.

  • by Ulisses Almeida
    £33.49

    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.

  • by Jim Wilson
    £26.49

    Node.js is the platform of choice for creating modern web services. This fast-paced book gets you up to speed on server-side programming with Node.js 8, as you develop real programs that are small, fast, low-profile, and useful.

  • - Powerful, Effective, Efficient, Full-Stack Web Development
    by David B. Copeland
    £30.99

    With this fully revised new edition, take a holistic view of full-stack development to create usable, high-performing applications with Rails 5.1.

  • by Hampton Lintorn Catlin
    £22.99

    This ultimate guide to using Sass, written by its creator, is updated and expanded with all the new features found in Sass 3.4, making you an expert in no time.

  • by Michael Swaine
    £36.99

    Explore functional programming and discover new ways of thinking about code. You know you need to master functional programming, but learning one functional language is only the start. In this book, through articles drawn from PragPub magazine and articles written specifically for this book, you'll explore functional thinking and functional style and idioms across languages. Led by expert guides, you'll discover the distinct strengths and approaches of Clojure, Elixir, Haskell, Scala, and Swift and learn which best suits your needs.Contributing authors: Rich Hickey, Stuart Halloway, Aaron Bedra, Michael Bevilacqua-Linn, Venkat Subramaniam, Paul Callaghan, Jose Valim, Dave Thomas, Natasha Murashev, Tony Hillerson, Josh Chisholm, and Bruce Tate. Functional programming is on the rise because it lets you write simpler, cleaner code, and its emphasis on immutability makes it ideal for maximizing the benefits of multiple cores and distributed solutions. So far nobody's invented the perfect functional language - each has its unique strengths. In Functional Programming: A PragPub Anthology, you'll investigate the philosophies, tools, and idioms of five different functional programming languages.See how Swift, the development language for iOS, encourages you to build highly scalable apps using functional techniques like map and reduce. Discover how Scala allows you to transition gently but deeply into functional programming without losing the benefits of the JVM, while with Lisp-based Clojure, you can plunge fully into the functional style. Learn about advanced functional concepts in Haskell, a pure functional language making powerful use of the type system with type inference and type classes. And see how functional programming is becoming more elegant and friendly with Elixir, a new functional language built on the powerful Erlang base.The industry has been embracing functional programming more and more, driven by the need for concurrency and parallelism. This collection of articles will lead you to mastering the functional approach to problem solving. So put on your explorer's hat and prepare to be surprised. The goal of exploration is always discovery.What You Need:Familiarity with one or more programming languages.

  • by Jonathan Rasmusson
    £22.99

    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.

  • by Venkat Subramaniam
    £28.49

    Updated to Scala 2.11, with in-depth coverage of new features such as Akka actors, parallel collections, and tail call optimization, this book will show you how to create stellar applications.

  • by Marcus Zarra
    £29.49

    Core Data is intricate, powerful, and necessary. Discover the powerful capabilities integrated into Core Data, and how to use Core Data in your iOS and OS X projects. All examples are current for OS X El Capitan, iOS 9, and the latest release of Core Data.

  • by . Chromatic
    £26.49

    A Perl expert can solve a problem in a few lines of well-tested code. Now you can unlock these powers for yourself. Modern Perl teaches you how Perl really works. It's the only book that explains Perl thoroughly, from its philosophical roots to the pragmatic decisions that help you solve real problems- and keep them solved.

  • by Karl Duuna
    £28.49

    Cyber-criminals have your web applications in their crosshairs. They search for and exploit common security mistakes in your web application to steal user data. Learn how you can secure your Node.js applications, database and web server to avoid these security holes.

  • by Trevor Burnham
    £22.99

    This extensively revised and updated new edition includes an all-new project to demonstrate CoffeeScript in action, both in the browser and on a Node.js server. There's no faster way to learn to write a modern web application.

Join thousands of book lovers

Sign up to our newsletter and receive discounts and inspiration for your next reading experience.