
Regular expressions are an extremely powerful tool for manipulating text and data. They are now standard features in a wide range of languages and popular tools, including Perl, Python, Ruby, Java, VB.NET and C# (and any language using the.NET Framework), PHP, and MySQL. If you don't use regular expressions yet, you will discover in this book a whole new world of mastery over your data. If you already use them, you'll appreciate this book's unprecedented detail and breadth of coverage. If you think you know all you need to know about regular expressions, this book is a stunning eye-opener. As this book shows, a command of regular expressions is an invaluable skill. Regular expressions allow you to code complex and subtle text processing that you never imagined could be automated. Regular expressions can save you time and aggravation. They can be used to craft elegant solutions to a wide range of problems. Once you've mastered regular expressions, they'll become an invaluable part of your toolkit. You will wonder how you ever got by without them. Yet despite their wide availability, flexibility, and unparalleled power, regular expressions are frequently underutilized. Yet what is power in the hands of an expert can be fraught with peril for the unwary. Mastering Regular Expressions will help you navigate the minefield to becoming an expert and help you optimize your use of regular expressions.
- UNIX and Linux System Administration Handbook. Get the most recently volume. It's a tomb (~1200 for the most recent).
- If you do any SQL, SQY Performance Explained is an 80/20 read for DB indexes, query optimization, and troubleshooting
- A Philosophy of Software Design (more recent). Just a great book on good design considerations to keep in mind.
- Mastering Regular Expressions. The first half of the book will make you confident. The second half will show you how they're implemented. Regular expressions aren't something to be afraid of!
- Designing Data Intensive Applications (more recent). Great book about data infra design decisions. Maybe not the scope you're looking for though.
- Design Patterns (Gang of Four). Absolute classic. Hard to read all the way through though, more of a reference read. You'll recognize a lot of the patterns. You'll find some great to see a formal definition of, and you'll see some you never want to use.
- Clean Architecture - Uncle Bob's best book IMO. I really don't like Clean Code, but this book talks a lot about interfaces and the right level of separation in your systems.
- K&R, as you mentioned, is of course a classic
- The AWK Programming Language is a nice quick read with similar quality and structure to K&R.
- Beej's Guide to Network Programming. The best overview of network programming, including the C API. Plus this book is genuinely funny. Beej has a ton of great stuff, all on their website for free, or in print.
- The Rust Programming Language is very well written too. Also online for free or in print.
- Networking for Systems Administrators, by Michael W. Lucas. Its explicit goal is to teach you just enough about networking, from the electron up, that you can talk to an actual network engineer and not make a fool out of yourself. It's a phenomenally high-ROI read if networking isn't your strong suit.
- The first 3 chapters of Mastering Regular Expressions. Regexes are up there with Vim keybindings in terms of sheer ubiquitous use no matter what stack you find yourself in. The rest of the book is excellent if you want to actually implement a regex engine.
- The Art of Unix Programming. Less technical. Gives you an idea of why exactly 'nix machines are like that, especially older commands. The 18 rules of design are worth committing to memory.
- The Linux Programming Interface. More technical. Pairs esp nicely with the above. Lots of practice C code one can run, plenty of short self-contained chapters.
- Not a book, but an online paper: https://how.complexsystems.fail . I see echoes of this everywhere I work, and it often helps me understand what kinds of "bad" things are secretly highly evolved resiliency measures.
- The Little Schemer. Just for the joy of solving problems.
Most of the others I can think of are too specialized to be of worth to everyone, but for what it's worth, William S. Vincent's Django for Beginners, APIs, and Professionals are a lovely triptych for anyone wanting to get into backend web dev.
https://github.com/pengbo-learn/books/blob/master/Mastering%...
Using regexes to parse structured data -- HTML, XML, JSON, CSV, etc. -- usually a bad idea. Use an XML or HTML parser, JSON decoder, CSV interpreter. Dealing with the quotes and escaped characters too fragile with regular expressions.
That and practice. I frequently check them with online regex tools to make sure the regex does what I want before I implement them.
It's been many years but I remember it as both thorough and easy to understand.