Found in 8 comments on Hacker News
I can highly recommend the following tool: Mastering Regular Expressions by Jeffrey Friedl

I found the pacing to be excellent, with complimentary exercises and that it was educational as both a cheatsheet and a coherent text. Learned a lot from it, despite being experienced from the outset.

jlg23 · 2017-10-11 · Original thread
For those who prefer a more in-depth introduction than a blog post: Jeffrey Friedl's "Mastering Regular Expression"[1] covers the theory as well while still being very pleasant to read (I only know the first edition, apparently there are more recent ones).


Annatar · 2016-05-15 · Original thread
This helped me master regular expressions:

once I read that, it was AWK forever.

jdkanani · 2015-09-07 · Original thread
"Mastering Regular Expressions" by Jeffrey E. F. Friedl - It's not on particular programming language or recently updated, but related and very helpful.
demetris · 2012-05-04 · Original thread
I don’t know about must-read ones, but here are a few No Starch and O’Reilly titles that stand out from a quick look at my library:

No Starch, Eloquent JavaScript. A Modern Introduction to Programming:

No Starch, The Book of CSS3:

O’Reilly, bash Cookbook:

O’Reilly, CSS: The Missing Manual, 2nd Edition:

O’Reilly, JavaScript: The Good Parts:

O’Reilly, Mastering Regular Expressions, 3rd Edition:

O’Reilly, The Art of SEO, 2nd Edition:

pasbesoin · 2012-01-08 · Original thread
If you want some "down and dirty" simply practical knowledge, read up on regular expressions. (Be sure to read up on the better cautions associated with using them, as well.) I would recommend Jeffrey Friedl's book, "Mastering Regular Expressions".

One other caveat about this, though. They make more sense and the topic is more motivating when you have a significant amount of text munging to accomplish (as I did, at one point).

Nonetheless, I remember some years ago being astonished at some of the Java code I saw being written, at not insignificant amounts of programmer time and with a bevy of mistakes, to accomplish simple pattern matching in use cases where a regular expression would have been more appropriate and more efficient -- both to write and probably in execution.

The developers, despite being fairly seasoned, just weren't familiar with the paradigm. A few years later, they were using them "all over the place".

nikcub · 2011-04-06 · Original thread
The best way to learn the UNIX tools is in the context of shell scripting and using the combination of tools to achieve a purpose (such as parsing log files, setting up shortcuts as part of your dev toolchain)

1. Understand the philosophy behind UNIX. ie. everything is a file and it is small apps that are very good at a single task that can be combined through pipes etc. to process larger tasks (this has lost its way somewhat in Linux, but still holds true)

2. Look at your computer usage through development, sysadmin, etc. and find parts that you want to automate, and then set out to write scripts to complete these tasks. for eg. in each one of my projects I have a script called which has a bunch of tasks implemented (eg. backup, serve, dns (to update dyndns for callbacks), push, diff, deploy, stage (run remote commands) etc.). Remember that git is itself a set of shell scripts, as are most server management commands. Take a peak inside each of these to learn how they are implemented.

3. Once you have a good understanding of what you want to implement, just go for it. Learn along the way by using Bash scripting, regular expressions, an understanding of UNIX/Linux, sed, awk, yacc/bison (to analyze code and extract info). You will end up building your own collection of shell scripts, environment variables, .vimrc, ssh, curl (you can do almost any API request and auth with curl and a shell script - automate tweets, RSS feeds) etc. (I have been meaning to publish my own, the most recent one I wrote greps my code for TODO's and pushes them to a simple webapp where I can view them, sort them, etc. along side my 'personal' todo list)

4. You need two sets of resources, one is for learning, the other is for reference which you keep handy. Here are my own recommendations:


The learning style book comes down a lot to personal preference. You can go wrong, so get a feel for each topic by reading online tutorials and then scan the TOC and sample chapters of books that look good. A subscription to O'Reilly Safari comes in handy. There are now also a lot of screencasts online, try searching YouTube for the topic with 'screencast' or 'tutorial', once you find a good screencast publisher look at the rest of his/her videos.

You can also get the O'Reilly books on special in bundles sometimes, check their website

There is no book that really introduces UNIX and then covers most of these topics as I described. ie. 'UNIX for Developers'.


- FreeBSD handbook:

- Linux Documentation Project:

- Linux Command Line and Shell Scripting Bible:

- UNIX In a Nutshell (I haven't read this in a while but it is on my shelf):

- Learning UNIX (also O'Reilly):

* Bash:


- (better, and v good)

- Learning the Bash shell:

- Advanced Bash Scripting (online):

- YouTube playlist:

* Regular Expressions:

- Mastering Regular Expressions (this is such a great book. I didn't like regexp until I picked this up eons ago):

* sed/awk/grep etc.

- sed & awk (O'Reilly):

* Vim/Vi:

- vimcasts (screencasts):

- more screencasts (these are great):

- learning vi:


On my browser toolbar, I have a folder called '_ref', it has around 70+ bookmarks (online documentation, cheatsheats) in it each titled what the link is a reference for (ie. 'vi', 'bash' etc.). I will publish it online, and will post the links here. I have collected the links over years.

weaksauce · 2009-10-30 · Original thread
Making money, overcoming presentation anxiety, selling, art.

Edit: If you need help on the regular expressions you might want to pick up the mastering regular expressions book from o'reilly. It's a great book for that:

Fresh book recommendations delivered straight to your inbox every Thursday.