Writing About Programming is Hard

This morning I tweeted

Writing is hard. Programming is hard. But writing about programming?

OK, still very hard.

The general way to interpret this is “writing about programming topics is hard” (OOP vs Functional? Swift vs Objective C? Should you use goto?) and yes, it’s very hard to write about those things! (how do you talk about a program? how do you choose which parts to show? why can’t a reader execute and explore my program?) But this road is at least well travelled, and I feel like I can do so decently, myself.

But harder for me, at least, is writing about programming itself. What is programming? Should everyone learn how to program? What does it mean to learn programming? Is that learning a given language? Is that learning about if statements and map? Is that learning about algorithms? Is that learning about git? Should we treat existing languages as static? Are they all there is to programming?

Is programming for software developers? Is programming a way of undertanding problems or a way of causing them?

I’ve worked on programming environments at Hopscotch and Khan Academy. I’ve been through my share of “Hour of Code” ritualized learnings. But I still haven’t found answers to any of those questions.

Last month I took fun, but fruitless step towards figuring out some of those questions, and maybe some of those answers. The talk I gave at Brooklyn Swift was a blast, but I think I left with more questions for myself then when I started (appoligies and thanks to the audience for any bewilderment they certainly experienced).

The video for that talk is forthcoming, but I’m also trying to refine these ideas in a more presentable, readable format. I may not have the right answers, but I promise to at least ask to right questions.

Speed of Light