From 86f21e6020e3da17fee6d256d9a73d2da255e520 Mon Sep 17 00:00:00 2001 From: wgroeneveld Date: Wed, 20 Dec 2023 14:48:45 +0100 Subject: [PATCH] be a selfish AND a caring programmer --- .../post/2023/12/be-a-selfish-programmer.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/content/post/2023/12/be-a-selfish-programmer.md b/content/post/2023/12/be-a-selfish-programmer.md index c8723e31..3d3710c6 100644 --- a/content/post/2023/12/be-a-selfish-programmer.md +++ b/content/post/2023/12/be-a-selfish-programmer.md @@ -22,3 +22,22 @@ For example, I want to create a piece of software that tracks our daughter's wei Justin did precisely that. By being a Selfish Programmer, making all the choices and mistakes himself, he wrote a small app to aid his Japanese learning path. By being selfish, he (re-)discovered the joy of making simple things, and, of course, learned a lot along the way. We software developers _have_ to be continuous learners; it's part of our job. The Selfish Programmer just happens to be exploring the more egocentric path. I'll let Justin do the talking/convincing here. Go watch the talk. I assure you it'll be worth your precious time. + +--- + +## But also be a Caring Programmer + +Vlad-Ștefan Harbuz' [Caring Programmer Manifesto](https://vladh.net/manifesto) touches on similar topics that Selfish Programmers try to lay bare: + +> We seem to have lost our understanding of what the computer is actually doing under all that code. We barely know how the dependencies we are `npm install`-ing work, let alone what the CPU is doing. More than that, if we had to develop, from scratch, one of these tools or frameworks that we use on a daily basis, we'd probably be lost. + +The fact that so many similar ethical, philosophical, and technological concerns are popping up is not a coincidence. Perhaps the [From Nand to Tetris course](https://www.nand2tetris.org/), that has you build a modern computer from first principles, should be obligatory---especially for enterprise software people. Not just _back to basics_, but also back to _understanding_ and programming with _responsibility_. + +Vlad-Ștefan suggests the following to be a caring programmer: + +1. Profile your code and be unforgiving about performance. +2. Write your own code. +3. Understand that programming isn't magic. +4. Understand the lower-level technologies you are building your work on. + +Read the manifesto yourself---after watching Justin's talk---and tell me what you think.