Killing Magic

I’m sitting with a friend who is an accomplished musician.  Record deals, multiple albums, and you’ve probably heard her songs on a TV show or commercial or two. She tells me that she doesn’t want to teach music because she’s afraid it would lose its magic.  There’s a mystical mystery about how she makes music and she’s afraid she’ll ruin that special quality if she has to figure out how she does it.  It won’t flow the same.

My response was something that I’ve believed my whole life:  “Magic just hides something’s true beauty.  It’s a con.  A trick that makes you love the magic rather than the real thing.  Once you actually learn how it really works, sure, the magic goes away, but then you get to fall in love with the beauty of the real thing. Real things are always simpler and more beautiful than the magic hiding them.”

Or something like that.  I probably actually sounded a lot less cool than that, but that was the idea.  I’ve found that magic just obfuscates and blurs what I’m really seeing.  Whether that magic is an accident of my perception of reality–or an actual sleight of hand by someone else–doesn’t matter.  What does matter is once I strip the magic away, and find the real simple principles hidden by the wizard, I see the real thing is better.

Of course sometimes I strip the magic away and find that the real thing is an ugly turd hiding in a golden box.  A lot of programming languages and technology are like this.  There’s all this bluster and flourish pushing a magical view of their benefits.  Then I dig a little and this magic simply hides a terrible design, poor implementation, and random warts.  It seems everyone in technology aspires to nothing more than creating enough of a code mannequin to hold up an invisible emperor’s gown.

One of the reasons people resent my opinions on technology is I have an ability to crush their fantastical magical views of technology.  It’s hard to be an Apple fan when there’s a guy pointing out that they frequently allow developers to invade their customer’s privacy, stole wages from employees, and make shitty  hardware that crashes and reboots if you don’t log in fast enough.  You can’t be enamored with Python if someone points out that its APIs are constantly asymmetrical and that Python 3 has a shitty UTF-8 strings implementation.

My mission in life has been to illuminate magic to expose the ugliness or beauty it hides because I believe magic enslaves people to others.  With magic you can convince them of almost anything, and even change the magic and they’ll keep following the wizard’s edicts.  Stripping the magic away gives people the freedom to choose what their reality will be, rather than rely on someone else to define it for them.

A key element of this mission is education.  I proved with my books that there really is no magic to learning to code.  The people who could do it weren’t special geniuses. Almost anyone could learn to do it given enough time and the right learning material.  Once it was clear that programmers aren’t special, it freed others from the magical aura surrounding programming and opened the practice up to a much wider range of people.

Education then becomes the practice of breaking magic to expose reality.  I study a topic and figure out how people are really doing it.  I find all the tricks they use, strip away the things that are just bluster and showmanship, find the lies they use to puff up their personas, and then teach the simplest real version of the topic.  This then opens the topic to a much wider range of people who can now enjoy it and improve their own lives.

Many times the practitioners aren’t purposefully trying to hide what they do because they don’t even know how they do it.  Most practitioners simply cargo cult a set of random practices they’re sure are the secret sauce.  Usually these secret practices are nothing more than extraneous rituals getting in the way of the real task at hand.  This educational acetone sometimes embarrasses these practitioners since nobody wants to be seen as believing in pointless rituals and magic.  That’s fine, but really they should be happy to find another path to what they love.  One that’s not full of obfuscation and rituals that only serve to enslave them to a limited palette of skills.


Dear Slack

Dear Slack,

You’re clearly making a ton of money so I’m sure nothing I say here will have any bearing on your goals. I know, I’m just some dude who writes books and doesn’t know anything about how real companies make money. You can totally take my feature request and laugh all day about how I don’t know anything about startups, valuations, or websites. That’s cool. Your loss. I’ll just work around this one tiny glaringly obvious feature that’d make me some money, and you gobs of money.

All I want is a checkbox when I create my “team” that reads:

“Members pay $_____ to join.”

What? Why would I want that? You see, I want to use Slack to teach people all over the world how to code. Right now I’m going to charge them myself and send them invites and deal with all the bullshit of membership. I’d rather just hang out in the Slack and answer questions and have them pay you so you pay me. I’m sure you have all the gear necessary to do this so I don’t need to. Just need the ability to invert who pays and it’s nearly perfect.

I promote it, I do the hard work of being in there, and you get to skim your $6.67 or however much the plan costs off the top of the signups. You give me a place to send them, and when my students join they punch in the required credit card and then they’re done. You then give me the difference and we’re good.

Easy right? You literally have every single feature I want to make this work. I just don’t want to deal with the bullshit of payments and invites and booting people who don’t pay and all that crap. You already do that. Me doing it is just stupid.

I have the clout and the skills. You have the platform. If anyone at Slack wants me to come down and talk to them about this I’d be glad to do it. There’s a few other features that could help in this kind of use case, but really this is all I need to get started.