Have you ever created something and then thought about how bad it was? What did you do?

Most of us would hide it or even destroy it. Or maybe just keep working on it trying to make it perfect. I struggle with this all the time. It’s really hard to release something. But that’s exactly what you need to do. Let other people see it and try it. It won’t be perfect but instead of fixing what you think needs to change, let others tell you what they would like changed. This is already hard enough. But you want to know what’s even harder? Try coming back to something you worked on years ago. Would you still be able to resist the urge to just make a few changes first? This is an episode where I describe this and how I handled it.

Listen to the full episode or read the full transcript below for more details. And don’t forget to subscribe to the podcast on your favorite podcast app on your phone so that you’ll get new episodes delivered to you automatically.


Back in 2013, I decided to start teaching programming. A few things came together then which prompted the decision.

I’d been using the C# language to program since about the year 2000. Before that and up to about 2003, was C++. And I realized that the C++ language had recently went through some much needed changes. This is known as C++11. And more changes were coming in 2014 which became known as C++14. Now we’ve got C++17 and eventually C++20. The C++ language was getting its groove back and I wanted to keep up-to-date.

When I’m learning something, one of the things I like to do is teach it to others. That’s when you realize how much you actually know about a topic. So I decided to teach C++.

I also like video games. Although I rarely get much time to play. Why not fix that by creating video games and using the code to teach at the same time? What should I call this effort? Well, since my favorite type of game is fantasy role playing games with swords and magic, I came up with the name Fantasy Development, or just FantasyDev for short.

The next question was who should I teach and then how? I wanted to help somebody move into development who might not have thought such a thing was possible. Somebody who already knew a few things about computers. Just not how to program them. People doing technical support seemed like the right fit. They already have a position with a company and know the development team. All they need is to learn how to program and some confidence to approach the hiring manager for an interview.

I knew that the worst thing I could do was to go off on my own and produce the ultimate programming course in isolation. To lock myself away until it was complete and announce it to the world. Why would this be a bad idea? Well, we need feedback. Would an airline pilot be able to come anywhere close to landing a plane at the destination by starting out with a general idea of where the plane needs to go and then never looking out the window and never looking at the gauges? Absolutely not! The plane would never even find the runway to takeoff at all.

I needed to conduct the classes live with real students who could ask questions. So that’s what I did. And I recorded the classes so that I could turn the videos into an online course.

I did this for about nine months holding a two hour class every other Saturday afternoon. It was a lot of work. First, I had to prepare two hours of material. To give you an idea, I can sometimes spend two hours or more just preparing my thoughts for a ten minute podcast. Don’t get me wrong, I’m not complaining. I enjoy it and actually learn from the experience. But it’s still a lot of work.

Then, of course, is the class itself. My voice at first could barely keep going for two hours. And I sounded scratchy for a day or so later.

Then, there was the unexpected task of editing the videos. I’m not talking about removing stray sounds. That’s actually a lot harder to do with video. What I found was that if I made the videos full size, they were so huge that nobody would ever be able to download them. But if I made them smaller, then nobody would ever be able to read them. What I ended up doing was enlarging only the portion of the screen that was interesting. And that meant that I had to go through the whole video and shift it around each time the focus shifted. The videos are still huge but somewhat manageable.

I eventually realized that I had to come up with something different. I just couldn’t keep up. So I stopped FantasyDev and went back to the drawing board. I eventually started Take Up Code.

But, you know what? Those old videos are still there. I recently started a Patreon page where you can register as a patron to help support Take Up Code. You can find the link at takeupcode.com. As a patron, you get some cool rewards. Things not available anywhere else. You can still listen to this podcast for free. But would you like extra episodes? Just one dollar per month will make you an official patron and entitle you to help select the topic of the extra episodes and then listen to them.

Want even more? This is where the reward system on Patreon really helps. I thought about all the things I could offer you. I want each reward to actually mean something to you. To have real value. I researched a lot of other Patreon sites and found many of them would offer to include your name in the credits or to call out your name during the show, or maybe to send you some stickers. Those things are okay. But do you really want those things?

Many years ago, I was attending some marketing training. Yes, I really do study things other than programming. Anyway, the speaker was telling a story from when he was younger and used to wonder how he could become a millionaire. What if he could convince a million people to give him just one dollar? Why, that would make him a millionaire, right? But how to do this? It wasn’t until later in his life that he realized the secret to not just becoming a millionaire but to getting even more. He realized that he had to offer something of value in exchange. And it couldn’t be worth a dollar in exchange for a dollar. There just wouldn’t be enough motivation. What he needed was to figure out how to offer something worth one hundred dollars in exchange for just ten dollars.

Now you might think this seems ridiculous. After all, if you go out and buy a TV for a hundred dollars, then sure, you’ll be able to sell it for ten. That’s not going to make you any money though. You’ll go bankrupt that way.

But that’s the old industrial way of thinking. We live in a modern digital age. It’s possible today to make something once and then sell it over and over. It’s like buying that TV but then being able to copy it for free and then sell working TVs for ten dollars each. Your customers each get a TV worth a hundred dollars and only have to pay ten.

I setup the rewards on Patreon to be like these TVs, each valuable to you and offered not just at a reduced price but also in a way that offers you the chance to help contribute to the success of the podcast and then to the success of anybody who learns how to program by listening.

But an interesting thing happened when I was adding bonuses to the rewards. I remembered the old videos from FantasyDev and thought they would be something you could benefit from. Before posting them, I watched them again. And they were terrible!

I mean, the audio would sometimes fade in and out, you can’t always hear what the other students are asking, and I was still getting used to C++11. How could I offer these videos? I’d just have to remake them.

Then I remembered how valuable I used to think the videos were. And I started wondering if the same thing would happen to the podcast episodes that I’m creating now. Will I look back five years from now and think these podcasts are also terrible?

The truth is, yeah, I probably will. I’d be fooling myself otherwise. And that’s the real lesson I want you to get from this episode. If you’re creating things that stay the same to you, then that means you’re also staying the same. You need to always be striving to improve and willing to accept that as you get better, then the things you used to do at the limits of your abilities will no longer be difficult and might seem trivial or even bad. Accept this and move forward. That means you gotta get started.

Don’t let your inner voice stop you by telling you how bad something is. It’s not like you intended to create something bad, right? Do it. Put it out for the world to see and maybe somebody will benefit. And who knows, it may not be as bad as you think. I realized that the videos I made may not be as bad as I had thought.

I ended up posting five hours of video on Patreon that shows you how to work with data types. You’ll know when to use a bool vs. a char. How to declare pointers and how to use all of this in your own classes.

So go ahead, get started creating your own apps and programs. They’ll be terrible. If not now, then in the future. And you know what? That’s not only okay, it’s to be expected. Because you’re getting better.