原文:Lessons from my first year of live coding on Twitch
译 文:FreeCodeCamp
作者:winar-jin 译
我第一次直播写代码是在去年七月份。想要直播一下我在业余时间内为开源项目领域所做的工作,尽管在youtube上的大部分直播都是关于游戏的。我比较擅长于NodeJS的硬件库方面的工作(尽管大部分项目都是自己的)。并且我在youtube上曾经开启过一个房间了,那为什么我不继续做下去?我的栏目可以叫做:基于JavaScript的硬件开发。
当然,我并不是第一个在直播平台直播代码的,Handmade Hero是我见到的第一个直播代码的人。接下来Vlambeer的工程师们也开始了直播代码,他们在youtube上直播Nuclear Throne项目的开发。我也特别喜欢Vlambeer工程师们的直播。
真正促使我做这件事情的是我的一个朋友,他是Nolan Lawson。他曾经一周直播一次他在开源项目领域所做的工作,真的很酷。在直播过程中,他解释了他所写的所有内容。他也回复了Github上的issue,将一些错误分类,调试代码分支。我觉得他这样很有意思,因为Nolan维护着拥有很高使用频率的开源代码库。我觉得他的开源生活和我很不一样。
你可以看到我曾经在他的视频下留言:
一周后,我设置好了youtube房间信息,使用OBS工具,我准备开始直播了。我一直维护着Avrgirl-Arduino这个库,我想我在直播的时候也做这个库的工作好了。第一次直播是很困难的,那时我很紧张,前天晚上熬夜还在不断的排练着直播时准备讲的内容。
那个周六我的观众很少,但大家都在不断鼓励我,所以我坚持了下来。现在我的关注量已经有一千多人了,其中有一些观众每次都会参加,我把他们称为“noopkat粉”。
在线编程有很多乐趣可言,我觉得代码直播更像是“大型多人在线的结对编程”。每个周末参加直播的观众真的很友善并且很聪明,这真的很令我感动。记得曾经有一次特别搞笑的经历,一个粉丝指出了电路板和软件没有正常配合工作的原因,竟然是因为忘记在电路板上插芯片了。
我已经有一段时间没有直播了。现在只是在收到关于一些功能改善的PR时才会进行直播,因为我真的没有时间开始了。我可以坦白的说,我的开源项目已经变得更好了,真的要感谢youtube社区的慷慨和鼓励。
youtube带给我的好处其实还有很多,但也许我会在另一篇文章中再详细的介绍它。相反,我想在这篇文章中分享一些经验给那些同样想做代码直播的人。因为最近我总是被开发者问到如何才能开始做代码直播,因此我想把当时给他们的建议写出来。
首先,你应该看一下《在youtube上直播并发现成功的秘诀》这篇文章,它在前期帮助了我不少。尽管它只是关注在youtube游戏直播,但这篇文章中仍然有一些相关的内容和具体的建议。我建议你在准备注册你的房间(设备或软件选型)之前先看一下这篇文章。
下面是我自己的建议。包含了自己在直播代码的过程中所犯的错误以及从同行直播的同伴那里获得的经验(你知道他是谁的)。
软件
网上有很多可以用作直播的软件可以选择。我自己使用Open Broadcaster Software(OBS)。它在大多数平台上都是可用的。这款软件真的很简洁并且容易上手,其他的一些软件就需要我们一定的学习成本了。有了这款软件,你一定会顺畅很多,以下就是今天我电脑上OBS软件的一个截图。
你在直播时可能会在不同的场景间进行切换。场景是一系列输入源的集合,不同的层级之间彼此合成在一起。
输入源可以是相机,麦克风,桌面,网页,实时文本,图片,列表等等。总之,OBS非常强大!
在我直播时通常都是使用上图所示的桌面的场景。我使用iTerm和vim,同时还有一个方便切换的浏览器窗口,以方便的查找文档以及在GIthub中查找资料。
底部的黑色矩形是我的前置摄像头,所以大家可以看到是我正在工作,并且建立一种联系感。
在我的场景中都有一个清晰的标签,其中的许多和顶部横幅的统计资料和信息有关。这个横幅仅仅是为了添加个人的信息,也是在直播中持续的信息源。它是我在GIMP中制作的图像,并将其作为场景从输入源中导入。一些标签是从文本文件中获取到的信息(比如最近的关注者)。另一个标签是我自己制作的标签,显示了我在直播时现场的温度和湿度。
我还在场景中设置了“警报”场景,当有人关注或者向我捐助时,它会在直播间的顶部显示出一个可爱的横幅。我使用了web服务Stream Labs来做这件事情,并将其作为浏览器网页的输入源导入到场景中。Stream Labs还会自动创建最近关注我的用户实时文本信息,以在顶部的横幅中显示。
我还使用了一个屏幕背景图以暗示我就要准备开始直播了。
当我在输入一个私密的令牌或者API密钥的时候,我还需要一个场景。它可以显示出我的头像,但是用一个有趣的网页来暂时隐藏我的桌面,所以我也可以保持一定的隐私性。
正如你所看到的,我在直播时不会太严肃,但我希望能给观众一个良好的配置,使他们更好地获取主播主要的内容。
暴露一个秘密:为了保持youtube所规定的文件大小,我会使用OBS裁剪屏幕的底部和右边缘。这样可以在底部留给我一些空间看到当前直播的状态(关注者等等),并且在屏幕右侧回复聊天框。只要你觉得有必要,youtube也允许你将聊天室弹出作为一个新的窗口。
以下就是我桌面的真正的样子:
我几个月前才开始这么做,还没有来的及看大家的反馈。我甚至觉得观众们应该不知道我是如何设置才可以边直播边和他们聊天的。我想他们一定以为我看到的一切都是理所当然的,但当我在紧张的编程过程中时,我甚至看不到现在正在直播的是什么。
你也许想问,为什么你不再加一个显示器呢?那是因为两台显示器在直播的时候真的要关注太多的东西了。我当时很快就想到了这一点,所以就一直采用一个屏幕进行直播。
硬件
我刚开始直播的时候,还用很便宜的设备,直到我后来迷上直播后才换了好一些设备。我认为只要你愿意用什么设备都可以开始,即使是笔记本上的麦克风和话筒也一样可以进行直播。
现在,我用的摄像头是罗技Pro C920,话筒是Blue Yeti。尽管花了钱但也是很值的,因为这些设备大大的改善了我直播的质量。
我也换了更大型的显示器(27寸),因为我之前也提到过,我并不会使用两个显示器。那时的我经常没有看到大家的聊天记录,因为我并不喜欢直播的时候看第二块屏幕,可能你和我有不同的想法,但是我更喜欢在直播的时候将所有东西都放在一块儿屏幕上,这样可以使我更加专心在这个屏幕上所发生的事情。
在硬件方面我也是一样的,并没有特别复杂的设置。
如果你感兴趣的话,可以看看我的桌面,并没有什么特别的,除了一个难闻的话筒。
小建议
在最后一部分,我想介绍一写小的技巧,也正是这些技巧使我的直播变得越来越有趣了。
房间简介
花费一些时间准备你的房间简介,简介通常是在个人频道底部的内容框中。我把这里当做另一个个人信息页面(哈哈,但我真的这么以为的)。简介的内容可以包括聊天的规则,直播信息,你所使用的电脑和设备信息,你最喜欢的猫的品种,任何可以创造出个人感的东西都可以写在上面。可以看看别人的频道(特别是很流行的频道) 获取一些想法。
这是我的房间简介:
聊天
和观众聊天真的很重要。当人们在直播途中加入到你的直播中时,他们会一遍一遍的问你相同的问题,所以如果有一个“聊天的宏指令”真的很重要。“你在做什么?”是我在直播中被问到最多的一个问题。关于这种问题,我有我的聊天的快捷方式,是我用Nightbot实现的。我会提前输入一些问题的答案,通过输入一些简单的命令就可以方便的回答大家的问题,比如:”whatamioing”。
当观众提出问题或者或者认真留下评论的时候,回头一定要和他们进行交谈。可以向他们表示感谢,他们一定会非常感激你的注意和肯定。当你刚开始直播时,是很难时刻保持和观众互动的,但是当你做的久了,就会简单一些了。过几分钟就要看一看聊天窗口有没有新的聊天记录以和用户保持充分的互动。
当你在编代码时,一定要解释你正在做什么。多说,多开玩笑,即使当你编程中卡住了。我会这么说:“哦,抱歉,我忘记怎么使用这个方法了,让我们Google一下,哈哈”。观众都是很友好的,他们会和你一起阅读代码,有时还会帮助你一起修改。和观众一起互动是很有趣并且很有吸引力的。
当我看别人在进行代码直播时,若他们只是静静的编代码,不看用户的聊天,也不关注新进观众的提醒,对于这样的直播,我很快就会失去兴趣了。
若一个观众点进了你的房间,99%的是因为他们对你的直播很感兴趣。我也是偶然间得到了这样一个工具,由youtube和Nightbot提供的工具真的可以起到很大的作用。
准备时间
尽可能将你的设置自动化。我使用的终端是iTerm,它允许我们保存桌面的排列和字体的大小,以便我们之后进行还原。在直播时我有一套窗口的排列顺序,还有一套是为非直播时准备的。这样做可以大大的节省时间。只要我敲击一个命令,就能在正确的位置显示正确的大小,一切都是那么自然。
还有一些其他的应用程序可以自动的帮你正确的放置桌面位置,你可以试一下看看有没有帮助。
保证你的终端和代码编辑器的字体要足够大,要保证每个人都能看到你的代码。
保持规律
一定要保证日程安排的规律性。我每周只会直播一次,但一定是在相同的时间进行直播。一定要让你的观众提前知道你每一次是否都能按时直播。这样做会帮你圈住固定的观众。有些人就喜欢有规律的工作,就像刚好赶上了朋友一样。这也是属于你自己的社交圈,所以你也应该那样做。
其实我也想要更频繁的进行直播,但是由于日程的原因,我不能向大家承诺每周直播多次。我一直想要努力提高自己直播的质量,或者也只是随便的闲聊,也可以省下一下代码周末进行直播,我也正在尝试着这么做。
棘手的问题
刚开始时你会感觉很奇怪,别人看你写代码时你会感到很奇怪。这种情况真的很正常!尽管我有过演讲的经历,但在我刚开始直播的时候,还是有很强的这种感觉。我感觉我没有什么地方可以隐藏我自己,这使我感到很害怕。我会以为,“每个人都会觉得我的代码写的很差,我是一个很差劲的开发者”。这是一种让我整个职业生涯都陷入困境的想法,但这并不新鲜。我知道在直播的时候,就不能在推送Github之前默默的重构代码了,尽管这对维护一个开发者的名声非常重要。
通过在youtube上直播代码,我也极大的改善了我的编程风格,我也认识到自己是这样的开发者“先使其工作,然后使其可读,最后使其高效。”我再也不会再晚上进行排练了(我在直播了3~4此就放弃了这个习惯),所有我在youtube上写了粗略的代码,并且我也必须这么做。当我一个人在思考的时候,我会写出最好的代码,不看大家的聊天记录,不大声说话,这样也是可以的。在直播中,我也会忘记使用了上千次的方法签名,犯一些很“愚蠢”的错误。因为对大多数人来说,这不是一个富有成效的环境。
在youtube我的社区中,大家从来没有因为这些而批评我,大家反而会帮助我。他们明白我是做了多份工作,他们会提出一些很有效的建议。有时它们虽然会向我提供建议,但有时我也必须要向他们解释为什么他们的建议不可行。这种体验真的就像结对编程一样。
我认为这就是这种做法的强大之处,而不是弱点。它会使大家更加的有关联,更重要的是要表明,没有完美的程序员或完美的代码。对于新的开发者来说,这可能非常令人耳目一新,并且也会使自己作为一个更有经验的编码者而谦卑。
总结
如果你想要在网上直播编程,我建议你尝试一下!如果你想要知道怎样才能开始进行直播的话,希望这篇文章能帮助到你。
还想最后在说一点就是真的要感谢聪明的Mattias Johansson在我的直播之旅中给予我的鼓励,他真的很慷慨大方,他也是我的一个持续的灵感来源。
感谢你们能对它们感兴趣!
☞ 支付宝人脸识别的技术高大上,似乎是技术背后,的那个人做了场演讲
☞ 曲面论
☞ 曲面论(第二讲)
☞ 曲面论(第三讲)