Having trouble reading this email? View it in your browser.
New This Week

Second Chance Spring 50% Off Sale »

If you missed out on anything in this year's Spring Sales Event or if you're already ready to take on new topics, we've got some great news for you. For one week only, we're giving you one more chance to pick up any of the 48 sale titles for 50% off. Go and graphs, Rust and LiveView, Tailwind and more—it's all back and at prices you won't see again for a very long time. Scroll down for the full list and promo code.

Recently Released:


Coming Up Next:

  • Python Testing with pytest, Second Edition
  • Portable Python Projects

Best Sellers:

Make sure you haven't missed anything!

  1. A Common-Sense Guide to Data Structures and Algorithms, Second Edition
  2. Hands-on Rust
  3. Programming Phoenix LiveView
  4. Modern CSS with Tailwind
  5. Distributed Services with Go

See all best sellers...

PragProg Second Chance Spring Sale
May 26, 2021

Enter coupon code SpringSecondChance2021 at checkout to save 50% on any of the following titles:

Offer not valid for previous purchases. Expires June, 2 2021.

Modern CSS with Tailwind
Use Tailwind, a flexible CSS framework made up of simple utilities, to easily style your website for all devices, no matter their size.

Practical Microservices
Practical Microservices dispels the confusion around microservices, showing readers how to build projects for long-term developer productivity.

Design and Build Great Web APIs
This fast-paced and comprehensive book covers all the critical aspects of programming web APIs with NodeJS, including design, build, test, security, and deployment.

Web Development with Clojure, Third Edition
Use Clojure to create a series of web apps of growing complexity and explore the full process of web development using a modern functional language.

Build Websites with Hugo
Build your next website using Hugo, the fast static site generator that makes web development fun again.

Real-Time Phoenix
Build and deploy real-time, scalable applications using Phoenix Channels to optimize performance and minimize resource use.

Agile Web Development with Rails 6
Get the comprehensive insider information you need for Rails 6 with the new edition of this award-winning classic.

Modern Front-End Development for Rails
With Rails 6, TypeScript, Webpacker, Stimulus, and React you can efficiently build rich user interaction into your websites using the best of both server and client-side tools.

Apple Game Frameworks and Technologies
Build 2D games with SpriteKit and Swift. Add clever features like pathfinding, artificial intelligence, and complex rule systems to your games with GameplayKit.

Build Talking Apps for Alexa
This book will introduce you to the exciting topic of voice user interfaces, building applications known as "skills" for the Alexa platform.

Kotlin and Android Development featuring Jetpack
With Kotlin and Jetpack, Android development is now smoother and more enjoyable than ever before. Dive right in by developing two complete Android apps.

Explore Software Defined Radio
Combine your Raspberry Pi, desktop computer, or laptop with easy-to-find Software Defined Radio (SDR) equipment, and tune in a wide range of signals in no time at all.

A Combine Kickstart
This hands-on, fast-moving kickstart introduces you to the future of declarative and reactive programming on Apple platforms.

A SwiftUI Kickstart
This is one of those moments where everything changes. SwiftUI is the future for developers targeting Apple platforms and A SwiftUI Kickstart is designed to quickly get experienced Swift developers up and running with clear code-along examples.

Build Location-Based Projects for iOS
Build location-based apps in Swift that use Core Location, Core Graphics, MapKit, and ARKit to enhance your outdoor experience, and share them in the App Store.

Programming Flutter
Get native look and feel and performance in your Android and iOS apps, and the ability to build for both platforms from a single code base.

Genetic Algorithms in Elixir
Explore the power of genetic algorithms through practical examples, all in a language you already know.

Python Brain Teasers
Use the quirks in Python as a teaching opportunity with 30 simple, mind-bending programs.

Pandas Brain Teasers
This book contains 25 simple programs that will challenge your understanding of Pandas.

Go Brain Teasers
Think you know Go? Put your skills to the test with 25 simple challenges that will leave you scratching your head.

Powerful Command-Line Applications in Go
Design, build, and test fast, reliable, cross-platform command-line tools using the Go programming language.

Resourceful Code Reuse
Avoid the drawbacks and harness the benefits associated with seven code reuse models in Python and C.

Programming DSLs in Kotlin
Create expressive and elegant domain specific languages in Kotlin, allowing advanced users to interact with your applications more effectively.

Quantum Computing
Get your hands on a real quantum computer, and use it to solve problems in ways you never thought possible.

Hands-on Rust
Make fun games as you learn the Rust programming language through a series of hands-on game development tutorials and real-world use of core language skills.

Adopting Elixir
Everything you need to know to take your application from concept to production, from business case to production performance.

Learn to Program, Third Edition
A gentle, lighthearted, practical introduction into computer programming for the total beginner.

Practical Programming, Third Edition
Solve real-world problems as you learn the fundamentals of programming using Python 3.

Technical Blogging, Second Edition (+audio)
This practical guide shows you how to share your technical expertise online—to amplify your influence, impact your field, and gain recognition.

Small, Sharp Software Tools
Master the command line to improve and optimize your software development experience.

Modern Vim
Using new features from version 8 of Vim, learn how to extend your editor and make it the centerpiece of a Unix-based IDE.

Essential 555 IC
Build unique and clever projects, and learn how to use the most important integrated circuit ever made, the 555 timer.

Become an Effective Software Engineering Manager
The software industry needs great managers. We need you. Here’s how to start.

Practical Ways to Manage Yourself
Lead and serve others with ease when you learn to become a modern manager and manage yourself.

Practical Ways to Lead & Serve (Manage) Others
Become a great manager by leading and serving others.

Practical Ways to Lead an Innovative Organization
Want to create a culture of innovation? Work as management teams and encourage learning and experimentation.

Help Your Boss Help You
Craft your dream role at work by guiding your manager to take your priorities into account when making decisions.

Software Estimation Without Guessing
A pragmatic approach to identifying the needs for software development estimation and choosing methods that can meet those needs.

Fixing Your Scrum
Find and solve your Scrum pain points using practical solutions that you can implement right away to build high-performing product teams.

Competing with Unicorns
Ship software faster and scale like an enterprise while working like a startup, using lessons from the world’s best tech companies.

Intuitive Python
Develop your intuition for practical Python patterns as you use new modules and tools to write clean, efficient, and correct Python code.

Programming Machine Learning
A zero-to-hero machine learning tutorial for software developers, from simple programs to deep learning.

Software Design X-Rays
Novel techniques to prioritize technical debt and uncover organizational issues in large-scale codebases.

The Ray Tracer Challenge
Challenge yourself and code a photorealistic 3D renderer from scratch, test-first, with shadows, reflections, and support for a half-dozen graphics primitives.

A Common-Sense Guide to Data Structures and Algorithms, Second Edition
Big O notation can make your code faster by orders of magnitude. Get the hands-on info you need to master data structures and algorithms for your daily work.

Forge Your Future with Open Source
A comprehensive guide to how and why to contribute to free and open source software projects.

Testing Elixir
Write tests for your Elixir applications, including unit and integration tests for OTP-based modules, asynchronous code, Ecto-based modules, and Phoenix projects.

Concurrent Data Processing in Elixir
Leverage concurrency by using OTP, GenStage, Flow, and Broadway to build high-performance applications and data processing pipelines.

You Could Be a Published Author

Is there a tech topic you are deeply passionate about and want to share with the rest of us? You could become a published Pragmatic Bookshelf author! Take a look at our pragprog.com/become-an-author page for details, including our 50% royalty (yes, for real!) and world-class development editors.

Remember, the best way to tell the future is to create it.

Who Are We?

The Pragmatic Bookshelf publishing imprint is wholly owned by The Pragmatic Programmers, LLC.

Andy Hunt and Dave Thomas founded the company with a simple goal: to improve the lives of professional developers. We create timely, practical books, audio books, and videos on classic and cutting-edge topics to help you learn and practice your craft.

We are not a giant, faceless, greed-soaked corporation. We're a small group of experienced professionals committed to helping make software development easier.

Thank you for your continued support!

Don't Get Left Out

Are your friends jealous that you get these spiffy email newsletters and they don't? Clue them in that all they need to do is sign up at pragprog.com.

Tell your friends! Tweet this

Follow us on Twitter for the latest news, commentary, and occasional discounts: @pragprog, Andy Hunt @PragmaticAndy.

Thanks for your continued support.

By Professional Developers, for Professional Developers

Sent by the Pragmatic Programmers, LLC. • 9650 Strickland Rd Ste 103-255• Raleigh NC 27615