我不太記得我是怎樣找到 LiveCoding.tv 的了,但是我記得這個網站讓我印象深刻。我是在 2003 年開始程式設計冒險之旅的。那時我甚至沒有上過網,真的 :),而且當時我只有一本《Symfonia C++》和一個古老的編譯器 Borland 3.11。
如果你也是第一次聽 Livecoding.TV ,請看伯樂頭條的介紹:
《除了直播吃飯喝酒睡覺,終於有了直播程式設計師寫程式碼的網站》
那時每當我遇到一個 bug,我都會焦頭爛額。作為一名新手,我不知道如何有效地除錯程式碼,而我的那本書雖然真的很棒,但也幫不上什麼忙。但幸運的是,我並沒有放棄 :)
能讓學習程式設計更容易的祕訣是什麼?你需要找到你的領路人,聽起來簡單,但是做起來難。領路人可不是長在樹上的……至少過去不是 ;)
介紹
你可能聽說過 Twitch?它是個很奇怪的平臺,在那裡你可以觀看別人打遊戲。人們為什麼這麼做?因為他們希望分享經驗,他們有共同的遊戲愛好。我不是一個玩家,但我相信這是非常有趣的,而且在某些方面,也是非常有教育意義的。人們會發現這(Twitch)也可以被用到其他不同的愛好上面,這只是個時間(和頻寬)的問題。
媽媽:“天天敲程式碼,媳婦都跑了”
有這樣一些地方,在那裡的人們完全理解你為什麼“浪費”時間在寫一堆沒有意義的程式碼上。在這些地方,人們互相幫助,因為他們知道,對你來說這是多麼的重要。這其中之一就是LiveCoding.tv。我想文章在這就可以結束了…因為那些人就是我喜歡上這個地方的原因 :)
但是我們活在 21 世紀,熙熙攘攘,利來利往,那個網站有什麼用?好吧,且聽我娓娓道來 :)
大聲地除錯BUG
程式設計師世界裡有一個眾所周知的現象:在你向別人描述對你來說相當複雜的問題的時候,你會突然想到解決辦法。
這個理論是因為有時候你甚至不需要你的傾聽者的回答,所以你也可以用一隻橡皮鴨來代替,還不瞭解的童鞋,請看《小黃鴨除錯法,每個程式設計師都要知道的》。
這聽起來很蠢,但卻是真實的。不過,相信我,高手總是更聰明並且能夠給出更好的程式設計建議 :) 這裡對我來說太神奇了,我能夠容易地找到很多可以幫助我的人。
程式碼審查和質量控制
顯而易見,當別人檢視你的程式碼的時候,他們可以注意到你忽略的東西。他們越早發現你的錯誤,你越能減少浪費在除錯上的時間。
我也注意到,當人們觀看我工作的時候,我會想方設法地編寫更優雅的程式碼,包括更多的單元測試,更注意格式化以及更完善的文件。所有這些都是因為我想讓觀眾瞭解我在做什麼。
及時反饋
人無完人,我們的決定不可能總是正確。你可以有一個好主意,但是集思廣益總是會讓你的想法上升一個高度。你可能已經瞭解,但是你是否能意識到通過這種透明的機制你的反饋迴路會比以往更快?(作者可能指的是 LiveCoding.tv 上的實時聊天)
把你的工作存檔
你會發現這在某個時刻很有用,你會擁有一個完整的程式碼開發流程的存檔。不要誤解我,存檔不應該替代專案的說明文件。說明文件應該簡潔並且可以通過短句搜尋。目前我還不知道有能在視訊或音訊中查詢一段文字的軟體(譯註:作者可能指的是不要用錄音或視訊代替說明文件;Livecoding.tv新發布的 2.5 版中提供了檔案庫功能)。
儘管如此,你永遠不可能把你工作和思考的細節寫進文件。或許你都不需要,因為你記得所有的事情,但是在未來你很可能沒有時間去維護你所有的專案。或許在未來某個時刻,某些人希望繼續維護你的專案並且深度開發,那時他們會(通過你的存檔)明白你開發時的每一個決定。這不是很棒嗎?:)
證明你的努力和工作
證明你的努力 – 你有沒有遇到過這種情況,當你在做一些有意義的事情的時候,你覺得沒有人真的理解你犧牲了多少時間和精力才完成這樣高質量的程式?我經歷過,也做過。但這都是他們的錯嗎,你是無辜的?:) 不,不是。
事實是,每一個偉大的專案背後都有無數小時的努力、汗水和淚水。當人們看到你的努力,他們才能真正的欣賞你的工作,前提是你必須要讓他們有機會看到!證明你的工作 – 外面有許多僱主需要像你這樣的人,但是,有時候你在世界上不同的地方。理論上他們可以僱用你遠端辦公,但是遠端僱員有很多問題…
通過 LiveCoding.tv 你的工作是非常透明的,並且你可以很容易地證明:
- 你是一個努力工作的人,並且你不擔心被評估 – 聽起來很專業?
- 在任何人需要你的幫助的情況下,你比其它僱員更值得委託。
- 你不需要任何監督也能高效地工作。
- 你是一個很不錯的人,並且肯定不會有任何麻煩。:)
- …等等
“等一下… 別人會偷走我的專案!!!”
不,他們不會。面對現實吧,基本上你不會開發一個控制世界的專案,即使是(我希望你是!),你也要記住:“Idea is 1% of success, 99% is execution” (成功是1%的點子加上99%的執行力)。
再說了,人們很聰明。即使他們想構建一個相似的專案,更可能的情況是他們會選擇提供幫助:加入你的專案或者直接和你合作。那麼為什麼會這樣?因為你已經證明了你是誰。還記得我之前提到的觀點嗎?專業人士喜歡和努力工作的人共事。
“想法很好,但是我的專案是閉源的,我總不能把它給開源了吧”
好吧,我理解。這種情況下,你有有限的選擇。不過你仍然可以直播程式設計,因為那裡有個private streams功能。這是個付費的選項,但是個人來講,我並不會對這個感到驚訝。這類似於Github多年以來的商業模式並且會持續下去。而且Github證明了這可以支援開源運動並且可以保護一家公司的未來。我瞭解到現在至少有一些同學在 LiveCoding.tv 上使用 private streams 作為遠端工作的工具。:)
我知道它對我很有用。它會對你有用嗎?
我正在開發我的專案,Price Comparison Engine (一個價格對比引擎),從 2016 年 4 月 1 號開始。我記錄了超過 150 個小時的程式設計,總共有 7406 次觀看、116 個 followers 以及在 github 上獲得了 20 個 starts – 要上天了! :)
從我開始使用 LiveCoding.tv 以來,我意識到我可以在更好的氛圍中用更少的時間做更多的事,這讓我老有動力了!
這對你有用嗎?不知道?那麼只有一種方法可以知道(注:就是去直播)…
這篇文章是在 5 個小時的直播程式設計,更準確的說是直播寫部落格的過程中寫的。(譯者:我翻譯花了好久……)
打賞支援我翻譯更多好文章,謝謝!
打賞譯者
打賞支援我翻譯更多好文章,謝謝!
任選一種支付方式