Introduction
Welcome to the SICPers newsletter!
Thank you for taking a risk on my new venture! I do a lot of helping programmers to become software engineers on the internet. The goal of this newsletter is to collect that, alongside some of the articles I find that help me on my own journey down that path.
Now, why would you want this? Well I've been in this field for two decades, I've worked on my own companies, at small startups, and at Silicon Valley giants, I teach software engineering to professionals and I research the profession of software engineering. In short, I have a lot of experience in software engineering, I still have a lot to learn about it, and I want to share what I've learnt with you and learn what you share with me.
It's supposed to be the start of a conversation, not a broadcast. Please do reply, share in your blogs/streams, discuss these articles in your workplace, encourage your friends to sign up. And please suggest other content I've missed that follow on the threads introduced in this issue!
Graham.
Writing
Falsehoods these programmers believed about countries
I don’t often get to talk about my work projects directly in my blog, though posts are often inspired by them (sometimes a few years after the fact). My current project is all free software (MIT licensed) and developed in the open though, so it’s fair game! Here are the problems I found with looking up countries by name in a global database of Covid-19 case records.
De Programmatica Ipsum—Issue #40: Skeuomorphism
The current issue of De Programmatica Ipsum reflects well the goal of the magazine: to reflect on long-running trends, changes, and developments in software engineering. The whole debate about skeuomorphic or flat design was a flash in the pan occasioned by the change in Apple's visual language when iOS 7 came out, but here we look at the long lasting effects on user experience and information architecture.
Video
Episode 35 : [objc retain];
The most recent episode of [objc retain]; was supposed to be the start of our XCTest-compatible testing library, but we didn't actually get that far. We had a lot of interesting conversations about (and with!) the community and sharing what we do, which led to the creation of this newsletter.
DosAmigans - Twitch
The Dos Amigans are Steven Baker, and Graham Lee: Software developers who love the Amiga. In yesterday's show we spent an hour talking about the communities around various programming languages, then started to code up an animation feature in "reyaktion", our ARexx-controlled animation tool.
Audio
Episode 48: The Personal Software Process
The latest episode of the Structure and Interpretation of Computer Programmers podcast. I look at the PSP from Watts Humphrey of the Software Engineering Institute, a self-improvement process for software engineers that in some ways shows its age but in others is still a useful way to think about reflecting on and improving our work.
Around the web
There’s No Such Thing as Clean Code
Steve is right, "clean code" is highly contextual. It depends on my preferences, my background, and my understanding of the problem the code is trying to solve. Different people will be able to say "I don't think this code is clean", for different reasons. It's better to focus on whether the code does what you need of it, and talk about why it does or doesn't satisfy your needs.
As Chile Drafts New Constitution, 'Citizen Proposals' Urge Free Software and User Freedom - Slashdot
This is huge. If the signatures are gathered, Chile could be the first country with free software in its constitution.
Is TDD Dead? (2014)
In these videos from 2014, David Heinemeier Hannson, Kent Beck and Martin Fowler discuss whether to use test-driven development and some design trade-offs involved. You get a deep insight into how these experts think about their work, and I wish there were more discussions like this around.
Functional Programming for the Object-Oriented Programmer
Brian Marick's book, introducing functional programming in Clojure by teaching you how to build an Object-Oriented dispatch system, is now free, but you can still pay if you wish. It's a great read, and the style resonates strongly with my "Trojan horse" theme of explaining FP using examples from OOP and vice versa.