幸運的是,我還不到中年,我有許多幫助我的好朋友,重點是我自認為我有不錯的實力及一點點的名氣。不過名氣這個東西有好有壞,好處是你去面試時,大家都知道你是誰,對於你的專業部份,比較少人去懷疑。壞處是對方往往會很好奇,你怎麼會來應徵?大家都會以為你不愁吃穿、年入百萬,怎麼會來一家「小」公司呢?我朋友對於這件事下了一個很好的比喻,我們通常會認為一位美女一定有男朋友或不乏追求者,因此自己就算再喜歡,也通常會因為自己想的這些理由,而放棄追求的機會。事實上,大部份美女的芳心都是寂寞的,每天等待著真命天子的到來。
這次能這麼快找到這份不錯的工作,除了自己條件還可以外,其它全歸功於一位好友的大力介紹。我們這個年紀了,已經不適合在104上亂逛找工作了,因為網頁上簡短的文字介紹,無法讓你真正的了解這家公司、這個職位的內容。我不想再一次的遇人不淑,這次雖然快,但確也非常的小心謹慎。而公司也沒因為我有一點名氣,而簡化了面試的過程,以確保我不是空有名氣而沒有實力的。
算一算我總共面試了三次,第一次跟台灣部門的主管、HR主管及台灣區的大頭面試,面試的內容主要是了解我過去的工作經驗,和問我怎麼會想來應徵這家公司(我前面已經解釋過為什麼會問了 :P)。第二次及第三次才是真正的硬底子面試,面試主官是我們這個部門美國的主管,先是用電話越洋interview,又剛好她出差來台灣,所以再跟她面對面interview一次。技術部份我不緊張,緊張的是老闆是美國人,所以全程都用英文對答。這可是人生的第一次講這麼長的英文對話,之前去Google Taipei面試時,也沒講這麼久的英文。雖然上一個工作最後的結果是這麼另人無法接受的,不過也不是沒有收獲,這一年來,英文實力大大增強,所以這兩次的面試算是輕鬆過關。雖然還是有點2266,但簡單且完整的回答問題已經不是什麼難事了。
這禮拜一on board,一個新的工作開始,家裡也多了一位新成員,一切看起來都這麼的美好。俗話說:「塞翁失馬,焉之非福」,我這次的情況,還真的很合這句成語。接下來就要好好表現囉,重新開始全新的生活。
要假裝出門上班的主要原因是不想造成家人的擔心,老婆即將臨盆,年關又近了,這時候爆出不但沒了工作,更別說年終和休假了。如果說了出去,老婆怎麼能安心生產了。這十六天的壓力真的超級大,心中充滿了忿怒,但又急著像熱鍋上的螞蟻,不知道該怎麼找到工作,好讓即將來報到的寶寶,整個家庭有個安定的生活。
我的工作運還真是有夠背,七年三個工作都是老闆變豬頭,然後不愉快收場。這次更扯,明明就是小到不行的公司,賺錢都來不急了,居然管理高層還有時間耍心機、搞手段,最後失勢的一方,直接被趕出門。唉~~心裡只有一個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。
好了,我要去照顧寶寶了,大家期待我第三階段的小工具比賽與改版的新書吧。
10 十二月, 2007 14:39
不久之前參加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吃的格式,大家等著看囉。有興趣的也一起來參加吧,這是個重質不重量的比賽,專心設計好夠水準的小工具,領獎金比較實在啦~~
01 十月, 2007 09:56
三年前去過舊金山參加JavaOne,也是到完全講英文的國家,不過跟現在不同的是,當時只有自己一個人去玩,沒什麼機會要講英文,除了買東西時。在那十天我沒說到幾句英文。現在可就大大不同了,工作上討論事情還算OK,畢竟以專有名詞為主。但生活上可就不行不講了,如果幾乎不說話,會讓這兒的同事覺得你很難相處,而且自也會覺得很悶吧!努力聽懂他們的笑話、努力回答他們想知道的問題、努力找話題別讓吃飯太沈悶,難怪人家說學英文最好的方式,就是把你丟到一個只能說英文的地生活三個月,這樣你就會學得很快。
敢不敢開口是第一個門檻,也是最難刻服的,以我們在國內學了這麼久的英文來說,講錯也不至於錯到哪去,只要單字對了,文法就隨便啦,反正他們也知道你英文不是很好,聽不懂再比手劃腳就好了。就像外國人學講中文一樣,他講的零零落落,但你還不置於聽不懂,我就是這意思。
第二個要訓練的就是聽懂他們的口音,雖然菲律賓算是英語系的國家,但許多字的發音跟我們在學校學的就是有些不同,我甚至連聽到他們說duck這麼簡單的單字時,第一時間還沒會意出他們在說什麼。可能我已經非常習慣台式的英文,我老闆(台灣人)說的英文我很容易就聽懂,但其他人就得非常努力聽才行,而且常常都是人家講到下一段了,我才突然了解上一段再講什麼。
第三就是我的單字實在太差了,可能現在的國中生單字都會的比我多,真是羞愧啊~~~之前在台灣跟其它同事講通常,幾乎都是用email和MSN,因為不是即時的,所以我可以慢慢的把句子組合好後,再傳出雨。但在這可說是真槍實彈的,你必需第一時間就用英文反應出要說什麼,可沒時間先想好中文再翻成英文。來這三四天了,我已經漸漸習慣直接用英文思考,突然要我講中文,我還會頓一下哩。
出差來這辛苦嗎?其實出差工作都是辛苦的,尤其是放不下台灣的家人(我可愛小寶貝,每天打電話時都會叫我趕快回家),那種心情才是最難熬的,不過要有收獲就得付出和犧牲,這是不變的道理。我努力建立起在老闆心中的credit及擴展我的人際關係,為了不久的將來鋪路,現在的辛苦也是必要且值得的。
其實你看了我放在flickr上的照片,應該會覺得我過得很爽吧!? :P
關於盜版這件事,台灣人這幾年來經由學校的教育、政府的宣導之下,雖然大家還是會盜版,但都自己偷偷的在檯面下做。有些討論區或網站甚至明規定,不能有談論盜版的文章,包括軟體的copy或硬體的改機,違者停權或是砍帳號。所以基本上大家的自律程度已慢慢地提升,但昨天我吃飯時看到蘋果日報副刊的一篇滿版的報導,我差點把飯噴出來。
昨天的蘋果副刊有常大版面在討論Wii,其中有一個版面請了一位資深的玩家,明明白白清清楚楚地告訴大家怎麼去改機,分析改機和不改機的優缺點,我看了一整個傻眼!會不會太誇張啊?這麼明目張膽,我確信他教大家改機不是為了「合法」的備份,因為在他的Q&A裡提到「如果是重度遊戲玩家,建議買改裝機...」,很明顯的是指重度遊戲玩家因為遊戲量大,用改裝機可以玩台片,經濟壓力會小一點。
一個是台灣最大的平面媒體,請來了一位號稱是17年經驗的玩家,給了我們這麼一篇讓人看了心驚膽跳的報導,想要美國把我們排除在301條款之外?!我看還有很長一條路要走。
|
今年的續集電影特別多,神鬼奇航、蜘蛛人、史瑞克、哈利波特、終極警探、神鬼認證,連終極殺陣都要出續集。當然片商的目的就是在藉這這些名片的光環,好好的再賺它個一筆。老實說這些續集還真不錯,雖然我只看了終極警探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前推出,一定會比捷運這個更讓人震撼)。
所以東西好就不怕沒市場,更何況仙劍已經累積了這麼多年的名氣了,還需要搞一個這麼機車的認證機制嗎?當然這絕對不會是底下工程師的決定,會做這種豬頭政策的人,當然就只有高高在上的豬頭老闆。他們只知道盜版很嚴重,一定要弄個機制好好的來防盜版,這些豬腦袋不可能會去把開發機車認證機制的精力放到遊戲本身。到頭來人家還是照破解,遊戲也沒有該有的水準。我還能說什麼呢?為什麼很老闆久了都會變豬頭呢?
01 八月, 2007 00:42



|
http://www.theapplecollection.com/Collection/objects/tattoo.shtml
話說回來,這兩天大家都在吵蘋果Q2的財報,說什麼iPhone銷售未達預期的50萬隻,所以APPL跌了一些。大家看來對Apple真的有很深的期待啊~~有那種恨鐵不成鋼的感覺。冷靜下來想想,兩天就賣出30萬隻,開通的有14萬隻,現今地球上有哪家手機業者有這樣的成績?!我只能說大家愛太深,則之切啊~~~
30跟14有很大的落差?我想有不少iPhone買來後被果汁機打掉、拆掉、Hack、砸爛、當PMP用的還真是不少~~我也想要一台iPhone啊~~~
|
17 七月, 2007 12:44
我的第一個Google gadget - 台北捷運路線圖
由 Jacky Chu 發表於 [ 你今天Google了嗎? ](28491) 閱讀, (1063) 引用, (0) 回應 ,
推文( 0 )
經過半個多月的努力,終於完成了我的第一隻Google Gadget!事實上是一炮三響,有完整的Google Maps版,有簡易的Google Maps Gadget版,和純文字的Gadget。而這隻程式就叫做「台北捷運路線圖」!
廢話不多說,改天再來發表創作心得,先來看看長啥樣子吧!
完整版,包含了站別基本資訊、站別景點資訊和乘車路線查詢。
http://babyplay.cc/~jacky/gadget/mrt/taipei.html

Gadget簡易版,這是為了參加小工具設計甄選從完整精簡化的小工具,少了完整版中的景點資訊。![]()


Gadget文字版,如果你想省來開地圖的時間,用這個文字版是最快的啦,除了沒有Google Maps外,功能跟完整版一樣喔!

10 七月, 2007 13:15
最近有個廣告很有趣,某家補習班找了幾位「曾經」在他上補習班上過電腦課,而現在在知名軟體公司(姑且稱為M公司吧)上班的人,出來幫補習班背書,想要塑造的形像就是讓大家以為該間補習班真的很有兩下子。姑且先不論廣告的真假,如果照這個模式,那如果我有機會當Google員工的話,當年我重考大學的補習班是不是也可以請我來拍這種廣告,說只要在他們那邊補習,你也能上Google!
100%的內線消息告訴我,那M公司的確有那兩位員工,也的確曾在該補習班補過電腦,但這都是好多年前的事了,就像我重考大學時,連網際網路(Web)都還沒有,哪來的Google。我以前在該補習班授課時,他們是定位為生活化的電腦課程教學,是近幾年才開始開認證課程的,我相信那兩位員工是有在該補習班上過課,但應該不是上現在狂推的認證課程。
我不是來踢館的,只是這個廣告讓我想起三年前寫的文章「認不認證沒關係」,那兩位現在能在M公司上班,跟該補習班沒有絕對的關係。就像陳士駿(YouTube創辦人)絕不會是因為唸了該小學兩年(他國小二年級就出國了),所以有今天的成就。他們能有今天的地位,都是日後努力、歷練而來的,想靠認證進那些大公司?我只能說他們不是慈善機構、不是學校,不會負責訓練新手菜鳥的。
很多電腦相關的工作,基本的要求都要所謂的電腦相關科系畢業,如果你沒有這樣的學歷,就只好拿出相關的證照,來證明你也符合這樣的基本條件。但有學歷和證照只是讓你能開啟這扇門,跨過這個最低的門檻而已,要得到一個不錯的工作,你還得做很多努力和學習才行。
很無奈的,就像我前面所說的,大公司不想花時間、金錢來培育新人,一來曠日費時,二來萬一學成跑掉了不就都白費了?小公司也不見得願意,最主要的原因是沒有像大公司這麼多的資源。所以公司找不到可用的老鳥、高手,而一堆新鮮人也找不到願意收留他們的公司。這是雞生蛋,蛋生雞的問題。我想除了你命中有貴人,找到一位高人或公司願意有計畫的訓練你,不然還是靠自己才是最根本的辦法。
我高一開始接觸電腦。當時我老爸因為自己興趣和工作、學業上的需要,買了一台286回來,那時一顆40MB的硬碟要上萬塊哩。我老爸不喜歡我拿他的電腦來打電動,丟了一本DOS和BASIC的書給我,我的電腦生涯就從這本書開始了。我那個年紀不打電動,那電腦能幹嘛呢?那個時代也沒網路,遑論相簿、 blog之類的個人化網站,我唯一能做的事就是練習寫程式,也沒人教我,就只K那本書,幾個月之後我比我爸還會寫程式了。
現在網路上常有很多人問,已經考過XXXX認證,上過XXX課程了,下一步該怎麼走?該如何增進自己的實力?對於這種問題,我還是老話一句:找題目自己寫,我就是這樣過來的,到現在我都還記得當年完成第一隻小程式的興奮感和成就感,不是那種Hello World的程式,我記得是隻圖片瀏覽的程式。
那題目怎麼來?就亂想囉,當年真的沒有像現在這麼豐富的外界資源,所以全都靠自己亂想(那時(198x)哪有什麼電腦補習班(很少很少)啊?)。後來才有《第三波》雜誌,該雜誌每期都會有程式比賽的題目,也就開始參加,後來運氣不錯,有兩期還入選,雜誌到現在我都還留著。
很可惜,現在都沒有像當年第三波這樣,有程式練習的雜誌和媒體了,相信和我一樣年紀的,應該也不少也是這樣磨練出來的吧。不過現在網路發達,有豐富的書籍和網頁可看,網路上也有熱心的人分享他們的經驗和幫人解答問題。以前我們只能透過平面的雜誌來獲得成就感,現在只要你寫的程式夠實用,放在網路上就不怕沒人知道。所以你寫好的小程式別放在家自爽,拿出來跟大家分享,除了成就感外,有些人也會分享他的建議給你,有伴會學得比較快。
有了這麼多的資源,你唯一要做的事就是靜下心來寫程式,先別想說我以後能不能賺到錢、進大公司工作。在矽谷創業的那些人,開始時也都不會去想這樣的問題,做就對了。學校的作業、網路上的比賽,都是你磨練的好機會。得不得獎在其次,你要真正的去寫過才會知道寫程式原來是這麼回事。就像煎荷包蛋大家都覺得很簡單,大家用嘴巴都煎得很漂亮,但當你真正動手時,發現還真有一點學問。
讓我們開始寫程式吧!
03 七月, 2007 16:36
其實打從第一篇起,我就一直強調「平常多練習」這個觀念。我並沒有要求要用到多高深的數學算式、演算法,我只是要大家想寫程式時,多花一點點時間動一動腦,在我們從小學到高中畢業的數學知識裡,有哪些是可以用得上的。花了十幾年時間學的東西,不用不是很浪費嗎?而且平常不熟練動腦的話,臨時要寫個需要用到許多數學的程式,不就手忙腳亂。
我們學英文時不也是常常被告誡平常就要多練習,才會學得快、進步得快。我們一定非得要寫數學有關的程式時,例如3D運算、搜尋等,才開始用數學嗎?寫論文用的英文、新聞用的英文都比平常用的英文來的嚴謹,難道我們平常練習英文是為了要寫論文才用嗎?不是嘛~你平常把英文練好了,突然哪天要接洽國外的客戶、要去國外出差時,老闆自然會把機會交到你手上,你也趁此表現一下,表現的好,自然可以得到老闆的欣賞。要是你抱著需要再去學的心態,這種好機會就只好跟它說再見。數學也是一樣的,我想要表達的就是這個觀念。
你當然可以把數學、英文丟在一邊,在台灣要寫程式混口飯吃還不算難。但我想成為世界頂尖的工程師,我想寫程式領高薪,進世界級的大公司工作,那不只數學、英文,要學得東西還更多呢!但數學和英文的能力是最基本的條件,你想到什麼樣的高度,取決於你的態度。
不過話說回來,請你多練習數學,不是要你走火入魔的爛用它。適當得使用才會有加分的作用,反之只會讓人摸不清你的程式,甚至有反效果。還記得Part 2最後的那個例子嗎?那個例子其實是算出1到12345中,奇數和偶數的總和!這個例子是個很好的例子,來說明爛用數學只會讓程式更難讓人看得懂,而且還很容易出錯且沒什麼效率。你可以到這來看看它執行的結果:
|
24 六月, 2007 07:34
感覺起來大家還是對於我在上一篇文章中的論點不是那麼的了解,我想要表達的是我並沒有要求堅深、精美的數學演算法,而是要大家在平常寫程式時,多想一分鐘,把你所約到的數學用上來,不需要多資深的數學背景,只要我們在大學以前所學的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);
|
12 六月, 2007 02:30
高招!真的是高招啊~~之前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
收工睡覺先~~
|08 六月, 2007 17:26
研究所順利考上的嚮往已久的資工所,成為名符其實的本科系學生,本以為可以不用再玩數學了,但我發現我錯了,是不用再玩那些抽久的高等數學沒錯,但線性代數、機率統計、離散數學等…用了更多的數學,我想不出來有哪門資工研究所的課沒用到數學的。而且你最後的碩士論文要寫出來,數學更是不能少的。你以為玩網路不需要數學?大錯特錯,裡面一堆機率統計的東西。電機需要數學嗎?當然需要!最基本的傅利葉轉換就夠搞死你了,所有工科的系所都逃不了數學的魔掌。就算你到了管理學院,會計系要數學、經濟系要數學、連心理系有些領域也需要數學。雖然所需要的數學不盡相同,但都在數學的領域裡。我開始後悔當年沒把數學唸好,博士班念到一半唸不下去了,其中一個原因是我數學太爛了。
寫程式需要數學嗎?要看程式的目的?那我們就像討論一個簡單的程式,算出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年的數學訓練很可惜嗎?至少花點腦筋用一下嘛~~,大家都多少用一點,台灣軟體的水平就會慢慢提升了,你說是嗎?
|

border="0">