I run a business called Wizard Zines (wizardzines.com) where I sell short (20-28 page) books (aka "zines") on Linux, Git, HTTP, SQL, bash, CSS, containers, tcpdump, networking, and more
usually when I post a comic, it's because I'm working on a new zine (a short book). I post the in-progress comics here to teach people and get feedback on which ones help people learn the most!
I write really short books to respect your time. I've never been able to finish a 500-page programming book, so I spend many hours perfecting every page so you can get all the information you need in 24 fun pages :)
All my zines are motivated by problems I've run into while working as a programmer. None of us know every single thing we need to know (whether we went to school for CS or not!), so they help you pick up the basics of topics you might have missed
I never take sponsorships. 100% of my business revenue is from selling zines to programmers (like you!) to help you get things done.
here's a thread with more about my teaching philosophy:
I spent most of October tweeting bash comics, and I’m excited to announce that my “Bite Size Bash” zine is coming out on Wednesday!
here’s a thread with a little bit about why I wrote the zine…
I have a friend who’s a super accomplished senior engineer who mentioned once that they find working on bash scripts really scary and demoralizing.
so, why do really talented programmers struggle with bash?
some problems with bash:
1. It's a weird & counterintuitive language 2. you probably don't need to write it that often, so you don't practice 3. the times you DO need to use it, it's often because something important (like a build) broke and it needs to be fixed RIGHT NOW
- at least in firefox, <input> & <button> are inline-block by default, not inline
- the width on a block element defaults to auto, not 100% (though it will often look like it's 100%)
- you can set the width on an inline element if it's a "replaced" element
this "replaced element" thing is really confusing (developer.mozilla.org/en-US/docs/Web…). I did some tests and it seems like in Firefox a textarea is `display: inline` by default, but it's a "replaced element" so you can still set the width in CSS
an important thing to me about my zine business is that 100% of the revenue comes from people buying zines.
I get asked all the time to write sponsored zines ("hey, could you write a zine about our product") and I always say no -- readers are the customer, not the product.
(which is not to say that sponsorships are bad! Lots of really good education work gets funded through sponsorships. I help organize a conference that we fund largely through sponsorships. It's just not what I do with my zines.)
also please don't reply to this with explanations of other ways I could take money from sponsors. Selling zines to people who want to know stuff is actually a really good business! I don't need extra sponsor income.
a big thing I try to do with my zines is stick to fundamentals: things that haven't changed much in the last 10 years and that probably won't change much in the next 10 either
one thing I think is unfortunate about programming culture is that "knowing fundamentals is really helpful!" can sometimes turn really gatekeeper-y ("oh, you don't know how THING works? WELL YOU SHOULD!! IF YOU DON'T YOU AREN'T A REAL PROGRAMMER"). it's so unnecessary to do that!
the thing is that it's SO NORMAL to make it 5 or 10 or 15 years in your programming career without learning something that seems "basic" about how a computer thing works. And it's both: 1. good to learn some of these "basic" things 2. totally okay to not have learned it yet!