Streaming F#
(This blog post is a part of the wonderful F# Advent Calendar Please go there and read the other posts in the series.)
Why Stream F#?
To answer this question let’s have a look at outreach methods used in the F# community - you can write a blog post like I’m doing now, you could interact with people on Twitter and if you’re feeling really fancy you could record and edit a video lecture/demo for YouTube. There are also some amazing conferences that you can speak at, network and meet people.
All of these methods are wonderful and work incredibly well in their own ways, but apart from Twitter/other social media platforms there is a good amount of preperation required and there could be other issues too - only so many people can attend a user group or a conference. Videos aren’t interactive, blog posts even less so.
This is where live streaming comes in. With live streaming you can easily chat with the people watching you, it’s all real-time. The videos can be archived off for later viewing/reference by either people who were present in the stream or even people who couldn’t make the stream time. There are also no fixed formats, it’s possible to go into it with very little in the way of preparation. The format that I use is a bit of mob programming - it allows the community to interact, demonstrates that everyone needs to use the docs and comes unstuck and shows the real experience, not something that’s all polished and “demo-ready”.
Streaming allows me to do as much outreach that I can do with minimal effort and show the whole story of working with F#, warts and all. As someone that believes that F# is a great programming language for beginners it’s important for me to show everything honestly, allow people to follow along and ask any questions that they may have. You can have a workshop format and with VS Live Share have some people take part in the stream directly.
Lessons Learned
I said above that you can go into this and do next to no prep - this is very true but please don’t. Doing a little bit of prep helps me get through the streams with fewer issues. Working on a project that I’m excited about helps me too, my old F# fundamentals series wasn’t my favourite series to stream so I killed it. I didn’t feel like i was doing that stream justice and felt that it would be disrespectful to keep the series alive. In hindsight I wouldn’t have ever done that series as I’m not a great teacher and it didn’t fit well with my style.
There’s a lot of promo work needed too - I think I underestimated that but you need to be tweeting at the right times, in the right discord channels and timing is key. There might be a shake-up soon in the schedule and I’ll have a look at who is streaming when.
So You Think You Want To Stream F#?
Do it! - Seriously, nothing that I have said here should put you off. Here’s what you don’t need:
- A posh microphone - I just use an old gaming headset
- The newest computer - Until recently I was using a 2011 Sandy Bridge machine and it did the job really well, even with Xamarin!
- Multiple Computers - You’re not streaming games, OBS isn’t too resource-hungry.
- A webcam - Controversial as some people will be put off, but to start with: if you don’t want to be on camera or don’t have one… don’t sweat it.
What you really do need:
- A decent enough rig - You are going to have overhead above your normal programming workload, a dedicated GPU will help there though so on most desktops and reasonably decent laptops there should be no need to worry.
- A streaming application - The video feed has to be mixed and sent to your streaming service of choice somehow.
- A microphone of some description - It is possible to go without but then you do tend to lose a lot of the interactivity with your viewers, while webcams are optional I would claim that a microphone isn’t.
Most importantly, you need passion! Seriously, your audience’s nonsense detectors will go off at the slightest hint of you trying to fake passion. I’m passionate about F# and about working with everyone to create some fun projects. That’s what I want to carry on doing on stream and having a great laugh. Just please don’t expect to get much work done, chat to your viewers (or as I call them now: friends) and enjoy the ride. Don’t stop talking - if someone drops by they will want to hear you talk about what you’re doing and feel the passion in your voice.
I’d love to see more people get into this and let’s use the medium of streaming to spread even more F# love into the community. Merry Christmas all!