主頁 > 企業開發 > 看國外女神級程式員,直播寫代碼一年的感悟

看國外女神級程式員,直播寫代碼一年的感悟

2020-09-15 15:29:54 企業開發

 

 我第一次直播寫代碼是在去年七月份,我想要直播一下我在業余時間內為開源專案領域所做的作業,盡管在youtube上的大部分直播都是關于游戲的,我比較擅長于NodeJS的硬體庫方面的作業(盡管大部分專案都是自己的),并且我在youtube上曾經開啟過一個房間了,那為什么我不繼續做下去?我的欄目可以叫做:基于Java的硬體開發,

當然,我并不是第一個在直播平臺直播代碼的,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中制作的影像,并將其作為場景從輸入源中匯入,一些標簽是從文本檔案中獲取到的資訊(比如最近的關注者),另一個標簽是我自己制作的標簽,顯示了我在直播時現場的溫度和濕度,

這里推薦一下我的學習交流群:851231348,有想一起學習web前端,從最基礎的HTML+CSS+JavaScript【炫酷特效,游戲,插件封裝,設計模式】
到移動端HTML5的專案實戰的學習資料都有整理好友都會在里面交流,分享一些學習的方法和需要注意的小細節,每天也會準時的講一些前端的專案實戰

我還在場景中設定了“警報”場景,當有人關注或者向我捐助時,它會在直播間的頂部顯示出一個可愛的橫幅,我使用了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我的社區中,大家從來沒有因為這些而批評我,大家反而會幫助我,他們明白我是做了多份作業,他們會提出一些很有效的建議,有時它們雖然會向我提供建議,但有時我也必須要向他們解釋為什么他們的建議不可行,這種體驗真的就像結對編程一樣,

我認為這就是這種做法的強大之處,而不是弱點,它會使大家更加的有關聯,更重要的是要表明,沒有完美的程式員或完美的代碼,對于新的開發者來說,這可能非常令人耳目一新,并且也會使自己作為一個更有經驗的編碼者而謙卑,

總結

如果你想要在youtube上直播編程,我建議你嘗試一下!如果你想要知道怎樣才能開始進行直播的話,希望這篇文章能幫助到你,

還想最后在說一點就是真的要感謝聰明的Mattias Johansson在我的直播之旅中給予我的鼓勵,他真的很慷慨大方,他的YouTube頻道funfunfunction也是一個持續的靈感來源,

更新:很多觀眾問我的鍵盤和我作業臺上的其他設備,我把我所用的設備完整的列出來了,感謝你們能對它們感興趣!

 

 



轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/47801.html

標籤:JavaScript

上一篇:快速發現bug ,用起來非常爽的七個神仙除錯工具

下一篇:用js制作簡易計算器

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 使用Django Rest framework搭建Blog

    在前面的Blog例子中我們使用的是GraphQL, 雖然GraphQL的使用處于上升趨勢,但是Rest API還是使用的更廣泛一些. 所以還是決定回到傳統的rest api framework上來, Django rest framework的官網上給了一個很好用的QuickStart, 我參考Qu ......

    uj5u.com 2023-04-20 08:17:54 more
  • 記錄-new Date() 我忍你很久了!

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 大家平時在開發的時候有沒被new Date()折磨過?就是它的諸多怪異的設定讓你每每用的時候,都可能不小心踩坑。造成程式意外出錯,卻一下子找不到問題出處,那叫一個煩透了…… 下面,我就列舉它的“四宗罪”及應用思考 可惡的四宗罪 1. Sa ......

    uj5u.com 2023-04-20 08:17:47 more
  • 使用Vue.js實作文字跑馬燈效果

    實作文字跑馬燈效果,首先用到 substring()截取 和 setInterval計時器 clearInterval()清除計時器 效果如下: 實作代碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ......

    uj5u.com 2023-04-20 08:12:31 more
  • JavaScript 運算子

    JavaScript 運算子/運算子 在 JavaScript 中,有一些運算子可以使代碼更簡潔、易讀和高效。以下是一些常見的運算子: 1、可選鏈運算子(optional chaining operator) ?.是可選鏈運算子(optional chaining operator)。?. 可選鏈操 ......

    uj5u.com 2023-04-20 08:02:25 more
  • CSS—相對單位rem

    一、概述 rem是一個相對長度單位,它的單位長度取決于根標簽html的字體尺寸。rem即root em的意思,中文翻譯為根em。瀏覽器的文本尺寸一般默認為16px,即默認情況下: 1rem = 16px rem布局原理:根據CSS媒體查詢功能,更改根標簽的字體尺寸,實作rem單位隨螢屏尺寸的變化,如 ......

    uj5u.com 2023-04-20 08:02:21 more
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 08:01:50 more
  • 如何在 vue3 中使用 jsx/tsx?

    我們都知道,通常情況下我們使用 vue 大多都是用的 SFC(Signle File Component)單檔案組件模式,即一個組件就是一個檔案,但其實 Vue 也是支持使用 JSX 來撰寫組件的。這里不討論 SFC 和 JSX 的好壞,這個仁者見仁智者見智。本篇文章旨在帶領大家快速了解和使用 Vu ......

    uj5u.com 2023-04-20 08:01:37 more
  • 【Vue2.x原始碼系列06】計算屬性computed原理

    本章目標:計算屬性是如何實作的?計算屬性快取原理以及洋蔥模型的應用?在初始化Vue實體時,我們會給每個計算屬性都創建一個對應watcher,我們稱之為計算屬性watcher ......

    uj5u.com 2023-04-20 08:01:31 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:01:10 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:00:32 more