Skip to content

{ Category Archives } advancement of the self

No True Humpty-Dumpty

Words change meaning. Technical words change meaning. Sometimes, you need to check out a specific commit of a word’s meaning from the version control, to add context to a statement. “I’m talking about Open Source in its early meaning of Free Software without the confusion over Free, not its later meaning as an ethically empty […]

To become a beginner, first become an expert

We have a whole load of practices in programming that only really work well if you’re already good at whatever the process is supposed to help with. Scrum is a process improvement framework, but only if you already know how to do process improvement. If you don’t, then Scrum is just the baseline mini-waterfall process […]

Discovery

I think the last technical conference I attended was FOSDEM last year, and now I’m sat in the lobby of the Royal Library of Brussels working on a project that I want to take to some folks at this year’s FOSDEM, and checking the mailing lists of some projects I’m interested in to find meetups […]

All the things

It’s been a long time since I had a side project, or one that didn’t get abandoned very early on. I tend to get sidetracked by other thoughts about computing, or think “while I’m doing this, I’m leaving that unsolved” so nothing gets very far. In an attempt to address that, to clear all of […]

Considered harmless

Don’t like a new way of working? Just point out the absurdity of suggesting that the old way was broken: Somehow, the microservices folks have failed to notice all that software that was in fact delivered as monoliths. What the Rust Evangelism Strike Force doesn’t realise is that we’ve spent decades successfully building C programs […]

On books

I’d say that if there’s one easy way to summarise how I work, it’s as an information focus. I’m not great at following a solution all the way to the bitter end so you should never let me be a programmer (ahem): when all that’s left is the second 90% of the effort in fixing […]

Working Effectively with Legacy Code

I gave a talk to my team at ARM today on Working Effectively with Legacy Code by Michael Feathers. Here are some notes I made in preparation, which are somewhat related to the talk I gave. This may be the most important book a software developer can read. Why? Because if you don’t, then you’re […]

Tsundoku

I only have the word of the internet to tell me that Tsundoku is the condition of acquiring new books without reading them. My metric for this condition is my list of books I own but have yet to read: the last three parts of Christopher Tolkien’s Histories of Middle-Earth Strategic Information Management: Challenges and […]

Answer: none of them

A question programmers frequently ask when they’re considering career growth or personal learning is “which programming language should I learn next?” Why would learning another programming language help? If you only know one programming language and it is provided by a single vendor, then learning another will decouple your success from theirs, but that might […]

On the extremes of computer science

I didn’t study computer science at school or university, and still manage to work as a programmer. That is not to say that I don’t need to know some things that are taught on computer science courses. Just this week I’ve had to build a couple of different data structures and understand their running time: […]