發表文章

目前顯示的是 2月, 2013的文章

寫程式是一種超能力

圖片
昨天在Facebook上很多人分享這個「大部分學校都沒教的」影片,是由一個網站 code.org 拍的,找來柯林頓、比爾蓋茲、Mark Zuckburg等等一堆名人強調編寫程式的重要性。上這個網站登錄了一下,它是推廣寫程式教育的non-profit網站。我覺得這件事蠻有意義的,現在很多人還不懂寫程式在這個時代的的真正意義,寫程式這項技術其實比一般人想像中重要得多 電腦結合連結全球的網路,電腦不斷增強的計算能力和不斷下跌的價格,加上網路連結速度愈來愈快,一個人寫的程式可以瞬間成為全世界人使用的工具。網路上的內容,經過近二十年的累積,加上過去的文件也幾乎全部數位化,讓全世界的知識都存在網路上,經過適當的處理、建立索引,讓網路成為一個全知的智者,所有人類知識能回答的問題,幾乎全能在此找出答案。這樣的環境使得寫程式成為現代非常重要的能力 寫程式就是控制電腦照你的心意去做事的能力。我想會寫程式和不會寫程式的差別,就如同石器時代會用石器的人和不會用石器的人的差別。還有文字和紙發明後,會讀寫文字和不會讀寫文字的人的差別。學會控制電腦的能力,在這個時代的優勢非比尋常 影片中讓我印象深刻的是有一個人說coding是最接近超能力的一種能力。我想寫軟體之所以很像超能力,是在於它的可擴展性,石器時代的人就算再會用石器,他能做到的可能只是提升到三、五倍的生產力,但是現今軟體可以跑在網路上千百萬台計算設備上,你寫一個應用在AWS上、在Google App Engine上、在IOS上、在Android上,就能跑在千百萬台資料中心的伺服器,或是跑在幾百萬人的手機上面,這種近乎無限的擴展性,讓個人能發揮出超級英雄般的影響力。一個人寫了一個APP,在APP store上如果百萬人去下載,使用它,就能改善百萬人的生活,生產力可以到千倍萬倍,這就是超能力 軟體還有一個特性就是它是能夠一個人從頭到尾(end to end)全部做完的,因為現在有AWS、Heroku、Google App Engine這些平台,你只要有idea,有執行力,就能獨力完成一個有用的東西。如果是硬體,你得做晶片設計、得有半導體廠、有人幫你做機械設計、還有富士康大軍幫你製造。做軟體,只要一個人就可以做出來 以前在台灣高中以前不教程式(我已經很多年不在台灣生活了,不知道現在情況如何),

練打字的好地方

圖片
打字對我來說是個重要的技能,是人和電腦通訊的物理層,打字速度就是人腦對電腦的上傳頻寬 我每天的工作很大一部分是對電腦輸入我腦中的東西,當然這打字速度並不是工作速度的瓶頸,不然我就會坐在那邊整天不停的打字。但是夠快的打字速度能讓我和電腦快速地來回溝通,腦中的想法也能更流暢地實現出來。我看同事之間,生產力高的人多半打字很快,也有少數例外,例如我之前的組有個同事只用一根手指打字,但他很強 我打字並不算非常快,但是應該有中上水準,中英打大致都在每分鐘80字左右,我最近想要再提升一些,所以找了幾個網站練習,這些網站有的非常好玩,會上癮,就來推薦一下 Type Racer 這個應該是最有名,也最好玩的,跟其他人拚速度,每個人會化身成一台車,看誰先衝到終點,很多高手,競爭之下很快會進步,裡面打的文章也很有意思,都是一些書、電影、歌詞裡面的佳句,打的時候可以順便讀一讀有趣的好文 http://play.typeracer.com 網站也有支援中打的練習,但是文章就是英打的文章用電腦翻譯的,變成很古怪的文字,而且對無蝦米的支援不是很好,在打字中間的時候會一直顯示錯字,有點傷眼 http://play.typeracer.com/?universe=lang_zh-tw 最有趣的是這個coding的打字競賽,程式師平常打的字跟平常的文章很不一樣,很多(#&*這些符號,這邊讓你可以練習到這類的字。我覺得練這個應該對寫程式的打字很有幫助,打字練習的內容是一些open source project,像是Linux kernal、Apache Tomcat。不過它的缺點就是排版很怪,沒有換行,而且裡面的內容不多,很快就會一直打重複的東西,有點無聊 http://play.typeracer.com/?universe=code Typing.io 讓你照著打open source project,排版比Type Racer的好,內容也豐富很多,而且一次打一大段,可以大概看到code在做什麼,也可以順便讀一下人家open source的程式是怎麼寫的。缺點是沒有別人可以對戰,只能自己一個人孤單的打字,沒有競爭的快感。不過我還是很推薦這個 http://typing.io/ Typing Mani