Tutorials Are Fucking Hard

0. Before We Begin

If you want to see the tutorial that this post is about you can find the playlist here.

1. A Quick Tutorial

I had a fun little idea. Why not create a basic Go HTTP server tutorial? It’s pretty easy code to write in Go, and something that has utility. I had never made a tutorial like that before, only internal documentation. But how much harder could it be?

Narrator: It was much, much, harder.

To start off with, I didn’t really want to make something that looked like a “real” product. For one, that would probably require doing front end work. For another, the space is FULL of junk. To-do apps, that sort of thing. Things that I’m pretty sure nobody actually wants to make another one of.

Instead, I wanted to try and show a little bit of how I like to build up a server. Show simple examples of different endpoints doing different things and using different techniques. Show the architecture that I tend to prefer, show basic concepts that give the viewer a foundation to build on.

I suppose time will tell if this was a good thought, or if they would have rather I just show them how to make that to-do app with templates or something. But today, we’re talking about the journey.

2. The Repository

Writing the code was easy enough. Breaking it up into sections was a little bit more tricky. I tried to group concepts together logically and show the code at that state, which wasn’t too bad.

Problems started to crop up when I wanted to revise something in an earlier lesson though. I had to try to make those changes in the future lessons, except for where that was again changed so the edits were no longer relevant. I really hope I caught them all, but I guess if someone finds one they can always open an issue for it.

I waffled back and forth for a little bit about how to best break the sections up in the repository, but in the end I am glad that I just put them in separate folders instead of messing with branches or something like that. I will probably do this again if I make another tutorial.

I was not quite as happy with where I drew the section lines. The videos for section 2 and 3, as well as section 4 and 5, wound up being so long that I had to break them up. Because I had already written the code it would have been hard to go back and split it up after the fact. I’m not sure how I would change this though.

If I record as I code then any changes later will require me to re-record multiple things. That would get really, really, messy really fast. Food for thought in the planning phase I suppose.

3. Recordings

Wow. Recording. Trying to explain everything you’re doing in a coherent fashion, and do it without looking like a total idiot, is hard. There is also the issue of continuity.

There are a couple places in the finished tutorial where things jump around a little bit. I did the best I could, but without going back and re-recording large chunks (which would also require me to manually type the code as it was at that moment) it was just impossible.

Fortunately I was able to cut around a lot of it, replacing flubbed lines with the corrections later in cases where the visuals were correct in the first take but the correction was “off” in some way (IE: Other changes had been made and I forgot to revert them before the retake). In the future I’ll have to be extra careful about where the file was scrolled to and what the contents were at that time.

This is the first time I’ve done a long recording, and I learned a lot about it. Leaving space around a line and doing a take or two on the voice line for options later is pretty helpful. But it does make it a little harder to edit since by the time I got there I couldn’t remember for sure if I had done two or more takes on a line.

It was also extremely time-consuming. I spent at least three full days recording the sections. At least one of them was an actual full day spent recording from coffee time to bedtime. I had initially thought it would probably take me one day to record everything. Oof.

4. Editing

I didn’t really know how to edit video before this. I had dabbled a little bit many years ago, but this was the first big project I had done. I learned a lot about the process along the way. I had also never edited anything that had voice lines that needed to line up with things happening on screen.

When I did the recording I kinda just went in blind and hoped for the best. If I decide to make any other tutorials I’ll have a much better idea of how to record for ease of editing. I could already see a little bit of improvement in the latter sections after I edited the first section or two before continuing with the recording efforts.

I’d also probably just do all the recording first next time. Doing it all in a batch felt better than stopping to edit and then going back to recording. It’s also easier mentally to plonk down for a couple of hours of editing than it is to get all set up and do recordings. Eat your vegetables first strategy.

The biggest surprise here was how long it really took. I expected it to be a decent sized project, but even once I had a pretty decent workflow going I found that after a chunk of work I’d hit play on a section to review, and discover that it was only actually a handful of seconds long.

I assumed this was a skill issue, but out of sheer curiosity I fell down the research bunny hole one evening. Turns out the general consensus is that 45 minutes to an hour per MINUTE of finished footage is pretty normal. I think I was relatively close to that by the end. Granted I’m not doing a ton of fancy cuts or animations or anything like that, so I probably still have skill issues.

I’m not really sure how I would want to change this up in the future, but the length of sections was absolutely an issue. I tried to keep the raw footage for each section grouped together in a folder, and without duplicating data it was kinda hard to split the sections up without duplicating large video files.

I’ll probably put all the raw footage in a single folder and try to break up each raw recording by concept at recording time or something similar. That way I can cut the footage together into sections more cleanly and adjust as needed.

I was aiming for 10-ish minute long videos for each section. That worked OK-ish for three of what would eventually become seven sections. There are a couple closer to 15 minutes long, and the two outliers are 31 and 47 minutes long.

I’m not yet sure if those longer ones are going to suffer from the length. As a small channel it’s hard to read anything from the analytics that YouTube offers. They seem to be doing fairly similarly to other videos in the series currently, but there’s a lot of noise. This could also be a skill issue in my ability to know what I should be paying closer attention to vs ignoring.

There was a lot to cover in these sections, so I’m hoping that the sort of person that really wants to go through this tutorial and learn this stuff will get enough value from it to not be intimidated by the length.

5. Errors

There are a couple places where I just couldn’t cover up small mistakes without a ton of extra work. And those are just the little things I know about. I did my best to “fix” some of them with a quick freeze-frame and voiceover.

I might have been more inclined to go fix these larger mistakes despite the amount of work required, but I was on a deadline to get this thing finished up while I still had the time. I had to go and get a job to pay the bills, which has drastically reduced the time I have for content creation.

So far one commenter has pointed out something that I wish I had explained a little better. I’m hoping that remains the only issue that slipped through. I was also surprised at how much the exercise made me question myself. “Is this really the best approach?” “I’ve always done this, but is that actually true still?” That sort of thing.

Nothing will make you question everything you think you know like that little voice in the back of your head telling you that you’re an idiot and probably telling some poor helpless tutorial follower something that’s incredibly wrong.

I tried really hard to make sure everything was current, accurate, and to challenge all my assumptions. I’m very sorry for any mistakes that slipped through the cracks. I wish I had a proof…watcher or something, but I don’t want to ask anyone for free work, and I don’t think I could justify hiring one for a free tutorial at this point.

6. Closing Thoughts

There are a lot of things I would do differently, but deciding to take on this project is not one of them. Because of all the aforementioned reasons I’m not sure if/when I’ll make another one. I’m not even sure what it would be about right now.

I think I would get it all done before I started posting it though. Normally I like to finish things before I talk about them, but I wanted to start getting feedback ASAP on this one. In practice, by the time I started to get that feedback (most notably a request for even larger font in the IDE) the recordings were already done, so I didn’t really gain anything from rolling it out early.

I am glad to have some content to help continue to grow my channel. I wasn’t super happy to only have VOD’s of past livestreams there for people to evaluate my content by. Much easier to check out a 10-minute tutorial video than a 4 hour VOD, in theory. We’ll see if it actually helps any.

Making a tutorial is wicked hard. It’s harder than you think if you haven’t made one. If you have a favorite content creator that has made tutorials that you appreciated you should go support them in some way! Even if that’s just a small one-time donation or sharing their work.

You should also make a tutorial for something you know how to do! It’s extremely educational, and gives you a new appreciation for tutorial content.