I don't remember exactly how I found a LiveCoding, but I remember the impression which this website made on me. I started my adventure with programming in 2003. Then I didn't even had an internet connection - really ;) I've got a book Symfonia C++ and old compiler - Borland 3.11.
Back then I had a big problem every time I had encounter a bug. As a newbie I did't knew how to debug code in efficient way and my book - which was really great - couldn't help with that. But I didn't give up - fortunately :)
What is the secret to learn programming much easier? You need to find your mentor, but this is more difficult than it may sound. They not grows on trees... at least they not used to do that ;)
You may heard about Twitch, right? It's weird platform, where you can watch as other people play games. Why people do that? Because they want to share an experience, they have a common gaming passion. I am not a player, but I am sure that this is very entertaining, but also in some way, very educational. It was a matter of time (and internet bandwidth ;)) before people figure out that this can be used also for different ... passions :)
"You are spending too much time in front of your computer" ~ Mom
There are places, where people fully understand why you are "wasting" your time writing some meaningless silly code, which "does nothing useful". In such places people help each other because they understand how important this is for you. One of those place is LiveCoding.tv. I could end this article here... because those people are the reason why I love this place :)
But we live in XXI century and people like to know what benefits they can have from everything. Ok, I can explain that for you :)
Debugging out loud
There is well known phenomenon in programmers world that you can find a solution for your really complicated problem simply by describing it out loud to someone.
There is a theory that because sometimes you do not even need an input from person who you speak to (person to speak), that you could also use a rubber duck for this.
As silly as it sounds, this is actually true. But believe me, real people are much smarter and give much better coding advises :) It is so amazing for me how easily I can find there so many people who are so able to help me.
Code Review and Quality
This is almost obvious, that when other people watch as you work, they can notice things which you've missed. The earlier they will tell you about your mistake, the less time you will waste for debugging later.
I have also noticed that when other people watch me working, I am trying to write better code, with more unittests, with better formatting and better documentation. All because I want to keep my viewers informed about what I am doing right now.
We are not perfect, our decisions can't be always correct. You can have a good idea, but brainstorming sessions with others improves it almost every time. You probably already know that, but did you realize that with such transparency your feedback loop will be shorter than ever?
Archive of your work
You can find this useful at some point, that you will have a complete archive of development process of your code. Don't get me wrong, this should not even try to replace a documentation of your project. Documentation should be brief and search-able with a single phrase. Right now I am not aware of software which can find a text in a audio and video.
Nevertheless, you will never be able to document your work and thoughts about it in more detailed way. Maybe you will not need it, because you remember everything, but probably in the future you will not have time to maintain all of your projects. Maybe at some point someone could want to continue with your project and develop it even further, and they will have and explanation of every decision which you made during development. Wouldn't it be awesome? :)
Proof of Effort and Proof of Work
Proof of Effort - Have you had this situation, when you did something meaningful, but you had a felling that no one really understood how much time and effort you had to sacrifice to end up with quality like that? Been there, done that. But is it their fault, that you suck in marketing? :) No, it isn't!
The truth is, that behind each great project there are countless hours of hard work, sweat and tears. When people see hard work, they really can appreciate it, but you have to give them a chance to spot it!
Proof of Work - there are employers out there which needs guys like you, but sometimes you are in different part of the world. In theory they can hire you for remote job, but there are so many problems with remote employees...
With LiveCoding your work can be transparent as hell, and you can very easily proof that:
- you are hard worker and you are not afraid of being evaluated - sounds professional?
- you are not "less available" then any other employee, in case if anyone would need your help
- you work efficiently without any supervision
- you are quite a nice guy and for sure there will not be any troubles with you ;)
... and much more!
"But wait... people will steal my project!!!"
No, they won't. Let's face it, probably you are not coding a project which dominate the world, and even if you are (and I hope you will!), you have to remember that: "Idea is 1% of success, 99% is execution"
And because people are smart and can calculate, even if they want to build something similar, that's more likely that they will choose to help, join you or they will just offer you a cooperation. But why is that so? Because you've already proven who you really are. Do you remember the poins which I mentioned earlier? Professionals love to work with hard workers!
"This is great idea, but my project is close source and I can't change that"
Ok, I understand. In that case you have limited options. For sure it is worth to mention, that you can still do livecoding, because there is a feature of private streams. This is a paid option, but personally I am not surprised by that. This is the same business model which Github used for so many years and is going to continue, and its proven that it's able to support open source movement and can secure the future of a company. I know about at least few guys on livecoding.tv which are using private streams as a tool for remote jobs :)
I know it works for me. Will it work for you?
I am developing my project - open source Price Comparison Engine - since 1st April. I recorded more than 150 hours of coding, with 7406 views, 116 followers and 20 stars on github - that's crazy! :)
Since I started using livecoding I've noticed that I can do more in less time in much better atmosphere. This motives me so well!
Will it work for you? Don't know, but there is only one way to figure out...
This article was written during 5 hours of livecoding or rather liveblogging - :)