Making Code Speak

A weblog of tools, techniques, styles and habits for programming with fluency.

Tiny Projects

On Twitter yesterday, Amy Hanlon asked everyone for lists of short self-contained programming projects, and I realized I’ve been collecting one of those in my head for the past few years. Time to get it out of my head and onto a blog!

Energy level permitting, I try to spend a lot of time practicing my development skills. And because of my priorities as a developer – integrating early and often, responding to changes, not building what’s not needed, incremental delivery – I prefer projects with a real UI that can work end-to-end, rather than narrower things like math problems. For me, a good exercise project has a few key features:

My List

With all that in mind, here are some of the projects I’ve found myself coming back to in my years of practice:

Moar Lists

This isn’t the only list of toy projects! There are a bunch of others out there that are similar in spirit. A few I know of:

Finally…

Many thanks to Danielle Sucher for pointing out that my Twitter spam on this topic yesterday would make for a good blog post, and to Amy Hanlon for bringing it up in the first place. This was apparently just the encouragement I needed to start blogging again!

So, how about you? Do you have any favorite programming problems you use for practice? (Oh yeah, I’m also experimenting with having comments here.)

posted by Moss on 18 April 2014

Haskell Roguelike Challenge: Retrospective

A week and change after I intended to, I’m ready to write up some notes on the Haskell coding challenge I started a little while back. Since I don’t have a lot of specific points in mind, I’m going to try to do this in a sort of Agile-retrospective-for-one style.

Read more...

posted by Moss on 18 February 2014

Haskell Roguelike Challenge Day 3

Three days into my seven days of Haskell roguelikes:

Read more...

posted by Moss on 06 February 2014

A Coding Exercise: Seven Days of Haskell Roguelikes

Background

Read more...

posted by Moss on 03 February 2014

Refactoring When The Tooling Isn't There

So Justin Searls wrote a great post the other day on The Failures of “Intro to TDD”, and then Bob Martin wrote a great counterpoint to it. Both the posts are well worth reading, though these days I find that the latter of the two is closer to my own practice. But what I really want to talk about is Angela Harms’s response, calling attention to the way Bob Martin’s article is shaped by working in languages with strong refactoring tools:

Read more...

posted by Moss on 30 January 2014

Process Forest Fire: An Agile Game

“Individuals and interactions over processes and tools,” says the Agile Manifesto. And yet, almost all the various Agile methods do bring along some processes.

Read more...

posted by Moss on 24 January 2014

The Tiniest Step Is No Step At All

In conversation with a friend the other day, I realized that I’d left out an important part of the tiny steps post from the other day: sometimes the right move is not to take a step at all.

Read more...

posted by Moss on 21 January 2014

Why I Almost Love Implicit Subject

Steve Klabnik was asking about RSpec’s implicit subject feature earlier today on Twitter:

Read more...

posted by Moss on 18 January 2014

Tiny Steps: What I Learned

In the last year or two, I’ve been pushing myself to limit the length of my TDD cycles. In particular, I’ve been trying to spend no more than five minutes writing a test, making it pass, or refactoring from one passing state to another. I went in skeptical, despite having heard this advice in one form or another from several people I respect, but I’ve been astonished by how much it’s helped me improve my work.

Read more...

posted by Moss on 15 January 2014

A Plea for Terse Class Definition Syntax

I recently tried to tweet about an idea that doesn’t remotely fit into 140 characters.

Read more...

posted by Moss on 13 January 2014

Autotest Everything with Rerun

I love continuous testing. In Ruby, I can do it easily with autotest, but other languages aren’t so fortunate – or else I’m new to them, and haven’t learned the ecosystem.

Read more...

posted by Moss on 10 January 2014

Vim as a Haskell IDE

I’ve started getting into Haskell recently, and, coincidentally, I’ve also gotten back into Vim. In the process, I’ve been pleased to discover some surprisingly excellent Haskell plugins for Vim.

Read more...

posted by Moss on 08 January 2014

Why "Making Code Speak"?

So, why the title?

Read more...

posted by Moss on 06 January 2014