Life you learn from isn't wasted

I used to consider the hours and millions of words I poured into forums, Reddit, Hacker News, and Twitter wasted.

But then something happened.

My last 100,000 or so words have each been better than anything I’ve written before. Insights come out easier. Structure mostly tends to itself. So all those years that felt wasted, that I beat myself up over, were easy to reframe as practice.

There was probably a better way to get here, but my ADHD brain didn’t allow it. The lure of yet another argument online was too strong. But now it’s a little easier to disengage. To put those thoughts down into a file instead, or even into a newsletter draft like I’ve done here.

I’ve also come to appreciate brevity. What can I say about a new phase I’m still getting used to? It’s too new an experience to really share any learnings other than to say that all that time you feel like you’re wasting might be practice for what comes next. And instead of letting it lure you in and use more time than you need, be more intentional in that practice.

That’s about 200 words. What’ll the next million look like?

Unlearn Helplessness

I could get mad at him. But…it won’t help. It’ll just make me more stressed, and it won’t register with him that he needs to be better any more than the thousand other times.

This is, unfortunately, life. Sometimes it’s family. Sometimes it’s a stranger. A coworker. There is usually an individual responsible for the specific thing that happened.

You can sit and mope about how unfair the world is. You can live in other people’s damage. You can keep reenforcing and projecting forward the generational trauma that led to your current misery.

Or. Here’s a cool idea. Take charge of your own responsibility in that chain of events so old no one remembers where it started and reduce your exposure to other people’s damage as much as you can, then learn to let the rest roll off as much as you can bear. Grey rock it when you have to, break the script and take the bait less each time, and work on carving out spaces to be soft and fluffy.

You can’t live as a rock, but sometimes it’s the only way through the fire. A little bit at a time. One minute, one hour, one day at a time. One conversation you direct to, at worst, a stalemate at a time. One time you refuse to follow the script and let the neural pathways that hold generational trauma go fallow.

The little changes really do add up. “If you think I’m bad, you should see my parents” is the best most people ever manage, but only because settling for not as bad is part of the script.

Most people opt to keep going one way or the other. So, since you’re in it, you have to decide how you’re going to deal with it. Living in trauma stinks. It makes you feel bad. It makes the people around you feel bad. It leads you to make choices that drive you deeper into the situation. There’s nothing good about it.

We are weird chemical machines who perceive our reality mediated through a slab of meat in our skulls and a weird alien biome in our guts that science is just starting to figure out. Everything you do and everything you think carves new pathways and strengthens old ones. That “two wolves inside” story is bullshit cooked up by a dead fascist to sell the faulty good vs evil narrative to his fringe cult followers, but there is something to the idea that you are who you act. The more you’re pessimistic, the easier it becomes, and the harder it is to maintain a balanced perspective. You don’t have to be happy, but you can stop punching yourself.

As I work on this draft almost two months later, I don’t even remember what got me so mad I started this article instead. I used to lose days to anger over little things like whatever it was. Change is possible. Sometimes it’s slow. My own change started in earnest in the 2010s and it’s only paying dividends in the chaos of the 2020s.

Make a different choice every once in a while. It adds up

You can't monetize your entire hobby

There’s a quote in one of my favorite TV shows, Halt and Catch Fire: “Computers aren’t the thing. They’re the thing that gets us to the thing.” -  Joe MacMillan (played by Lee Pace), Halt and Catch Fire

Music was the thing that got me to the thing. I had a lot of hobbies and interests, but picked music to carry that weight because:

- I’m good at it.

- I’m fast.

- I don’t burn out on it easily.

- Selling it doesn’t bother me the way it does for other hobbies.

And that worked out…mostly. Even after all that, it took a lot of gifted money to finally get there. I was burned out, ready to give up. But you know what? Had I paced myself and paid attention to my physical and emotional state, it would feel less like a Pyrrhic victory. I got the tools for the non-music thing, but now I can’t look at my music tools without wanting to curl up into a little ball. The fun and enjoyment that got me into music in the first place is gone.

The burnout will pass. I hope. I miss making music right up until I try. Right now, I’m focused on learning to apply my tools to the thing—mostly writing—while using this newsletter to turn my experiences and perspective into something useful for others.

If you ever decide to follow my path and turn one of your hobbies into money to get you somewhere else, be prepared for the possibility that it’ll take longer than you expected. I had to bust my butt at it for years releasing hundreds of hours of music just to have enough saved from it to even think about buying a computer that didn't struggle to handle the thing. Now I’m absolutely fried emotionally on the subject of music.

Don’t do it the way I did it. Don’t get desperate. Don’t pump out 30 things a week for a month every few months hoping something clicks enough to make it all worth it. Pace yourself. You don’t want to be ruined for that hobby on the other side.

What I would change knowing what I know now

So you still want to ply your hobby as a trade.

Fine.

Okay.

Whatever.

Here’s some ideas.

My mistake, I think, was trying to turn the entire hobby into a money-making machine. See, my first “beats,” as the kids say, were nice little loops. These served as focus music. I would whip one up in the morning, then do something else. I wrote a 50k word novel with that! A draft the world will never see, but I still got it out.

And then I shared the music with some friends.

“You should sell this!”

Oh no.

And so I did. I had a little Bandcamp. I had a little Patreon that quickly rose to $4/month. I saved that up to buy some proper mixing headphones. Then I used that to make better music, and then suddenly it was $30/month.

Oh dear.

So I used that to buy a little MIDI keyboard. I used Reaper and the free Synth1 to make music at the time. The keyboard came with Ableton Live Lite. I’d wanted it for a long time, but never had the money. I rationalized that using my hobby to fund my hobby would make my music better.

But what really happened is I felt an ever-increasing obligation to produce, and at ever-rising quality. Flash forward to a year ago and I’m rocking Ableton Live Suite—sweet!—on a nice laptop with the good but not best edition of Komplete 13. Mostly paid for with gifts, but the new tools already paid for about half of what I spent on them.

What I would do now, and what I’ll probably do in the future, is keep making my little loops, but save the more substantial stuff for paying commission work when I’m able to start doing that. It’s still fun to help someone else navigate their music tastes to figure out what kind of music they want me to make for them. I tried designing and selling sound packs, stuff like presets and sound effects, but it wasn’t any fun and nobody bought them.

I was happiest playing around in LMMS with its ridiculous half-assed copy of Fruity Loops’ interface, so long ago, before some A/V nerd associate put me on a sound quality kick that led me to Reaper. I had no idea what a chord was, but I sure did make them!

So that’s it. If you must sell your hobby, keep whatever got you into it for yourself. If you loved making focus music, keep it to yourself, and make a job out of the parts you don’t have an attachment to yet.

Learn to code. Or don't.

Reasons to learn to code:

  • You have an offer for a job that involves coding, or could benefit from it

  • Existing tools don’t serve your needs well, or at all

  • You enjoy it

“Learn to code” is the common refrain for what to do when you’re poor. It’s misguided at best, malicious indifference at worst.

I had a problem trying to learn to code: I mastered all the syntax of a language, got comfortable understanding the standard library documentation, followed guides on applying common frameworks and libraries.

And then…

Well, what next? I can do it well enough, but all my hobbies have great tools already. None of the open source stuff I might contribute to comes close.

And no one will give you a programming job in the current environment if you don’t have a GitHub bursting with personal projects. So doing it as a job is out as an option if you don’t lean that way. Some people enjoy it and have no problem filling out a GitHub, or they have enough problems with the tools available to them that hacking on them is the best path forward.

This is not me. Of course, I reserve the right to change my mind without explaining myself. I probably will if it happens, but only because it’ll make a good article.

Most people will not make a better living programming than they could pursuing things they actually care about. The people at the top levels of the field are hard at work coding themselves out of a job by lowering barriers. This is a good thing for society, but it’s bad for salaries. Accessible means more competition: it opens the field to people who maybe aren’t brilliant with syntax, but can piece together elegant or at least functional solutions from off-the-shelf components. The gold rush is on the way out, and “programmer” is turning into an actual job and losing its value as a status symbol.

There is a future, probably not far off, where the shine wears off and it’s enough to be able to pick up syntax quick. Where companies hire for ability to learn and do the job, not ability to pass gatekeeping exercises.

But let’s say you’ve decided to forge ahead and learn to code. Here’s some tips.

Behind “where do I start with programming?” is “what if I pick the wrong language or framework?” For every possible path, there are fifty popular tracks. I think this overwhelm is a problem of approach.

No one tells you that it’s impossible to know which path to take before trying a few. You have to learn how to make a loop and instance a few objects or toss a few functions around in different languages until you have an idea of what appeals to you, and what well-worn paths or broad fields you can explore with those appealing aspects.

Other people’s opinions—theory, tutorials, forum posts, reviews, podcasts—are for when you have enough experiential knowledge to tell whose advice fits your needs and inclinations.

So that’s it. Pick a language. Mess around in it. Make some toys. Pick another language. Repeat. Like that framework? Goof around in it. Does that tutorial video look promising? Watch it, then see what others said about it.

Given enough time, you’ll get a sense of what you gravitate toward and discover the magic words to find other stuff that employs the bits you like. Then, and only then, are you prepared to get something out of some Elder Programming God’s treatise on Python bytecode. You aren’t ready for Python bytecode. Experts in Python sometimes don’t even know there is a bytecode.

Did you know Python list comprehensions and their expanded equivalents compile to bytecode with different performance profiles? Down this treacherous path lay premature optimization and wasted time until you know what to do with that knowledge, or if you need to do anything.

Go play. Have fun. You used to get this when you were a toddler. Did you worry about who had the best take on toddling form? Of course not. Be like a toddler and bump into things at random until something clicks. The sheer wall of frameworks and languages and platforms and tools doesn’t exist until you’ve picked enough at random and played with enough to filter the pile into something you can reason about. Then you realize the wall is a staircase that branches off in different directions.

Your assignment: pick a language. Find it on Learn X in Y minutes. Find some way to apply the different patterns to something you care about. A good clue is to see what libraries are available for that language, and how many target your interests. Try to implement one! Can’t find any? It’s a harder road, but someone had to make the first library. Maybe you’ll start a trend. Maybe you’ll figure out why no one wrote a library. You can write and publish a warning for others.

  • If you like listening to music, find a library that cracks open audio files and reads their metadata, then do something useful with it. Can you out-do Spotify’s recommendation algorithm? Look up how to make a K-nearest neighbors (KNN) algorithm.

  • If you make music, build a tool to open your project files and see which chords you use the most. This one’s trickier than it seems. Answering “what is a chord?” fills books.

  • If you’re a writer, do some statistical analysis on your writing and see what insights you can pull out. See where your findings meet, diverge from, or clash with the writing advice people give.

  • If you’re an artist, crunch the pixels and see which colors you use the most. Try to generate a set of pallets and compare what’s “right” in color theory to what you make and what looks good to you.

My advice to you, is to stop listening to advice until you know what to do with it. Do first. Find what you enjoy, then what you can do with it, then how you can do it better. Some people take on programming as a hobby and write code for the sake of writing code, but for most of us it’s a force multiplier. We need something to multiply.

After that

I am going to be honest with you: if you fully intend to make a go at this, you need to eventually have a passing familiarity with what nerds like to call idioms, patterns, and algorithms. Or something to that effect. Roughly translated: all the ways to do stuff that other people found after beating their head against countless dead ends.

For example: you’ll often encounter advice in the form of “don’t roll your own…” and it’s most often attached to crypto. But only because the hazards of getting encryption wrong are higher than with most things. Find the patterns. Find the idioms. Find the algorithms. Find the well-documented pitfalls. Then roll your own, if that sounds like fun, or if the existing stuff doesn’t fit your needs.

You’ll want to know this stuff eventually. Play, practice, have fun. But as you do, seek out a good book on common programming patterns. Things that transcend programming language tend to be called patterns or algorithms. Your bubble sorts and such. Languages often have their own word for the way things are done in their community. If you’re exposed to online games at all, you’d call this the meta. And like in games, it’s always evolving. In Python, for example, things in line with the meta are pythonic. For the rest without a word, idiomatic is the term. So if you want to find good ways to do something, search something like “idiomatic way to do [x] in [y language].” This is the stuff that most people get bogged down in trying to learn. Any good guide will cover this stuff, but do follow up with other perspectives. Truth comes out when ideas clash, but you don’t know what truth looks like yet.

Concerns about efficiency and security, which the meta generally focuses on, don’t really apply until you post your code up for others to use.

One caveat that you should care about from the start: there are different ways to mangle and manage data, and computer science has a good handle on what to use and when. I had a great list of these algorithms bookmarked somewhere on GitHub a while back that gave a rough overview of the common algorithms and examples in popular programming languages, but it went missing. You can guess and fumble your way around for writing personal code, but you should look up battle-tested ways of handling data for anything you let other people use.

Wikipedia has a huge list of algorithms you can do a page search on (Ctrl+F in most browsers) to find something suitable for what you’re working on. It’s more unwieldy than the list I had. Most languages implement these in their standard libraries, and they’re made by people who know computer science and practical programming, so you probably won’t improve on them by rolling your own implementation.

Don't join a poly-cule until you have a poly-clue

Polyamory is when people decide to have some kind of relationship and are open to the idea of it not being exclusive. The shape of these relationships is highly situational and personal.

There’s basically two ways polyamory goes down:

  1. You learn a lot about yourself and unpack all the stuff you’ve buried over a lifetime, figure out what you want, and are forever changed for the better. Maybe this means you decide polyamory isn’t for you. This is how it went down for me.

  2. You double down on all your insecurities, ruin everything, and blame polyamory for it. Most of the negative stories you hear come from this. All polyamory does is amplify what’s already there. It’s like getting superpowers. An ass with laser vision was already an ass without it.

Here’s a short list of tips:

  1. Don’t go into it thinking it’ll solve your problems. A broken relationship will end up more broken if you try polyamory.

  2. Have clear expectations. Someone will get hurt by whatever you think is implicitly understood.

  3. Don’t mislead partners about possibilities, even by omission. If you’re adamant about giving your existing partner(s) veto power, make this clear up front with new partners.

  4. If you aren’t well-off, it’s probably not going to work. I learned this the hard way. I believe he wanted to make it work, but between a job, family, student loans, and previously undiscovered insecurities (for all involved), it was never going to work.

  5. When it doesn’t work, don’t be strung along. You probably won’t be friends after. It multiplies the trouble that comes with trying to be friends with someone you broke up with when it’s just the two of you. They’re going to want to talk about all the great experiences they’re having that you don’t get to be part of. And they’re going to feel bad or resentful when you finally set a boundary and say no, I don’t want to hear about it.

  6. When it doesn’t work, don’t string them along.

  7. Too many people in the polyamory community like to talk trash about people who don’t want to be friends with someone after a breakup. Accept no shame for your boundaries. Accept no shame for taking care of yourself.

  8. Accept no proxies. If a metamour (partner’s partner) has a problem with you, they need to speak directly to you. Or, at minimum, establish some boundaries on how you can lean on the person in the middle. They can act as a mediator; they do know both sides best, after all.

Speaking from experience, the last one paired with veto power is a relationship killer. I felt like an accessory to someone else’s relationship. It seemed like there was some new edict coming by way of the person I was trying to date every week from someone I’d exchanged maybe five awkward, anxious, uneasy words with. Someone who always acted hostile toward me.

Oh! That brings in a good final bulletpoint.

  • Don’t ignore the red flags. She looks you dead in the eye while smooching the person you’re both dating the first time you meet? Probably not going to work out.

Polyamory is an amplifying force. It takes anything that’s marginal and dials it up to 11, good and bad. But mostly the bad. All your insecurities. All your bad habits. Any mental health issues. All your money troubles. Everything you hoped wouldn’t come up again.

Anything you haven’t worked past will come up. Some stuff you thought you worked past will resurface. How you handle this will determine your experience with polyamory.