Hello again.
Next stream will start tomorrow (Wednesday) at 2pm CEST (your timezone), solving problems from POI 22, round 1 (link). It will be on my Youtube channel.
I did two streams this weekend that you can now find on my youtube channel. The first with quite easy Codeforces problems that I solved from scratch (I haven't seen them before), also implementing them. The second one with a bit harder Topcoder problems that I've solved before, but I didn't necessarily remember the solution now — and for those I only described the solution, without implementation. The streams were fine but there are a lot of things to improve.
I wanted to see two things:
- Can I stream? Am I able to try to solve a hard problem and at the same time talk in English, that isn't my native language? So so. It wasn't a disaster, but I hoped to be better, more efficient. I think I'm not able to stream solving hard problems from scratch, without knowing the solution already. Not if I want to keep it educational and spend time explaining everything.
- Do people like it? Yes, apparently they did :)
I watched some of Petr's streams and I would say he shares his thought process, basically saying out loud what he thinks about. But he doesn't explain things. It's an interesting thing but I don't see learning from that. Still, I think it's the best possible format of streaming an actual contest, where you shouldn't waste time. I also think that I would do it much worse: I'm worse in CP and in English proficiency.
As mentioned above, I want my content to be "educational" for sure. I'm glad that I was talking all the time and I mentioned some similar problem, or explained some general technique needed in a problem. But maybe I talked too much and I should sometimes spend a few minutes silent, or just thinking loud like Petr. Especially in hard problems.
Let's now see what I can and should improve in my stream. This list is for me to note down everything, and for you to maybe discuss or suggest something. It doesn't include things related to the actual content/format (choice of problems, the way to explain things, etc.).
- My English — I don't have a reach vocabulary but that's fine, I guess. I think it's more important for me to improve my accent. That will improve with time, maybe a bit faster if I take some lessons.
- Using Twitch/Youtube efficiently — I must learn to add timestamps for a video later. Adding a proper title and description would also help to gather more people. There should be some description explaining things for people not from Codeforces. I need to become a "partner" on Twitch if I want to stream with adjustable resolution, what turns out to be important. In the Youtube stream, I didn't have sound at the beginning of a stream, even though I had the same configuration I used before for Twitch. Things like this will happen sometimes but will be less and less frequent, I guess. And it won't hurt to add some graphics, like banner and not-default follower notification.
- Get used to chat — at one moment, for a few minutes I had my stream playing on background with sound, what was for sure extremely annoying. I should check chat more often, or maybe put it on my main screen.
- Sound quality — I use a small logitech camera (won in some contest btw.) with a microphone built-in. A stand alone microphone would be better for sure, but I think the sound is surprisingly good right now. So I don't see a need to upgrade in the near future.
- Drawings — a place to draw pictures and formulas is necessary, and I think drawing in paint isn't that good or professional. I should either have a whiteboard (and a good camera with that) or a graphical tablet. I think the latter is a better idea, much more convenient for me. I'm able to spend like 200$ for that.
- OS — I use Ubuntu and I couldn't do programming efficiently on Windows. That might often hurt, with most streaming tools being only for Windows and Mac. I should also be careful when buying a graphical tablet, because some might not work properly with Ubuntu. Maybe it would be easier to just switch to a different OS and learn a few commands there.
- Youtube or Twitch — I must eventually stick to one platform. I mentioned some differences in a previous blog. The main disadvantage of Twitch right now is that it doesn't allow viewers to choose smaller resolution, unless I'm a "partner", what might require some time to get.
- Schedule — I should inform about my stream earlier, perfectly fixing a schedule to something like: Wednesday evening at this hour, Saturday morning at this hour.
- Learning from other streamers — there aren't many programming streamers, so there aren't many guides about that. I checked out a few channels to see what I enjoy to watch, to then try to achieve the same thing. One good streamer is Adam13531 who also created a guide that should be useful for me.
- Stress — with time I will become more chilled while streaming, I hope. It's weird to talk to a camera in an empty room. And I feel a pressure that I must solve everything correctly, and explain things well. I was focused so much that even avoided checking a phone, not to be distracted. I'm quite confident person, but still — I was more stressed than you can see in a video. Maybe my friends would notice that easier, e.g. kostka wrote to me after my first stream that I look stressed out.
And the most important thing is what I actually do during a stream.
I realized after the first two streams how hard it is to try to come up with a solution, and talk English at the same time. If I need 20 minutes for something normally, I would need more than an hour here, if I'm talking constantly. A funny thing was solving Gangsters from TCO. I solved that problem during a contest quickly, but during a stream I didn't remember the solution. So I just shared my initial thoughts and ideas, that turned out to be completely different from my solution. They would lead to some worse complexity, I think. I then opened my code and after a moment understood the easier and faster approach. I was embarrassed a bit during a stream, because I started with worse ideas and had to analyze my old code, but now I think it was completely fine. I still showed what are reasonable ideas and why.
I think that sometimes I can prepare in advance, and then do something harder, like solving problems from POI or maybe giving a lecture about geometry. If I want to solve new problems and explain everything, they must be easy problems. I don't want to take a hard problem and try to solve it for two hours. It wouldn't be unwatchable, but would be quite boring and viewers wouldn't learn much. I can do that from time to time.
I want to try streaming problem setting, maybe creating an unrated educational round. The results mean nothing then, but it might be the only possible way of streaming how a contest is created. I also plan to practice a bit for TCO Marathon, so maybe I will solve some optimization problem the other time.
Yet another possibility is popularizing CP. Solving 50 easiest problems on CF or SPOJ wouldn't be useful for anybody here, but it would be a bit of fun and any programmer could watch that.
Please do post any feedback, thoughts. Thanks! And I invite you for my next stream, announced at the top of the blog.
I think your accent was good enough to understand every word. You should stick with youtube, because twitch is not very good for some areas, and you have to upload again in youtube in that case. Thank you for your dedication.
Thanks.
Are there some other differences between the two platforms?
You can stream on both
Here are my thoughts on your points:
Unfortunately, i wont be able to watch your stream tomorow because of school (i will try to watch it in school, we will see how that goes :) ). I will make sure to watch the video later tho.
Yeah, at least temporarily I will use Youtube because of that reason. A few more streams should show if it's better to include implementing or not. Thank you for the feedback and for watching :)
Thank you for sharing your knowledge with us!
I like your ideas. We need more educational competitive programming streams. Any interest on being a guest on Algorithms Live? It would give a good chance to discuss ideas for CP streaming.
Yes, please. I was going to eventually ask you myself if I can be a guest there :D
Great! :)
Wanted to send a private message, but then got this: You exceeded your quota of 2 distinct recipients per hour
Sad day. I will send a message to discuss episode ideas in a hour.
You can still read my messages and thus pass me some bits of information (because I see when it's read). Let's say that reading within 1 minute means "YES", and otherwise it's "NO".
Cool, another stream!!
Also another great thing about watching your stream is that i am really concentrated during it and i'm focusing very much to not miss a thought you say and after the stream i go home with 3+ new tough problems understood. :)
You can sometimes invite some guests, like me, Swistakk, Radewoosh, mareksom, Marcin_smu, Psyho or mnbvmar. :)
That would be awesome.
It would be great if you could stream once a 5 hour contest with your former team Radewoosh and mareksom. Without explaining (normal contest), just to see your strategy and how you cooperate with each other. It would be really educational for anyone who starts in ACM.
Loved the stream. I don't know if I have any good feedback, but I'll leave some comments about each of your points:
(1) My English — Personally, I could understand 99.9% of the words that you said. You do have a noticeable accent, though, and I'm guessing that some people will struggle to understand everything. If you improved your accent, your stream would unequivocally improve, but I think it's a low priority as long as most of your audience can understand you — and we can.
(2) Using Twitch/Youtube efficiently — With regards to adding a description for non-Codeforces people, a link to "Competitive Programming" on wikipedia would probably go a long way. As for timestamps, those would definitely be helpful! Although I wonder if you can outsource the work to viewers, if it takes significant effort for you. I'm sure we would be happy to help.
(3) Get used to chat — sounds good
(4) Sound quality — I didn't notice any bad sound quality
(5) Drawings — tablet sounds good, although the Paint program worked surprisingly well for the line-sweep problem LOL
(6) OS — :(
(7) Youtube or Twitch — Since many people in the comments are voting for Youtube, I'll just chime in and say that I slightly prefer Twitch, since I'm more used to watching streams on twitch. Something about it feels more community-oriented to me, which I think is valuable for your stream. Strangely, I definitely prefer Youtube to watch the videos of past streams.
(8) Schedule — no comment
(9) Learning from other streamers — no comment
(10) Stress — This seems like an important point, since it's obviously not sustainable to continue streaming if you're stressed out on every stream. I don't know if this is helpful or not, but you didn't appear stressed to me, even on the stream where you spent the whole time debugging one problem. Also, I thought the stream was very good and your explanations were thorough. I'm guessing this was, at least in some part, due to the fact that you cared so much about making a good educational stream that you felt pressured. Anyways, I think everyone watching the stream (at least for now) is a gracious viewer and already friendly, and so we'll forgive any mistakes and imperfections in your stream.
Alright, after typing this all out, I realized that none of my feedback is actually substantial. Still, I'm going to post it in case any of the perspectives of a viewer are helpful.
I vote for YouTube, I am not really comfortable with Twitch(Infact, i never saw that site before). I don't see any watch later type feature there. I have to attend college, but i really love your streams. Or if it's possible to stream on both platforms, please try doing that. That would be great.
I loved your Question and Answer section at the end of your first stream. Many thanks for sharing your knowledge with us.
That would be nice, but I think there is another way, going through your previous contests, and tell us how did you create strong tests, generators, etc. I really want to see how to generate some antihash tests.
Keep it up.
The last stream turned out to be very good, IMHO. This time I felt quite relaxed.
See you next time on Sunday, likely around 2pm CEST. I haven't yet decided what to do exactly then.
Could you please relate a stream dicussing problems of a famous book LOOKING_FOR_A_CHALLENGE of polish tasks , i always wanted to solve them...
Solve some problems that most of experts-candidate masters wouldn't be able to understand the solution. It's really depressing when you can't understand a solution even after some hours of trying. (Notice i am not talking about solving it by yourself but looking at a solution and not being able to get it.)
Why would I show problems that my viewers "wouldn't be able to understand"?
What i meant was that they wouldn't be able to understand the solution by themselves but you will help them do.
The next stream will start in 20 minutes on Youtube, link. I will show a problem or two from our recent university contest, and maybe something suggested by the audience.
Thank you kamil for your streams on YouTube. I want to add something. I have seen you moving from solving contest problems to interview problem. I can understand that solving problems of a contest and streaming live on YouTube is tiresome, I think it will be great if you start with some concept/trick and solve some problems related to it. I am also not sure which will be the best as you started with the aim to show how you approach to some new problem.
Hi, I'm curious, what did you end up doing for drawing (OS/software/hardware)? Thanks!
I use OneNote and a drawing tablet but there are some annoying parts like scrolling bars on the right and bottom. And I would like to have a red cursor/pointer dot but it seems that it exists only in PowerPoint and Google Doc presentation, and in some iPad drawing software.
btw. you might want to read my FAQ https://github.com/Errichto/youtube/wiki/FAQ#hardware
Thanks, I appreciate it! I tried googling
Errichto hardware
but this didn't come up, haha.