This post lists my programming ebooks with details like PDF/EPUB purchase links, GitHub repos, web versions, testimonials, etc. All my ebooks are self-published. You can get these ebooks individually or as part of bundles. You can also read them online for free.

Bundles πŸ“š

All books bundle

Poster created using Canva

  • All books bundle: gumroad
  • Awesome regex: leanpub or gumroad
    • Python, Ruby, JavaScript Regular expressions
    • GNU grep, ripgrep, GNU sed, GNU awk CLI tools (BRE/ERE, PCRE, Rust regex crate, PCRE2)
    • Vim regexp
  • Magical one-liners: leanpub or gumroad
    • GNU grep, ripgrep, GNU sed, GNU awk, Ruby, Perl CLI tools
  • Learn by example Python bundle: leanpub or gumroad
    • Intro, Regular expressions and Projects
  • Ruby Text processing: leanpub or gumroad
    • Ruby regular expressions, Ruby One-Liners Guide

Bundles with other indie authors:


Testimonials 😍

I love your books on regex...As a student from the Digital VLSI space, it is indeed useful now and definitely in the future. It's really well written and really easy to understand the examples.

β€” feedback on reddit

It's very thorough, written with care, and presented in a way that makes sense. Even as an intermediate Python programmer, I found use in this book.

β€” feedback by Andrew Healey on Hacker News for "100 Page Python Intro"

Step up your cli fu with this fabulous intro & deep dive into awk. I learned a ton of tricks!

β€” feedback on twitter

Your Practice Python Projects book is really helping me to reinforce my knowledge and mastery of Python as I'm learning.

β€” feedback on twitter

In my opinion the book does a great job of quickly presenting examples of how commands can be used and then paired up to achieve new or interesting ways of manipulating data. Throughout the text there are little highlights offering tips on extra functionality or limitations of certain commands. For instance, when discussing the shuf command we're warned that shuf will not work with multiple files. However, we can merge multiple files together (using the cat command) and then pass them to shuf. These little gems of wisdom add a dimension to the book and will likely save the reader some time wondering why their scripts are not working as expected.

β€” book review by Jesse Smith on distrowatch.com for "Command line text processing with GNU Coreutils"

Literally was having a mini-breakdown about not understanding Regex in algorithm solutions the other day and now I'm feeling so much better, so thank YOU! I genuinely feel like I'm developing the skill for spotting when and where to use them after so much practice!

β€” feedback on twitter

This Ruby one-liners cookbook is incredible. Pretty mind boggling all the stuff you can do.

β€” feedback on twitter

Hi, great work releasing this! Trying to explain vim concisely is always an interesting challenge and I had a great time reading your attempt in this book. I always find it really interesting on how people try to group certain vim functions in a way that makes sense to people that don't use vim. I think you cover that idea pretty well in your 'Vim philosophy and features' section whilst not making it overly abstract and keeping it relatable.

β€” feedback on Hacker News by doix for "Vim Reference Guide"

I consider myself pretty experienced at shell-fu and capable of doing most things I set out to achieve in either bash scripts or fearless one-liners. However, my awk is rudimentary at best, I think mostly because it's such an unforgiving environment to experiment in. These books you've written are great for a bit of first principles insight and then quickly building up to functional usage. I will have no hesitation in referring colleagues to them!

β€” feedback on Hacker News

Thank you for choosing to write and share your knowledge. I read your books on CLI and sed - I think they are very comprehensive and very well explained. Keep up the great work

β€” feedback on twitter

This is fantastic! πŸ‘ I use Perl one-liners for record and text processing a lot and this will be definitely something I will keep coming back to - I’ve already learned a trick from β€œContext Matching” (9) πŸ™‚

β€” feedback on Linux@lemmy.ml

Nice book! I just started trying to get into linux today and you have some tips I haven’t found elsewhere and the text is an enjoyable read so far.

β€” feedback on reddit


100 Page Python Intro

Short, introductory guide for the Python programming language, suited for those already familiar with programming basics.

100 Page Python Intro book cover image

Cover art: Ilsa Olson


Understanding Python re(gex)?

Learn Python Regular Expressions step-by-step from beginner to advanced levels with 300+ examples. Both re and regex modules are covered. Exercises are also included to test your understanding.

Understanding Python re(gex)? cover image


Practice Python Projects

Know Python basics but don't know what to do next? Take the next step in your programming journey with real world inspired Python projects.

Practice Python Projects cover image


Understanding JavaScript RegExp

Learn JavaScript Regular Expressions step-by-step from beginner to advanced levels with hundreds of examples and exercises.

Understanding JavaScript RegExp cover image


CLI text processing with GNU grep and ripgrep

Example based guide to mastering GNU grep and ripgrep. Exercises are also included to test your understanding.

CLI text processing with GNU grep and ripgrep cover image


CLI text processing with GNU sed

Example based guide to mastering GNU sed. Exercises are also included to test your understanding.

CLI text processing with GNU sed cover image


CLI text processing with GNU awk

Example based guide to mastering GNU awk one-liners. Exercises are also included to test your understanding.

CLI text processing with GNU awk cover image


Understanding Ruby Regexp

Learn Ruby Regular Expressions step-by-step from beginner to advanced levels with hundreds of examples and exercises.

Understanding Ruby Regexp cover image


Ruby One-Liners Guide

Example based guide for text processing with Ruby from the command line. Exercises are also included to test your understanding.

Ruby One-Liners Guide cover image


Perl One-Liners Guide

Example based guide for text processing with Perl from the command line. Exercises are also included to test your understanding.

Perl One-Liners Guide cover image


Command line text processing with GNU Coreutils

You might be already aware of popular coreutils commands like head, tail, tr, sort, etc. This book will teach you more than twenty of such specialized text processing tools provided by the GNU coreutils package.

Command line text processing with GNU Coreutils cover image


Vim Reference Guide

This is intended as a concise learning resource for beginner to intermediate level Vim users. It has more in common with cheatsheets than a typical text book. Topics like Regular Expressions and Macros have more detailed explanations and examples due to their complexity. I hope this guide would make it much easier for you to discover Vim features and learning resources than my own blundering experience.

Vim Reference Guide cover image


Computing from the Command Line

This ebook aims to teach Linux command line tools and Shell Scripting for beginner to intermediate level users. The main focus is towards managing your files and performing text processing tasks. Plenty of examples are provided to make it easier to understand a particular tool and its various features. Exercises at the end of chapters will help you practice what you've learned and solutions are provided for reference. I hope this ebook would make it much easier for you to discover CLI tools, features and learning resources than my own blundering experience.

Computing from the Command Line cover image