Scrappy Parsing

I love parsing! I really do. There's something very satisfying about converting input into usable data structures that help me accomplish some task.

Parsing is important. How well we construct those data structures and the quality of the structures we choose can massively impact the work that comes after. We should probably all be worrying about parsing a little more than we do.

The good news is that Elixir is the best language I have ever worked with for doing serious parsing. Let's prove it. Let's pull the data out of a SQLite database file using vanilla Elixir and some tricks from my Scrappy Programmer Livebook series. (You don't need to have read that to follow along with this article. Everyone is welcome.)

Read more →

Junior Pairing Scripts

When there's a large skill gap between two or more pairing developers, it can become a frustrating experience for everyone involved. I suspect this happens more often when more junior folks are at the keyboard.

Experienced developers have learned a high level language to communicate with their peers about problems that their less skilled partners may not yet be fluent in. If they are forced to downgrade from, "Let's make a map," to, "Type a percent sign followed by an opening curly brace," they are now operating with one brain tied behind their back. That's the simple stuff too. Rope data structures, Schwartzian transforms, and adding a custom GenServer to the application's supervision tree are right out!

The junior is not in a better position. They often feel like their job is to understand as much as possible of what the other person is doing to learn from it. Of course, it's common for most problems to quickly exceed their capacity for taking things in and, once they are overwhelmed, it's easy to feel like they can't bring any knowledge they've acquired to bear in a useful manner. It's totally understandable if they essentially shut down in such circumstances. The hope of learning is no longer on the table.

The good news is that I believe there is a better and easier way.

Read more →

Math Not Required

There's an age old debate in programming about whether or not there's a lot of math involved. Do you need to be a math geek to become a good programmer?

At the risk of spoiling this entire article: I don't think you do.

Why do I say that and what do I think this debate is really about? That I won't spoil…

Read more →

Easier Recursion

I definitely understand the sentiment behind the L. Peter Deutsch quote, "To iterate is human, to recurse divine." I enjoy an elegant recursive solution as much as other programmers, but lately I've been playing with another style of coding up similar needs that might just be easier and more flexible.

Read more →