Posts Tagged ‘coding’

從今天起,開始學寫程式吧,每個人!

January 6th, 2012

那天在 WIRED 台灣的發表會上,總編輯 Tai (戴季全) 說了一個小故事:

二十年前,我在台大誠品找書,也在誠品買書。十年前,我在誠品看書,然後回家上博客去買。現在,我去誠品翻書,然後直接在誠品用手機上網,去博客來買。店員常常跑來警告我:『先生,這裡不准拍照。』我都回答:『我沒有在拍照,我在買書。』

這雖然只是一個典型的「Tai 式寓言」,卻也是這 20 年來消費行為巨幅轉變的精準寫照。更重要的是,我發現大多數人沒有意識到事態的嚴重。不,網路已經不再是科技業的延伸,我們正在目睹的是它「重新發明」各行各業的過程。消費者正在把他們取得知識、服務和商品的通路,從實體移到網路,再從網路移到智慧型手機 (移動裝置)。

說得更簡單一些,未來的 10 年內,過半的人類交易行為,都將被網路取代。還記得工業革命重新發明了各行各業嗎?沒錯,你們正在目睹的是更大規模的網路革命。因為它不只改革了製造,還改革了媒體、通路、售前、售後服務,因此產生的轉變將遠比工業革命巨大。

而背後驅動這個革命的,就是軟體。但這個軟體不是你在學校學的那種軟體。它不是一種終端商品,而是一個活生生的生物。你不只要把它設計、開發出來,還要學會如何依據消費者的使用情況來更新、改進、維護它,你也要學會不同硬體、平台的不同特性,針對這些特性去提供使用者更棒的服務。

說穿了,這些軟體不是產品,而是一個個直達消費者的特快車,讓你可以透過它們來提供知識、商品,和更貼心的服務。不,「Software as a Service」(軟體即服務) 不是一種收費方式,SaaS 是一種經營的態度,從今天開始,所有的行業都變成了服務業,而軟體,就是你提供服務的通路。

也就是說,就像工業革命把大多數人帶入工廠去上班一樣,從今天開始,我們將會需要巨量的軟體人才。而且這些人不能只會寫程式,他們還必須要懂得如何把品牌精神、知識傳遞、貼心服務、商品價值等元素通通揉入到軟體之中。很抱歉,這種人目前非常的稀有,這也難怪在網路業最發達的美國,全國的失業率高達 10%,但矽谷的網路公司卻通通找不到員工。

我預期這樣的人力供需不對稱狀況,在三年內也會來到亞洲。所以如果能夠的話,你應該現在開始學寫程式。如果你沒有任何經驗,Ruby on Rails 是個不錯的開始。如果你先前學過 C++/Java,那可以考慮學學 Python

而如果你是創業者,我認為這裡面有巨大的機會。在美國,已經有人開始推出像是一個星期一堂課,一年內學會寫程式的這類型服務給消費者。我相信在中文市場,也可以有許多類似的服務被推出。

這場網路革命來得很慢,但相信我,它已經在發生,而且非常、非常的巨大。

(Photo via louish, CC License)

Coding: 寫 Test 還是不寫 Test?

September 1st, 2011

appWorks 有一些問題我們常常討論,例如:用什麼工具、做什麼產品、該怎麼行銷、該跟誰合作、怎麼合作、什麼時候增資、該拿多少錢… 等等,這些問題往往沒有一定的答案,也必須要視情況而定。但越是沒有標準答案的,我認為越是應該多討論,這樣才能幫助創業者們根據自己的情況,定義出最適合自己的處理方式。

而關於 coding,「要不要寫 test」就是其中有一個這樣的問題。我個人的意見是當你要做一個非常簡單、用完即丟的 MVP,那不必寫 test。如果邏輯比較複雜、日後有維護的必要或是有和人家協同工作,那你一定要逼迫自己寫 test。

這絕對不只是完整性、邏輯性或是身為一個工程師的職責問題,而是你如果不寫 test,就是跟自己過不去 — 跟好的 comment/documentation 一樣,不做的話,日後要維護時,你將會花更多時間在弄懂自己當初寫的 code,當別人要用你的東西,你也必須花更多時間跟他解釋,這不就是跟自己過不去嗎?

我得承認關於更深入的判斷什麼時候要寫 test、該怎麼寫,我不是專家。但是今天讀到一篇文章寫得很好,在這裡跟大家分享。

  1. Test 讓你用程式功力去挑戰你的程式功力 — 身為工程師,大家最討厭的就是不斷的手動測試了,那何不把這些寫成程式?況且最好的進步方法就是以己之矛,攻己之盾,這樣不斷的循環下去,你的程式功力一定突飛猛進。
  2. Test 讓你跟你寫的程式還有你自己對話 — 當你若干時間之後回來看自己寫的 test,你將會重新檢視自己當初的邏輯 — 這樣複雜的錯誤處理真的有必要嗎?這個物件夠獨立嗎… 等等,並且想清楚你寫的程式跟整個系統的架構是否吻合。
  3. Test 提醒你程式是用「用了」多少行衡量,而不是「寫了」多少行 — 記住,最棒的程式碼,不是程式碼
  4. 好的 Test 設計還包含好的 Test 註解 — 如果你寫好的測試,別人更容易了解你的程式,和如何跟你介接。
  5. Test 讓你可以看穿別人寫的 code — 同樣的道理,如果大家都寫好的測試,那你可以更容易了解別人寫的 code,大家都會進步的更快。

以上,就是一些關於寫 test 這件事情的觀念,希望能夠讓你更認同 test code 的價值。或許你有更有趣的經驗?歡迎留言跟大家分享。

想要在臥虎藏龍的 appWorks 跟高手們一起創業?第四屆 appWorks 育成計畫歡迎你的加入。

(image via richardmoross, cc license)

©2023 MR JAMIE.
網站由 Allen Hsu 設計 | Logo 動畫由 Wen Chen 完成