Hello! I’ve been thinking about what zines I want to write in the future a bit. Usually I don’t have any plans for what I’m going to write next, but having no plan at all feels like it might be getting a bit old.
So this post is mostly a way for me to try to organize my thoughts about why I choose certain topics and what I might want to write in the future.
I’m interested in writing about things that are
- fundamental in some way
- very useful to know in your programming job
- stable (the basics of SQL / git / CSS / HTTP / Linux aren’t going to change any time in the next 5-10 years!)
- possible to learn the basics of quickly
There are a LOT of topics that fit these criteria. As I was thinking about topics, I realized that there are lots of topics (like object oriented programming principles) that I think could in theory be pretty valuable but that just didn’t speak to me. What’s up with that?
I only write about topics that I care about
I think a thing that I was missing was – I only write about topics that I really think are exciting and fun and important and want to share with people. Some topics I have kind of a weird and complicated love for, like containers (why are they so weird?!).
And right now I’m writing about CSS, which I’m only learning how to love pretty recently.
I think it’s often important for me to write about topics which I now love but in the past did not love. For example, it took me a very long time to understand how to use tcpdump, and once I got it I felt like I had to tell everyone HELLO I FIGURED IT OUT TCPDUMP IS ACTUALLY AWESOME AND NOT THAT HARD.
It feels a lot less interesting to write about topics where it was immediately obvious to me why they were great or which were easy for me to learn.
zines that I might write
- shell scripting
- debugging (I have 70% of a debugging zine!)
- more linux internals
- C basics
- binary, character encodings, binary formats
- how git works
- TLS certificates, CSRs, CAs, etc.
- data structures: graph theory / binary trees / hashmaps
- the Python standard library and/or fun Python basics
- pandas and/or numpy (though I think maybe the pandas cookbook is a better medium for that than a zine)
- machine learning (maybe just logistic regression?)
and a few that I think might be too small or too big for a zine:
- Rust (too big!)
- DNS (maybe a mini zine one day? I really love DNS & dig!)
zines that I don’t think I can write
Here are some topics for zines that I think are “fundamental” in the same way and that I think could be really cool. I don’t think that I could write these today, either because I don’t know enough about the topic yet or because I don’t really feel enough love for it yet.
As with most things, the only way I’ll probably learn more about these is if I end up using them more.
- web accessibility
- postgres (transactions etc?)
- x86 assembly
- hashing (bcrypt, sha-1, md5, etc)
- JVM internals
- code review
- websockets (is there enough to write a whole zine about websockets? I don’t know!)
- functional programming / object oriented programming
- ‘big data’ topics (hadoop, data warehouses, etc)
- paxos or raft
- how search works (like elasticsearch)
- how databases work
I’m still not sure (even after doing this for years!) why it’s so hard for me to tell what topics will make for a good zine that I can write. Maybe one day I will figure it out!