Lessons from my first year of live coding on Twitch
medium.com
medium.com
Don't expect anyone from Twitch to randomly discover your stream and have any idea what you're doing. Programming anything that isn't a video game on Twitch will be totally unfamiliar to their primary demographics. That said, use Twitter or something else to BRING YOUR OWN AUDIENCE. Be prepared to stream for a few hours or else you will likely never build up traction in your chat.
As this post says, vocalizing your stream of consciousness is vital; think of it like pair programming with the chat. I try to engage the chat without getting totally nerd sniped and ending up off topic.
I think the best way to really kick the tires on Twitch programming content would be to stream podcasts and/or have a joint channel of shared programming content and have many different programmers participating either via a shared account or Twitch Teams[0].
I like that idea a lot -- have been wanting to team up with other devs on live twitch projects. If anyone is interested in getting this set up be sure to PM me -- I have 14 years of dev experience in a plethora of languages:
- Python - C# - Ruby - PHP - Javascript (front and backend) - HTML / CSS
Something like this... I would really enjoy. Bookmarking this page so I can have a look at all your streams. I would like to do this myself. It would be interesting to be able to share exactly what it is that I try to get done on a daily basis. It would be useful to show my colleagues and management interests. I don't know how much they would pay attention, but even being able to point back to a video at a specific time to share something would be useful.
Unfortunately, I don't have a solo office, so figuring out a regular location to stream from will be a challenge, but that's neither here nor there. I can do it from home a few times without bothering anyone to figure out all the logistics before I actually try to do anything real.
I like him, he's fine. But I'm curious what converted you to stream-watching in him.
He works incredibly hard, is one of the best LoL players on the planet, he loves his cat (SMOL CAT WHAT YOU WANT!?) & gf, I enjoy his wit, love when he reads his new subscribers list, and so forth.
I like his personality, plain and simple. Couldn't care less about league of legends.
One technical question: How do you make OBS switch to showing your browser when you open it up to look at docs? Do you manually toggle it in OBS or is there a tool available for this?
I was doing JS development using OBS and couldn't find a good way to make the IDE show when it had focus and make the Browser automatically show when it has focus. So I was frequently showing the wrong window to my viewers.
I do this by setting up multiple scenes in advance and then using the automatic scene switcher (under the Tools menu).
I keep things as lazy as possible, and just stream my entire desktop (with slight crop) instead of a specific window. I have my browser window lined up and positioned on the left so the webcam doesn't cover up anything. I then can just CMD-tab to it quickly.
The benefit of this is that folks also see your development flow in a more realistic way, as switching scenes can look slick but departs from how you normally work.
Results were quite acceptable.
It is basic but works.
Some solid tips on here and OBS is a surprisingly good piece of software but it can be a resource hog at times.
The hardest thing about it is to keep the schedule and be emotionally available when the stream comes on. I wrote about it here [1].
What I like the most is working through a project in stages on the stream. People can connect with the project and also contribute to it. Working on one-offs tutorial style did not really work for me.
I stream full stack content. From Node.js to Golang and even Devops. [2]
The screen to not show the desktop when doing secret things is good, however, as mentioned here I would definitely recommend a second screen. It changes the way you work a lot.
[1] https://fullstack.network/announcing-my-most-ambitious-strea...
"Hog" implies bloat to me? Video's hard work, though, and OBS will chew a CPU but it really needs to (unless you use a GPU encoding solution like NVENC, but there are quality concerns there). I have a second PC--actually a pretty nice 4U rackmount in a 6U wheelie with my audio interface--dedicated to video crunching and audio mixing for when I do livestreaming events for folks.
Before, I was using a 2015 MBP and it was having a VERY hard time handling the streaming at 1080P (mind you I was running 2 screens off of it).
I am not sure it's a hog because of bloat, it's just that you need a more than average computer to stream with good quality.
Funny story is that once I clicked stop on the stream and it kept streaming. Showing me having a phone call, going on Facebook and just continuing with my day. I had to just shut down my computer because OBS would just not stop.
On the new iMac I had absolutely zero issues with it and I am running it with 2 screens and 5K on the main screen.
Also use twitter etc. to promote yourself.
It suprisingly works quite well and is more entertaining for the viewers to see what and how bugs get introduced.
And help it definitely can. For some people, pictures and motions are easier to remember and reason about, even in such a text-heavy area as writing code.
As a watcher of such streams, be they game session I wonder how people don't see something and go crazy because they can't actively participate - the author does mention that some people will have contributed pull requests by the end of the session. :)
I mostly stream myself doing algorithms though. Basically I do the Google Style interview questions, and almost run my stream like I am doing an actual interview.
https://www.twitch.tv/stale2000/videos/all
The reality of the livecoding scene is that most "real life" coding is actually pretty boring to watch.
In order to be actually interesting, you have to be talking and explaining what you are doing the entire time. I am glad that other people out there are having success!
P.S.: Sieve rhymes with live, as in "I live in California." :)
1. Show how horrible my code is.
2. Accidentally leaking sensitive stuff.
As a habit, I don't stream code related to my workplace, it has too many risks. Even if you see parts and pieces and will not be able to make sense of it.
We don't have a single secret embedded in code and all of our secret files are encrypted using vault, even that is too risky for the clients we have.
I stream my personal projects and things like QnA etc...
Maybe this exercise will make you a better programmer.
2: dual boot / set up an account on your system that doesn't contain sensitive stuff.
Concerning 2: I would never code something actually sensitive on twitch. Fortunately I enjoy programming video games, so I can stream that with relative safety, but I wouldn't ever stream something from my real job for example.
This is my preferred method of programming as well -- start with a pile of working crap and refine. order out of chaos!
Questions for anyone who does this or views these sorts of streams:
Do you find that people can follow what's happening in vim well enough? I've considered just using plain VSCode because I'm concerned jumping around too much as I do normally might be hard to follow.
Do you feel that this might be good interview practice as well, since the process of explaining code as we write it doesn't come naturally to some of us?
Any additional tips to make sure what I'm doing is comprehensible would be appreciated.
Just talk your mouth off, seriously. It's the best tip I can give you to make it interactive.
You gonna open a file and do something, say it, don't just do it. When you are thinking of a problem, ask for suggestions from the crowd/viewers...
Also, ProTip. Vim is a problem if you navigate really quickly along splits (like you should), people lose focus and will just stop following.
I switched to Atom for my last stream (I hate every minute of it) but it slows me down enough so people can follow better.
Hope this helps
My views are not that of my employer.
Everyone has different preferences and something that works great for you (and me - I have a 4-monitor setup right now and loving it) isn't necessarily what works great for everyone.
Either way it will definitely challenge your multitasking though.
That is like telling a speaker to prepare two slide decks and switch between them during the talk.
Then again, he also doesn't interact with chat at all while programming and only looks back at the end and answers questions afterward. So he breaks a few pieces of advice others might say are essential for a stream.
(If you use a single monitor for coding in the privacy of your own home... well... what can I say? It takes all sorts.)
I'm not a gamer and would have never thought to look on there for tutorials. Their search isn't very good and I've found YouTube is the best place to find out who is using Twitch. There are guys with a thousand followers who don't show up on search! Still a very valuable outlet that I bet most coders don't know about.
It was stressful at first... had to deal with trolls (and also about 80% sure hackers that were trying to get me to root my system live). After I got the hang of it all though it became a lot of fun.
I stream game development which is a hobby of mine (software engineer for the interwebs by day). Being that it is a hobby I am still learning. I've been able to make some internet friends, pick up techniques and learn more about C# thanks to twitch streaming. One day I would absolutely love to transition to full-time independent game development and do it all live on Twitch.
Another thing to note - although I have 14 years of professional experience, I used to get nervous coding in front of people, thanks to streaming on Twitch that went away -- I'm no longer afraid to fail or mistype. My overall confidence has improved. I strongly recommend live coding.
edit: I've also gotten MUCH better at talking through my code because to maintain an audience on twitch you have to talk and explain what you're doing almost the entire time.
However, I'd be worried about accidentally revealing a system password or credentials by accident.
It's good advertisement, and it lets people have a look at the results of your streaming. For all we know, your stream could be great, good, bad or not at all. We don't know.
Without that information, it is hard to know what to make of the rest of the blog post.
You can vouch for a comment to resurrect it by clicking on the "2 hours ago" or whatever (to get to the comment's page), then clicking "vouch". (Vouching requires 30 karma, according to https://news.ycombinator.com/item?id=14326108 .)
One issue I have is the balance between high quality broadcasts that don't have the opportunity for frequent audience input - or lower quality broadcasts that are more interactive.
Right now there are 300 live viewers watching people in twitch Game Dev.
And going to the website of liveedu.... well it is aweful hard to find a list of live streams ordered by number of currently active viewers. It almost seems like they are trying to hide the number of active viewers, perhaps because they are so low.
The closest thing that I found to a list of active live streamers shows me that there are 2 streams running right now, with a total of 15 users watch.