This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please visit upgrade to a browser that supports web standards. It's free and painless.

豬言豬語 會員登入 會員註冊
我雖然未到中年,但這幾天可以深深的感受到中年失業的感覺。中年的男子通常是全家經濟最主要的支柱,而家裡除了老婆外,還有小孩要上學,房貸也一定還在繳,又通常還有高齡的父母要孝養,突然的失業,的確是非常大的衝擊,這種壓力之大,只有你親身經歷過才能體會。如果沒有其它專長,或在原本領域裡有雄厚的實力和經驗的人,往往很難再站起來。新聞裡常有那種自己自殺或帶著小孩、全家自殺的悲劇時有所聞,有了這幾天的經歷後,我能體會出那種走頭無路的無力感覺。

幸運的是,我還不到中年,我有許多幫助我的好朋友,重點是我自認為我有不錯的實力及一點點的名氣。不過名氣這個東西有好有壞,好處是你去面試時,大家都知道你是誰,對於你的專業部份,比較少人去懷疑。壞處是對方往往會很好奇,你怎麼會來應徵?大家都會以為你不愁吃穿、年入百萬,怎麼會來一家「小」公司呢?我朋友對於這件事下了一個很好的比喻,我們通常會認為一位美女一定有男朋友或不乏追求者,因此自己就算再喜歡,也通常會因為自己想的這些理由,而放棄追求的機會。事實上,大部份美女的芳心都是寂寞的,每天等待著真命天子的到來。

這次能這麼快找到這份不錯的工作,除了自己條件還可以外,其它全歸功於一位好友的大力介紹。我們這個年紀了,已經不適合在104上亂逛找工作了,因為網頁上簡短的文字介紹,無法讓你真正的了解這家公司、這個職位的內容。我不想再一次的遇人不淑,這次雖然快,但確也非常的小心謹慎。而公司也沒因為我有一點名氣,而簡化了面試的過程,以確保我不是空有名氣而沒有實力的。

算一算我總共面試了三次,第一次跟台灣部門的主管、HR主管及台灣區的大頭面試,面試的內容主要是了解我過去的工作經驗,和問我怎麼會想來應徵這家公司(我前面已經解釋過為什麼會問了 :P)。第二次及第三次才是真正的硬底子面試,面試主官是我們這個部門美國的主管,先是用電話越洋interview,又剛好她出差來台灣,所以再跟她面對面interview一次。技術部份我不緊張,緊張的是老闆是美國人,所以全程都用英文對答。這可是人生的第一次講這麼長的英文對話,之前去Google Taipei面試時,也沒講這麼久的英文。雖然上一個工作最後的結果是這麼另人無法接受的,不過也不是沒有收獲,這一年來,英文實力大大增強,所以這兩次的面試算是輕鬆過關。雖然還是有點2266,但簡單且完整的回答問題已經不是什麼難事了。

這禮拜一on board,一個新的工作開始,家裡也多了一位新成員,一切看起來都這麼的美好。俗話說:「塞翁失馬,焉之非福」,我這次的情況,還真的很合這句成語。接下來就要好好表現囉,重新開始全新的生活。

| Weblog Commenting and Trackback by HaloScan.com
電影裡常有這樣的劇情,我印象比較深刻的是麥克道格拉斯演的一部「城市英雄(Fall Down)」,就是一個突然失業的上班族,每天還是照常出門假裝上班,但在城市裡遊蕩。今年到現在為止的16天,沒想到我也過著這樣的生活,每天假裝出門上班,然後亂逛或是找間咖啡館泡一整天,我居然淪落至此...

要假裝出門上班的主要原因是不想造成家人的擔心,老婆即將臨盆,年關又近了,這時候爆出不但沒了工作,更別說年終和休假了。如果說了出去,老婆怎麼能安心生產了。這十六天的壓力真的超級大,心中充滿了忿怒,但又急著像熱鍋上的螞蟻,不知道該怎麼找到工作,好讓即將來報到的寶寶,整個家庭有個安定的生活。

我的工作運還真是有夠背,七年三個工作都是老闆變豬頭,然後不愉快收場。這次更扯,明明就是小到不行的公司,賺錢都來不急了,居然管理高層還有時間耍心機、搞手段,最後失勢的一方,直接被趕出門。唉~~心裡只有一個X字。

話說從頭,敝前公司於2001年成立於Sunny Vale,一開始以代理IC為業,後來轉型想搞軟体。管理高層有四位(ABCD),七年多以來一直都是A領軍,但A雖然有寫過軟體,但那已經是二十年前的事了,要搞Web 2.0可以說是完全沒經驗,所以搞了這麼多年,產品一直處於只能Demo,無法release的階段。去年八月BCD看不下去了,產品再不出來,公司就要倒了。B跳出來接下台灣總經理的位置,讓有經驗的D來帶整個開發團隊,重整產品,換句話說就是把A架空,讓他在美國當沒事幹的CEO。辛苦了四個月,已經進入beta,快要release了。交給partner 測試也非常的滿意,眼看成功在望~~

就在去年年底,A不知道用了什麼樣的手段,BC兩位主管突然態度180度轉變,放棄即將release的產品,轉向支持A原本做不出來的構想,完全不顧公司裡的工程師、Sales等其它人的反對與建議。BC就像著了魔一樣,好說歹說都聽不進去,直說A是對的,A才能帶領公司走向未來。不是就是走了七年走不出來,BC才會轉向的嗎?到底發生了什麼事、有什麼把柄落入A的手中,又把公司倒退回原點。

不同陣營的D及台灣有頭腦的工程師們,當然不會坐視不管,但為時已晚,無力可回天,大家開始準備走自己的下一步。我的想法很單純,現在回想起來很笨,我想說老婆臨盆在即,剛好我也滿了一年,把陪產假、特休假、農曆過年等加一加,向公司請了一個月,然後準備二月底交接完後底開公司。

一切都很合理吧,我在1月2號提這件事,雖然中間大約休了一個月,但也有一個月的時間來做收尾的事。結果...A直接叫我1月3號就別來了,我一整個傻掉,不用交接是要把這四個月的code都丟垃圾桶嗎?後來証明是的,而好笑的事,有些規格還是當初A開出來的,現在又完全不認帳,說那是多爛多爛的設計。

故事就到這,連我們合作的AOpen總經理,也對我這件事不可思議。他在等我們的產品,也看過我們這個版本的,也已經找好的客戶準備幫我們賣了,結果等了這麼久,又被耍一次。而且對於我的事,他也覺得怎麼會這麼沒有人性,也特地打電話給我,問看看需要幫什麼忙。一個只見過幾次面的partner,居然比我效忠一年的老闆還有人性多多了。

生氣到了極點,沮喪也到的極點,我沮喪的原因是我們明明就離成功只剩一步而已,突然間就消失不見。另一方面也開始手忙腳亂的找工作,最後在1/18號拿到了offer letter。終於,我不用白天假裝上班,晚上睡覺不用躲在被子裡偷哭了。

原本1/19要到的寶寶,也提早在1/15凌晨報到了,也許是她帶來的好運,加上一位好朋友的大力推薦與幫忙,才能讓我在這麼短的時間內,找到了這一份不錯且我又喜歡的工作。工作了七年,第一次有了百萬年薪,而且是純軟體工程師喔,可以繼續寫程式,也可以重回我最愛的Java行列。我的新公司很穩定、有條理、有規劃、有方向,雖然也是矽谷的新創(start up)公司,但完整且有機會多了。查查我們CEO的資料,你就會知道為什麼我會有勇氣再次相信新創公司,她的名字是Selina Lo。

好了,我要去照顧寶寶了,大家期待我第三階段的小工具比賽與改版的新書吧。

| Weblog Commenting and Trackback by HaloScan.com

不久之前參加Google辦的小工具比賽,結果作品不受評審欽睞,鍛羽而歸。朋友介紹我去參加微軟辦的小工具比賽,獎金豐厚、獎項完整。於是我把我的台北捷運路線查詢文字版,重新美化了一下,改名為「台北捷運乘車指南」參加了比賽,結果今天出爐~~

成績公佈網頁
第一梯次優勝團隊是...「I'm a Mac」??哈哈哈...很屌吧,用Mac開發微軟小工具,然後還參加比賽得獎。 除了需要用到IE6, IE7測試外,所有的程式碼都在我的老PB上開發。之前參加Google比賽時,用的是Tiger,現在改裝Leopard,雖然老機器了摙度有點慢,但還是可以承擔大任的。

Google Taipei辦了小工具比賽,可是說是一個非常好的反效果活動,原本大家很期待世界第一大的網路公司,會辦出一個很盛大的比賽,但結果確是令大家跌破眼鏡。我也不想吵什麼了,我原本的作品技不如人,我也只好摸摸鼻子。有興趣的可以上當初的討論區去 一探究竟

上次比賽結束後,我也從Google ig上移除了我的gadgets,寫得不好,就不要留在上面丟人了。我晚上會把這次優勝的gadget包裝成Google ig的格式,再放在Google ig上,雖然下載人數不多,但我之所以會中英文都顯示,主要是想給國外朋友使用的。因為去年我去日本自助時,也是靠著日本Yahoo上類似的工具來完成我的行程規劃,希望這個小工具能幫助需要的人囉。

「台北捷運乘車指南」的簡易使用說明,我放在Flickr上,需要的朋友自行連過去看看,網址是:http://www.flickr.com/photos/jackychu/2100193844/in/set-72157603417260088/

忘了說,我的小工具網址是:http://gallery.live.com/liveItemDetail.aspx?li=d37868f1-bfd0-49be-9a84-5685b1c2a67b,請多多指教。

下一梯次我要拿什麼作品參賽?我也不賣關子了,我要做個目前Google台灣地圖還做不到的功能 - 路線規劃(Direction)!在Google Maps上顯示出兩個地點的最短距離與最短時間路線!主程式我已經寫好了,就差美化畫面及包裝成Windows Live Gallery吃的格式,大家等著看囉。有興趣的也一起來參加吧,這是個重質不重量的比賽,專心設計好夠水準的小工具,領獎金比較實在啦~~

| Weblog Commenting and Trackback by HaloScan.com

好久沒有寫書評了,上一次是去年的iCon,這次改評iWoz,哈哈~~都跟Apple有關,請個位看官移駕另一區看全文囉!

閱讀全文

| Weblog Commenting and Trackback by HaloScan.com
第一次出國不是為了玩,而是工作(咦?我之前好像去東莞也是工作)。修正一下,第一次出國到非中文系的國家為了玩,而是工作。上禮拜四我來到了菲律賓第二大城 - CEBU,我變成了名符其實的台勞。為什麼我會到這裡出差?這不是重點,重點是生活跟工作得完全講英文,這對我是不小的挑戰。

三年前去過舊金山參加JavaOne,也是到完全講英文的國家,不過跟現在不同的是,當時只有自己一個人去玩,沒什麼機會要講英文,除了買東西時。在那十天我沒說到幾句英文。現在可就大大不同了,工作上討論事情還算OK,畢竟以專有名詞為主。但生活上可就不行不講了,如果幾乎不說話,會讓這兒的同事覺得你很難相處,而且自也會覺得很悶吧!努力聽懂他們的笑話、努力回答他們想知道的問題、努力找話題別讓吃飯太沈悶,難怪人家說學英文最好的方式,就是把你丟到一個只能說英文的地生活三個月,這樣你就會學得很快。

敢不敢開口是第一個門檻,也是最難刻服的,以我們在國內學了這麼久的英文來說,講錯也不至於錯到哪去,只要單字對了,文法就隨便啦,反正他們也知道你英文不是很好,聽不懂再比手劃腳就好了。就像外國人學講中文一樣,他講的零零落落,但你還不置於聽不懂,我就是這意思。

第二個要訓練的就是聽懂他們的口音,雖然菲律賓算是英語系的國家,但許多字的發音跟我們在學校學的就是有些不同,我甚至連聽到他們說duck這麼簡單的單字時,第一時間還沒會意出他們在說什麼。可能我已經非常習慣台式的英文,我老闆(台灣人)說的英文我很容易就聽懂,但其他人就得非常努力聽才行,而且常常都是人家講到下一段了,我才突然了解上一段再講什麼。

第三就是我的單字實在太差了,可能現在的國中生單字都會的比我多,真是羞愧啊~~~之前在台灣跟其它同事講通常,幾乎都是用email和MSN,因為不是即時的,所以我可以慢慢的把句子組合好後,再傳出雨。但在這可說是真槍實彈的,你必需第一時間就用英文反應出要說什麼,可沒時間先想好中文再翻成英文。來這三四天了,我已經漸漸習慣直接用英文思考,突然要我講中文,我還會頓一下哩。

出差來這辛苦嗎?其實出差工作都是辛苦的,尤其是放不下台灣的家人(我可愛小寶貝,每天打電話時都會叫我趕快回家),那種心情才是最難熬的,不過要有收獲就得付出和犧牲,這是不變的道理。我努力建立起在老闆心中的credit及擴展我的人際關係,為了不久的將來鋪路,現在的辛苦也是必要且值得的。

其實你看了我放在flickr上的照片,應該會覺得我過得很爽吧!? :P

| Weblog Commenting and Trackback by HaloScan.com

關於盜版這件事,台灣人這幾年來經由學校的教育、政府的宣導之下,雖然大家還是會盜版,但都自己偷偷的在檯面下做。有些討論區或網站甚至明規定,不能有談論盜版的文章,包括軟體的copy或硬體的改機,違者停權或是砍帳號。所以基本上大家的自律程度已慢慢地提升,但昨天我吃飯時看到蘋果日報副刊的一篇滿版的報導,我差點把飯噴出來。

昨天的蘋果副刊有常大版面在討論Wii,其中有一個版面請了一位資深的玩家,明明白白清清楚楚地告訴大家怎麼去改機,分析改機和不改機的優缺點,我看了一整個傻眼!會不會太誇張啊?這麼明目張膽,我確信他教大家改機不是為了「合法」的備份,因為在他的Q&A裡提到「如果是重度遊戲玩家,建議買改裝機...」,很明顯的是指重度遊戲玩家因為遊戲量大,用改裝機可以玩台片,經濟壓力會小一點。

一個是台灣最大的平面媒體,請來了一位號稱是17年經驗的玩家,給了我們這麼一篇讓人看了心驚膽跳的報導,想要美國把我們排除在301條款之外?!我看還有很長一條路要走。

DSC00340.JPG DSC00341.JPG DSC00342.JPG

| Weblog Commenting and Trackback by HaloScan.com

今年的續集電影特別多,神鬼奇航、蜘蛛人、史瑞克、哈利波特、終極警探、神鬼認證,連終極殺陣都要出續集。當然片商的目的就是在藉這這些名片的光環,好好的再賺它個一筆。老實說這些續集還真不錯,雖然我只看了終極警探4.0和哈利波特而已。大宇遊戲也趁著續集熱潮推出了仙劍奇俠傳4,不少仙劍迷當然在第一時間入手,可是...

仙劍奇俠傳堪稱是國產遊戲史上最傳奇、最經典、最成功的遊戲!出續集不說,還有Online game、甚至拍成的電視劇,紅遍了台、中、日(?)。續集一推出,當然粉絲們都以最快的時間入手,然後也創下最短的時間在網路上幹譙翻天,原因就在它那機車的遊戲認證啟動程序,也直接造成大家對破解版的高度期待,連買正版的也希望仙劍4趕快被破解,這樣買正版的人就可以不再受認證機制的痛苦折磨!

軟體的保護機制所延申出來的懲罰正版、幫助盜版的問題,仙劍4不是第一個,但仙劍4應該是我看過最笨的一個。不但麻煩機車的防盜機制最後沒有幫忙提升業績,反而更助長了盜版的「名正言順」。我們不討論已經被討論爛的該不該盜版的問題,我們來看大宇笨在哪裡!

以仙劍的名聲,大宇跟本不需要做什麼保護的機制,一來任何保護遲早會被破的,二來大家都已經衝著仙劍的名氣,跑去買正版了,結果換下是這樣的對待。結果看似固若金湯的保護,最後不但沒賣出更多,而且還毀了招牌。

只要東西好,價格合理,人家自然願意去買正版,因為買正版在大多數人的心中,還是有那麼一些些的驕傲感。Mac OS X從10.1開始就沒有任何的保護,一直到現在的10.4,連輸入序號都沒有。但它好用、功能強大、價格合理,單一價格,沒有分什麼Home、professional、Business...版本,單一版本完整提供所有功能。雖然還是有人用copy的,但我相信以銷售比例(跟市場佔有率比),絕對比Windows好太多了!

我自己除了10.1是買電腦後來申請升級版的外(從OS 9升級到OS X),我其它每一套都有買,即將出版的10.5我當然也不會錯過。我覺得花這四千塊很值得,一是我買到物超所值的東西、二是買正版是鼓勵原創者最好的方式,因為大家正面的鼓勵會讓創作者更願意創作出更好的作品。我自己是軟體程式設計師,我深深地了解這樣的感受,當我的台北捷運Gadget受到大家歡迎時,我就更有自信再寫出更好的程式(透露一下,我還有一個Gadget會趕在9/30前推出,一定會比捷運這個更讓人震撼)。

所以東西好就不怕沒市場,更何況仙劍已經累積了這麼多年的名氣了,還需要搞一個這麼機車的認證機制嗎?當然這絕對不會是底下工程師的決定,會做這種豬頭政策的人,當然就只有高高在上的豬頭老闆。他們只知道盜版很嚴重,一定要弄個機制好好的來防盜版,這些豬腦袋不可能會去把開發機車認證機制的精力放到遊戲本身。到頭來人家還是照破解,遊戲也沒有該有的水準。我還能說什麼呢?為什麼很老闆久了都會變豬頭呢?

| Weblog Commenting and Trackback by HaloScan.com
在眾多名模裡,我最喜歡的不是嗲嗲的傻大姐林志玲,而是林嘉綺,第二喜歡的就是洪小玲了。上禮拜突然在IT新聞中驚見洪小玲的名字,原來此洪小玲非彼洪小玲,基於愛屋及烏的道理,我對這位yahoo新老總有一點點期待,直到看到了ZDnet專訪上的照片,就一整個冏~~
老師有教過我們,不可以以貌取人,能當上Yahoo老總這個位置,一定不是個簡單的人物。又因為對以前的鄒總還滿欣賞的,人漂亮、有氣質、又有腦袋,又因為這個原故,還讓我對這位洪小玲就更加好奇了。所以我就跟記者朋友MSN了一下,想聽聽她是位怎麼樣的人,但問到的結果還是一個冏~~
以下為我自行解讀,主觀意識!她很有當官的樣,所以新官上任三把火嘛~~話說的很漂亮,也能列出很漂亮的數據,但就是十足的官樣,說了很多話但等於沒說,想再追問又口風很緊。你可以從專訪內容中感覺一下,應該有這種感覺吧?
我還是要重申不能以貌取人!剛上任當然口氣要狂一點,所謂路遙之馬力,日久見真章,還是給人家一點時間表現吧!
台灣跑大聯盟新聞的記者,三不五時就要把王建民跟松板大輔拿出來比一下,我也來依樣畫葫蘆惡搞一下 :P
比外貌:名模小玲勝
比身材:名模小玲勝
比知名度:名模小玲勝(至少電腦圈外的人也都認識)
比身價:名模小玲勝
那...那...Yahoo洪小玲有什麼能勝的呢?當然是頭腦囉!Yahoo的總經理耶!雖然也許有人想要名模洪小玲當Yahoo總經理,不過想也知道不可能,就像要蔡依林來選總統一樣。
所以結論是...我還是繼續愛我的名模洪小玲 :$
最後,專訪中提供Yahoo跟無名會分開運作,各管各的但共享後端硬體資源。那幹嘛幫無名改密碼風波說那麼好聽的話呢?不是不做帳號整合嗎?那為啥要強制改密碼?無風不起浪,現在回想起來獨孤木上回寫的還真有點道理。

| Weblog Commenting and Trackback by HaloScan.com
我一直以來就不怎麼喜歡M$,從Windows 95開始我就喜歡唱反調,那時玩OS/2,後來玩Linux。OS/2掛掉後,好一陣子在玩Windows,因為也沒啥能玩的。其實XP之前我Windows還滿熟的,後來有的Mac OS X,我終於有了新的歸宿。說我是狂熱的Mac Fans嘛?到也不見得。請看下面這些人才是真正的狂熱~~網址在這:
http://www.theapplecollection.com/Collection/objects/tattoo.shtml

話說回來,這兩天大家都在吵蘋果Q2的財報,說什麼iPhone銷售未達預期的50萬隻,所以APPL跌了一些。大家看來對Apple真的有很深的期待啊~~有那種恨鐵不成鋼的感覺。冷靜下來想想,兩天就賣出30萬隻,開通的有14萬隻,現今地球上有哪家手機業者有這樣的成績?!我只能說大家愛太深,則之切啊~~~

30跟14有很大的落差?我想有不少iPhone買來後被果汁機打掉、拆掉、Hack、砸爛、當PMP用的還真是不少~~我也想要一台iPhone啊~~~


| Weblog Commenting and Trackback by HaloScan.com

經過半個多月的努力,終於完成了我的第一隻Google Gadget!事實上是一炮三響,有完整的Google Maps版,有簡易的Google Maps Gadget版,和純文字的Gadget。而這隻程式就叫做「台北捷運路線圖」!

廢話不多說,改天再來發表創作心得,先來看看長啥樣子吧!
完整版,包含了站別基本資訊、站別景點資訊和乘車路線查詢。
http://babyplay.cc/~jacky/gadget/mrt/taipei.html
Screenshot of Taipei MRT Route Map Screenshot of Taipei MRT Route Map Screenshot of Taipei MRT Route Map

Gadget簡易版,這是為了參加小工具設計甄選從完整精簡化的小工具,少了完整版中的景點資訊。Add to Google
Screenshot of Taipei MRT Route Map GadgetScreenshot of Taipei MRT Route Map Gadget

Gadget文字版,如果你想省來開地圖的時間,用這個文字版是最快的啦,除了沒有Google Maps外,功能跟完整版一樣喔!Add to Google
Screenshot of Taipei MRT Route Map Gadget (Text Version)Screenshot of Taipei MRT Route Map Gadget (Text Version)



| Weblog Commenting and Trackback by HaloScan.com

最近有個廣告很有趣,某家補習班找了幾位「曾經」在他上補習班上過電腦課,而現在在知名軟體公司(姑且稱為M公司吧)上班的人,出來幫補習班背書,想要塑造的形像就是讓大家以為該間補習班真的很有兩下子。姑且先不論廣告的真假,如果照這個模式,那如果我有機會當Google員工的話,當年我重考大學的補習班是不是也可以請我來拍這種廣告,說只要在他們那邊補習,你也能上Google!

100%的內線消息告訴我,那M公司的確有那兩位員工,也的確曾在該補習班補過電腦,但這都是好多年前的事了,就像我重考大學時,連網際網路(Web)都還沒有,哪來的Google。我以前在該補習班授課時,他們是定位為生活化的電腦課程教學,是近幾年才開始開認證課程的,我相信那兩位員工是有在該補習班上過課,但應該不是上現在狂推的認證課程。

我不是來踢館的,只是這個廣告讓我想起三年前寫的文章「認不認證沒關係」,那兩位現在能在M公司上班,跟該補習班沒有絕對的關係。就像陳士駿(YouTube創辦人)絕不會是因為唸了該小學兩年(他國小二年級就出國了),所以有今天的成就。他們能有今天的地位,都是日後努力、歷練而來的,想靠認證進那些大公司?我只能說他們不是慈善機構、不是學校,不會負責訓練新手菜鳥的。

很多電腦相關的工作,基本的要求都要所謂的電腦相關科系畢業,如果你沒有這樣的學歷,就只好拿出相關的證照,來證明你也符合這樣的基本條件。但有學歷和證照只是讓你能開啟這扇門,跨過這個最低的門檻而已,要得到一個不錯的工作,你還得做很多努力和學習才行。

很無奈的,就像我前面所說的,大公司不想花時間、金錢來培育新人,一來曠日費時,二來萬一學成跑掉了不就都白費了?小公司也不見得願意,最主要的原因是沒有像大公司這麼多的資源。所以公司找不到可用的老鳥、高手,而一堆新鮮人也找不到願意收留他們的公司。這是雞生蛋,蛋生雞的問題。我想除了你命中有貴人,找到一位高人或公司願意有計畫的訓練你,不然還是靠自己才是最根本的辦法。

我高一開始接觸電腦。當時我老爸因為自己興趣和工作、學業上的需要,買了一台286回來,那時一顆40MB的硬碟要上萬塊哩。我老爸不喜歡我拿他的電腦來打電動,丟了一本DOS和BASIC的書給我,我的電腦生涯就從這本書開始了。我那個年紀不打電動,那電腦能幹嘛呢?那個時代也沒網路,遑論相簿、 blog之類的個人化網站,我唯一能做的事就是練習寫程式,也沒人教我,就只K那本書,幾個月之後我比我爸還會寫程式了。

現在網路上常有很多人問,已經考過XXXX認證,上過XXX課程了,下一步該怎麼走?該如何增進自己的實力?對於這種問題,我還是老話一句:找題目自己寫,我就是這樣過來的,到現在我都還記得當年完成第一隻小程式的興奮感和成就感,不是那種Hello World的程式,我記得是隻圖片瀏覽的程式。

那題目怎麼來?就亂想囉,當年真的沒有像現在這麼豐富的外界資源,所以全都靠自己亂想(那時(198x)哪有什麼電腦補習班(很少很少)啊?)。後來才有《第三波》雜誌,該雜誌每期都會有程式比賽的題目,也就開始參加,後來運氣不錯,有兩期還入選,雜誌到現在我都還留著。

很可惜,現在都沒有像當年第三波這樣,有程式練習的雜誌和媒體了,相信和我一樣年紀的,應該也不少也是這樣磨練出來的吧。不過現在網路發達,有豐富的書籍和網頁可看,網路上也有熱心的人分享他們的經驗和幫人解答問題。以前我們只能透過平面的雜誌來獲得成就感,現在只要你寫的程式夠實用,放在網路上就不怕沒人知道。所以你寫好的小程式別放在家自爽,拿出來跟大家分享,除了成就感外,有些人也會分享他的建議給你,有伴會學得比較快。

有了這麼多的資源,你唯一要做的事就是靜下心來寫程式,先別想說我以後能不能賺到錢、進大公司工作。在矽谷創業的那些人,開始時也都不會去想這樣的問題,做就對了。學校的作業、網路上的比賽,都是你磨練的好機會。得不得獎在其次,你要真正的去寫過才會知道寫程式原來是這麼回事。就像煎荷包蛋大家都覺得很簡單,大家用嘴巴都煎得很漂亮,但當你真正動手時,發現還真有一點學問。

讓我們開始寫程式吧!

[原文] Cnet 名家專欄

| Weblog Commenting and Trackback by HaloScan.com

其實打從第一篇起,我就一直強調「平常多練習」這個觀念。我並沒有要求要用到多高深的數學算式、演算法,我只是要大家想寫程式時,多花一點點時間動一動腦,在我們從小學到高中畢業的數學知識裡,有哪些是可以用得上的。花了十幾年時間學的東西,不用不是很浪費嗎?而且平常不熟練動腦的話,臨時要寫個需要用到許多數學的程式,不就手忙腳亂。

我們學英文時不也是常常被告誡平常就要多練習,才會學得快、進步得快。我們一定非得要寫數學有關的程式時,例如3D運算、搜尋等,才開始用數學嗎?寫論文用的英文、新聞用的英文都比平常用的英文來的嚴謹,難道我們平常練習英文是為了要寫論文才用嗎?不是嘛~你平常把英文練好了,突然哪天要接洽國外的客戶、要去國外出差時,老闆自然會把機會交到你手上,你也趁此表現一下,表現的好,自然可以得到老闆的欣賞。要是你抱著需要再去學的心態,這種好機會就只好跟它說再見。數學也是一樣的,我想要表達的就是這個觀念。

你當然可以把數學、英文丟在一邊,在台灣要寫程式混口飯吃還不算難。但我想成為世界頂尖的工程師,我想寫程式領高薪,進世界級的大公司工作,那不只數學、英文,要學得東西還更多呢!但數學和英文的能力是最基本的條件,你想到什麼樣的高度,取決於你的態度。

不過話說回來,請你多練習數學,不是要你走火入魔的爛用它。適當得使用才會有加分的作用,反之只會讓人摸不清你的程式,甚至有反效果。還記得Part 2最後的那個例子嗎?那個例子其實是算出1到12345中,奇數和偶數的總和!這個例子是個很好的例子,來說明爛用數學只會讓程式更難讓人看得懂,而且還很容易出錯且沒什麼效率。你可以到這來看看它執行的結果:




| Weblog Commenting and Trackback by HaloScan.com

感覺起來大家還是對於我在上一篇文章中的論點不是那麼的了解,我想要表達的是我並沒有要求堅深、精美的數學演算法,而是要大家在平常寫程式時,多想一分鐘,把你所約到的數學用上來,不需要多資深的數學背景,只要我們在大學以前所學的12年數學就夠了。目的是什麼呢?為了有一天需要用到更深一層的數學來解決問題時,做好平日的練習和準備。呃...還是無法體會?我再舉個例子吧。

小明跟小華平常在班上的成績都不錯,但小華不愛小功課,常常到了要交功課的前一天,才向小明借來抄。小明基於朋友的立場,常告戒小華說,老師出功課的目的就是讓我們平常就把學到的東西熟練,這樣到了考試時才會準備的比較輕鬆。小華腦袋不錯,有點小聰明,但就是愛玩,他覺得浪費時間寫那些功課不如拿去控電動,功課有交出去就好了,老師也不知道是抄來的,考試?!考前三天再熬夜準備就好了。平常的小考、月考小華還應付的不錯,因為小華頭腦其實不差,所以臨時抱佛腳的效果還不錯。但終於要到關鍵的基測大考了,小華花了一兩個禮拜來熬夜準備,但考試結果沒有比輕鬆準備的小明來的好。

實力是慢慢累積而來的,也許你很聰明,可以在短時間內硬塞進一些東西在腦子裡,但經驗告訴我們,臨時抱佛腳所讀到的書,在交卷後一秒鐘就全忘光了。就像農夫為什麼平常要努力的耕田、翻土一樣,要播種時再耕就好了,幹嘛平常就要再那辛苦的挖來挖去呢?大家應到都知道這老掉牙的道理,沒有平常辛勤的耕耘,怎麼會有豐收的成果。臨時翻土,種得活是運氣好,收成的爛是理所當然。

還是有人在「程式目的」這點上做文章,經過我再次的解釋,不知道大家了解了沒?煎荷包蛋不難吧?同樣是煎蛋,有沒有練習還是差很多的。不知道各位爸爸們,換尿布的工作是不是你們負責?換尿布也沒什麼難的,但你平常沒熟練,臨時要你參加換尿布比賽,你也是會手忙腳亂的。程式目的不是我的重點,我要寫的程式也不是專要來解決某個數學問題用的,程式裡本來就到處都有數學的影子。平常多練習一點,有一天需要用到大量的數學時,你就能很輕鬆的應付,而不是眼睜睜地把機會交到熟練數學的人手上。

文言文?白話文?程式可讀性?信不信就是有人連簡單的迴圈也可以寫得亂七糟,也有寫得很複雜的迴圈,讓人很難了解在幹嘛。程式註解才是程式可讀性的關鍵,我們不是天天都在一行一行的trace別人的code,事實上我們平常也很少看別人的code,除非你是要改作業、最佳化調整、找別人的Bug之外。不靠註解,要看懂別人的程式真得很累。就像基測的作文,平平都是白話文,但是有人寫出來的文章就是讓人看不種一樣。

下面這個迴圈在做什麼呢?
int a = 1;
int b = 0;
int c = 0;
for(int i=1, j=-2; a<12346; i+=2, j+=2, a+=2, b+=i, c+=j);


| Weblog Commenting and Trackback by HaloScan.com

高招!真的是高招啊~~之前iPhone發表時,大家還在猜到底iPhone可不可以安裝第三方軟體?可不可以跑Java?可不可以讓User開發iPhone的程式,現在答案揭曉了!

iPhone上的Safari是個完整功能的Safari,也就是跟Mac/PC一樣的(是的!Safari也同步推出Windows版)。它可以瀏覽除了IE Only的任何網頁!包括Web 2.0 +AJAX的網頁!!!真是太令人不可置信了 :DDDDD

所以要怎麼開發自己的程式跑在iPhone上呢?是的!就是寫個網頁就好了(AJAX),結合iPhone提供的Services,讓你的Web 2.0程式能呼叫iPhone的手機功能(打電話、送簡訊、email等…),真的是...太...強...了!!!

除了在操作介面上的創新之外,iPhone的軟體也完全了超越所有的手機,而且這個gap還不小,WM上的IE也許一輩子都趕不上哩 :P

收工睡覺先~~

| Weblog Commenting and Trackback by HaloScan.com
數學對於程式設計師來說到底重不重要?!類似這樣標題的討論,在網路上已經不知道被討論多少次了。前兩天又在老同事小白的blog上看到了他的看法。以前正方總是喜歡拿演算法與效率來表明數學很重要的立場,反方或是最近普遍的觀點是要依照需求。兩方都沒錯,我也有一點小心得跟大家分享。 先來談談「數學」在大家的心中是長什麼樣子。我大學時念的是輔大應數,會選應數的原因是一、我的分數上不了資工,二、應數又跟純數不一樣,是比較偏電腦應用的(事實上不是這麼回事),應數的全名是應用數學。三、高中時一位要好且電腦很強的同學也是唸輔大應數,所以我就這樣進了數學系。在一般人眼中是個很硬的科系,那幾年全校1/2的名單中,數學系就佔了一半。數學系所學的數學,跟一般人所會用到的數學不太一樣。除了幾門工科必備的微積分、線性代數、機率統計外,剩下的都是高深且抽象的數學理論,像是高等微積分、高等代數、幾何學(不是三角形、正方形那種簡單幾何)、拓撲學等。這幾門課程跟本像天書一樣,非常的抽象(無法畫在直角座標系上),我能畢業也算是一種奇蹟啊~~我真懷疑我那學唸到博士班的同學們,他們的腦袋是不是跟我長得不一樣。

研究所順利考上的嚮往已久的資工所,成為名符其實的本科系學生,本以為可以不用再玩數學了,但我發現我錯了,是不用再玩那些抽久的高等數學沒錯,但線性代數、機率統計、離散數學等…用了更多的數學,我想不出來有哪門資工研究所的課沒用到數學的。而且你最後的碩士論文要寫出來,數學更是不能少的。你以為玩網路不需要數學?大錯特錯,裡面一堆機率統計的東西。電機需要數學嗎?當然需要!最基本的傅利葉轉換就夠搞死你了,所有工科的系所都逃不了數學的魔掌。就算你到了管理學院,會計系要數學、經濟系要數學、連心理系有些領域也需要數學。雖然所需要的數學不盡相同,但都在數學的領域裡。我開始後悔當年沒把數學唸好,博士班念到一半唸不下去了,其中一個原因是我數學太爛了。

寫程式需要數學嗎?要看程式的目的?那我們就像討論一個簡單的程式,算出1加到100的總和。

完全以程式結果為導向的人,或是訓練有素的程式女/男工,甚至有時連我都會很直覺的寫出這樣的程式:
int sum = 0;
for (int i=1; i<=100; i++)
	sum += i;

上面這個程式片段還算很容易讓人一眼就看懂,可是我們明明國中時就學過了這種數列級數的算法了,怎麼還會寫出上面這麼笨的程式呢?
int sum = ((1 + 100) * (100 - 1 + 1)) / 2;
或更精簡的
int sum = (101 * 100) >> 1;

這個例子已經被說爛了,我們來來看另一個例子,計算1加到10000,奇數和偶數的總和。用迴圈的話,一樣很直覺得就寫出來了:
int oddSum = 0;
int evenSum = 0;
for (int i=1; i<=10000; i++)
{
	if (i % 2 == 0)
		evenSum += i;
	else
		oddSum += i;
}
很簡單的程式吧!可是我們稍稍的用我們有12年(國小到高中)的數學背景想一下,你可以寫出更精簡的程式:
int sum = (10001 * 10000) >> 1;
int evenSum = 5001 * 5000;
int oddSum = sum - evenSum;
什麼?看不懂?!sum應該知道怎麼算出來吧?就剛剛第一個例子是1加到100,現在改加到10000而已。evenSum呢?簡單的推理一下,1到10000之間的偶數總和是是2+4+6+...+10000,把它們全部除以2的話會變成1+2+3+...+5000,所以1到10000偶數的總和不就是1加到5000的兩倍嗎?
1加到5000是:
(5001 * 5000) >> 2
兩倍就不用除那個2了,所以不就是上面那個算式了嗎!

那1到10000奇數的總和不就是全部的總和減掉偶數的總合嗎!稍微動一下腦袋,可以讓你的程式變得很有效率。怕別人看不懂?是不會加個註解在程式碼裡面喔!

相信聰明的你,很容易就可以分析出來這兩個例子的兩種寫法,在效能上迶多大的差異,但這不是我在這裡想要表答數學是如何如何增加效率的。我想要表答的是,我們明明辛苦了12年,學了一堆的數學,為什麼我們要放棄這樣的基本訓練?我們笑美國人的數學不好,請問你又用了多少的數學來幫助你的生活和你的工作?學了又不用,那不如從小學開始就分科系好了,不喜歡數學、怕數學的,就選完全用不到數學的科系。

我今天不是要大家在寫程式是時鑽研那種演算法、功式等,去計較那些在現在動不動在2GHZ, 3GHZ,雙核心、四核心之下,所省下的那微小的效率。而是你的態度!你寧願多打一些code,也不願動一下腦筋,如果你的態度是這樣子的話,那也是活得下去啦,不過你的水平就不過如此而已。

你會反駁說,需要用到演算法、要講求效率時,我再去研究一下就好了,幹嘛說的很嚴重似的。今天我們一時興起,要去爬陽明山,沒問題啊,那種程度的山,只要雙腳健全走得動的人都能爬。如果換成現在流行的登山步道呢?這需要一點點體力才行。如果你要去爬台灣百岳呢?合歡山的東峰算是最簡單的吧?開車到山腳下,穿個好一點的鞋子、好一點的衣服、多一點的體力,也還不是太大的問題。那爬玉山呢?雖然現在爬玉山已經很方便了,連行李都可以請人幫你背,但平常沒有一些訓練,要爬上去不是那麼容易的事。你要站在世界的最高點,去挑戰聖母峰,那全世界沒幾個人辦得到,而且辦到的人事前可是經過了嚴格的訓練。

你想把自己擺在什麼位置?你想要成就到什麼樣的高度?如果你只想在小小的台灣,在二、三流的公司裡,打打專案游擊戰,賺個還算可以的薪水,那的確,你不怎麼需要數學,連軟體工程的理論也不太需要,最重要的唬弄客戶的技術純熟就可以了。去年去了101的37樓面試後,我才知道我了不起只爬到阿里山而已,要登上MountainView這座山,我必需十倍努力才行。而這個努力不是我在面試前,看看什麼教戰手冊、寫寫網路上的考古題我就能夠通過的,而是必需把一些數學的訓練熟到變成很自然的反應才行。簡單的問你就好了啦,上面那個用迴圈寫的1加到10000的那個例子,如果10000改用n的話,那需要多少時間,用大O(big O)來表示。如果你不能很快的推論出是O(n)的話,那你的履歷連投都不要投,在37樓問的問題比這難多了,而且你沒幾分鐘的時間可以作答。去年那次,是我第二次後悔當初沒把數學學好。

為什麼Google會這麼重視演算法和效率?應該說世界級的大公司都重視,Yahoo、微軟、YouTube…,因為你寫的程式不是給幾十個人、幾百個人用而已。而是同一時間有幾百萬,甚至上千萬人使用。一個人慢0.1秒好了,一百萬人就10萬秒,超過一天耶。瀏覽一個網頁,慢個幾秒鐘你都不能忍受了,更何況是一天。你說能不計較演算法和效率嗎?!

你想過什麼樣的生活是你自己決定的,但你想要當個世界級的軟體工程師的話,把學數學就當作是一種修行吧!不要怕沒地方用,因為你時時刻刻都可以用到它。當你的修行到了某個程度,要挑戰高山,就比別人容易多了。

好好好,不想深入就算了,但你不覺得放棄12年的數學訓練很可惜嗎?至少花點腦筋用一下嘛~~,大家都多少用一點,台灣軟體的水平就會慢慢提升了,你說是嗎?


| Weblog Commenting and Trackback by HaloScan.com
1 2 3 4 5 6 7 8 9 10  下一篇»