Why I Believe Livecoding Is Cool

January 23, 2017   

For the last couple of months, I’ve been live streaming my coding sessions while I work on my personal projects over at livecoding.tv.

Live streaming your code is kinda similar to pair programming. You code along with someone else watching you do it, and hopefully asking you questions and helping you when you’re stuck. I believe that all the benefits of pair programming applies nicely to live streaming your coding sessions: you can explain your thought processes out loud, which itself makes you understand more about the problem you’re trying to solve, leading to better solutions and cleaner code in the process, and you can interact with other people while you do it.

I found that the biggest advantage overall about live streaming is that it actually got me working on side projects, providing me with the needed motivation that I so desperately wanted to start working on them. Once I started working, messing around with the files and the code, I got immersed in the world of coding and chatting with viewers. Every time I now think about working on my side projects, I get fired up because I know that I can share that experience with other people, and I like talking about code, so when people ask me questions on the stream, I gladly try to answer them thoroughly. This, in itself, is another big advantage of live streaming code. When people ask you questions at work, you help them, if you know the answer, or at least your redirect them to someone who you know knows the answer. When you do help people, you try to be the most helpful to them. What ends up happening in some cases, is that while you try to explain something to someone else, you may get to know a little bit more about that something. It’s the exact same thing while live streaming. Viewers ask you questions, and you now have the opportunity to spend maybe 5 to 10 minutes researching a little bit more about the topic, and learn with your viewers as you go. It’s a win-win situation.

Overall, the biggest factor for me was being able to regain that motivation and enthusiasm that I have been searching for the last couple of months, or even years, to work on my side projects. I now know that I could very well stop streaming and continue working on my side projects, because I now understand what it feels like to start something and actually finishing it, all thanks to going through the pain process of actually starting and sticking to it, by streaming my coding sessions.

Well, that’s all very cool, you may say, but what about the possible productivity drop while you stream because of the constant interruptions, the questions and answers, and the chatting? This is, in my opinion, the only downside of streaming while you code.

If your stream gets traction and starts attracting more viewers, you may end up being constantly interrupted with questions. We all know that we as programmers love the feeling of flow state and being able to write code without interruptions. I typically approach this problem in the following way:

  • I break down everything I need to do in a streaming session, either before I start streaming or when I start the session.

The latter provides the most advantages to your audience: it allows them to know what you’re working on, which tasks you’re going to work, and they can decide if it is something that interests them or not. Bonus point if you add the task list somewhere in your streaming screen area.

  • Once I pick a task to work on, if it is something trivial to do, like setting up a database, making the Hello World work, setting up the server, the dev environment or installing necessary packages, I’ll typically do this while chatting with viewers.

  • If it is something harder and more mentally challenging, for instance implementing an algorithm, writing a module or class from scratch, where I know I’ll need my full focus and attention, I’ll just do it and don’t open the chat for the next 10 to 20 minutes. Granted, I may miss some questions and people might leave the stream for the lack of interactivity. One idea would be to add a panel saying something like “Deep focus for the next 20 min while I write X/Y/Z. No Q/A while doing it”. When I open the chat again, I’ll read and answer whichever questions I may have missed.

To recap, here’s what I believe are the advantages of live streaming your coding sessions:

  • More motivation to work on your side projects, and actually finishing them.
  • You get to expose and explain your thought process to other people, even if they are strangers, which most of the times leads to a better understanding of the problem itself, consequently leading to possible better solutions.
  • If you’re an introvert like me, just by talking out loud to no one in particular helps me stop living so much inside my head, and talk about whatever is on my mind (coding related).
  • Learning. If someone asks you a question you don’t know, you can research right away about it, or make a note to learn it later.
  • Somehow, knowing that someone else is watching me coding, makes me want to write more beautiful, readable and maintainable code, gotta keep the ego in check!
  • If you’re building some open source tool, you may even ask your viewers to share them with other people, thus attracting visibility to your tools, which may lead to pull requests and/or issues in your repositories, which is cool.

Now as shameless advertising, I’d love if you check out my stream . I try to stream every few days, and I would love to bring you along in my coding journey!

What are your thoughts on live streaming code? Have you ever tried it? What was your experience like? Let me know in the comments below!

blog comments powered by Disqus