Skip to footer navigation.

« Oatmeal

Posts tagged computer science

Follow this tag's bespoke rss feed or return to the list of all tags.

I read some books in 2022, and have some thoughts about computer science writing

At the start of this year I set out to revive my long dead reading habit. After having kids it fell by the wayside. I’ve read 41 books so far this year. Mostly a mix of science fiction and nonfiction computer science books. Here’s the complete list of everything I’ve read. I’ve got mixed feelings about keeping track and sharing counts of whats been read in a year — it isn’t about quantity, but I do enjoy being able to look back at a log of what I’ve read.

Some notable works:

Record of a Spaceborn Few, by Becky Chambers took my breath away again and again, a book that hooked me right from the start.

I loathed nearly every moment of The Ministry for the Future, by Kim Stanley Robinson.

Madeline Miller’s Circe was one of the most beautiful things I’ve read in a long while.

This is How You Lose the Time War, by Amal El-Mohtar and Max Gladstone was probs my favorite read of the year.

Programming from the Ground Up, by Johnathan Bartlett is one of em that I want to revisit because I know I need to pay better attention to it than I did the first time round.

I didn’t set out to read mostly science fiction and computer science books, I sort of fell into them. I’m thinking next year I’ll follow some whims and build some themes to read around; mystery is top of the list.

After engaging in my little tour of computer science flavored books I think most programming books do too much of the wrong thing. Rather than pick a lane and run, they float between a few spaces:

  • Tutorials, learning-oriented (teaching someone to cook)
  • How-to guides, problem-oriented (a recipe for cooking a specific thing)
  • Explanation, understanding-oriented (historical overview of an ingredient’s cultural importance)
  • Reference, information-oriented (an encyclopedia article about an ingredient)

I think there is a lot of space for programming books that don’t try to be everything, but pick one of the above and go all in.

I think each of these types maps fairly well to an audience:

  • Tutorials are for folks who are totally new to a thing
  • How-to guides are a step up from tutorials and help you learn idioms and best practices of a space
  • Explanation is useful when needing to convey the value of a thing
  • Reference is generally for experts who are cozy doing the thing

Instead, most programming books try to be everything to everyone for every occasion. I think just about all the books I read had a preamble about who’s this book for” and they’re all basically for the same kind of person according to all those preambles…someone who isn’t necessarily an expert, but familiar with the basic concepts of programming.

…but maybe this is also biased by the sorta books I was picking up?

In reply to: Programming is Forgetting: Toward a New Hacker Ethic - Allison Parrish | Open Transcripts

So to that end I’m proposing a new hacker ethic. Of course proposing a closed set of rules for virtuous behavior would go against the very philosophy I’m trying to advance, so my ethic instead takes the form of questions that every hacker should ask themselves while they’re making programs and machines. So here they are.

Instead of saying access to computers should be unlimited and total, we should ask Who gets to use what I make? Who am I leaving out? How does what I make facilitate or hinder access?”

Instead of saying all information should be free, we could ask What data am I using? Whose labor produced it and what biases and assumptions are built into it? Why choose this particular phenomenon for digitization or transcription? And what do the data leave out?”

Instead of saying mistrust authority, promote decentralization, we should ask What systems of authority am I enacting through what I make? What systems of support do I rely on? How does what I make support other people?”

And instead of saying hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position, we should ask What kind of community am I assuming? What community do I invite through what I make? How are my own personal values reflected in what I make?”

So you might have noticed that there were two final points—the two last points of Levy’s hacker ethics that I left alone, and those are these: You can create art and beauty on a computer. Computers can change your life for the better. I think if there’s anything to be rescued from hacker culture it’s these two sentences. These two sentences are the reason that I’m a computer programmer and that I’m a teacher in the first place.