What I Learned From My First 12 Coding Live Streams#streaming
After streaming now for a few months, including 12 live streams and over 25 hours of being live, it is time to share my first recap. I will share my current setup, goals, pros and cons, and some tips.
Why I Started Streaming?
I was never interested in watching other people coding on live streams. It felt it was boring and took a lot of time.
Still, I always admired streamers for being able to
perform live. That's something completely different from recording video tutorials or giving talks where you are prepared.
Of course, you could prepare a live stream like it was a talk too, but that's not what a live stream is about, and it would take too much effort.
For me, live streaming is about watching someone work in real and seeing her or him solving problems live. At the end of 2020, I wrote in my yearly recap that I wanted to give live streaming an honest try in 2021. I had several reasons for that:
- Push me to try something new I don't feel comfortable yet
- Try out a new way for me to create content (like I did with my podcast)
- Get better at talking about code in front of other coders
When you want to try something new, it's essential to focus on the main goal and keep everything around as simple as possible. My goal was to code live, and the setup needed to be a no-brainer for me to get started.
That's why I decided against established streaming apps like OBS. They are super powerful, but it takes more time to set up, and I saw myself already getting lost configurations. I decided to give StreamYard a chance because I already knew it from streams I did together with Freek. You don't need to download an app, you can control it right from the web, and there is a free version that makes starting a breeze.
Next to the streaming software, you also need a microphone, camera, and lights. I also chose a simple path here by using what I already got. Here is a full list of my setup:
- Streaming software: StreamYard
- Microphone: HyperX QuadCast when I started (now Shure MV7)
- Lights: 1x Elgato Key Light Air
- Camera: my iPhone in combination with the Camo app
- Microphone arms for my microphone and my iPhone
My First Live Stream
Four months ago, I did my first live stream on Youtube. I already took some pressure out by making it a
test stream without any coding. I invited some friends from Twitter to give feedback and check if everything is working as expected.
I went through different scenarios like sharing my screen, showing just my camera, bringing some comments to the screen, and more. The goal was to have a
safe environment to try everything I need in the following streams. I always try to be as prepared as possible; things I don't know scare me. Like what happens if I click the "Go Live" button on StreamYard? Will I be live immediately? Will it take some more settings to check?
Everything will be much smoother when you can try this out in a test environment.
StreamYard is also straightforward to bring in a guest to your streams, so I tried this out in my first stream, and Freek joined me for some minutes. It gives you also the opportunity to talk to someone because it feels a little strange at first when it is just you on the stream. If you don't say something, no one will.
My First Live Stream For Real
Then, a week later, I did my first actual stream with coding. The test stream helped me a lot, but I still was very nervous about live coding. I had this idea of a new platform I wanted to build in my live streams. It's crucial to have a plan for your streams so that people know in front what the stream will be about, but also, so they feel more comfortable during the stream.
I already knew the features I wanted to start building for this stream, and I also practiced them before the stream. I don't do this anymore, but I needed it back then. I'm not a very spontaneous person, so it is
hard for me to deal with new situations in front of other people. That was also something I tried to become better through streaming.
It is better to be over-prepared for your first streams than the other way around.
The stream was 80 minutes long, and it was fun. I was surprised at how much fun it was. Being a one-person company working most of my time alone, I
enjoyed being around other developers a lot. We had great conversations and discussions, even if we could only communicate through chat.
What I Don't Like About Live Streaming
❌ It Takes A Lot Of Time
First, you have to prepare every stream. For me, this takes about half an hour, where I check what we did in the last stream and where I think about the todos for the upcoming one. It would help if you found the right balance between being prepared enough to guide the people watching but still keeping it real.
People are watching because it is live; they want to see you making mistakes and running into issues. This way they know how you deal with them, which is very interesting.
My live sessions are about 2-3 hours long, which is very long. My plan is always to keep it under 90 minutes, but I'm not there yet.
❌ It Takes A Lot Of Energy
Like any talk or presentation, a live stream steals a lot of energy from you. I'm sure this is different for everyone, but
I'm DONE after every stream. I need to sit down (I always stand during my streams) and take a break to recover. I'm not used to talking for such a long time. In Austria, we'd say I'm
streichfähig. It means something like you are that exhausted that someone could spread you on bread. Somehow it sounds pretty brutal now that I tried to translate it :-)
I also feel a little anxious the hours before I go live. It is the same for me with every presentation. It's not bad, but it still affects my day.
❌ Communication Is Not That Easy
Since you are the only one talking and everyone else can only write comments, communicating isn't always easy. Comments are short, and you often have to ask them to clarify what they meant.
Also, if you have many viewers writing comments simultaneously, it gets messy and difficult to read. Luckily, I don't have that many viewers yet. 😀
What I Like About Live Streaming
✅ I Learn A Lot
Every time I run into an issue, we (people watching and me) discuss it and think about solutions. It's always great to hear other opinions, and I already learned a lot this way. I'm also fortunate to have the best people-watching on my streams.❤ ️
✅ I'm Forced To Explain All The Time
Talking about code is such a powerful skill. It helps you get a job, become better at presenting, and also while talking to clients. Still, I find it difficult. It is a mix of knowledge and being able to communicate it.
During a live stream, you are practicing this skill all the time. You explain what you want to do; you explain the code you are writing; you try to explain the issue you face; you explain the solution someone else is providing.
But it is also about having an opinion. You are forced to have an opinion because viewers will challenge you. Why are you using this, or why are you not building it like that? I can already tell that live streaming has helped me a lot to better talk about code and have an opinion about it.
✅ I'm Not Alone
I already mentioned that I enjoy my streams because I can share this time with other developers. It feels like I am not alone anymore, and I need that from time to time too. Especially during the current pandemic, these interactions feel very good.
My Tips For Live Streaming
Here are some tips I already collected from my streaming experience so far.
This is true for your setup but also for your content. Find something simple to start with and move on from there. You also need to figure out if you even like streaming or not. If it doesn't benefit you, don't do it.
Make A Test Stream
Like mentioned earlier, a test stream is a fantastic place to check your setup and make yourself comfortable without thinking about the content or coding.
Define A Topic
Make sure to community what you want to do in your live stream. People have a lot on their plates; give them the chance to check upfront what your stream will be about.
Be Prepared To Fail
While coding, we often run into strange bugs. That's part of our jobs. If you like it or not,
it will happen when you are live too. I was afraid of those situations. Will I embarrass myself? Will I panic?
I'm not too fond of situations I cannot control, but that's part of life.
I already had a few of those situations, and I can tell you,
I survived. Just do what you would do during routine work. Google the issue or ask someone watching. The chance is high you get help right away.
You Need A Second Monitor
I usually work with one external monitor, and my laptop is closed. While streaming, you will need a second screen. One is being used for sharing so that you can show your editor or browser. The other one will show you your streaming software, in my case StreamYard on a different browser. I use a different browser, so that switching from my IDE to a browser is easier. If you use the same, you might select the wrong browser window.
Think About The Type Of Stream You Want Provide
Currently, I see two types:
- One directional streams
- Bi-directional streams
If the streamer is primarily working without much interaction with viewers, this is the first type. I don't enjoy these streams that much.
In bi-directional streams, you are highly engaged with your audience. You explain everything you are doing and interact with comments from people watching. That's what I do too.
If you plan to stream regularly,
try to be consistent with your scheduled times. If viewers know you will continuously stream Monday afternoon, it will be easier for them to follow.
But depending on your work, this might now be that easy. I'm also still trying to figure out the best time to stream. My audience is spread globally, so it is hard to find a time slot that fits all. I'm still experimenting here.
If you reply to a question or comment by a viewer, provide context. Other viewers might not have seen that comment. With StreamYard, you can show the comment on the screen so that everyone can read it too.
From a technical point of view, streaming takes some effort. You need to have your lights, camera, and microphone prepared, as well as your streaming software. But there is more that I need to check before every stream, and that's why I have a little list to remind myself:
- Restart computer
- Bring desk in a standing position
- Activate do-not-disturb mode on the computer
- Enable the airplane mode on the phone
- Prepare lights (including light in your room)
- Turn on background music (I use Loopback to make that work during my stream)
- Make sure you are allowed to play that music, I use StreamBeats
- Change resolution on presenting monitor (1280x720 Retina)
- Select my custom presenting theme on PhpStorm (custom font sizes)
- Open up StreamYard on Chrome on 2nd monitor (I use Brave for my presenting monitor)
- Test mic, lights, and camera on StreamYard when entering "broadcast studio"
- Clean up the room if needed
- Prepare some water
- Find a 🧢
Plans For My Streaming Future
You probably noticed that I like streaming so far a lot, and I plan to keep doing it for the rest of the year. There is still a lot to do for the platform I'm currently building, which means I have enough content.
I'm thinking about getting a new camera to increase the quality of my streams, but this will be pretty expensive, so I'm not sure yet. With the rest of my setup, I'm pleased. I'm now paying $39/month for StreamYard Professional so that I can stream in 1080p. It's not cheap, but still the best option for my use-case because I can quit at any time.
As mentioned, streaming is also an additional way of creating content next to Twitter tips, blog posts, and podcast episodes. Creating accessible content and building my audience is an integral part of my work. So far, I cannot tell how much influence it had on my product sales, for example, but it is something I want to keep an eye on too.
- How to get started live streaming on Twitch and YouTube (Matt Stauffer)