Liked An app can be a home-cooked meal (Robin Sloan)
For a long time, I have struggled to articulate what kind of programmer I am. I’ve been writing code for most of my life, never with any real discipline, but/and I can, at this point, make the things happen on computers that I want to make happen. At the same time, I would not last a day as a professional software engineer...... I am the programming equivalent of a home cook.

(via Peter Rukavina and Roland Tanglao)

I really like this metaphor by Robin Sloan. I would never call myself a ‘real’ programmer, or a programmer at all really. Yet, I’ve been programming stuff since I was 12. In BASIC during my school years, in assembly, Pascal, C++ at university, and in Perl, VisualBasic in my early days at work (which included programming the first intranet applications for my then employer), and currently in PHP and Applescript (to get my websites/tools and my laptop to do the things I want). Except for some university assignments all of that programming was and is because I want to, and done in spare time.

I too am the programming equivalent of a home cook (which coincidentally I also am).

Robin Sloan also hits on what irks me about the ‘everyone needs to learn to code’ call to action. “The exhortation “learn to code!” has its foundations in market value. “Learn to code” is suggested as a way up, a way out… offers economic leverage … [it] goes on your resume.”

People don’t only learn to cook so they can become chefs. Some do! But far more people learn to cook so they can eat better, or more affordably, or in a specific way…..

The above is I think an essential observation. Eating better, more affordably or in a specific way, translates to programming with the purpose to hone the laptop as your tool of trade and adapt it to your own personal workflows, making it support and work with your very own quirks. This is precisely what I don’t get from some that I quizz about their tool use, the way they accept the software on their laptop as is, and don’t see it as something you can mould to your own wishes at all.

“And, when you free programming from the requirement to be general and professional and scalable, it becomes a different activity altogether, just as cooking at home is really nothing like cooking in a commercial kitchen.”

Removing the aura of ‘real programming’ from all and any programming except paid for programming, might just break this ‘I’m not a programmer so I better accept the way software works as the vendor delivered it’ effect.

Me and Boris cookingMe and Boris Mann cooking in his kitchen in Vancouver in 2008. Coincidentally we connected through our desire to shape tools to our personal wishes. Programming as a home cook, brought us together to well, home cook. His blog still is a mix of cooking and programming well over a decade on.

During next week’s DojoCon Netherlands, the annual conference of the Dutch CoderDojo community, Felienne Hermans will be one of the keynote speakers (I’m one of others). Preparing for the conference I looked at the other speakers, and Felienne’s twitter stream ( pointed to her presentation at R Studion Conference 2019 early this year. It’s just under an hour long, but I watched it with pleasure.

The hand drawn slides are cool (can’t imagine the time that went into it, or at least the time I’d need for something like that.), and so is the story, about how to teach (children) programming.

Starting from the quote ‘Morning boys, how’s the water?‘, she says in contrast to e.g. reading, we don’t know much of anything about teaching programming. There’s no body of work (which is what she’s now building at Leiden University).

  • That the way many of us acquired our own tech skills strongly shapes the assumptions about learning to code. Many people growing up in the 70s and 80s learned to work with computers by spending endless hours behind the keyboard, without parental oversight or guidance from knowledgeable adults. I definitely fall in this category too.
  • That those experiences covertly influence the way the field thinks about teaching coding, where exploration and getting stuck and unstuck on your own is the way to go.
  • Research of children learning Scratch suggests however that there are many drop-outs that way, that the acquired skill level flattens out quickly, and that there’s no efficiency gain visible in consequent activities of the children involved.
  • Her research shows that age-old reading teaching tactics such as vocalisation and repeating out loud do work and show consistent results. And that tests work well too. Not to grade children, but to find out as a teacher where you are at.
  • Oh, and that creating applications in Excel is real programming too. Don’t say, or let people say, that some form of something isn’t real work / the real thing.

I feel vindicated by that last point (made early in the keynote) 😀 My meanest programming feat still is building the first intranet (2001/2) of my then employer by hand from scratch using the browser as a window on / to interact with Excel, the folder structure on the shared drives, and back-office systems like time writing, and having the browser grab stuff from Excel files. It was a jumble of HTML, Perl, Visual Basic, and Excel formulas, but it worked and helped cut significant time out of quality assurance processes and made things like starting a new project way easier and actually helpful for my colleagues, instead of being dreary bureaucracy for them. I’d never call myself a real programmer. But it was real programming. Even the tiniest little bits, like yesterday’s simple hack, are real.