On Perfection

This is a bit of stream of consciousness with some light editing. I wrote it quickly on my iPad, so it’s pretty rough. It’s better than nothing though.

I’ve always thought of myself as a perfectionist especially when it comes to the code that I write and the projects that I work on. This tenancy can be useful since it has allowed me to dive deep into many topics, but it also limits my productivity. I’ve spent so much time learning how to model data and implement data access layer code that I never had the opportunity to build anything of consequence with what I learned. I know quite a lot about Java and the JVM, but it only comes in handy once in a while.

Factorio is one of my favorite games. It’s a game with a simple premise. You’re stuck on an alien planet and need to get off of it by building a factory which can ultimately produce a spaceship.

I found that the game perfectly captures many aspects of programming. One thing that it made me realize is the clear trade-off of doing something right versus a quick-and-dirty hack to just get some item in my factory on the production line.

I’ve noticed that I’m much more critical when reading code not written by me. I’ll give myself a pass because I had to get this code shipped today, or because I was focused on fixing the real problems. I like writing good code. Not necessarily because it has any concrete, intrinsic value, but because writing good code makes me a programmer. I do think that there are many advantages to my functional, OOP, data-oriented style.

It can be especially crippling when I have a deadline and perception that I’m unable to do things right. It’s oft said that the best is the enemy of the good, and that’s something that I truly struggle with. Why would I do something if I can’t do it my way — if I can’t do it perfectly? Obviously I’d do it because it needs to be done, but that’s not something I get motivation from. That’s not why I’m a programmer. I’m a programmer because I enjoy making things that work, with code that I can take pride in.

Recent posts from blogs that I like

The Dutch Golden Age: Aelbert Cuyp 1

Trained as a landscape painter, he used his landscapes for genre scenes, animal and human portraits, even myths and a religious work, and was influenced by Claude Lorrain.

via The Eclectic Light Company

Highlights from my appearance on the Data Renegades podcast with CL Kao and Dori Wilson

via Simon Willison

Notes on the WASM Basic C ABI

The WebAssembly/tool-conventions repository contains "Conventions supporting interoperability between tools working with WebAssembly". Of special interest, in contains the Basic C ABI - an ABI for representing C programs in WASM. This ABI is followed by compilers like Clang with the wasm32 target. R...

via Eli Bendersky