使用者工具

網站工具


society:programmer_chicken

Other References

10001 件資工系畢業前一定要做的事

出處:http://mrjamie.cc/2011/06/27/things-all-cs-students-should-do/

00000 擁有你自己的網域 — 買 .com 和 .com.tw 的網域有各自的竅門,如何找到最划算的價錢,你應該要知道

00001 租用你自己的雲端主機 — AWS 第一年幾乎是免費的,EC2 和 S3 是兩個你至少要摸熟的服務

00010 安裝 Apache 伺服器軟體 — 學著設定 httpd.conf,例如把 www.domain.com 轉到 domain.com (台灣 90% 的網站都忘了做這件事)

00011 安裝 WordPress,經營一個網誌 — 長期經營網誌有很多好處,況且對於程式人員來說,寫作能力是最重要的技能之一

00100 用 Ruby on Rails 寫出一個產品 — 我認為 Rails 將會取代 LAMP 的地位,現在缺 Ruby 工程師的比缺 LAMP 的還多,而且都是一些非常棒的新創團隊,我鼓勵你把這個框架學好

00101 幫同學解決一個實際的問題 — 去跟非資工系的同學、朋友、親戚聊天,找出他們生活、工作、社團有什麼實際的問題,你可以用程式幫他們解決的,然後實際做出這個網站給他們使用

00110 寫一個 iOS/Android App — 如果上面這個問題,透過 Smartphone App 可以解決得更好,那就寫一個 iPhone/Android 給他們 (台大的學生可以考慮去上我的合夥人 Prof. Mike Chen 的智慧手機開發課)

00111 實際使用 Facebook API — 用 Facebook Connect 來讓使用者快速登入你的網站,並且拿到他們的 Email 和好友名單,再想辦法利用這兩個資料給他們更好的服務

01000 實際使用 MongoDB (或是其他 NoSQL) — 學校教了很多 RDBMS,但是你要知道現在有很多時候 NoSQL 更符合需求,尤其是大規模網站

01001 把你的網站放上 AdSense — 雖然沒辦法賺大錢,但是你會因此更了解網路廣告的各種內幕

01010 讀很多別人寫的程式碼、文章和書 — 寫程式和寫作進步的方法,除了多練習,就是多讀別人的作品

01011 下載並 Compile 一個複雜的 Open Source 專案 — 像是 OpenSim 或是 Matterhorn

01100 貢獻給一個 Open Source 專案 — Open Source 界有他們的文化,跟他們實際協做過,你才能了解

01101 學會用 packet sniffer — 聽聽看你愛玩的遊戲,是怎麼跟它的主機溝通的,你會學到很多

01110 設定你的 DSL Router讓家裡電腦當伺服器 — 你會對 TCP/UDP ports 有更多了解

01111 用 map-reduce 分析資料 — 這是現在最最熱門的題目,你應該要試試 (從這裡開始)

10000 去當暑期實習生 — 暑假來了,實際去公司上班兩個月,看看真實世界是長什麼樣子吧!新創公司尤其是你的好選擇,因為你將可以摸到更多好玩的東西 (不知道要去哪裡?寫信來,我幫你介紹: mr.jamie.blog [at] gmail.com)

10001 去跟 10 個學長姐聊聊 — 在你決定要繼續攻碩士、就業還是創業前,去跟 10 個已經畢業的資工系學長姐聊聊,看看他們都在做什麼,有什麼事情他們後悔當初沒學好,有什麼事情他們覺得你可以考慮去做。不要悶著頭聽同學們的建議做決定,他們和你一樣不知道自己在做什麼。

以上,希望對於正在念資工系的你們有幫助。

80後想的和你不一樣 ─ 每換一次工作,都是在練功

http://linusvanpelt.pixnet.net/blog/post/33155971

出處:商業周刊 第1198期

畢業四年換四份工作!

當你皺眉心想,這就是「八○後」不穩定的特徵,判斷他們難以成事時,鄭伊廷的故事或許會讓你的想法轉個彎……。

鄭伊廷,二十七歲,宏達電的資深經理。更多人是認識她的網名:「XDite」。XDite,

這個在網路上赫赫有名的人物,在莫拉克風災時,用一個小時的時間 就打造出救災網站,集結了二千四百名志工,並讓每天四十萬人次可以了解最新災情動態,成為民間救援中心。

在此之前,XDite已踢爆馬英九「治國週記」網站提前虛構,並寫了「戴爾之歌」諷刺戴爾(Dell)出包又不願意負責的態度。

對夢想,企圖大! 未來是要搶來的,不是別人給你的

坐在鄭伊廷位於新店的租屋處,PChome二十四小時的宅配紙箱幾乎堆到天花板上,從泡麵到蜆精統統都成箱擺著。 聽到她告訴我,上述行為只是為了「好玩」 與「自我挑戰」。 而她從大學畢業四年,已經換到第四份工作。 我腦子裡浮現的是很多企業老闆對八○後的刻板印象:「對未來沒規畫,只求快樂。」

直到下列這段對話出現:

我問:「妳覺得未來是……?」 她答:「未來是要你自己搶來的,不是別人給你的,我幹嘛,我沒事幹嘛給你!」 我重複:「未來是要搶來的?」 她答:「對!」

「搶來的?」 「對!」她用力的回答。

在高流動率的背後,其實是這女孩用力搶未來的故事。大學畢業後,鄭伊廷第一份工作是文化大學做網管。看似鐵飯碗的工作,卻未讓她感到滿足。

「我想做很偉大,很多人想要用的東西,看到很多人喜歡,我就很高 興……。」

她原本想到最好的方法,是成立網站,讓大家都使用,她原本就有好的技術底子,但她發現,要達到這個夢想,還不夠。

「我寫東西再強,還是需要team work(團隊運作)。」她說。「因為要成立能商業運作的網站,只靠工程師還不夠,我也要去學習商業模式。」

對跳槽,沒眷戀!不能準備好才跳。

那時已經沒有船 鄭伊廷從文化大學離開,到第二份工作,一個程式接案公司,在那裡她碰到大量駭客,大家彼此鑽研討論技術;在網站痞客邦的第三份工作,讓她帶領團隊,摸索出 團隊合作的技巧。

為了不斷進步,她每個月花一萬多元買書,而且全部看完,平均每天看一本書。她也不斷把自己的想法,放在網站上,歡迎各界挑戰、叫陣,然後 再修正、改良。

今年,她把如何讓團隊無阻礙運作的想法,貼在網站上,吸引到宏達電的注意,她也毫不眷戀的跳槽到了宏達電。在這裡,鄭伊廷坐上了這個通常要四十歲才能坐到的經理位置,帶領了一個五十人的團隊,年薪比她的第一份工作翻了好幾番。

宏達電吸引鄭伊廷最大的「胡蘿蔔」是:「世界舞台」。因為那能讓她朝「讓更多人喜歡她創造東西」的夢想更近。

「設定目標,就一個一個攻下。」

她的實際,讓她的跳槽更義無反顧。

「你不能萬事準備好才等著跳(跳槽),但是(那時已)沒有船。」

對資歷,沒在怕!有人二十年經驗,其實都是同一年

「我現在在研究,如何跟不同國籍、不同時區的人溝通、打交道。」她笑著說。每換一次工作,對她而言,都是在練更高的武功。

難道不擔心,自己這麼年輕的資歷「罩」不住其他資深的工程師?

「不會啊。很多人說自己有二十年經驗,但只是一年經驗,用了二十年,」「我是扎扎實實的學習上 去……,我試了幾百幾千條(方法),看了很多武功秘笈(網路與書的知識累積)。我不需要浪費時間在很多人已經證實的事情上面。」

寫給即將入行的程式師的一封信

http://www.jobbole.com/entry.php/903

來源:伯樂線上

首先,歡迎來到程式師的世界。在這個世界上,不是有很多人想創造軟體並解決問題。你是一名hacker,屬於那些願意做一些有挑戰性的事情的人。

  “當你不創造東西時,你只會根據自己的感覺而不是能力去看待問題。” – WhyTheLuckyStiff

  對於下面的文字你不必完全接受,所有這些來自一個其貌不揚的程式師。我喜歡把事情做到最好,而不是對原來的東西修修補補。

  僅僅是因為愛好開始做一些創新,這是一個很好的開始!如果你說“我要先學習一下再開始做”那麼你永遠不會真正開始。每個人都需要從某個地方開始,所以現在打開你的編輯器開始寫代碼吧。

  下面是一些很重要的建議,雖然有人並不認同,但我保證你看完我的分析以後會站在我這一邊。一開始,先不要管演算法和資料結構。大多數簡單的程式不需要用到演算法和資料結構,所以當你真正需要時再去學習。程式設計一段時間以後,你就會知道在哪些地方用到他們。這時知道演算法的名字並瞭解它們的功能,然後找一些相關的論文去理解演算法並動手程式設計實踐。如果沒有現成的函式程式庫(其他程式師提供的可重用代碼),你用自己喜歡的程式設計語言來實現它。

  0. 選擇一門好的程式設計語言,一門你自認為可以用它快速地做出一些有用東西的語言。

  不要選擇C語言作為你第一門程式設計語言。也許選擇C語言會給你一種過時的滿足感。雖然它比早期的組合語言提供了更好語法描述,但是今天C(或者C++)不是能夠快速編寫軟體的語言。毫不偏袒的說,我建議你學習一種動態語言。選擇一種你覺得語法(文檔)讓你使用起來更舒服的程式設計。為此,你可能需要花費一些時間來在幾種不同的語言之間進行比較。這麼做目的不是為了讓你感覺更好或者讓程式設計更容易。更快地完成自己的作品並且能夠看到成果,才是激勵你程式設計的源動力。不要選擇一門需要某種重量級的IDE(IDE是一種能夠幫助你編寫並運行代碼的工具)才能輕鬆程式設計的語言。你所需要的僅僅是一個文字編輯器。(注:原文並沒有標號,是我們加上的,請大家別忘記了哦,我們是從零開始數數的。:) )

  1. 選擇一個好的編輯器。

  編輯器對程式師而言,就是像是弓對弓箭手一樣重要。這裡有一些推薦的編輯器: • SublimeText 2 – 如果你剛開始程式設計,推薦使用SublimeText 2 • Emacs – 學習曲線陡峭,快速鍵複雜。如果你想定制自己的使用習慣,需要學習Emacs Lisp. • Vim – 不僅操作簡潔而且它默認包含在linux的發行版本中,所以深受大家歡迎。我開始使用了2年Emacs。由於Emacs的快速鍵操作過於複雜,我的雙手開始經常疼痛,這迫使我轉向了Vim陣營。瞭解Vim的快速鍵是非常有必要的。當你在遠端的伺服器上編輯代碼時,你唯一不需要安裝的編輯器就是Vim。

  注意!Emacs和Vim可能已經成為成為古董了。但是,它們都具備一些現代編輯器多不具備的功能。

  2. 選擇一個你可以從中學到東西的作業系統

  Windows不會教會你任何東西。使用Windows你唯一學會的就是打開一個exe(可執行)檔來安裝軟體和使用它。可能剛開始的時候你會覺得很酷,但是長遠來看,如果你立志成為一個web開發人員,可能還是要具備基本的linux知識,尤其是當你要發佈程式的時候。Linux也允許你根據自己的要求來定制程式。Macs也很酷,但是我認為你現在經濟上還負擔不起。

  3. 不要通過複製粘貼來做備份

  一個新手程式師通常會把檔複製粘貼到一個臨時目錄下麵來進行備份。這也許也是他們唯一知道的方法。不要那麼做!你需要使用版本控制軟體。我強烈推薦使用Git,它是個目前很流行的版本控制工具,而且使用起來非常簡單。對一個Git新手,有一個良好的社區和很多參考資源來學習。(除了Git之外,還有mercurial, darcs, fossil等等。但是我還是建議從Git開始,我有很多的理由來支持Git,這裡就不多費口舌了。)

  4. 知道去哪裡尋求幫助

  參加一個和你相關的(你使用程式設計工具相關的)程式師社區。比如StackOverflow就是程式師的Facebook。那裡沒有消息狀態和回復,取而代之的是問題和答案。除此之外還要學會使用IRC。IRC是一種老式的聊天室,現在還在被大多數開發人員用來分享技術資訊和説明解決問題。

  5. 培養你的禮儀

  知道什麼時候問問題。你遇到的大多數問題都是別人碰到過並且在Internet上能夠找到解答的。在IRC或者任何論壇裡發問之前,先搜索一下google(或者blekko)來看看是不是有現成的答案。在IRC上問問題需要有耐心。永遠記住,人們只是處於好心來免費幫助你。有時你發問以後需要幾個小時才能有回復。所以,耐心等待。除此之外,記得問問題的時候要禮貌。世界很小,你怎麼對待別人,別人就會怎麼對待你。

  6. 結交朋友,技術書籍只能教你解決常見的問題(他們說:書是死的)

  當你在搗鼓一些程式或者從程式的作者那裡學習,你能學到一些書本上沒有的東西。當你散步的時候,請和遇到的朋友打招呼。你肯定不是唯一的程式師。和其他的程式師一起交朋友一起工作。你會注意到,當一群技術愛好者在一起的時候,不論話題是從什麼地方開始,最後總是以技術話題收尾。這是必然的現象。所以你可以盡情參與。在你的黃金年齡努力程式設計,我能告訴你的是,我在開始6年前尋找朋友並開始討論程式設計,從那時起才學到那些書本和文章不會我的東西。所以我總是說,我的程式設計經驗有6年,因為只有那個時候開始,我才開始與人交流並開始感覺真正地開始學習程式設計。

  7. 參加開源項目

  為開源項目編寫代碼能帶來回報。這不僅僅是幫助別人,你留下的代碼會被其他人使用或(可能)改進。當別人給你的代碼添加功能或者提出修改意見時,也是在提高你的程式設計水準。開源軟體專案不一定要是一個大工程,編寫一個下載youtube視頻的小程式也是很有用的。更重要的是,你會驚奇地發現你編寫的代碼會成為與他人有效溝通的橋樑。其實關於參與開源專案,伯樂線上編譯的不少有關程式師的文章都是如此建議,比如Justin James 的《程式師開始程式設計生涯的5個建議》。

  最後,若干年之後如果本文的內容曾經對你有一點點的幫助,作為回報請寫一封類似的信給希望開始程式設計並不知如何入手的朋友,有可能的話請糾正本文中過時的內容。

  智者說過,掌握某個東西需要10年或10000個小時,也就是漢語中的“十年磨一劍”,所以不用著急。

成為編程高手的二十二條軍規

1.大學生活豐富多彩,會令你一生都難忘,但難忘有很多種,你可以學了很多東西而難忘,也會因為什麽都沒學到而難忘!

2.計算機專業是一個很枯燥的專業,但即來之、則安之,只要你努力學,也會發現其中的樂趣的。

3.記住:萬丈高樓平地起!基礎很重要,尤其是專業基礎課,只有打好基礎才能學得更深。

4.C語言是基礎,很重要,如果你不學好C語言,那麽什麽高級語言你都學不好。

5.C語言與C++語言是兩回事。就像大熊貓和小熊貓一樣,只是名字很像。

6.請先學習專業課《數據結構》、《計算機組成原理》,不要剛開始就拿著一本VC在看,你連面向對象都搞不清楚,看VC沒有任何用處。

7.對編程有一定的認識後,就可以學習C++了。(是C++而不是VC,這兩個也是兩碼事。C++是一門語言,而VC教程則是講解如何使用MFC類庫,學習VC應建立在充分了解C++的基礎之上。看VC的書,是學不了C++語言的。)

8.學習編程的秘訣是:編程,編程,再編程;

9.認真學習每一門專業課,那是你今後的飯碗。

10.在學校的實驗室就算你做錯一萬次程序都不會有人罵你,如果在公司你試試看!所以多去實驗室上機,現在錯得多了,畢業後就錯得少了。

11.從現在開始,在寫程序時就要養成良好的習慣。

12.不要漏掉書中任何一個練習題——請全部做完並記錄下解題思路。

13.你會買好多參考書,那麽請把書上的程序例子親手輸入到電腦上實踐,即使配套光盤中有源代碼。

14.VC、C#、.NET這些東西都會過時,不會過時的是數據結構和優秀的算法!

15.記住:書到用時方恨少。不要讓這種事發生在你身上,在學校你有充足的時間和條件讀書,多讀書,如果有條件多讀原版書,你要知道,當一個翻譯者翻譯一本書時,他會不知不覺把他的理念寫進書中,那本書就會變得像雞肋!

16.我還是強調認真聽專業課,因為有些課像《數據結構》、《編譯原理》、《操作系統》等等,這種課老師講一分鐘能讓你明白的內容,你自己看要看好幾個月,有的甚至看了好幾年都看不明白。

17.抓住在學校裏的各種實踐的機會,要為自己積累經驗,就業時經驗比什麽都有用。

18.多去圖書館,每個學校的圖書館都有很多好書等你去看!

19.編程不是技術活,而是體力活。

20.如果你決定了要當一個好的程序員,那麽請你放棄遊戲,除非你是那種每天只要玩遊戲就能寫出好程序的天才!

21.你要有足夠的韌性和毅力!有個高手出一一道題測試你的韌性和毅力:找個10000以內的素數表,把它們全都抄下來,然後再檢查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。

22.找到只屬於你自己的學習方法。不要盲目的追隨別人的方法,適合自己的才是最好的!

十年一覺程設夢

發信人: weber1217.bbs@bbs.cis.nctu.edu.tw (weber), 看板: Programming
標 題: 十年一覺程設夢
發信站: 交大資科_BBS (Mon Jan 14 00:42:42 2008)
轉信站: ptt!ctu-reader!ctu-gate!news.nctu!news.ntu!news.ee.ttu!csnews.cs.nctu!

本文可視為 “我的 DDK 學習經驗” 的續篇, 不談軟體技術, 而是寫我在華碩
10 年的職場經驗. 描述學會了 DDK 這套工具, 我是如何運用它,
在工作上落實創意, 供各位參考. 另外我的為官經驗, 可說是失敗中的失敗,
各位可引以為鑑

我在華碩的第一位老闆是 HC, 我日後對軟體價值的想法, 受到他的影響極深.
他以前在宏碁是 Jonney 的助理, 參與天龍中文終端機開發計畫.
當時工作, 是用宏碁自行開發的 ASIC, 搭配 firmware 來處理中文顯示.

這份工作累積的經驗, 讓他日後有能力自己開一家 VGA Chip IC 公司.
而也使他成為在華碩中最了解軟體價值的董事.

他在華碩第一份工作, 是從無到有成立 VGA 部門.
當時 3D VGA Chip 霸主是加拿大 ATi , PM 大主管屬意這家公司,
預計與其全面合作. 但 HC從 Chip 架構及規格, 反而看好另一家
風中殘燭的 nVidia. 那時候 nVidia 找過麗台跟其他家 VGA 卡廠商,
都吃閉門羹, 沒人想理它.

部門內成立 3 條產品線, 分別使用 ATi , nVidia, S3 公司的晶片.
當時與其他部門最大的不同處是, VGA 部門 RD 是以軟3: 硬1的分配.
成為公司部門中, 擁有人數最多, 水準最整齊, 都是台清交碩士畢業的軟體人員.
連我跟他面試時, 還被他嫌在資策會待太久, 怕染上不好習性.

HC 的個性是, 技術不願受制於人. 他逼 nVidia 吐出所有的 VGA source code,
命令底下一組軟體工程師來做效能最佳化的工作. 我分配到的工作是,
做安裝光碟程式, 及用 X86 組合語言來加速 VGA Driver執行效能.
(因當時有許多 2D/3D 指令是用 CPU 先處裡過, 然後再傳給 VGA 晶片處裡).

因解掉 1 個 nVidia 驅動程式的 Bug, 使華碩 V3000 繪圖卡領先其他對手,
早 1 個月出貨, 打響公司在 3D VGA 市場的名號. 因為這一點貢獻,
經 HC 推薦, 而獲得 Jonney 額外的獎勵獎金.

VGA 部門在所有同仁努力下, 不到 2 年時間內, 就擠下原先在台灣第一名的麗台.


---------------------------------------------------------------------
因在驅動程式這個領域的耕耘, 我獲得在資策會時, 做夢也不敢夢到的高額報酬,
有感於當時 (1997 年) BBS, 雜誌文章皆是財團法人, 學術界人士, 學生的論調,
鮮少來自工業界的聲音. 而且是一面倒向 MIS, 資料庫.

於是在 BBS 上寫篇 "我的DDK學習經驗” 文章, 鼓勵其他軟體從業人員,
朝驅動程式發展, 而不是只押寶在 MIS, 資料庫.

當時在 BBS 上引起支持 RAD Tool, MIS, VooDoo 學生的筆戰,
搞到連 HC 去交大演講招募工程師時, 現場都有學生嗆聲點名,
說要找我單挑. 回來後問我是不是覺得時間太閒, 沒事做.
(XD! 現在是 nVidia 還是 VooDoo 活下來 ? MIS 公司還是 IC 公司錢賺的多 ?)

事隔 3 年後, 在台灣微軟 WinCE 技術研討會上, 有一名微軟工程師趨前自我介紹.
他原本是在交大擔任助理, 看過該文後, 放棄原有安穩待遇的工作, 自願降薪一半,
投身驅動程式開發領域. 我相信, 經過 MS SmartPhone, SoC 的興起, 聯發科,
宏達電躍昇為股王後, 他現在應居要職領高薪, 遠比當交大助理, 來得更有成就感.

HC 深信公版公 Driver, 絕對無法支撐起產品競爭力. 於是在不增加任何硬體成本下,
極力要求我們要用軟體來增加附加功能. 而我們也不負他所望, 連續推出 3D Glass,
Game OSD, 3D See Through, Time-Shift, Smart Doctor, OverLock 等特殊軟體功能,
讓 Sales 在報章雜誌上, 有材料來連連為華碩繪圖卡創造話題.

在不到 5 年內, 他成立的 VGA 部門, 成為世界第一品牌的VGA 卡公司.
而以往稱霸的外國 VGA 卡公司, Diamond 跟 Elsa 公司, 一個倒閉, 一個縮編.


當 Win95 問世, 引發一波 MB 大換潮, 得以讓華碩連續蟬聯 3 年股王.
(但套句台語, 搖擺沒落魄的久, 10 年內, 股價從 800 多元變成現在的 80 幾元)
而 MB 也需要搭配 Win95 驅動程式的安裝光碟出貨, MB 的主管 Jerry 向他要求
軟體人力協助. 他就派我去成立 MB 軟體支援課.
我雖然心中不願, 但卻也不得不捨下喜歡的 VGA 驅動程式工作.

當時的 MB 部門是以 EE 及 BIOS RD 為主導. 軟體支援課形同雞肋般, 扮演的角色,
僅比 QT 部門高一點而已. 工作內容僅是製作安裝光碟, 檢查驅動程式的穩定度.
不過因 MB 種類日益頻繁, 使這份工作變成繁瑣的制式工作. 也讓我心中不時思考,
XD! 自己是 RD 還是高級 QT ?

然而繁瑣工作還是要做, 最後受不了, 我模仿 Win95 Plug and Play 的 driver
安裝機制, 寫出半自動安裝程式, 將公司所有的 Chipset, Audio, Lan 等等 driver
全部放在一張光碟. 當放進光碟機時, 安裝程式自動啟動來偵測 MB 上所有Device
的 PID/VID, 挑出正確的 driver 供使用者安裝.

這套方法, 不僅讓這個軟體支援課逃出繁種無聊的工作,
也大大減少 PM 的安裝光碟庫存壓力. 不用一種 MB 就要準備一張光碟,
而是 Intel, SiS, VIA 晶片組系列的 MB, 各一張安裝光碟.

而我就利用這多出來的工作時間, 私下做一些自己感興趣的題目.
因沒影響到 MB 出貨, 所以 MB PM Joe 跟 Jerry , 根本都不曉得我
私下在搞什麼東西.


---------------------------------------------------------------------
有鑑於 Win95 後, MS 宣稱要停止支援 DOS. 我就將 DOS 版的
MB BIOS Flash 程式, 改寫成 Win 版的 WinFlash. 大概撈過界,
惹毛負責 DOS 版 Flash 程式的 RD, 而讓 BIOS Team 不願導入.
完成的 WinFlash 只好靜靜躺在硬碟中.

過了半年, 當時公司為康柏 (Compaq, 現被 HP 併購) 製作一款
無軟碟機, 安裝 WinNT 的 PC. 原先的 DOS Flash 程式無法在其上使用.
(NT 上無法在 DOS 模式下去存取硬體, 也沒有軟碟可以 bootup DOS).
康柏限期要提供解決方法, 藉由康柏施加在 PM 的壓力, 讓這套塵封的
WinFlash 程式, 得以應用到產品上, 在市面流傳.

而另一家 MB 公司微星, 在我完成WinFlash的 2 年後, 也做出做法不同
但相同功能的程式, 並在雜誌上大打能在 Win 上作 BIOS flash 的廣告.
看見其他公司的重視程度, 想起自家公司的態度,
真覺得 MB 軟體部門只是個打雜部門, 絲毫不受重視.

完成 WinFlash 後, 當時 WWW 網路剛興起不久, 洞悉到網路潛力,
我跟部屬合作開發 Asus LiveUpdate, 利用網路, 在 Win95 下來
自動更新驅動程式跟 BIOS. 由於 Asus LiveUpdate 是由
Client 跟 Server 兩部分程式組成的. Client 端的檢查, 下載機制完成後,
尚須要後端 Server 的配合, 才能啟動.

但初期 MIS 部門根本無配合意願, 最後透過 HC 的影響力,
總算幫 VGA 部門 架設更新網站. 經過 3 年後, 微軟把類似
概念的線上更新功能, 直接內建到 Win 2000. 而現在華碩
官方軟體下載網頁, 及 MB/NB/VGA/EeePC 的安裝光碟上,
都存在著這套軟體.

同一時期 Intel 在 MB 上推出 Health Monitor 的功能, 用來偵測
CPU 溫度, 風扇轉速, 及機殼入侵. 同時推銷網管軟體 LDCM
(Lan DeskTop Configuration Management) 給公司來 bundle 在
intel 系列主機板上. 而 maintain LDCM 的工作就落到我頭上.

因 LDCM 既有的InstallShield 安裝程式, 需事先提供硬體設定檔,
註明 MB 有幾顆風扇, CPU 溫度範圍等資料.
我的天啊 ! 若每一片 MB 都要這樣搞, 那我豈不是被 LDCM 搞死.

於是修改既有的 InstallShield 程式, 讓它能掛上 device driver.
在安裝過程去偵測有多少顆風扇, CPU 現在溫度, 然後動態產生
硬體設定檔, 餵給後面的 LDCM 設定程式去正確執行安裝.

後來上 LDCM 訓練課程時, 聽到 Intel 人員提到 Acer 一個軟體部門,
正在進行於 LDSM Client-Server 架構下, 從 Server 端把
BIOS/Application/Driver 安裝到 client 端.
於是自己獨力將 WinFlash 修改成 LDCM 能使用的 PLUG-IN module,
提供 MIS 人員直接在 Server 端更新 Client 端 BIOS 的功能.

因為 Intel 限制 LDCM 只能用在 Intel chipset 系列的 MB 上.
HC 叫我想辦法, 在 SiS/VIA Chipset MB 上提供相同功能的軟體.
於是就開發 PC Probe 這套軟體, 但也發現讓問題越來越複雜.

3 家晶片組公司(Intel, VIA, SiS) 有各自不同的介面/地址去讀取
Health Monitor, 甚至同家不同系列的晶片組也有所不同,
有用 SMB Bus, 也有用 I2C Bus 的. 而 Health Monitor IC 來源,
也有 3 家 IC 公司提供. 產生一堆晶片組加 Monitor IC 的不同組合.

做第一片 MB 時, 還覺得有趣. 但做到第 10 片 MB 時, 就覺得
又煩又無聊. 所以一直在想, 有沒有一勞永逸的解決方法.


---------------------------------------------------------------------
當初是 1999 年, Win2000 beta 版還在測試, WDM DDK beta 版首度
出現在 Win98 ME上, ACPI BIOS 1.0 spec 也剛出爐.

看完 ACPI Spec 後, 加上幾年的 Window Programming 經驗, 我察覺到
MS 想利用此一規格, 迫使各硬體系統廠商必須提供 ACPI BIOS,
來讓 Windows OS 能直接控制硬體. 並且把 BIOS 角色壓縮成 Boot Loader.
一但 OS 啟動後, 讓 BIOS 沒有主控權, 以避免 BIOS 影響 OS 運作.

(MS 夠邪惡, 但很明顯並未得逞, 直到現在, 在 Vista 上, programmer
還是可以用 device driver 下 SMI 指令, 讓BIOS 取得控制權)

看過 ACPI BIOS 規格跟 WDM DDK beta 版後, 我終於找到處理
Health Monitor IC Access 跟 BIOS Flash 的一勞永逸方法.
讓所有硬體存取相關的動作, 全部集中在 BIOS 的 ACPI ASL code 中,
由應用程式透過 ACPI driver 來讓 ACPI.SYS 執行對應的 ASL ocde.
如此就不用三天兩頭為 SMBus I/O port來改device driver.

於是一頭栽進去, 偷偷在 Win98 ME 平台上開發 Asus ACPI Driver.
同樣的, 因為有把該做的工作完成, HC 檢查進度時, 沒發覺異樣,
所以才不會對我碎碎唸, 說做這個東西有什麼用.

但是 ACPI Driver 需要 ACPI ASL code 配合才能啟動.
自知惹毛過 MB BIOS Team, 他們是不會幫忙的. 求人不如求己.
於是找剛成立的 NB BIOS RD 部門, 向其要了 Lotus NB 的 BIOS 原始碼,
自己邊看 ACPI BIOS Spec, 邊在 Lotus 上修改 ACPI ASL code.

當花了 3 個月時間, 寫出 Asus ACPI Driver 跟對應的 ASL Code 時.
因深知此技術的發展潛力, 便主動開技術介紹會, 邀請 NB/MB
BIOS RD 來參加. 但會議結束後, 沒有一個 BIOS RD 感到興趣.

但我並不灰心, 因 Win2000 WHQL Logo program 規定 BIOS 一定
要支援 ACPI. 我知道總有一天, Asus ACPI Driver 會派上用場.
只不過卻沒料到, 這 "總有一天", 卻是在 3 年後才來到.


---------------------------------------------------------------------
2002 年, 公司 的 NB 種類增多. 原先 NB BIOS RD 是直接 program VGA ,
在各家 VGA Chip 的 Frame Buffer 上畫 OSD (On Screen Display),
但多種不同的繁瑣 VGA Frame Buffer 定址, 讓 NB BIOS 主管 Jason 受不了,
因他有聽過我的 ACPI 技術介紹會, 於是私下請我幫忙解決.

我當時也沒多想, 本著同公司就應互相幫助, 將 Asus ACPI Driver
原始碼提供出來, 做投影片, 並教 NB 軟體工程師如何移植到 NB 平台.

HC 常跟我說, 我是做事的人, 但卻不是做官的料, 有股 RD 的技術狂熱,
卻不懂職場的遊戲規則. 但我毫不在意, 老是把他的話當耳邊風.

但這次無私的 ACPI 技術提供, 不僅沒有獲得任何回饋,
(NB 部門可沒因此而多發薪水股票給我).
反而種下 4 年後不愉快的起因.


雖然那時是在做 MB 的事, 但還是會關心 VGA team 的發展.
把 MB 上學到的 Health Monitor 跟動態超降頻的概念, 介紹給 HC.
在大家一遍喊 VGA 超頻的時候, 逆勢提出降頻觀念.

我認為做文書處理或上網時, VGA 根本不需要啟動 3D Engine 跟拉高頻率.
於是在 VGA 上實作出 Smart Doctor 軟體, 依據 VGA/CPU 實際工作負荷,
來動態超降頻, 以避免 VGA 長期處於高熱超頻狀況, 降低正常使用期限.

事隔 1 年半後, nVidia 公司受到其他 VGA 卡製造商的壓力,
將這項功能, 直接內建在 Driver 中. 可惜當初沒人告訴我要申請專利.
不過雖然如此, 這套動態超降頻功能, 已經領先其他對手早 1 年半.

當 VGA 部門闖出名號後, HC 為了尋求下一波成長動力. 將目光擺在
當時熱門的 IA 題材: Setop Box 跟 PDA 上. 但因 VGA 軟體人力不足,
想將軟體人力從 MB 部門抽回來, 於是詢問我的意願.

但他同時也點出, MB 軟體支援課雖然工作無趣繁瑣, 但會影響 MB 出貨,
公司不能沒有這個課, 而且未來將會隨 MB 產能大幅成長變成一個大部門.

但我二話不說, 自廢武功, 自動解散 MB 軟體支援課. 將底下的台清資訊碩士,
從無趣工作中解放出來, 投入 Embedded System 研發專案中.
我也不再想當管理階層, 跟 PM review 進度跟開會, 我覺得是浪費生命.


---------------------------------------------------------------------
在 2002 年時, 掀起一股 IA 熱潮. "PC 已死, IA 當道". Embedded System,
如 WinCE 3.0, Embedded Linux, VxWork 紛紛跳上檯面. 我被分派去做以
Embedded Linux 為主 的 Setop Box 跟 Thin Client.

當時曾接觸過 Luxsonor IC 公司, 原想用其 IC 在 Setop Box 上.
Luxsonor 的華裔羅副總, 因意識到 PC 運算能力提升, 以硬體為主的
MPEG2 decoder 將倍受威脅, 後因理念不合, 於是自立門戶, 成立
InterVideo (IVI) DVD 播放軟體公司.
而 Luxsonor 在將 MEPG2 decoder IP 授權給聯發科後, 被 Cirrus Logic 併購.

因 IA 口號正熱, 一些軟體工程師很容易從傳產股金主募得資金,
在國內外, 小型 Embedded Linux 公司如雨後春筍, 陸續冒出.
連 Mr. Taiwan 谷月涵, 也插花當網虎國際的執行長, 來搞股票上市上櫃.
就可知道這些公司分名是擺明想 A 錢, 用股票換鈔票.
(XD! 我打電話給網虎 Sale 問些事情, 結果隔天他就發新聞稿,
說華碩即將採用網虎的 embedded linux)

在 Setop Box 上的 Embedded Linux 上執行的 Browser 功能很陽春,
涵蓋 PC NetScape/IE 的功能不到 30%, 而他們又無法克服 TV resoultion
及 interlacing 問題. 最後淪落為無實用性的玩具.
我也因而勸阻 HC 入股某家美國 Embedded Linux公司的念頭.

Settop box 做半年後收起來, 改做 Web Pad, 一共用 Transmata TM5400,
NS GEODE, VIA C3 3 家 CPU 來開發原型機.

開發Transmata TM5400 WebPAD 時, 我負責 BIOS 與負責硬體的同事 Alex,
僅僅兩人完成該 Prototype. 當時我們好像是在搞家庭代工, 什麼事都自己來,
我邊下 BIOS 命令, 他就用 LA 去抓硬體訊號. 那陣子, 雖然壓力大, 但也學到
Phoneix NoteBook BIOS 架構, 並得知更多 Window 與 BIOS 溝通介面.

當時觸控面板的介面 IC 並無支援傳統 PS2 介面, 於是我寫個 Win98 驅動程式,
用南橋晶片空出來的 GPIO pin 去接收介面 IC 的輸出資料, 透過驅動程式將
其轉化成 PS2 Mouse Event, 去模擬出一個 PS2 Mouse Driver.
這是我第一次用軟體驅動程式模擬出特定硬體介面的經驗.

5 年前的 SoC 剛萌芽, 硬體省電能力很弱, LCD-TV, 跟 LCD Panel 價格昂貴.
原型機完成後, 因暸解成本昂貴, 功能有限. 我向 HC 建議, 不要導入市場.
(有夠呆吧! 如果煽動成功, 讓老闆投錢投人, 起碼可以撈到個副理官位來做,
至於賺不錢, 那是他家的事, 反正有其他賺錢的部門在養, 怕什麼!)
結果同時期有兩家公司, 大眾電腦跟旺? 做出 WebPAD 商品,
想也知道, 都賠賠賠, 成了 3 賠產品.

IA 熱潮的泡沫, 不到 2 年就消失. 但 PDA 因有
Palm 及 WinCE PDA 的銷售成長, 得以繼續生存下來.


---------------------------------------------------------------------
HC 意識到趨勢變化, 停止 Steop Box, WebPad 開發, 將所有軟體人力
投入 PDA 開發. 於是我被指派去做 Intel Bulverde VC (Validated Customer) 計畫.

Bulverde 是顆 SoC, 非 CPU. 它將 ARM base CPU, VGA, Peripheral,
Memory Controller 全部塞到 1 顆 Chip 中. VC 計畫是, 在 Intel 提供的
pre- alpha SoC 板子上, 架上 MS WinCE 3.0 OS, 寫程式去測試功能.

當時是利用 ICE, 透過 JTAG 介面來 program SoC, 使 SoC 發出預期的
控制訊號, 接著用 LA 去量訊號, 檢查是否正確. 然後每星期回報 Bug
給 Intel 做除錯之用. 簡言之, 就是寫程式幫 Intel 作 SoC 硬體功能驗證測試.

在參與過 Setop Box, Thin Client, 及 Bulverde VC 計畫, 讓我無意中充實對
IC 規格和硬體設計方面的知識, 有時候當下看是不相干的工作經驗,
往往是日後技術提升的基石. 經歷這時期實作經驗, 對日後軟體設計, 有極大幫助.

但因部門政治因素, 外加 VGA 軟體主管離職. 不得不放下喜歡的 Bulverde VC計畫,
再度聽從 HC 的安排, 轉任 VGA 軟體主管.

HC 一直想為 VGA 部門尋找另一波成長動力. 於是指派我去執行
DVD Recorder 及 LCD-TV 專案.

初接任 VGA 軟體副理一職時, 一位負責維護 Display Driver Hooking 機制的 RD,
提出可以將 Video 結合 3D Game 的點子時, 我贊同他的想法, 並加碼加派一位
RD 去做 MPEG4 壓縮跟網路即時通訊功能來配合. 做出全球首套支援 3D Game
的視訊軟體. Sale 部門看到這套軟體後, 取名為 Game Face 來大力促銷.

隨後因 HC 想在大陸成立一個軟體團隊, 我暫時放下 LCD-TV 案子,
前往蘇州, 武漢, 西安等地的大學去招募員工.
(有人跑大連, 哈爾濱的路線, 11 月, 還好不是我)
因老婆不願舉家遷移到大陸, 在蘇州華鼎成立團隊雛型後就返台.

在 LCD-TV/ DVD Recorder 這些專案中, 我陸續接觸到 WIS, LSI, TI OMAP,
Sigma Design, Trident, OPlus, Genesis, PixelWork, Morning Star 等各家的晶片.
這段期間大量接觸各類的 IC 公司, 也讀了一堆相關的 IC spec and datasheet,
我試著去比較各家晶片性能. 遇到不懂的規格名詞時, 就上 Google, 翻 paper,
從基礎理論去了解其規格背後的含義. 而墊下對消費性電子 IC 方面的知識.

因為國外 IC Design 公司的規格書寫得非常詳細, 我從中接觸到MPEG 2/4, H.264,
Scaler, DE-INTERLACE, 視訊規格, 以及色彩學等方面的知識.

記得當時 Trident 代理商的某個 FAE 很臭屁, 欺負我沒摸過 LCD-TV Chip,
還說 LCD-TV Chip 很有深度, 技術很難懂, 要像他這樣的人才才能搞懂.
結果事後 K 過 paper 跟 Video Demystified後, 才知道他誇口的那些知識,
根本是入門級.

做這些案子期間, 我觀察到一些 IC 公司只專注在硬體開發, 如 LSI, TI.
而其 IC 所需的 DSP firmware 或 embedded system 卻要系統廠商,
花錢向其他家軟體公司購買, 相關的 Video/Audio codec 授權問題,
也是由系統廠各自向 MPEG2/Dobly 談判.
對玩慣 WinTel 的我為此深感不解. 為何無法提供一套完整的方案,
卻還要系統廠到處張羅硬體,軟體,權利金等事項 ?

相同時期, 隨著 SoC 蓬勃發展, 聯發科洞悉到系統廠的需求, 招募眾多
軟體工程師, 搭配自家晶片, 提供完整的 solution, 在不到 4 年時間,
DVD Recorder 方面就打敗 LSI, 手機晶片方面, 則是嚴重威脅到 TI.
逼得 TI 也出 Davanci SDK for WinCE. 如果 TI 還不親自提供完整
TurnKey Solution, 中低階, 甚至高階手機晶片, 被聯發科攻陷是指日可待.


---------------------------------------------------------------------
在 2000 年, 華碩獲利大幅衰退, Jonney 意識到主機板高毛利時代,
已經一去不返, 連精英都嚴重威脅到華碩 (股價 130 : 70), 一堆 VGA
部門的軟體工程師, 集體跳槽到精英.

Jonney 開始推動巨獅計畫. 進行公司組織重整後, VGA 部門被劃給 Jerry.
我因而失去重視軟體功能 HC 的支持, 我曾經因案子無預警被中斷,
當面對著 HC 拍桌子, 但他心胸寬大有雅量, 沒把這件事放在心上,
日後反而常常在暗中拉我一把.

直屬長官變成 VGA 部門的硬體經理. LCD-TV 專案也被迫停擺,
由 Jerry 新成立的數位家電部門來主導. 而底下的一些軟體工程師
看苗頭不對, 全部跳去負責 VGA 卡的軟體單位.

但上帝關起門時, 同時也為你開了另一扇窗. 2004 年時 MS 推出
Media Center, 並且全球數位電視陸續開播. 雖然處於冰凍狀態,
算是苦中尋樂吧, 花時間 K 數位電視訊號規格, 去了解 RF, IF, BF,
demodulator,及 OFDM 編碼的原理. 從這些規格跟通訊編碼原理中,
找到屬於技術人員的樂趣.
(數位電視訊號規格有牽涉到視訊壓縮, 因有看過 MPEG2/H.264 資料,
所以蠻快就進入狀況. 有燒香就有保佑, 有讀書就有收穫)

不久後, Jerry 對 Barebone 部門報以高度的期許, 於是我轉移陣地,
設立一個軟體團隊來支援 Barebone 部門, 雖然還掛在 VGA 部門,
但 VGA 部門最高主管早就不理我, 考績被打得很爛.

在 BareBone 部門初期幫忙接 Samsung 的代工案及自有品牌 E-Spreso.
但後期 Barebone PM 部門換主管後, 無意朝創新發展, 以衝產量為優先.
也不管軟體功能, 把底下的工程師當工具來使用.

為了不讓底下的軟體工程師閒閒沒事幹. 加上看到 MB/NB 朝
消費性電子化的發展趨勢, 同時也知道 LCD Panel 的色彩缺陷性.
我不想浪費在 LCD-TV 專案上獲得的一些研究經驗,
於是開案子, 將 LCD-TV 色彩處理功能導入到 VGA/NB 上.

初期我將這個概念跟專利草稿給另一家 IC 設計的子公司參考,
希望能共同開發. 但後來子公司毫無分享意願. 認清現實一面後,
靠人不如靠己, 我分配 2 名 RD, 成立 Cameleon (變色龍) 專案,
從事 NB 上的色彩功能開發, 並將此觀念介紹給某位 NB 高級 PM.

因為這位高階 PM 是工程師出身, 有過 TV CRT 的相關開發經驗,
知道此功能的實用性. 雖然NB 內部有阻力存在, 但他仍盡力協助我
在NB 部門內介紹這項功能.

幸運的是, 當時 Toshiba 推出強調色澤鮮艷的 Qosmio NoteBook,
該 NB 加裝 1 顆我以前摸過的 Trident LCD-TV Chip, 用來處理色彩運算.
而公司代工的另一家日系公司也想要有類似功能. 要求 NB team 評估
用日本 Jepico 影像處理 IC 在其代工 NB 上的可能性.

就在日系公司派出技術科長來台灣, 討論代工 NB 的技術相關問題時.
IC 子公司透過高層主管安排, 向其 demo 他們開發的色彩軟體功能.
而我是幸好有該 PM 的私下安排, 向日本科長展示 Cameleon.

雖然IC 子公司想透過高層主管的政治影響力, 來左右日系公司的選擇.
但在看過 IC 子公司, Cameleon, 及 Jepico 3 種解決方案後,
基於擴充性, 效能, 及價格的考量. 日系公司決定採用 Cameleon,
並派出其 TV 部門技師, 提供調校色彩參數, 來配合 Cameleon 使用,
正式導入在日本銷售的 NB 上.

因為日系公司採用, 形成強而有力的背書, 原先反對的人都默不出聲,
順利消除 NB 部門內部阻力, Sales 部門將 Cameleon 改名為
Video Splendid, 如同 Asus ACPI Driver 般, 成為公司 NB 的基本功能.

由於 Jerry 所轄的 VGA/Barebone 部門主管, 無意朝創新發展, 只優先衝產量.
外加看到 XBox 360/ PS 3 研發售價消息不斷冒出, 以及 LCD-TV 低價化.
魔獸爭霸也放出消息要移植到 Xbox 360 上時, 我判斷
高階 VGA 卡, DMA 及客廳式 PC, 絕對不是Xbox 360/ PS 3 的對手.

試問當一台 Blue-Ray BD, 40 GB HDD, WLAN 801g 無線上網, 3 顆 CPU 的 PS3
只賣台幣 1 萬 4 千時, 還會有多少人去買 1 張 1 萬多元的高階 VGA 卡 ?

MS 跟 Sony 可以賣一台虧一台, 以後靠 content service 跟 game license
來獲利. 但 Dell, HP, Acer, Asus 有可能虧錢賣 PC/NB/VGA 嗎 ?

NB 市場的 VGA 方案都是內建, VGA 卡公司是看的到吃不著.
同時 NB 長力道已經逐步趕上 Desktop 時. 看不出有其它位來發展機會,
於是離開 VGA 部門, 轉調到以系統為主的 NB 部門.


---------------------------------------------------------------------
公司一變大, 一些事情再也不是以技術優劣來考量. 原先以為在 NB Team
可以開發第 2 代的 ACPI Driver 及 Video Splenedid, 尤其是 ACPI BIOS
已經出到 3.0B 版, 而 ASUS ACPI Driver 還停留在 7 年前的 ACPI BIOS 1.0 時.

但這些想法都被 NB 軟體大主管拒絕. 有次討論工廠測試流程時,
還跟我解釋 ACPI Driver 的功能. 當時心想, 他還以為 ACPI Driver
真的是他手下自行開發出來的.

在不被重用, 近乎被冷凍的狀況下. 又開始自己找事做, 看到大部分人
用 NB 時, 通常是用 Mouse 居多, 而 TouchPad 就白白浪費在那邊.
加上當時 iPod的觸控螢幕功能造成熱門話題. 所以交代部下去搞個將
TouchPad 當 Touch Panel 用的程式並申請專利.

結果搞出來後, PM 對其興趣缺缺. 但卻沒料到,過 1 年半後, 在
2008 年 CES show 展上, NB Sales 把這個 TouchPad 功能當成一個賣點.

因從 2004 WinHEC 資料得知, 微軟即將力推 MCE 2005 跟 Vista Premium
(code name Diamond), 會拉升 NB 對 TV 功能需求. 又看到大陸工資成長的趨勢,
及公司內部如火如荼的 LSS 精實運動. 我想到用軟體自動化來做工廠檢測.

當時 NB工廠大多依賴人工作檢測, 無法有精確的量化數據. 在 6 Sigma 的
DMCIA 步驟中, 需有 M (Measurement) 步驟提供量化數據, 以統計手法分析,
作為方案效果評估, 來找出引起品質差異化的關鍵.

假想若能提供每月數十萬台的 NB 測試量化數據來加以分析, 又能
加速測試流程, 減少作業員需求量. 對公司的硬體設計, 供應商的
電子元件良率控制, 應當有所幫助.

於是實際到工廠待一個下午, 發現作業員真辛苦, 因為工廠沒能力去寫測試程式,
為了測試 TV, Camera, Audio 的功能, 須操作繁複設定的商用應用程式
(IVI Home Theate, Cyberlink Power Cinema, 3D Mark 2003), 以人眼人耳去判斷,

而長期沿用 DOS/Assembly 的單工觀念, 將刺是測試幾個小站, 一站一站去測,
絲毫沒利用到目前 CPU/Windows 的多工能力, 也無法執行驅動程式來
測試 device 功能. 而在測試聲音時, NB 啦叭跟機具運轉的噪音, 此起彼落,
真是個惡劣工作環境.

於是回來後寫個快速測試 TV/camera 的程式, 交給部屬, 由他修改介面,
依工廠需求, 協助導入 Digital/Analog TV 軟體檢測, 因 MCE 2005/Vista Premium
的 NB 產量持續成長, 對 TV 的檢測需求, 大幅成長. 這套方便的 TV/Camera
檢測程式很快就正式導入 NB 生產線, 頗受作業員的歡迎.

受到順利導入的鼓舞, 我計畫接下來開發 Audio, WLAN, BlueTooth 等檢測功能.
再度請出 Google 大神, 上網查聲音相關的論文跟原理文章, 最後使用麻省
理工學院的快速複利葉轉換程式庫( MIT FFTW), 以及參考普林斯頓聲音研究室
( Princeton Sound Lab)的公開原始碼, 在 DirectSound 上寫一個可同時測
錄放音功能的快速聲頻檢測程式, 來檢測 NB 聲音輸出入 的 Channel Balance,
Frequency Response, Total Harmonic Distortion, Back Ground Noise Level 品質.
為了確保聲音檢測的正確性, 我拿商用音頻測試軟體 SpectraLab 來比對.

但是要導入時, 又發生政治因素, 讓快速音頻檢測程式無法上線.
軟體主管單位擺明, 要導入的話, 就把原始碼全部公開給他們, 並提供訓練課程.
不然的話, 就別想導入.


大概因接 2 連 3 惹毛其他軟體部門, 造成 NB 新主管在管理上的困擾.
最後他丟個 PC Camera 的案子給我做. 並告訴我只准做這個案子, 不要再亂想
或亂碰其他案子, 免得跟其他部門起衝突.
好吧, 反正不是第一次, 我再度發揮苦中尋樂精神, 自我尋找技術人員的樂趣.

於是跟幾家 Camera USB IC 公司接洽, 初期因剛接觸 PC Camera 領域,
對相關技術不懂. 於是把 PC Camera 整個軟硬體架構拆解掉, 從 Lens, CMOS sensor,
步進馬達, USB IC, UVC/WDM Capture driver, KsProxy, DirectShow 等硬韌軟體功能,
從頭到尾走過一次.

知道影像清晰度跟色彩對 camera 非常重要, 就花時間做快速 Auto Focus,
因嫌 USB IC 的清晰度判斷能力太爛, 自己寫 MTF base 清晰判斷程式來取代.
並上網去讀 Glass/Plastic Len 鍍膜對色彩的影響, 以及 CCD vs CMOS sensor 的
色彩處理物理特性的優略點分析.

甚至到最後, 覺得 CMOS sensor 的硬體色彩處理功能 (3x3 matrix process),
還是無法真正解決色偏問題, 還找到 Nikkon 的色彩處理晶片專利文章,
來了解 Nikkon 單眼相機對色偏的解法.

在看過 Micron CMOS Sensor 2020 的 datasheet 及 USB UVC Spec 後,
花了 2, 3 個月, 去修改 USB IC 8051 firmware, 利用 UVC Extension 介面
從 Windows App 關掉 USB IC 的功能, 直接去 program CMOS sensor.
才發覺原來一開始被 USB IC 公司的 sales 給呼?了.

原來 USB IC 公司把 Micron 2020 優異的硬體功能關掉, 只開自家 IC
的影像處理功能. 而 Sales 宣稱其因 IC 具有特殊的附加功能,
如 AWB, Scaling, Sharpness detection 等, 所以要賣得比較貴.

但單純從運算速度來看, USB IC 的 8051 根本比不上 Micron 2020 的 68H11.
而這些功能可以被 CMOS sensor, VGA Scaling 及 Window App 所取代,
而且效果遠遠超過它.

因 PC Camera 硬體設計進度一直拖延, 要做不做的. 一直等也不是辦法.
為了證明自己不是只會放砲愛吹牛, 寫虛擬攝影機驅動程式,
用 UVC Extension 介面去控制步進馬達, 做出快速自動對焦.
(1.2 秒, 可以更快, 但受限於馬達步進機構精密度的缺陷)

將擷取到的畫面導入 VGA Vertex/Pixel Shader, 去做 face detection.
同時研讀微軟北京軟體學院的電子白板相關論文. 想將電子白板的功能
導入虛擬攝影機驅動程式. 但最後還是看出主管並無心去推動這個案子.

經過 WinFlash, Asus ACPI Driver, Video Splendid 的推動經驗後,
我已經對由內部推動創新的方法絕望, 都要靠外部的市場壓力,
來彌平內部阻力, 一些被 PM/RD 主管輕視的軟體功能才能出頭.

這時興起辭職去其他系統廠發展的想法. 但就如同電影"東方不敗"中所說 :
"江湖在哪裡? 有人的地方就有江湖 !"

其他系統廠也會存在相同狀況, 如果沒有總經理級的支持, 到時候鐵定
也是被排擠的份. 在華碩起碼還有 HC 知道我是會做事的人.
還好過沒多久, 果真 HC 就暗中幫了我一把.


---------------------------------------------------------------------
2007 年四月某晚 8 點多時, 接到 Jerry 秘書的電話, 說要找我一起吃飯.
搭著 Jerry 的 Lexus 460 LS 加長豪華版, 去台北藝術大學吃飯.
席間才得知, 原來 Jonney 交代 Jerry 去執行百元電腦計畫, 但 Jonney
一直對軟體部分放心不下, 要 Jerry特別留意, Jerry 就請 HC 推薦合適
的軟體人員來幫他看軟體這一塊.

雖然 HC 大力推薦, 但 Jerry 擔心我常跟其他軟體部門有磨擦, HC 反問他,
是要找一個會打仗, 攻山頭的人(對啦, 這種人死的最快, 無法享受勝利成果),
還是守成, 注重部門和諧圓容的主管 (割稻尾最在行, 處世圓融, 見縫插針).
幾經思考後, Jerry 最後還是找上我.

其實在 2007 年 1 月時, Jerry 因底下的 PM 不懂軟體, 就叫我幫他看
數位像框的發展機會, 我經過 2 天的技術 survey 後, 建議他取消,
因以其成本, 大可做一台 Thin Client 或 WebPAD. 如果真得要做,
建議 PM 考慮用 VIA C3 CPU + Linux 來開發.

而邀請 VIA CPU Sale 來開會時, 負責 AMD 百元電腦的 PM 也跑來插花.
後因華碩跟 VIA, AMD 價格談不攏, 最後連百元電腦的案子都停矲.
所幸 Intel 看到 AMD 在 OLPC 上的聲勢, 為防止 AMD 鹹魚翻身,
就跟華碩合作, 進入百元電腦市場, 而使這台小電腦起死回生.

餐敘後隔天就跟 PM, MID 等相關人員, 一起被關到北投春天酒店.
2 天後趕出百元電腦的UI/軟體功能規格初稿.
(吃了兩天的生魚片, 真得有點反胃)

那時候公司內部並不看好百元電腦的前途, 只好用我們這群從四處徵招來
的散兵游勇來執行. 但因這是 Jonney 非常重視的案子, 使 Jerry 認真執行,
一個星期開 3 次會, 常常開到凌晨.

當時也不知道百元電腦會不會起來, 但與其繼續待在 NB team 被冰凍,
到不如把握這個機會闖一闖. 百元電腦是個人人不看好的案子,
沒有高官想進來插旗佔山頭, 完全沒有歷史包袱. 只有一群笨蛋,
傻傻的做. 有點像在公司內部創業的感覺, 如同 VGA 部門剛成立時一樣,
大家只想把東西做好. Just Do It! 而不會去想些有的沒的, 非技術性的事情.

出關後, 上網查一下 Intel 對百元電腦的策略, 結果發現另一個消息,
原來 Intel 老早把 Xscale CPU 賣給 MARVEL, 全力專攻 X86 CPU 的省電技術,
並在以色列海法分部進行該專案.

雖然那時 HC 知道我想換部門, 叫我去幫他看車用電腦這一塊, 但他底下
也有山頭問題, 犯不著跟那些人玩政治. 而且我覺得跟隨 Intel 腳步比較有搞頭,
如同宏達電跟隨微軟般. 新興的產品, 有大公司在背後推, 才有機會成功.

所以就接受 Jerry 的邀約, 加入百元電腦團隊. 忙了 1 個月多月後, 在 2007 年
台北電腦國際展上, Jonney 拿出這一部百元電腦亮相, 並正式命名為 Eee PC.


EeePC 會不會是曇花一現, 或是乘勢崛起, 我不曉得. 但我個人相信,
在 UMPC/MID 這塊領域能存活下來而且能獲利的, 必定是
強調系統整合功能的公司, 絕對不是只相想靠低價成本搶單的公司.

我非常佩服宏達電, 死死跟著 MS 的 Window Mobile 平台. 跟到第 4 年時,
公司差點倒閉. 因而引進王雪紅的資金. 但等到 WinCE 3.0 夠穩定,
能拿出來賣時, 宏達電是第一家有量產能力的公司.
同時它也聘請許多軟體工程師來做系統整合.

當宏達電推自有品牌時, 一堆分析師看衰. 但因系統整合難度高,
其他手機代工公司是看的到, 吃不著. 後來連原先解約的電信公司,
迫於市場現實壓力, 也回頭找它代工, 甚至直接貼牌.

我是天生反骨, 在 WinTel 體制下討生活討了 10 年, 因為了解所以不滿,
對其架構, 越看越不順眼. 在我眼中, EeePC 應是屬消費性電子產品,
但又需具有 PC 般的擴充能力. 能執行現有 Linux/Windows 龐大的
X86 base 軟體, 讓 User 可以自行添加自己慣用的軟體. 而不會像
PDA, 手機般, 被綁得死死.

若按照傳統 NB 的觀念來設計, 鐵定無法持續穩住目前的地位.
競爭對手只要猛攻低價化, 體積小的罩門, 很快就追上來.

現階段 EeePC 競爭對手, 都是以硬體成本來挑戰 EeePC .
談硬體成本(CPU, Panel, Battery)的功力, Acer, HP, Dell 會輸華碩嗎 ?
談垂直整合生產製造, 鴻海會輸華碩嗎 ?
更何況還有 Apple 神秘的 iBook.

等 2008 年 Q2/Q3 這些重量級廠商的類似產品陸續出籠後,
必定是一場大廝殺. 策略不對, 研發能力不強化的話, EeePC 鐵定被痛宰 !
或許現在一些的好消息, 讓華碩一些人飄飄然, 我可是蠻憂心, 挫著等.

若 EeePC 朝更輕更薄, 更穩定, 更省電, 更快速開關機, 影音品質更好,
螢幕更大, 操作介面更人性化, 而且能控制住價格. 或許能產生許多差異性
系統功能來持續吸引 USER 的眼光.

其中系統穩定/省電功能/影音品質/人機操作介面, 軟體都可以幫的上忙.


當然, 打嘴砲想當官性格的我, 一定會考慮到:

沒人逼你做, 卻笨到自己主動挖個洞, 往下跳. 給自己找麻煩.
做出來, 沒人感激你, 反而還惹毛一些人.
做不出來, 別人逮到機會落井下石, 說你是大嘴巴, 愛吹牛.
若乖乖按照現有 NB 業界的安全方法來做, 跟大家都一樣.
老闆拿不出對照組來評估, 當然滿意你的績效.

如同銀行的資訊長愛用 IBM 的軟體, 如果出問題, 他可說國際級銀行都用 IBM,
拿其他銀行來當擋箭牌. 採用一家名不經傳, 可以省 200 萬成本的本土資訊廠商方案,
萬一出錯, 讓銀行賠上幾千萬時, 鐵定被迫辭職或降級. 老狐狸的資訊長當然打安全牌.


但工程師性格的我會想:

如果在相同硬體成本下, 能用軟體充分發揮整所有硬體功能,
創造出更多附加價值, 而且軟體成本是在人事上, 賣 1 萬台跟賣 100 萬台,
是相同的成本. 當 CPU/VGA 硬體能力成長時, 軟體功能也隨之成長,
而且是以加速度來成長.

另一方面, 軟體也可用來壓低硬體成本. PS3 因用軟體搞定 PS2 相容問題,
而省下 PS2 Chip 的成本. 那 EeePC 可不可以如法泡製 ?
若有 5 成把握, 我就放手一搏. 只要一台省下 1 塊美金硬體成本,
賣 300 萬台 就省下台幣 9000 萬, 若失敗, 只是多花 2 個人月的成本,
這個算盤實在是太划算!

而這些觀念也獲得一名協理的支持, 幫忙我跟 BIOS/HW 部門溝通.
要是我出面的話, 根本沒人鳥我.

這位協理, 以前華碩還小時, 我就跟他有過幾次合作經驗.
這次被關到北投春天酒店, 他 review 某個卡了1 個多月的軟體問題時,
我馬上提出解法. 2 個小時後, RD 回報已經解掉問題, 給他留深刻下印象.
後來在正式成立 EeePC 事業處之時, 他在 Jerry 面前也幫了我不少忙.


---------------------------------------------------------------------
一些 PM 開規格時, 因沒有深厚的技術背景, 為打安全牌, 常常就是:

1. 照抄大廠 (DELL, HP, Acer) 的規格
2. 照收 WinTel 的 roadmap.
3. 照收 component/software 廠商的 solution.

例如每家都配訊連的 PowerDVD, 在 UI 上打上公司 LOGO 來自欺欺人
這種做法只能做到消極防禦, 無法積極攻擊競爭對手.
搞到最後, 大家功能都一模一樣, 只爽到訊連.

而 Microsoft 在 MCE 2005 上推的 SideShow, 其起因是
PortPlayer 的 MP3 chip 被 Apple 取消用在 iPod上, 而改用 Samsung 的.
為了活下去, 它就跑去向 Microsoft 努力推銷 SideShow 觀念.

SideShow 說穿了, 就是把 PortPlayer 的 MP3 Player (成本 US $50)
黏在 NB 背板上, 讓 NB 同時有 X86 CPU 跟 ARM CPU. 當 X86 CPU 關掉時,
可用 ARM CPU 的 SideShow 功能來看 picture, 聽 MP3, 和看 e-mail 通知.

有沒有搞錯 ? 隨身攜帶的手機都可以做這些事. 一般 User/ 根本不需要
這種華而無用的功能, 而且 SideShow 一直開著會耗掉 NB 電源.
在 NB 上加 SideShow, 獲利者是 PortPlayer, 而倒楣的是 NB 廠.

在 EeePC 會議上, PM 計畫導入某家 PCI-E 3G 無線網卡, 內建在 EeePC.
同時要求軟體團隊來協助. 有沒有搞錯 ? 應該是這家公司要從頭包到尾,
自行負責, 它如果做不來, 還有其他家的方案. 哪有動用內部資源去幫
外面公司賺錢的道理. PM 到底是領 EeePC 部門的薪水, 還是外面公司的薪水 ?

在會議上我就開砲, 認為最重要的是, 趕快推出內建 BlueTooth,
跟能輕鬆與各家 3G 手機連線的軟體. 不必為 3G 上網的功能, 還要讓 USER
負擔 3,4 千元去買額外的 USB/PCI-E 3G 硬體. 況且用 3G 手機, 可馬上解決:

1. 全球各國 Field Test 的問題
2. 高速移動時的連線品質,
3. 讓 3G 手機的電池去負擔天線/3G Chip 的電源, 不用耗掉 EeePC 的電力.

便宜, 好用 又省電. 對 EeePC 價格, 軟體團隊, 及 User, 是三贏的局面.

就是這種雞婆個性, 常常撈過界, 挑戰別人的專業, 無意間就得罪別人.
但我覺得, 工作除了賺錢, 還要有理想, 外帶對自我技術的提升,
看看自己的底限為何. 如果自己多花些時間, 從使用者的角度,
來改善產品品質, 幫 user 省錢. 而不是已交差了事的心態來做事.
當參與開發的產品能大賣時, 多分些 Bonus, 能獲得工程師最好的
工作滿足感跟合理報酬

Jerry 看到 EeePC 大受歡迎, 衝到 Amazone 網站最受歡迎 NB 的第一名時,
決定把這堆妾身未明的散兵游勇組織起來, 成為正規軍.
於是成立EeePC 事業處, 地位跟規模將與 NB/MB/手機事業處平起平坐.


---------------------------------------------------------------------
原先我喜歡當工程師, 獨自躲在安靜的角落, 把上級交代的事做完後,
就天馬行空想新點子, 上網找資料看論文, 然後動手實作出來.
坦白說, 軟體工程師是蠻幸福的, 只需一台 PC, 有上網環境, 就可以
實踐創意. 不需像硬體工程師需要一堆設備跟很多單位配合, 才能動手.

然而經歷過 6 年不受重視被冰凍的職場生涯後, 我的態度改變了.

公司規模變很大後, 一些事情都慢慢變複雜, 日後能給我自由空間發揮
的直屬高級主管恐怕也不多見. 而且遇上一些案子, 高層會先考量需求
的研發/維護人力, 來交給一個 team, 而非一個人來執行.

工程師的我永遠是邊緣人, 只有發生問題解不掉時, 才會想到我.
而論功行賞, 封官加爵時, 根本忘記我的存在, 鐵定沒我的份.

成立有戰鬥力的研發團隊, 是很費時費力, 還要靠運氣(產品大賣).
但要摧毀它, 只需派個只會打嘴砲的主管, 不出半年, 很快就搞定.

與其如此, 倒不如自己出任管理階層, 參與高層主管決策, 來爭取預算,
在自己業務範圍內, 營造出良好軟體開發環境, 吸引志同道合的 RD,
將所學 10 幾年的軟體經驗承傳下去, 為公司培養具執行能力的中階幹部,
來擔任士官長的角色. 只要具工程師性格, 有創意跟執行力的中階主管,
越來越多時, 我在公司內部, 才不會到處被視為麻煩製造者.

若 EeePC 打算要衝出 500 百萬台的大量, 需要成立更多課級單位,
應付現階段出貨需求, 著手開發未來次代機種, 以及研發新軟體技術,
拉高技術競爭門檻, 降低生產成本. 到時候就急需一群能獨立作戰,
充分授權的士官長來貫測執行.

軟體產業不是比人多, 而是比頭腦好的產業. 派個沒實務經驗的
軟體主管, 馬上去大陸找一堆 2, 3 百個軟體人員來成立軟體部門,
沒有 20 幾個中階幹部來有組織規劃, 落實執行, 鐵定是一場災難.

我原本打算只成立小型團隊, 從 2007 年 7 月時慢慢找, 才找到一些
合適人員. 但因接下來 EeePC 的延生機種, 系統客制化, 以及相關
軟體的開發, 讓高層一直催促我要儲備更多的軟體人才, 來應付未來
的產品規劃.

要加人可以, 但我要高層先答應, 以後分 Bonus 時, 是要看部門績效,
而不是數人頭. 如果我夠厲害, 其他軟體部門要用 10 個人做的績效,
而我能用 4 個人搞定. 到時就分 7 個人的 quota 給這 4 個人.

如此公司可省 3 個人事成本, 而有實質貢獻的 RD 可拿到較好薪水,
願意長期待下來, 自我提升技術, 創造更多競爭力. 造成雙贏局面.

另一方面, 若 EeePC 未來銷售不如預期, 養不起這麼多軟體工程師時,
我還能確保部門內 RD 的薪資能優於其他部門, 不用辭退多餘人力.

為了引進更多志同道合的夥伴, 極力向高層推薦老戰友 Alex,
Alex 在華碩任職期間, 曾做過 WebPAD, PDA, SmartPhone 等案子,
後因政治因素辭職去 BenQ, BenQ 的第一代 MP3 Player, 就是他做起來的.
最後也因政治因素, 鬥不過 BenQ PM 而回鍋華碩.
(也就是有他這個案例, 我才打消辭職念頭, 繼續龜縮在華碩內, 等待機會)

他對 Embedded System 硬體架構/省電功能相當清楚, 我跟他合作過
2 款 WebPAD, 彼此具強烈工程師性格, 在系統功能設計上有相同看法.
而他歸到 EeePC 事業處後, 馬上就抓出一些硬體線路漏電問題,
作為改版及次代機種的改善目標.

我建構軟體部門的想法是:

1. 以驅動程式或跟硬體綁在一起的應用程式為主, 向外延伸.
2. 用軟體手段來求系統穩定, 省電.
3. 用軟體手段來降低生產成本.
4. 用軟體來降低硬體設計成本, 並能提供更多的附加功能.
5. 成立 “軟體 IC” team, 研究 algorithm 搭配既有的硬體設計,
在不增加任何硬體成本下, 用軟體手段提升 EeePC 影音品質.

越老鳥的 Programmer 越謙虛, 因為越清楚自己的能力底線.
全球 Open Soucrce 高手的功力是遠遠勝過華碩軟體工程師.
要跟他們拼純軟體應用程式開發功力, 無異以卵擊石.
但因公司機密, 無法讓他們取得 EeePC 硬體設計圖及相關 IC 規格.
而這就是華碩軟體工程師能發揮最大價值的所在點:

幫 Open Soucrce 高手解決硬體相關問題, 提供 Library 讓他們使用.
使他們隨心所欲改機, 修改軟體, 很容易將其他 OS移植到 EeePC.


---------------------------------------------------------------------
雖然 EeePC 事業處另有軟體部門負責 Linux, 而我是負責 Windows,
但我極力爭取在部門內成立 2 個 Linux 開發課.

為此, 找到網通大廠及 IC 公司的兩位中階軟體幹部, 來負責 Linux
系統穩定度, 驅動程式, 跟工廠生產測試軟體等開發工作.

工欲善其事, 必先利其器. 為了趕快進入狀況, 花了 1 個多月,
評估 MontaVista 的系統開發工具, 並派 RD 與其合作, 把該套工具從
MontaVista Linux kernel 移植到到 Xandros kernel 上.
有個 source code level, remote debugging 的開發環境,
遠比用 printk deug kernel/driver 方法來的精準快速.

打算用 Embedded Linux 手機穩定度的水準, 來要求 EeePC Linux 系統穩定度.
Linux 上沒有像 MS 在上億台 PC 上執行過的 WHQL/HCT/DTM 系統測試程式.
商用專業軟體工程師跟志工性質工程師做出來的系統測試程式,
兩者在性能,可靠度, 後續維護, 跟技術問題諮詢上, 是有很大差距的.

而且 MontaVista 有多款 Embedded Linux 手機的成功開發經驗.
雖然花上百萬來買這套開發軟體, 我覺得非常值得.
現在隨便一個沒經驗剛畢業碩士的人事成本, 鐵定比它還貴,
而對案子的幫助鐵定遠遠比不上這套工具.

如果 EeePC量夠大, 這些 Linux Device Driver RD 也都 tune 上來時.
到時候計畫成立一個 EeePC Linux Device Driver Certification 課,
要上 EeePC Linux 的 device driver 需先經過這個課來驗證.
並同時為 Ubuntu 跟 Google Andriod 的移植來鋪路.

從 Google 放出 Android 的 source code 後, 我就一直對它念念不忘.
不出 5 年, Google 必定取代 MS, 而且還會比 MS 更恐怖.

Google 不對 user 收任何費用, 它是向廣告廠商, content provider 收費.
只要 Android 舖的越多, 內建到更多能上網的前端便宜 device
(手機, Settop Box, MID, UMPC, PC, NB, Game consle), 提供更好更快速的
後端 server 功能及頻寬. 那還有誰想想用手機的視訊, 訂票, 看電視,
查餐廳/停車場等付費數據服務 ? 更何況還有跟 Google Map 結合的
免費地圖導航功能.

打不過對方, 就加入它, 利用它的力量. 站在巨人的肩膀, 才能看的更遠.
不然就會被巨人一腳踩死. 等量產相關工作都搞定後, 我一定親自下海,
加派人力來做這一塊.


對工廠軟體下載跟自動化測試軟體的開發, 我非常注重.
軟體不只可以增加附加價值, , 還可以降低生產成本.

12 月因 EeePC 生產不順, 兩次去上海工廠看問題, 發現有太多改善的空間.
負責生產的工廠單位, 以前接過 Apple Mac NB 的代工案, 見識過 Apple 的
軟體生產測試工具的效能. 當我提出這個觀念時, 他們極力贊成,
還一直逼問我何時可以導入, 完全不像其他單位的極力抵抗.

有執行單位主管的全力配合, 這個案子已經成功一半了.
接下來就看我這個部門爭不爭氣, 來兌現支票.

2008 年大陸頒布的新勞動合同法, 會增加生產成本, 現在一堆台商
搬去越南來避開, 那是不是以後遇到相同問題時, 要搬去孟加拉 or 非洲 ?
而且以後衝量時, 有可能下單到其他代工廠. 如果能將生產相關的
軟體技術, 掌握在手裡, 可以避開人力成本跟加快其他代工廠上線速度.

若每台生產成本因而省下 1 元美金. 200 萬台就可省下 6400 萬台幣.
只要公司撥一半給我這個部門當 Bonus, 大家雖然累, 但是會累的很快樂,
累的很有成就感. 不會累的很幹.

現請一位主任, 先在台北架起一個工廠軟體下載生產測試的模擬環境,
等把相關軟體開發測試過, 覺得有把握時, 再去大陸工廠實地上線測試.

PM 規劃下一代 EeePC 時, 決定加入 TouchPanel 功能.
找來廠商來報價, 結果報一個離譜價格, 對方解釋是因
需要一顆 USB IC 跟相關觸控軟體程式.
XD! 是欺負華碩沒有懂軟體的人, 來亂開價的嗎 ?

會後馬上交代一位高工, 叫他把 USB IC 拔掉, 照以前寫 WebPAD
觸控螢幕的驅動程式觀念, 來降低 Touch Panel 成本.

程式設計俱樂部網站 (www.programmer-club.com)上,
在“用軟體模擬虛擬攝影機的硬體” 討論串中, 我就提出類似用
軟體模擬來節省硬體成本的觀念. 結果引起某家 IC RD 的對嗆,
說要尊重 IC 公司的智財權等等.

就是系統廠 PM 沒經驗, 太好騙, 才讓這些公司獲取暴利.
同時也讓 IC 公司的 SW RD 瞧不起系統廠 SW RD 的功力.
在 EeePC 上, 如同在 NB 上用 Video Splendid 取代 Jepico IC 般,
我鐵定盡全力, 用軟體手段, 讓這些公司只能獲取合理報酬.
同時萬一要發動價格仗時, 也讓華碩有更多本錢跟對手硬拼.

為達到人盡其才, 落實 RD 要幹 RD 的事, 而不變為領高薪的 QT,
我從 QT 部門挑出兩位學士測試工程師, 交由華梵大學畢業的副課長帶領,
讓他們負責 WHQL Test, WinXP image, 在 WinPE/XPE 上撰寫測試程式,
而他們表現完全不輸碩士級工程師. 讓我意外驚喜, 有物超所值的感覺.

我給他們的任務是, 盡量用軟體手段改善流程, 來應付大量 XP image 製作,
而不是用人海戰術來應付. 薪水分紅將比照碩士工程師水準來調整.

為了用以往 DVD Recorder/LCD-TV 的開發經驗, 來改善影音品質,
我找了交大應屆畢業資訊工程博士跟另一名寫 3D Game 的學士,
合作開發 "軟體 IC".

原本給他們的 schedule 是半年將 Video Splendid 1.0 移植到到 EeePC
(為了 7 月打考績時能向高層證明), 一年後推出Video Splendid 2.0.
結果花 3 個月他們就移植出來, 並且還寫出第 2 代 的 prototype.
真的是江山代有人出, 讓我突然覺得老了.

OLPC 的 EC firmware RD 也應邀加入. 為等他把 OLPC EC 處裡完,
我等了 3 個月. 因他有 x86 BIOS, Window Application, 及 EC 的經驗.
只需把他教會 ACPI Driver 跟 device driver 相關技術, 以後我就可以
專注規劃從 Window Application/ Device Driver/ ACPI BIOS/EC Firmware
一路打通的架構跟介面, 而由他去操刀執行, 配合 HW RD 的修改線路,
希望能將以往在 Bulverde VC上 學到的省電設計經驗, 落實到 EeePC 上.


---------------------------------------------------------------------
或許有人認為我是在吹牛說大話, 但如同史蒂芬周說過的,

''做人如果沒夢想 , 跟鹹魚有什麼兩樣...."

做 RD 就是要有這種 Guts. 做不出來, 頂多浪費 2,3 個月, 大家走回頭路,
繼續當 WinTel 的順民, 乖乖照傳統 NB 的路子走,
但若做出來, 競爭對手想要照抄, 可沒那麼容易抄.

硬體線路或許可以照抄, 但散落藏在 App/Driver/ACPI BIOS/EC 中的軟體,
可就沒那麼容易抄. 如同威騰可以抄襲聯發科的 DVD ROM server chip,
但無法抄襲其韌體. 於是原封不動將聯發科韌體套到自家的 chip 上,
結果被活逮, 判賠美金 5 千萬元.

我沒有名校情節, 不會非台清交不用. 我在清交大的學業成績是吊車尾.
因為知道自己程度差, 所以非常用力拼研究所考試.

在 "我的 DDK 學習經驗”中說只要黑手工程師. 10 年後我還是說同樣的話.
部門只有 2 位是清交畢業的. 我重視的是做事態度, 學習能力以及最重要的績效.

現在這些同事在加入團隊之初, 我就先說不保證高薪, 也不要以為 EeePC
可以一直熱賣下去. 要有較好的薪水, 就要靠大家努力, 為公司創造利潤.

為防止保障年薪後, 馬上就在公司內擺爛, 讓主管對他無可奈何的現象.
我是不會採保障最低年薪的手段來聘人.

鴻海處理這類應徵者是: 你敢拿我就敢給, 要高薪可以, 先達到業績再說,
沒達到就一路打折下去, 從 1 千萬打折到最後只剩 100 萬, 天天逼進度,
讓那些自以為身價非凡的人, 待不滿一年, 沒等到股票, 就主動辭職.

就有個手機團隊從工研院跳到廣達, 然後跳到鴻海, 結果不到一年
就辭職回工研院.

連我這個大頭目都要親自下海 coding,
不准團隊中存在只會打嘴炮, 不會做事的人.
就算以後幹到管理階層, 也絕對不能放掉技術的本. 自己沒技術能力,
如何去帶領更菜的工程師, 看出部屬的錯誤之處.
又如何能著規格變化來持續改善或推出全新的軟體功能 ?

沒有一套軟體功夫能讓你吃一輩子, 除非你壟斷產品的某個研發流程,
建立山頭完全不讓別人進入來取代你. 讓上面的人想動你時,
考慮到陣痛期的成本, 就不敢輕易開刀.
自己的官位跟薪水遠遠凌駕在公司整體利益之上.
大公司一代不如一代, 技術斷層, 山頭林立的現象, 就是這樣造成的.

也告訴他們, 總經理公開宣示, 在華碩分家後, 會以績效作為分紅主要考量,
大幅拉開 RD 間的待遇差距, 全力留住具競爭力的員工, 並且每年會 fire
不合適的員工, 來促進人才流動.

若 EeePC 能在 2008 Q2/Q3 繼續站穩腳步, 我鐵定在大陸成立軟體團隊.
現在上 Google 查 device driver 相關的文章, 都出現一大堆量多質精
大陸軟體工程師寫的技術文章, 遠遠超過台灣軟體工程師的文章.

5年前在蘇州成立軟體團隊時, 就感受到大陸工程師在困境中,
力爭上游的精神. 在東北老家, 父母務農一個月才賺人民幣 200 元,
隻身到蘇州, 四個人擠在一間破套房內. 只能靠寫程式才有出頭的一天.
那種拼勁, 置死地而後復生的精神在台灣已不復見.

當初還沒進華碩, 每月領資策會35 K 的死薪水, 租間在三重貧民區
的頂樓房子. 老婆懷孕 8 個月, 夏季時太陽曬在屋頂, 頂樓房子熱的像烤爐,
怕開冷氣花錢, 就只穿條內褲, 吹電風扇, 假日窩在電腦前寫程式賺外快.
幫一家 CNC Controller 廠商寫 Win95 Device Driver, Sample Code, SDK Library,
Document, InstallShield 安裝程式. 那時候真的是拼勁十足, 程設功力突飛猛進.

我想現在大陸還有一大群這種有拼勁, Programming 能力夠水準的軟體工程師.
如果把他們組織起來, 好好訓練, 並給予合適報酬. 只要抓住趨勢, 全力猛攻.
這個團隊的戰鬥力會相當驚人.


---------------------------------------------------------------------
在台灣, 繼前波藍領階級失業潮後, 白領階級也開始失業.
我就常收到失業的美國 40, 50 幾歲華裔軟體經理的履歷.
Andrew Grove 在 "Only the Paranoid Survive" 中寫到,
"公司沒有天生就欠你一碗飯, 想吃飯就要靠自己去爭取".

台灣的軟體工程師憑什麼要求高薪 ? 現在有些工程師是躲在大樹底下好乘涼,
公司大員工多, 可以混水摸魚, 濫竽充數. 但你能躲多久 ?
等到 40 歲被辭退又找不到工作, 小孩教育費, 全家生活費, 20 年房貸都要錢.
到時候要怎麼辦 ?

華碩低月薪, 高分紅(不一定高, 要看績效)在業界中是出了名的,
當初兩位有家累, 房貸壓力, 30 好幾歲的高工, 衝著我畫出來的大餅,
甘願減薪加入團隊. 對他們, 我有一份道義責任, 以前幹工程師,
搞砸就只有自己吞苦果, 現在搞砸就有一堆人跟著倒楣.

分家後, Jerry 定下遊戲條件: EeePC 事業處未達業績標準, 核心主管減薪 40%,
基層工程師不受影響. 相反地, 若超出預訂業績標準, 就以比例來多發分紅.
不久後就要跟他畫押留證據, 免得分紅時候, 空口無憑. 害慘底下這批工程師.

我寧願用比華碩股票低的公司離職員工. 又套句史蒂芬周的話:

"只要有心, 人人都是食神"

就算台清交畢業的 RD, 一星期就能搞定的案子, 只要有耐力, 有毅力, 有興趣,
若他願意花 2 個月來搞定. (況且現在網路上一大堆 open/sample code 可供參考)
1個, 2 個, 3 個案子.. 一直做下去, 到最後他的技術能力決不亞於偷懶的台清交碩士.

我只聽過玩 Online Game 玩到暴斃, 還沒看過寫程式寫到暴斃的案例.
如果部屬寫程式寫出興趣寫到上癮, 就像玩 game 殺終極大魔王般,
我根本不用管, 他自己就把案子做出超過我預期的效果.

聯發科的開國元老原本在聯電中, 是被當皮球踢來踢去.
宏達電開張第 4 年, 資金燒光, 差點倒閉掉.
華碩在 Intel 放出要做 MB 消息時, 走掉一大批 RD.
在初創階段, 上述公司哪有本錢請素質超好的 RD ?
(華碩現在有兩位協理, 是光武工專跟淡江大學畢業的.)
但還不是最後被他們搞起, 做到股王.

我想找的, 就是有理想, 肯學肯拼, 愛寫程式的 programmer.
因自知條件比不上台清交, 所以會謙虛會認命去拼未來.
而不是畢業名校, 待過大公司, 自命身價不凡的 programmer.

我就是要這種拿穿草鞋的精神, 去跟穿皮鞋的公司拼.
用龍蝦鮑魚做出好菜不稀奇, 用青菜豆腐做得出來才厲害.
只要肯學, 程度不要太差, 我願意花上 1 年, 傳授 coding 經驗,
把他帶上來. 依績效給他對稱的待遇.


我印象非常深刻的事是, 有記者訪問朱經武博士(超導體先驅學者),
說一星期只有一個晚上能休息, 會不會覺得太累, 結果他回答,

有人肯幫我買數億元的設備, 讓我做我喜歡做的事, 我高興都來不及了,
怎麼會覺得累, 還覺得時間不夠用.

所以有幾個這種部屬, 我就可以天天到其他部門, 串門泡茶啃瓜子.


---------------------------------------------------------------------
最近看的一本書 "科技頑童沃茲尼克", 感受相當深刻, 心有戚戚焉.

Worziak 提到他非常喜歡在 HP 當工程師, 而當 HP 成立專案,
派出至少 5 個人以上的團隊, 來研發類似 Apple I/II 的產品時, 一些經理人
覺得受到威脅, (因 Apple I/II 的軟硬體是 Worziak 獨自開發出來的)
完全將他柄除在外, 即使他卑微到只想當個小小印表機介面工程師都不行.
(當妒才, 不求長進, 壟斷山頭的經理大量冒出時, 就是公司停止成長的徵兆)

因 Worziak 做過 Artira 的Ping-Pong(乒乓)/BreakOut(打磚塊)電動遊戲,
將其 TV output, 搖桿, 影音效果的技術, 運用在 Apple II 上.
而他也做過盜打長途電話的藍盒子, 將其音頻技術,
運用在錄音帶來儲存 AppleI/II 程式的技術上.
(以前做過亂七八糟案子的技術能量, 總有一天, 會在某個產品上整合)

又他知道如何用軟體去控制硬體(寫電動遊戲時累積下來的軟體功力),
把原先以純硬體觀念設計, 花 22 顆晶片組成的軟碟控制器, 改成只花 2 顆晶片,
搭配複雜的軟體設計, 在 2 星期內做出安靜超快的軟碟控制器.
(不要傻傻聽信 IC 廠 Sale 的話, 去買又貴又耗電, 性能又差的 IC,
只要肯動頭腦, 了解基本原理, 軟體的確可以省下許多硬體成本)

在設計 AppleII 時, 用最便宜的方法, 支援現有美國電視機輸入頻率,
讓 user 不用花錢另外買 monitor.
而且只用 Apple1 一半的晶片數目, 就做出功能大幅超越 Apple1 的 AppleII.
(不要花錢裝內建的 3G 網路卡, 利用藍芽連接 3G 手機的能力, 幫 user 省錢,
而不是害 User 多花錢, 讓一堆 IC 公司利用華碩去賺暴利)

為了堅持 Apple II 應該有 8 個擴充槽, 與賈伯斯起第一次爭執.
而被豬頭高階主管主導的 Apple III, 則慘遭開放式的 IBM PC屠殺.
(不要為省 connector 的錢, 而把 EeePC MINI PCI-E/DRAM 擴充槽拔掉).

現在 Jerry 非常忙, 比周杰倫的牛仔還要忙, 根本沒時間看我的規劃方向,
只要解決掉他覺得 EeePC 不好用的地方, 就不會被他釘到牆壁上.
另一位硬體出身的協理相當 Open mind, 這本書就是他推薦我看的,
還蠻支持我對軟體附加價值的想法.

最後只要滿足每個 PM 的出貨 schedule, 就不會天天來煩我.
只要部屬有 meet 進度, 我根本不會去管他們要做什麼.
讓他們自由發揮創意, 或者提早下班.
反正最後是看績效, 而不是看你每天待在公司的時間, 來決定升遷.

績效是很模糊的東西, 做立即影響出貨的 XP image, 跟做花 1,2 年
才看得到績效的 Algorithm. 何者孰重 ? 有些人就是運氣好, 撿到輕鬆,
主管誤以為績效高的案子, 而有些笨蛋就是想挑戰 mission impossible.

又套句史蒂芬周說的話:

"貪官要奸,清官要更奸,不然怎麼去對付那些壞人?"

當主管的, 要比部下更精, 不然怎麼去打出公平考績.


在程式設計俱樂部上, 我有注意過一位 Harrison 網友, 他持續 2 個多月
問我有關 ACPI Driver 的事, 我叫他去看一些公開資料, 從他問的問題,
越來越接近核心. 我就知道他真的有看這些資料.

而且他說, BIOS RD 的他想搞 ACPI Driver, 是個人興趣, 不是公司硬逼.
我就是想找這種人來加入團隊. 但因他誤以為, 能進華碩的RD 都是高手,
想繼續練功, 練到更有把握. 所以婉拒我.

但我告訴各位, 公司一大後, 有高手也有濫竽充數的夾雜其中.
而能撐到最後的, 通常是那些有毅力, 有耐心, 有危機感, 有執行力的人.
只要放在以技術為主, 沒亂搞政治的工作環境中. 他們就會自動自發,
甚至發揮出出乎意料的表現. 也不用管理階層天天在後面逼他們.

況且我會先給舊版程式的 code, 讓他們 trace 打基礎, 有段緩衝期,
還有老鳥可以問問題, 然後再要求他們開發下一代的新功能.
像我現在, 除了開一堆會, 回一堆 E-MAIL之外, 還有時間寫 code,
上網查技術資料, 就是靠他們自動自發, 讓我省下許多時間.


---------------------------------------------------------------------
因 104 人力網站只能列出簡短描述, 導致我無法細說要求條件,
也無法讓應徵者充分了解我的規劃跟行事風格.

因不想浪費彼此時間, 若有意應徵的人, 請先評估個人期望待遇與發展方向,
是否能符合我提出的這些條件, 才來投履歷.

若有興趣的, 請到104 人力銀行, 或華碩人力網上留下聯絡方式.
並註明應徵 EeePC 事業處軟體第五部軟體工程師.
我只管 EeePC 事業處軟體第 5 部, 其他 EeePC 軟體部門不是我管轄.

我不辦考試, 有意者請拿做過的作品, 來跟我閒聊.
目前我需求的人力有:

1. 美術設計人員: (1名)
需會操作 MAYA 等 3D 軟體並轉成 Direct3D 的格式, 會平面設計及網頁撰寫.
需跟工業設計中心(MID) 合作. 重點在設計 Application 的外表圖案.
在相關產業有 2 年以上的經驗.

2. Window 應用程式開發人員: (2名)
需 MFC 2 年開發經驗, 工作項目初期負責 WinXP Image 製作,
開發 WinPE上 的工廠測試程式. 及開發次代安裝光碟程式,
若學習能力強, 不排除日後從事 Windows Device Driver 開發工作.

3. Windows Display 驅動程式開發人員: (1 名)
有在 IC 公司從事過 Windows display device driver 開發經驗.
工作項目: 初期負責充分發揮 EeePC VGA chip 的硬體功能,
撰寫 VGA Memory/3D Engine 測試程式 on WinPE or XPE.
後期負責維護/升級 ASUS VGA Display Driver Hooking 技術.
(這一塊技術我可以下指導棋)

4. Windows LAN/WLAN/WiMax 驅動程式開發人員: (1 名)
有在 IC 公司從事過 Windows WLAN/LAN device driver 開發經驗,
具 NDIS, WinSocket 等相關技術背景.
初期負責 EeePC 網路(LAN/WLAN/WiMax) 相關問題並 trace IC 公司提供的
device driver source code, 撰寫 WLAN/LAN/3G 相關測試程式 on WinPE or XPE.
後期負責 EeePC Window base 通信標案的相關技術.

5. Linux LAN/WLAN/WiMax 驅動程式開發人員: (1 名)
同上, 只把 Window 平台換成 Linux 平台.

6. Linux Device Driver開發人員: (2 名)
初期負責 trace and modify Linux device driver open source,
確保在 EeePC 上的穩定度, 後期撰寫 Device 測試程式.

7. Linux OpenGL開發人員: (1 名)
有在 Linux 2.6.0 版以上 開發過 OpenGL 的經驗.

最後若認為自己有潛力但不符這些條件的人,
3也可以拿自己寫的程式碼或產品來跟我談.

有個副課長說我, 這樣搞法, 恐怕沒幾個人來面試.
但我告訴他, 我就是要這樣惡搞, 找不怕死的人進來.
寧願這陣子, 咬緊牙關先撐住 EeePC WinXP 量產的壓力,
也不要急就章, 找到不合適的人. 若在台灣找不到, 就去大陸找.

若 2008 年 Q2/Q3 跟 HP/Acer/Apple 對幹後, EeePC 還能在領先群中.
確定 EeePC 事業處有足夠盈餘來養更多軟體工程師時,
軟體第 5 部會擴大營業, 在台灣跟大陸, 再做一次徵才活動.


---------------------------------------------------------------------
工程師性格強烈的我, 因在網路上留言直言不諱. 多年在
BBS, www.23xx.com, www.programmer-club.com 上留下多篇文章,
公司內部早就有人看我不爽, 多次寄這些文章給 HC, Jerry 來背後告狀.
我相信這篇文章, 不久就有人背後告狀, 轉寄給他們.
為了節省他們的麻煩, 我自己經先寄給 HC, Jerry.

被公司受聘, 只要不涉及公司商業/技術機密, 並不代表就沒個人發言權利.
連 MS 都有個內部員工網站, 可開放給外人觀看, 我常常看到有 MS 員工
在裡面幹醮自家公司.

主管跟部屬下班後, 大家都是普通的老百姓. 沒有誰比誰大.

我也做好隨時離職的準備, 手上的資金, 讓我 30 年不工作都不成問題.
只要創意/執行力還在, 到其他公司還是可以發展出進階或全新的系統功能.
我也相信還是有其他公司的總經理, 有雅量來容納我這個異類.

華碩不就是因 4 位創辦人不爽老東家宏碁, 離職後自行開業.
我敢肯定說, 華碩絕不會是最後一家, 因這種原因而成立的成功公司.

微星老闆就非常有危機意識, 我上經濟部辦的 “ 94 年研發經理養成班”時,
就有 7, 8 個微星員工參加, 公司補貼全部費用, 也不用加班來補上課時間.
而技嘉老闆跑去開寶嘉, 代理標誌汽車.
從這點, 我就斷言微星會贏過技嘉.
當老闆都開始不務正業時, 你還能期望公司會有多好 ?

已經脫離 ”為五斗米折腰” 階段, 若是沒人收留我, 那就自己當自己的老闆,
開 Window 驅動程式教學課程. 或當自由職的技術顧問, 日子還是一樣快樂.
未來我可不想像 HC, Jerry 般, 天天開會從早開到晚, 坐飛機全球跑來跑去,
錢夠用就好, 生命中也不是只有寫程式這項樂趣. 等女兒上大學後, 我就不幹了.
要去她的學校唸博士, 反正現在考博士, 只要準備書面報告跟口試就可以.


最後祝大家都有個滿意工作, 而我希望下次長篇大論時, 就是說退休後要做什麼事.

看著桌上兩隻 BANDAI MG 版 Hi-Nu/UNICORN, PG 版攻擊剛彈的素組模型,
跟一堆變形金剛: 柯博文, 大黃蜂, 飛輪, 黑魔, 毀滅者, 判官, 密卡登.
哦, 對了還有藏在櫃子裡的 1/350 大和號, X-Wing, Y-Wing, AT-WALKER,

何年何月才能幫他們改裝甲, 黏蝕刻片, 來上色, 做舊化 ?
雖然網路有人代做模型上色. 但做模型的樂趣, 就是看一片片塑膠片,
在手中慢慢成形, 而且一台比一台做的更細緻更逼真.

寫到這裡各位大概猜出我的性格, 沒錯, 是宅男型工程師.
我找的部屬, 都是宅男型工程師.在我們這邊, 鐵定沒有鶯鶯燕燕, 讓你分心,
只有超安靜的環境, 讓你專心工作.

偷了世界的程式設計師

From: http://coolshell.cn/articles/3363.html

Source: http://www.time.com/time/specials/packages/printout/0,29239,2032304_2032746_2032903,00.html

本文譯自美國時代(time.com)的《The Men Who Stole the World》,原作者:Lev Grossman。相當有傳奇色彩,讀起來很爽,翻譯過來。譯得不好,還請大家指正。本中的四個程序員可能並不是那麼聲名顯赫,而且也很不老實,或許算不上成功,不過他們的確改變了世界。而本文有分析了互聯網上P2P的那些事,相當的有參考價值。

2010年12月17日更新:修改了一些錯誤,理順了一些語句。

2010年12月19日更新:增加了一些插圖。

————————正文————————

十年前,有四個年輕人改變了這個世界的運作方式。他們使用的並不是法律或是武器或是金錢,而是使用軟件來改變世界。他們當時有著激進和極具破壞性的 想法,並把這些想法付諸於代碼,在Internet上以免費自由方式發佈。這四個人,沒有一個完成了大學學業,卻奠定了今天我們習慣的數字媒體環境的基 礎。然後,因為各種原因,他們也迅速地消失在公眾視野中。

1999年,美國東北大學的一個叫Shawn Fanning的一年級新生開發Napster,從此,成為了P2P文件共享和不需要大型機構或零售商就可以獲得音樂的先鋒和範例。《時代週刊》和《財富》把他放上了封面。那時,他在19歲。

就在同一年,一個挪威的只有十幾歲的年輕人 Jon Lech Johansen,他和另兩個今天都不為人知的程序員,寫下了一個程序解密了商業的DVD,而他成為了全球盛名的「 DVD Jon.」,那年,他只有15歲。

而在1997年,Justin Frankel,一個亞利桑那州塞多納的18歲的黑客,開發了一個免費的MP3播放器——WinAmp,其成為了Windows操作系統上裝機必備的軟 件,並造就了主流數字音樂的革命。在他發佈的第18個月內,1500萬人下載了這個軟件。而三年後,Frankel 開發了 Gnutella,一個P2P的文件共享協議,沒有中心結點,不像 Napster,其不可能被關閉。目前有上百萬人還在使用它。

2001年,Bram Cohen, 當年 26 歲,開發了一個P2P的文件傳輸共享協議—— BitTorrent,其以全新一流的架構全面優化了網絡上大文件的共享和傳輸效率。 BitTorrent 也變成了整個Internet上發佈大數據和文件的一個標準。

在 2000年代的上半段,《時代》採訪了這四個程序員。那個時候,看起來他們要以數字化動亂把整個複雜的傳統媒體娛樂平台給拆除,而對有版權的電影,音樂和 電視的收費則變得困難和不可能,那些藝術家也將無法從他們作品得到報酬,整個娛樂業包括時代華納也將被炸為平地。而盜版業則藉著這四個程員的軟件侵襲了美 國公司。

「畢竟」,我們在2003年報導到:「在整個信息經濟中,不可能所有的信息都是免費的」。如果毀滅正在來臨,那麼, Fanning, Johansen, Frankel 和 Cohen 將是那「四騎士」(譯註:啟示錄中的四騎士傳統上被解釋為瘟疫、戰爭、饑荒和死亡)。

沒有毀滅

毀滅並沒有發生。但是整個娛樂業因此而改變,而這些改變的複雜性和逐漸演進超出了我們的期望。這些發生的故事, 海盜王們的事,對於今天數字化世界正在發生的事情有非常高的參考和教育價值。Fanning, Johansen, Frankel 和 Cohen 現在都硅谷運作著自己的小的,合法的軟件公司。他們現在沒有在做和盜版有干係的事情——當然,如果他們真的沒有。

Fanning,四個人中唯一一個沒有回覆我們的採訪請求的人,他較早地退出了毀滅傳統唱片業的事業。在2001年,Napster因為不堪眾多關 於其協助並煽動版權侵權的法律訴論的重壓,而不得不關閉。2002年,Fanning 創辦了新的服務 Snocap —— 他嘗試把文件共享合法化,在和相關的唱片公司合作下,Snocap 賦予消費者對其下載作品給於創作者報酬的權利。

但是,到那個時候,免費自由的文件共享程序像病毒一樣的增漲,而用戶則熱衷於更換他們的音樂硬盤。他們僅在2001年8月一個月內就交換了30億個 文件。而要從這些文件交易中收到錢是根本不可能的。是的,要和免費競爭是很難的一件事。 Fanning 創造了一個連他自己都搞不定的怪物。

所以,他停止繼續嘗試Snocap下去。 Fanning 的下一個項目是給遊戲玩家的社交網絡叫 Rupture,最終,他在2008年時以1500萬美金把其賣給了電子藝界Electronic Arts ——這是他的第一次發薪日。他現在又於2008年11月開了一個公司 Path, 其主要提供給iPhone手機進行照片分享的服務。

而Napster呢?今天他還在。這個商標在破產拍賣時被賣了,然後再被賣了,但其再也沒有被 重建。現在其被 Best Buy 運營,其是 iTunes 的競爭者,其口號是—— 「More than just a music store.」 (不僅僅只是音樂商店)

沒有盜版的人

作為 Gnutella 的作者,Justin Frankel 是 Fanning 合法的繼任者。不像 Fanning,他很早就收穫了他的第一桶金。在1999年,當WinAmp大放光芒的時候,AOL買了WinAmp和他的公司——Nullsoft,價 格應該在1億美金左右。這讓 Frankel 在20歲的時候就非常富有。當然,他也成了AOL的員工。

但這並不是很匹配,在Nullsoft, Frankel的做法是把軟件開發到極致,然後免費發佈出去。而在 AOL,軟件的商業銷售威脅並壓倒了軟件本身。「我致力於的產品,就像這樣,我們不願意金錢的摻入,我們正和其它公司做這筆交易,所以,產品也只能是這樣 的結果」,他回憶到,「沒有人真正地去關心用戶的體驗是怎麼樣的」。

與此同時,Frankel 用他的業餘時間開發 Gnutella 。這是一個很有才的軟件,不像Napster,其是真正的分佈式,沒有中心服務器,這樣,也沒有那個「關閉按鈕」讓那些律師按。在2000年3月的時 候,Gnutella上線,其發了一個貼子:「看見沒?AOL也能給你一些好的東西!」,但是就算是這樣,也沒有換來AOL對其忠愛,而一大堆互聯網公司 在那時試圖併入大的媒體公司,在Napster被訴訟的中期,2004年,他離開了AOL。

然後,他開始幹了些有趣的事:他離開了他的成功地,他不用 Gnutella,也沒有花一毛錢,就算是10年以後也是這樣。 LimeWire —— 最流行的 Gnutella 客戶端 —— 號稱有 5千萬用戶。「當我開發它的時候,我最初主要是想用其在驗證一下是否可行。所以我也不想從其中獲益」,他說,「所以,甚至我和它一點關係也沒有也說得通, 其就是一個概念」。

Frankel 他最近從舊金山搬到了紐約城,現在全心打理自己的公司 Cockos (別問為什麼叫這名),這是一個關於音頻產品套件,叫 Reaper。他堅持不懈地改進著它,並且他和他的用戶保持著很近的關係,其用戶數大約是幾萬人。「當前的策略我們並不想發展用戶數量」,他說,「我們只 是在享受目前的過程,並在做正確的事情」。他並不同意他是這個世界上最危險的geek,而滾石在2004年時對他則是這麼認為的。「我不覺得盜版是很危險 的」,他說,「根本上來說,大眾的商業模式總是依賴於對所有事情的強控制——尤其是那些有瑕疵的模式。而作為一個軟件開發者來說,多少會產生一定程度的盜 版」, Gnutella 對他來說已是遠古的事情了。「數字化盜版:它毀了唱片業了嗎?沒有。唱片業適應了嗎?當然,很多人會說得更好。

你應該更關注質量,以及更小一些樂隊,等等 這類的事」。

「至於音樂流行和排行這麼大的市場,這點盜版算什麼?」 他邊說邊笑道, 「我希望就是這樣。」

四眼怪獸

在這四騎士中,只有 Bram Cohen他現在還在致力於其10年前的那個項目。他是 BitTorrent的創始人和首席科學家,而一個令人敬佩的舊金山的公司希望能把Cohen的這個令人瞠目的高效的內容分佈式技術變成商業化應用。

這是一個奇特的公司:其合法的業務建立在一種仍然可能被用來進行大規模版權侵權的技術上。即使像 BitTorrent這樣被8千萬用戶安裝了的東西,其看上去還是像剛剛開始創業一樣。 在BitTorrent上有相對較小的一部分是完全合法的 —— 最近的一個研究表明完全合法的部分佔11%。而在這11%中,有更少的一部分產生了BitTorrent的收入。

就像 Fanning 的 Snocap 一樣,Cohen 試圖把其BitTorrent從大量的盜版領域轉移到合法的領域,這樣才能掙到錢。2007年是BT發展最震動的一年,BitTorrent成為了20世 紀福克斯、派拉蒙、華納兄弟 和 米高梅 影業公司的合作夥伴,和他們一起共同形成了 Torrent Entertainment Network,主要提供電影,電視,電子遊戲的購買和零售。

就像 Fanning一樣, Cohen 明了要擺脫盜版並不像看上去的那麼容易。「所有的和它有關的事都是災難」,他說到。Torrent Entertainment Network 於2008年底關閉。回想起來,你能明白這為什麼不行。 BitTorrent在用戶友好上做得還不夠,並且,在其底層也不夠有效率。它可以很快地像病毒一樣地移動大量的數據。然後,當你要在上面算錢的時候,你 不得不把速度給降下來,然後跟蹤並控制其下載流,還和使用一些很扯淡的諸如「數字版權管理(DRM)」之流的技術,其大量地限制了用戶那些是可以干的,哪 些是要買的。

「我從這次失敗中學到了很多很多的教訓」, Cohen 悔恨地說。他現在的策略是只和那些只需要他的BT中的「快速」和「病毒式分佈」的人合作。「與其去和那些內容提供商合作,為他們加上特權,以擴展我們的渠 道,我們還不如直接獲取那更大的渠道,那裡的人更喜歡更為開放的方式」。

迄今,對些感興趣的獨立電影製片商叫 Four Eyed Monsters (四眼怪獸)和 一個叫 Pioneer One (先驅者一號)的電視劇集的創作團隊。說起來有點沮喪:Cohen正坐在一個消防水帶上,一個程序員所夢想的成功的技術卻失控了,而大的玩家又不想來玩。

以他的編碼天份,Cohen可以很容易的進入一家大型的公司。但那並不是他的風格。「我的確需要一定的自由度」,他說。他現在正在開發一個全新的事 情——一個P2P的實時數據流的系統,而不是分散的文件。這個項止將可能有巨大的潛力,尤其在新聞、體育等事的互聯網上的現場直播。當然,他還在維護著 BitTorrent,但他沒有花太多的時間在上面。他說:「當我開發它的時候我就知道沒錯」。

簡單之道

那麼,在去年,盜版導致了什麼?在美國,每個人都認為盜版對內容製造者的影響並沒有那麼壞。一份去年四月份美國審計署的報告,非常牽強地把盜版和滯銷給聯繫在一起,但其結果尚無定論。

打擊盜版在今天扁平化的世界上並不那麼成功。無政府主義的世界觀加上那些無與倫比的代碼,不可能在那些合法的津津計較的商業界裡傳播。好的代碼應該 給用戶有不同的選擇,用戶使用他們也並不一定是對行業有益的。而你真正需要的是向那些合法商業界挑戰,挑戰他們那些限制用戶做用戶想做的事的那種獨裁 性。(譯註:這讓我想到了騰訊360還有敏感詞)

另外一個重要的原因是唱片業的災難是不會發生的。Steve Jobs 在 2003年4月28日,那段時間是互聯網文件共享井噴的時候,Apple揭開了iTunes Music Store的面紗。在那個時候,我們都覺得iTunes不可能成功,就像Snocap以及他和它類似的項目都以失敗告終。這是因為,你怎麼可以可能和免費競爭呢?

但是iTunes 確實成功了。Apple無情地強調著簡單和有魅力的用戶接口,以及有喬布斯對唱片業的那強有力的談判,造就了一個最新型的專業的服務,其可以讓你放心地下 載並傳輸音樂。的確是做到了,儘管其是收費的,而且我們的購買需要和DRM(數字版權管理)扯上關係並限制我們。

於是,我們看到了可以和免費競爭的東西——簡單(譯註:個人以為可能還需要加上一點時尚)。Napster, Gnutella 和 BitTorrent 從來沒有在用戶友好度上到達像Apple那樣的境界。從來沒有人在網上檢查並整理那些文件內容,所以,當那些眾多的文件被共享時,我們可以看到,很多文件 加雜時廣告,色情,木馬,病毒以及其它一些垃圾。當喬布斯為我們提供了那條簡單之路,我們接受了。很明顯,自由太過頭——至少數字媒體是這樣的。

這是一個讓那些年輕的海盜王們認真學習的教訓。就像 Fanning, Frankel 和 Cohen一樣, 其實,Jon Lech Johansen 並不能算得上是一個真正的海盜。他沒有因為想把好萊塢搞破產而去幫助破解DVD,他這樣做是因為他想在他的電腦上看電影。他的電腦安裝的是Linux操作 系統,而1999年,在Linux上根本沒有可以用來播放DVD的程序,所以,他和他的夥伴們決定自己寫一個,所以,他們不得不先把DVD給解密了。

當美國電影協會( Motion Picture Association of America)發現了DVD被破解的這個事,其向挪威政府控告 Johansen,並拘留了他。 他在奧斯陸(挪威的首都)受審兩次,不過兩次都被宣告無罪。因為他解密的DVD是他付費購買的。

但Johansen真正的明白消費者對其購買的數字媒體的權利,這就好像一本書一樣——我們可以不斷的使用這本書,或是把這本書借出去,這是我們的 權利。2005年, Johansen 去了加利福尼亞,在那裡,他逆向工程了 FairPlay,這是蘋果公司的用來保護其多媒體文件的DRM類軟件(譯註:這是蘋果公司用來加密iPod的工具)。之後,他注意到了蘋果公司產品的用 戶體驗是多麼的迷人,所以,他在想,應該把這些東西帶給全世界給那些更為無序的非蘋果的產品。

「我們看到這世上有很多很多的產品,但其並沒有像他們那樣良好地運作」,Johansen說,那時他26歲的程序員。「所以,我們應該開發一個系統,其可以讓這些設備的整合起來並給消費者他一個相當不錯的用戶體驗」。

所謂的 「我們」,就是 Johansen 自己的公司—— doubleTwist,這個公司於2007年創建。 doubleTwist 軟件是免費的,是一種像羅塞塔石一樣的為數字多媒體軟件文件開發的軟件——它是可以翻譯,和諧並組織大約500種不同設備的文件,把他們放在一起並提供一個相當漂亮的接口。其6月份, doubleTwist 摧出 Android App,當時就有超過50萬的用戶下載了(譯註:大家可以Google一下, 好評如潮)。去年, doubleTwist 開始了他的政變打出了這樣的廣告:「The Cure for iPhone Envy. Your iTunes library on any device. In seconds.」(嫉妒iPhone的對策。你的iTunes庫可以在任何設備上,只需幾秒鐘。)它這個條幅掛在了蘋果在舊金山的旗艦店的外牆上。

Johansen 拒絕承認他和盜版有關係。「至於我被所指責的,真的和我沒有什麼關係」,他說。「我支持公平使用,意思是你的確是需要合法地獲得內容,但你應該有權利使用 任何一款設備或是應用程序來查看那些內容」。 Johansen 像所有的海盜王一樣,他總是能寫好的代碼,而這些好的代碼給了人民使用的權力。這才是盜版災難不會發生的真正原因。盜版永遠不希望所有的音樂和電影或是其它的東西成為免費的,他們想要的「free」其實是自由!

程式設計師真情懺悔錄

時間: Sat Mar 30 02:04:54 2002 
作者: austen (奧斯汀) 看板: kenduest
標題: 【轉載】程式設計師真情懺悔錄(上)(中)(下)

-來自 JAVA週報

<不負責講座> 程式設計師真情懺悔錄(上) (Sun教育訓練中心 王森)

前言:

不久前,蔡學鏞先生發表了兩篇分別叫做 “程式與香雞排”,“ 再論香雞排” 的文章,受到的迴響之大,據說連作者本人都接到該文的轉寄。足以見得該文的內容道出了台灣程式設計師心裡最深處的想法。所以,本文想針對台灣程式設計師來做討論,看看身為一個程式設計師,究竟犯了什麼過錯,導致大家寧願賣雞排也不願再繼續寫程式。璩美鳳小姐為自己驚動台灣社會的行為寫了真情懺悔錄,我們也該真誠地檢討一下自己。

本文:

在台灣,大部分的人都有個認知,就是“搞硬體的比搞軟體的要好賺”,“做 SA/SD 比 coding 地位要高”。那些做 IC Design 的傢伙待的公司所發的股票,永遠比搞 Software Design 的人待的公司發的還多,股價也高出好幾倍。搞 SA/SD 的人,在公司地位好像也比單純寫程式的人高。於是我的父親有一次問我:“是不是搞硬體的人智商比較高?”,“是不是搞分析設計的人比較有地位?”

事實上,在學生時期我就認識不少人,有的人因為程式寫不過別人,所以轉換跑道專攻硬體; 也有人覺得每天面對示波器和邏輯分析儀讓他們頭痛,工程數學也學不過人家,所以轉行搞軟體。到了實際上面對許多前來接受教育訓練的學員之後,發現有人是因為寫了十幾年 BIOS 和 driver,覺得乏味而沒有前途,所以想試看看應用程式的開發;有人則是因為受不了客戶每天改需求,而且寫 BIOS 和 driver 的人好像比較少,價格比較高,因此想學習如何撰寫系統軟體。詢問那些上高階課程的朋友,有的人發現自己只會胡做 SA/SD 唬爛老闆和客戶,所以希望重新打好基礎,從基本的 coding 做起; 有的人則因為寫程式寫太久,覺得應該往上走向 SA/SD 的路子,畢竟老了程式就寫不動了。這個世界上什麼樣的人都有,絕對不能以小羨大。就很像搞政治的老是騙我們台灣只分成外省人和本省人; 搞幫派的人告訴我們警察是帶著槍的流氓。實際上,每個族群大家在沒有被分化之前都相處得和樂融融,而雖然有警察擄妓勒索,上班時間跑去聚賭,但是也有開我們罰單時酌情輕罰的警察,和保護我們身家性命的警察。

即使如此,身為一個程式設計師還是要問,那為什麼寫程式的好像地位就是比較低? 筆者認為,這是進入 門檻的問題。會做相同事情的人多了,就會削弱那樣技能的價值。就很像考過 MCSE/MCSD 的人,通常比起考過 SCJP/SCJD 的人要來的沒價值,前者因為考過的人實在太多,而後者考過的人少,僅是如此而已。但是絕不是代表考過 MCSE 的人,素質就比考過 SCJP 的人要差,也不代表考過 SCJP 的人,實力真的比較高段。相信求學的時候您一定遇過一種人,他實力也不怎麼樣,可是考試的時候他 x 的就是考得比我們高,怎麼我們心裡就是不服,可是大多數老師偏偏就是比較喜歡分數高的人。因此,滿坑滿谷的人自稱會寫程式,老闆不愁找不到可以做 project 的人,你要求的薪水和價格很高? 沒關係,找個學校剛畢業的小子,寫得比你快,寫得比你好,用的技術比你新,更重要的,價格比你這個老屁股便宜一半,所以程式設計師在僱主心中的地位日益低落,自然有跡可循。

“那麼,為什麼寫程式的進入門檻比較低?”

在各位資訊從業人員的身邊,非科班出身的比率非常高(當然還沒賣雞排的高),科班出身的學生,搞不好在老闆眼中的地位,還比不上一個半路出家的自學者。那位自學者會 ASP、JSP、PHP、C/C++、Java、Linux、Windows、Oracle…等,十八般武藝樣樣精通。而我們科班出身的學生,只會離散數學、資料結構和演算法 ,Visual Basic 搞不好用得沒有人家熟,網站的架設搞不好也沒人家熟,更何況科班出生的學生,他的基礎學問搞不好根基也不紮實(問看看您身旁的科班學生),難怪最常見的就是很多非科班的“高手”看不起科班的學生,覺得他們無三小路用,連個 Windows 操作都比他們差,甚至有的還大言不慚的說:“我這輩子寫程式從沒用過書上的資料結構和演算法,讀那些幹啥?”。 長期下來,科班的學生也開始質疑自己的所學,甚至考慮轉行,當然,也有曲高和寡,孤芳自賞之人。 總之,沒辦法受到老闆垂青,薪水永遠那麼少,想賣雞排的念頭就開始萌生。

之所以會有這種情況,筆者個人認為有兩種主要原因,一是技術的流通性,二是台灣軟體市場的需求。為什麼技術的流通性可以產生大量半路出家的非科班生? 這都要感謝台灣大量作者,寫出大量的入門書籍,大幅減低進入程式設計領域的門檻。即使在各位眼中,繁體中文的爛書很多,而且非常暢銷。但是,大家眼中的爛書,常常是再版多次的入門書,對某些人認為是垃圾的東西,常常是另外一批人進入資訊業的最佳踏腳石。不信各位到書店看看,是“24小時學 C++“、”快快樂樂學 Java”的書比較多,還是“輕輕鬆鬆學微分方程式”、“21天學複變”、“電子學不求人”的書多? 兩者的差距是 N:0。是微分方程式和複變比 C++、Java 難學嗎? 筆者兩個都學過,至少我可以發誓,就一個有基本學習能力的人來說,難度是一樣的,學成所需要的時間和功夫也是一樣的。再看我們的公開討論區(BBS 或 Forum),我們可以看到大量的軟體技術討論區,卻看不到硬體技術討論區(喔,請別跟筆者說那些每天問哪家主機板比較好,哪台燒錄器較穩定、或者說 CPU 時脈越高速度就越快越好,或是說 x86 的 Out-Of-Order Executon 是“故障執行” 這一類渾話的討論區和我說的硬體技術討論區是一樣的喔!) 書籍和討論區促進知識的流通,造成了大量的軟體人才,更何況,學習設計軟體只要一台 PC 就能寫出好用的軟體,而學習硬體設計,需要的設備更是天價。

更重要的一點,就是學軟體的人,充分發揮儒家分享的精神,只要不是在 BBS 上冒充小妹妹想要騙取大哥哥的同情來幫你寫程式作業,只要不是很差勁的亂問一通,通常至少會有熱心人士願意留下一個 URL,讓我們可以找到參考文件,更具熱誠的,如新竹師院 BBS 站 Java 版的 TAHO 先生,還擅用很多生動的比喻讓初學者體會技術的真義。在這種知識充分流通的環境下,當然產生出非常多的資訊從業人員,每買一台 PC,上頭各種軟體的需求是無窮無盡的,每天都有各行各業的人需要各種軟體,所以程式設計師的需求有一定的量。難怪有人說:“寫程式的人餓不死,但是也不會發大財。”

王森專欄> 不賣雞排也可以 - 程式設計師真情懺悔錄(中)

再來就是台灣軟體市場需求所引發的問題. 一般我們把軟體分成系統軟體(System Software)和應用軟體(Application Software). 編譯器,組譯器,除錯器,作業系統,驅動程式,都是屬於系統軟體的一部分. 台灣除了硬體廠商,IC Design House 之外,甚少有撰寫驅動程式的需求.前幾年 Linux 被炒得熱時,也有許多高手投入作業系統,編譯器以及簡化標準函式庫的研究.而台灣所需求的軟體,極大多數是屬於應用軟體,這些需求的應用軟體其中很大比例是和資料庫有關係的(其實不只是台灣,其他地方也是約略相同的情形). 所以 VB,Delphi 和 Power Builder 這類 IDE 大行其道,因為他們容易上手,可以快速開發資料庫應用程式,相關入門書籍很多,會的人更多. 因此符合我們前面所說的:“會的人越多,價值就越低”的理論.

但是別忘了,系統軟體有部分是偏嚮應用軟體的,比方說開發軟體用的 JBuilder 和 Visual Studio; 製圖用的AutoCAD; 一套 IC Design 用的 Xilinx 或 Altera; 做 OOA/OOD 的 Rational Rose 和 TogetherJ, 筆者習慣稱這些軟體叫做“軟體的軟體”(Meta Software). 在一般程式設計師眼中,這類軟體“理所當然”地認為都是由國外所發展. 這類軟體有極高的進入門檻,所以國外這類軟體公司的獲利率很高,所以該公司的程式設計師可是身價非凡. 要知道,先前在媒體上有報導過,能夠讓 Microsoft 買軟體來用的公司,只有 Rational Rose (當然,不可能只買 Rose 來用). 如果做 IC Design 的人沒有你的軟體就沒辦法做事,身為一個程式設計師,你會覺得你的身價和地位比做IC Design 的人低嗎? 如果你做的軟體像 SoftICE 或 DriverWorks 那樣被做硬體的工程師大量地倚賴,你會覺得搞硬體的人比你厲害嗎? 問題是,知道該如何設計一套這類軟體的人,恐怕才是真正的異數. 而且需要跨領域的專才. 要不是許多 OpenSource 的 project (例如: KDeveloper) 正在進行,恐怕很少人知道該如何設計一套 IDE. 既然會製作這類軟體的人在國內少之又少,那麼他們的身價高嗎? 很抱歉,台灣沒有公司發展出足以和國外大廠競爭的開發工具. 舉 IDE 為例,國內早期有家公司開發出一套名為 DBtools 的產品勉強可以算的上是這類產品,旗標也曾為它出版過入門手冊,可是使用這套軟體的人好像…沒看過(如果該產品有不錯的佔有率,請原諒我是井底之蛙),沒有市場,公司無法賺錢,即使你是少數能夠製作某類型產品的高手,公司最後關門大吉了,您也只能算是“少數能讓公司賠錢的程式設計師”罷了. 所以我大膽假設, James Gosling 或 Anders Hejlsberg 如果學李敖一樣 50 年不離開這個小島,大概早餓死了.

以上的討論,真正優秀的高手看了之後,或許會產生有時不我予,不得已必須遠渡他鄉的想法. 程式設計師的價值就如同書的價值一般,國內和國外有不同的看法.國內教科書比較便宜,應用的書比較貴.國外教科書比較貴,應用的書比較便宜. 國外重內容,薄薄一本 How Debuger Work 可以賣 44.99 美金. 而國內,都是看頁數來計價(侯俊傑先生的書有努力在打破這個頁數的迷思,也做得蠻成功).有很多原因導致這兩種文化之間的差異,但是,市場因素肯定是其中重要的一項.

好了,程式設計師價值低落的原因討論過了,如果您同意筆者的論點,那麼不禁疑惑,大家彼此毫不保留地讓知識得以流通,技術得以擴散,本意是好的,結果反倒造成自己和別人身價的低落,這樣我們是不是從此不再和別人分享我們的心得? TAHO 先生看過本篇上半部之後,發表了底下內容:


發信人: TAHO.bbs [a t] bbs.nhctc.edu.tw (痴人)

哈 恭喜 TAHO 兄上 JAVA週報了…
通常至少會有熱心人士願意留下一個 URL,讓我們可以找到參考文件,更具熱誠的,如新竹師院 BBS 站 Java 版的 TAHO 先生,還擅用很多生動的比喻讓初學者體會技術的真義。
@@".....
光看這一段 好像是褒獎
不過看了整篇文章...
突然發現......
原來我是讓程式設計師不值錢的兇手之一....
真是罪該萬死啊....

但是 mue 先生接下來的發言,說卻命中本文真正的核心價值觀:


發信人: mue.bbs@bbs.im.tku.edu.tw (閒人)

不會啦..要是每個程式師都死守自己所會的..讓所謂的專業門檻更高的話.. 就很難進步了..就是讓本來難的變簡單..自然就會有更難更深入的東西出現.. 這樣社會才進步得快丫..


做應用軟體的人真的沒價值嗎? 有些靠應用軟體賺了不少錢的朋友開始偷笑了. 軟體必須加上專業知識,才能夠發揮價值. 換句話說,如果您真的只會“寫程式”,卻沒有配合各種領域的專業知識,“寫程式”這項技能本身根本毫無價值可言.

就很像你的電腦裝了瀏覽器,可是卻沒有對外連線的網路一樣,如果沒有網路本身,瀏覽器一點價值也沒有,更不需要一家公司大費周章地利用平台優勢去整倒另外一家公司. 我們可以把程式設計師比喻成架子上滿滿的資訊相關書籍,而雇你的老闆就是前來買書的讀者.

你不能否認這麼一堆書裡頭,有好書,也有爛書,你也不能否認你心中的爛書是一本書,但是你卻不能說書裡面教你如何寫 Java 程式的內容是錯的. 可是,購書的讀者壓根兒根本覺得某幾本書一點價值也沒有. 我們只能說,太多只會“寫程式”的程式設計師打爛了市場,就像一牛車的爛書一樣, 你不能說爛書沒有價值,可是爛書會讓你對架上其他書籍的價值大打折扣. 除非,你之前看到別人口耳相傳這本書是好書.

大家或許不相信“只會寫程式”的程式設計師存在於這個世界上,所以筆者舉個簡單的例子說明之: 很久以前, BBS上有人發表了post,內容大概是說某公司在整理舊的程式碼時,發現了一則奇文,奇文內容如下:

//底下是一個判斷某個整數是不是奇數的程式碼
public static boolean isOdd(int n)
{
while(true)
{
if(n==1) return true;
else if(n==0) return false;

n=n-2;
}
}

您說撰寫這個程式碼的人不會寫程式,他又好像會寫,你說他會寫程式,你又不服氣,覺得這個傢伙根本在胡搞一通. 看過這則奇文軼事之後,當您下次聽到某公司抱怨他們的程式設計師做出來的軟體一堆 bug,速度出奇的慢,產品永遠賣不出去,害公司快經營不下去了,所以他們認為程式設計師一點價值都沒有,只是一堆勞碌命的雜碎時,您會不會更加懷疑,是一堆莫名其妙的程式設計師,把你的行情給搞爛了?

待續….

昇陽電腦教育訓練中心 王森

王森專欄> 不賣雞排也可以 - 程式設計師真情懺悔錄(下)

所以從今天開始,如果你對程式設計有一股熱愛,那麼我們一起努力, 做個真正的程式設計師,而不要做一個雜碎且破壞別人的程式設計師. 做一個真正寫得出有用軟體的工程師,不要做一個只會寫程式的程式設計師. 當然,如“意外的電腦王國 / 聯經出版社”一書所言,很多技術都是用在原本沒有預料到的地方而大行其道. 許多科學研究無法有立即的貢獻,但是影響深遠,我們也期許有意從事基礎研究的科班研究生,認真的作研究,不要老是研究一些別人已經研究過的研究,不要老是冀望騙國科會等研究機構的經費,到了最後計劃結案時,才匆匆 忙忙交出另外一篇騙更多錢的計劃書,或是拿不出檯面的研究.

最後,我們反省自己是不是也是一個只會“寫程式”的程式設計師呢? 請自行測驗底下幾個問題,這些問題都不可能有客觀的答案,所以每個問題都附上筆者主觀的答案,作為筆者自己的反省.

Q1: 你尊重專門技術嗎? 換句話說,你認為術業有專攻嗎? 當你接受外面的教育訓練課程時,你總是崇拜看起來什麼都懂的老師? 換句話說,你認為那些遇到課外問題就跟你說他不懂的講師是爛老師?

-你老覺得真正的高手應該精通各門各派的技術,如果你會 XML,他不會,你就覺得你比他厲害.你覺得他的履歷上寫的技能太少,證照太少,所以你認為你比他優秀?

有人老是覺得自己蠻會用 MFC 開發軟體,所以直覺認為那些只喜歡,或是只會用 VB 的人程度應該不高. 問題是,有人會用 VB,當他覺得元件不好用,會自己寫程式處理 HTTP,因為他懂 HTTP 協定的運作方式. 工具裡附的瀏覽器太爛,就自己用功能語法不是很頂尖的 Basic 來寫 parser. 相反的,有人號稱會用 MFC,但是除了靠 Help 找出名為 Cxxxxx 的類別來用,再自己補上事件處理的部分之外,其他什麼事都做不出來.

有人認為寫 Java 程式應該善用工具,用 UltraEdit 根本是重新造輪子的行為,所以一開始就學 JBuilder 的使用者,其實他用 JBuilder 寫了老半天 GUI 程式,哪天回頭叫他用文字編輯器寫個簡單的 Frame + Button 他卻寫不出來,因為他從沒弄懂過 Java 的事件處理模型. 他只會不斷地: 選擇元件→ 放在容器裡頭→ 調整位置和大小→ 調整屬性→ 按兩下→ 填寫事件處理函式,成為一個名副其實的“程式女工”.

有人覺得他精通各家廠商的資料庫,所以看不起那些只會下 SQL 指令或是只會寫 store procedure 的人,因為他可是精通 ODBC, JDBC, ADO, ADO.NET 各種程式的寫法. 問題是,一個精通 SQL 的專家和只會寫 SQL 指令的人,在資料庫表格交互參考,資料量很大的時候,要從中取出我們需要的資料,所下的指令在效率上是幾秒鐘和幾個小時的差別. SQL 也是個專門學問,要能夠巧妙的操作它,必須下非常多功夫做研究,而且一研究可能就是十幾年. 如果貴公司的專案老是苦於資料庫存取的效能不夠,你猜老闆會花錢找一個有能力徹底改善所有 SQL 命令之中效能問題的稀有專家,還是再找一個號稱他什麼都會,結果一點用場也派不上的“資料庫女工”? 我們常常看到某人列出他的履歷,好像會很多就是很厲害. 但是當我們完全深入一項技術時(喔,我是說你真正下過功夫的時候), 通常我們會越來越感覺到自己的渺小.

蔡學鏞先生就是一個非常尊重專業技術的例子.

我們看到他在 http://www.csdn.net/expert/cxy/ 上寫的,他說他只精通 lots of Java APIs. 我和學鏞聊過三次,有一次,我聽他說:“幹麻叫我搞 Linux,我又不懂 Linux!” 如果是你聽到這句話,你會不會真的以為他玩起 Linux 來肯定比你遜色? 筆者突然想起神雕俠侶裡頭的獨孤求敗,晚年只會拿樹枝和別人比武,可是你拿再厲害的刀劍就是無法打敗他. 所以,請尊重專業技術,不要以為人家沒說他會,你就比他厲害.真正厲害的人很多都不在檯面上,

而是躲在後面偷偷笑我們呢!而我們一輩子也不知道我們被別人偷偷取笑了.中國文化數千年都是文人相輕的歷史,夠了,大家尊重專業吧!

Q2: 你覺得演算法和資料結構無三小路用,因為你從沒使用過?

-我們承認“無招勝有招”是內功心法的最高境界,但是在信手拈來之際,後面所代表的是對各家武功路數的徹底瞭解. 由於台灣幾乎只有應用軟體的開發需求,沒有系統軟體的需求,所以大多數的程式設計師都是站在“程式女工”的角度看世界,只要有元件,有什麼搞不定的. 但是今天如果你想設計一個 XML parser,不懂資料結構和演算法可以嗎? 好吧! 你說我們不該重新造輪子,我們應該站在巨人的肩膀上看世界,如果什麼都自己硬幹,世界是會退步的. 那麼試問,當你在使用 Java 提供的 Collection Framework 時,你瞭解 ArrayList, LinkedList, TreeSet, HashSet 之間的差別嗎?

你知道他們的優缺點嗎?你知道他的特性嗎? 不瞭解 ArrayList 和 LinkedList 的差異,用哪種去寫程式執行結果都一樣,可是效率差很多. 大多數的人連瞭解特性都談不上,更別說很多每天想發展自己的語言,自己的編譯器, 自己的作業系統的人,沒有基礎學問的瞭解,如何去設計一個 Collection Framework 或 STL? 你說資料結構和演算法沒有用,你去做看看現在 IDE 中普遍有的 code insight 功能看看? 以 C++ Builder 來說,要在短時間內搜尋所有的標頭檔並找出某函數的 prototype,如果沒有對資料結構和演算法有充分瞭解,一樣做得出來,只是產品會賣不出去罷了. 我在課堂上常常舉一個 scalability 的例子給學生看: 我希望寫一個 1+2+3 … + 100 的程式,大多數的人都是寫

int sum = 0 ;
for(int i = 1 ; i < 101 ; i++)
sum = sum + i ;

而真正受到數學觀念薰陶的人會寫成

int sum = 100(100+1) / 2

前者是 O(n),後者是 O(1),當項數很多時,運算時間是不是差很多? 這些都是我們的教育所產生的問題(當然筆者也是受害者之一),但是從今天開始,我們可以認真思考每行程式.

想想發展 MP3 演算法的人和寫 WinAmp 的人,哪個比較厲害? 你會說都很厲害,可是沒有前者就沒有後者,前者搞不好還可以坐收權利金,後者只能苦哈哈的賺些小錢或等人購併.我們停留在崇拜應用程式技巧的階段,而真正值得崇拜的是那些難得一見的創意.

筆者遇過一個朋友,叫他撰寫一個費式數列的小程式,比請他寫一個可以瀏覽資料庫表格內容的程式還難.(請不要與我討論費式數列的小程式沒有實用價值的問題,這裡討論的重點不是這個). 前者需要稍微動點小腦筋,後者只要會拖拖元件,設定 property 就搞定. RAD 快速開發工具本身不是罪,但是沒學好九陽神功就妄想幾小時練成乾坤大挪移,最後只會走火入魔而死,徹底變成一個“程式女工”.

Q3: 你常常以科班或非科班自居?

-你是科班生,瞧不起非科班生? 因為你是正統? 你是非科班生,瞧不起科班生?因為你覺得會的東西比科班生的還多. 爛學校會出現好學生,好學校也會有爛學生.因為比例一樣多,所以我們不能以偏概全.

如果仗著受過幾年正規教育,自己又從未好好深入學習,就自以為是正統,比較學術的說法這叫做“陽具文化”.

有些創新的 idea 是一般制式腦袋的科班學生很難想出來的,因為專家是訓練有素的狗. 如果你是學電信的朋友,你發現交換機是一個葬儀社的老闆因為生意被別人搶走而發明的,那你會不會氣死? 如果自學有成的程式設計師仗著自己會的東西比較多,你說你精通 Java 的各種技術,但是卻沒想過發展 Java 的 James Gosling 博士是一個正統出身的科班生,知道了這件事情,會不會讓你更加尊重專業?

Q4: 你是學計算機科學的,可是邏輯能力並沒有比較好,還常常受騙?

Q4-1:你會被潮流所鼓動嗎? 你常常被別人的思考牽著走? 人家鼓吹 Linux 多好多好,你的腦袋連轉都沒轉過就發憤努力地考 Linux 認證 ?

-別人把公司裡的 server 全換成 Linux,用戶端也都改成 Linux,公司仍然正常地運作,結果你學了 Linux 之後,看到電視上 BSA 同法務部做的廣告嚇得你冷汗直流,深怕明天去住套房.

Q4-2: Sun 跟你說 Java 跨平台,你沒試過也跟人家說跨平台的優點?

-Borland 已經可以做到一份光碟裡同時附上 Solaris、Linux、Windows、MacOS X 的 JBuilder,你卻為了 EJB 無法 deploy 到不同公司的 Application Server 忙得像無頭蒼蠅.

Q4-3:之前一窩峰人鼓吹 XML,結果你盲目追求流行,做出來的東西 tag 比 data 還多?

-會用的人徹底改變了公司裡資料交換的流程,而你整天只會 SAX 來,DOM 去的寫 XML 資料庫(用 XML 來儲存資料的資料庫.)

Q4-4:微軟的廣告告訴你 Windows XP 和 IE 將不支援 Java,你都還沒試過就跟別人嚷嚷 Java 已死?

-套句 BBS 上 moga 先生的名言:“那我現在在 Windows 2000 上跑的 Java 程式是神蹟? “現在一票人每天宣傳 web service 的好處,你連想都沒想過就急著想要把公司的舊系統全部改成 web service 來做,結果浪費一堆錢,糟糕的速度讓你每天被客戶臭罵 ?

Q4-5: Web service 當然是美好的前景,但是並非適用於每個角落,目前世界上並不存在完美的 solution. 人家說不能寫程式一輩子,寫程式的人生命週期很短,你也跟著別人開始往 SA/SD 前進 ?

-如果世界上每個工程師都可以經由經驗就成為優秀的 SA/SD 人員,那麼理論上咱們應該有些像樣的軟體產品才對. 有些人寫了幾十年,還是一個優秀的程式設計師,你問問他,如果沒有遇到糟糕的老闆,糟糕的待遇和糟糕的制度,他願不願意寫一輩子程式?

我願意.

Q4-6:顧問告訴你要多用 RAD,不該重新造輪子,所以你努力的問 how 而不問 why ?

-結果真正賺到錢的都是那些像 JReport 做軟體元件的軟體公司. 微軟說 J2EE Blueprint 的 Pet Store,用 .NET 技術做比用 J2EE 做還要快許多,然後你就相信了,最近, IBM 和 Oracle 重新加強 Java 版的 Pet Store,讓它比 .NET 版的還要快 18%~22%,你又改口說 Java 比較好.

Q4-7:一個系統在設計的時候有很多考量,有人以擴充性為主,有的以安全性為主,有人以效能為主. 如果沒有設計理念,大家程式裡頭的 function 全部改成 inline 就好了,管他編譯出來的執行檔有多大. 系統只以效能做考量,我們還需要 Design Pattern 做什麼?

-那些王八蛋數據和我們選舉時的民調一模一樣…對一個腦袋清楚的人完全沒有參考的價值. 當然,以情感因素來看民調的人例外.如果你沒有經過自己的自主判斷就盲目的跟隨潮流,那麼下次當你看到有人排隊買米酒,買蛋塔,搶購衛生紙的時候,請不要投以排隊的人們奇怪的眼光.

Q5:你尊重老前輩嗎?

我們都相信,世界上唯一不用努力就可以獲得的東西就是老.所以吃過的鹽巴比你吃過的米還多的人,沒有任何值得尊重的.我們更相信,資訊業永遠是年輕人出頭,而英雄少年也常在心裡想:“李杜詩篇萬口傳,至今已覺不新鮮,江山代有才人出,各領風騷數百年.”

但是我們認真想想,從 Apple 2 的時代到現在隨便一顆 CPU 都是 1 GHz 的時代,計算機的本質有什麼改變嗎? 不就是一台不斷對記憶體作處理和 I/O 動作的機器. 你笑那些只會用 Fortran 或 COBOL 的老前輩,那你學的 Java 或 C# 比起這些老語言又高明到哪裡去? 寫程式不過是 宣告,迴圈和函式三大要素.時間久了,產生了一堆新名詞,配上一些新的發展理念,但本質上沒有改變. 如果你是推倒前浪的後浪,當你看到李維先生撰寫的 ”[長篇]我的回憶和有趣的故事” 或侯捷老師最近兩期在 Run!PC 撰寫的“侯捷觀點”這些老前輩寫的文章,你有把握寫出比它們更高明,更有深度的東西嗎?

最重要的問題, Q6:你騙過老闆嗎?

-你在履歷上寫的十八般武藝樣樣精通,結果是梧鼠技窮(註:比喻技能雖多,而不能專一),一錄取之後什麼東西都做不出來,筆者至少聽過 20 個老闆跟我講過這件事情.

Q6-1:你以為你的身價比較高,只因為你從事“軟體研發”的工作?

-然而現實的生活中,“獲利”是真正決定成敗的關鍵.除非你的東西幫老闆賺了錢. 如果沒有,你憑什麼要求更多薪水,憑什麼要求 50 張價值數千萬元的股票? 如果你寫的東西品質很差, bug 超多,客戶抱怨不斷,老闆賺不到很多錢,你還老是在外頭痛罵老闆不尊重技術人員. 如果把行業換成色情行業,那老闆不就等於被乾洗? 這樣看來,程式設計師和詹惠華(黃顯洲 3P 案女主角)幹的事情有什麼兩樣? 如果這樣的人多了,真正要去賣香雞排的,不是寫程式的人,而是僱用了這些雜碎的老闆才對.

…………全文完

昇陽電腦教育訓練中心 王森

蔡學鏞著名文章

http://j2se.myweb.hinet.net/article/java/003.htm

http://www.oreilly.com.tw/column_sleepless.php?id=index_sleepless

沒有經過蔡先生轉載許可,原本只打算貼連結,但是該站放在 hinet 空間,怕該站年久失修導致文章佚失,所以還是複製過來了。

程式與香雞排

當程式員很可憐,在台灣當程式員尤其可憐。薪資低、工作量大、地位不高、技術又容易被淘汰。難怪有人半開玩笑地告訴我,他以後不寫程式要改行去賣香雞排。

照理說,軟體開發是很專業的領域,越是專業的領域,越是處於金字塔的尖端,應該薪資很不錯才是,但不知怎地,台灣的程式員就是從來未獲重視。我們不要表面上的重視,我們要薪資上的重視。據我所知,大陸程式員的薪資水平,比起我們台灣高出許多(從國民所得、物價、房價來比較),美國程式員的薪資更是高得讓我猛嚥口水。

想想看,如果你在台北市租一間會漏水的小公寓,月租兩萬元(管理費和水電另計)。莫名其妙的多元入學方案實施之後,小孩壓力更大,要補習的東西更多。如果你有兩個小孩,每個月的補習費共要花上五千元。小孩要學費、生活費,又是另一個五千元。(乾脆含淚將小孩送人扶養。)

長得不怎麼好看的老婆就只會天天敷 SKII 面膜,因為她妄想 SKII 獨特的 Pitera 成分可以讓她的皮膚水水嫩嫩的,就和鄭秀文一樣。明明身材不好,卻又特別喜歡買 DKNY 昂貴的流行服裝。

光是這些支出加上你自己的支出,就已經超過五萬元了。你認為軟體公司會花五萬元請一個程式員嗎?在台灣,程式員要有五萬元以上的收入,恐怕要另有兼職才行。

於是你到歐萊禮兼職翻譯書,拼了老命把下班後的時間和假日的時間都拿來翻譯書,結果超過半年才翻譯完一本,還好歐萊禮仁慈不扣你延遲交稿的違約金。但這半年來身體變差了,微薄的稿酬光是拿來扣掉白蘭式雞精和補藥的支出,平均一個月也只多了約一萬元的收入,但總算因此達到收支平衡。

但這倒也不算真正的收支平衡,意外的收入支出也是有的:統一發票中獎收入平均一個月進帳 200 元,但偶而被倒會,加上有某個不長進的親戚時常來伸手要錢,你每個月還得多支出 5,000 元。婚喪喜慶的禮金支出、平常還要繳這個稅和那個稅、這個費和那個費的 … 每每讓你心疼地暗暗叫苦。

台灣的軟體公司一向不肯好好地花錢雇用優秀的程式員,還奢談什麼知識經濟。在寫程式與賣香雞排之間作抉擇,如果我要留在台灣,我可能會選擇賣香雞排,如果我要出國謀生(美國、新加坡 …),我會選擇寫程式。畢竟,要寫程式,就要到一個尊重程式員專業能力的地方。寫程式的薪資不高,就沒辦法吸收好的人才,至少我就不打算在台灣寫程式寫太久。興趣當然重要,但付不出帳單光靠興趣撐著,你認為能撐多久?賣香雞排稱不上是知識經濟,但只要不炸得太難吃,至少收入比寫程式好。

所以我覺得,到夜市賣香雞排的提議還真是可以考慮考慮,畢竟在台灣當程式員,一家大小在除夕夜如同賣火材的小女孩一般餓死凍死的機會很高。賣香雞排,雖然辛苦,但看著香雞排老闆們眉開眼笑的,荷包滿滿的,還可以趁著傍晚開市前,開著賓士轎車帶著全家出遊呢。

台北市饒河街夜市的攤販告訴我,攤位租金一個月一萬元出頭,我估算了一下,如果我平均一天擺攤 6 小時,賣了香雞排 300 個,每個淨賺 13 元,一個月淨賺 117,000 元,扣掉攤位租金 15,000,可以收入約十萬新台幣(免稅),實在比程式員普遍的月薪 30,000~40,000(未稅)好太多了。而且香雞排的炸法不會每年推出新版本。

在台灣的軟體公司內部,有許多非科班出身的程式員,他們的薪資低廉,通常又很努力。軟體公司就算聘到了這種便宜又努力的程式員,也不要太高興,因為這樣的程式員,通常都只是把目前的公司當一個學習的過渡階段,等到學得差不多,拍拍屁股就走人了,才沒打算一輩子接受這樣的低薪。但可悲的是,大部分的公司都沒有良好的程式員生涯規劃制度,反正大家互相利用。所以這些程式員很可能在做計畫的過程中,學不到東西又磨得身心俱疲。

所以,何苦來哉!不如我們通通去賣香雞排吧!但是你們只能到通化街夜市和士林夜市賣,不可以到我屬意的饒河街夜市和我搶生意(我打聽過,饒河街的攤位租金是三者中最便宜的)。我的攤位名稱要取做什麼?… 嗯!就叫做「Java 雞排」好了,以紀念我曾有過的 Java 程式員身份。我打算把雞排分成三種大小,最大到最小分別叫做 J2EE、J2SE 以及 J2ME。哪天你到饒河街夜市,發現了一個乾乾瘦瘦、看起來營養不良的少年頭家用著生硬的台語在吆喝著:「來呦!來呦!好呷的香雞排,J2EE 一塊 50,J2SE 一塊 40,J2ME 一塊 30……」請你也來光顧一下吧!… 看在 Java 的份上。

本文作者:蔡學鏞 張貼日期:12/12/2001

再論香雞排

網路上到處張貼轉寄「程式與香雞排」一文,使得該文章在網路上引起程式員廣大的迴響。當「該文作者」在 BBS 各版和各種網頁討論區都看到自己的文章被人到處張貼討論時,驚駭莫名。更荒謬的是,該文章居然還繞了一圈被人轉寄到「該文作者」的 email 信箱中。該文章引起迴響的程度遠遠超出「該文作者」的預期。

有的人對於「該文作者」寄予無限的同情,畢竟該文章內容寫得太負面了。Oh! No. 你們搞錯同情對象了,事實上該文並非「該文作者」的寫照,畢竟「該文作者」未婚(不用擔心 SKII 和 DKNY 的支出),也還沒未婚生子(不用擔心多元入學方案和補習費),也從不標會(對高風險事物沒興趣),也從不對統一發票的中獎號碼(這點小錢根本不放在眼裡),也沒有不長進的親戚敢上門伸手要錢(言語犀利苛薄,親戚躲他像躲鬼一樣避之唯恐不及),也不是非科班出身的便宜程式員(雖然沒本事取得博士學位,但好歹也是個清華大學的資訊碩士),也在台灣和大陸的 Java 圈子都小有名氣(但不排除有些人孤陋寡聞)。橫看豎看,「該文作者」都不算是一個受到壓榨的程式員。甚至「該文作者」經常逛街瘋狂瞎拼買到手軟,出門懶得擠公車只坐計程車,在路上看到賣口香糖的老人或殘障人士一定會捐錢,…… 這麼努力花錢,但不知怎地錢就是花不完,所以「該文作者」可以說是生活得相當優渥的。而且「該文作者」還得寸進尺,常嚷嚷不想工作,宣稱以後要辭職回家變賣家產,靠父母親一點一滴掙來的財產來過無憂無慮的生活。你一定想問:既然如此,「該文作者」幹嘛寫了一篇胡亂抱怨的文章,無端惹來你掬一把同情之淚?我希望你不要因此怨懟「該文作者」欺騙你的感情,「該文作者」只是利用文學中「示現修辭格」的手法來撰寫該文章,以求得強烈的閱讀效果,這和「十八歲賺一億」一書作者蓄意欺騙的行徑是完全不同的。「該文作者」悲天憫人,對於許多程式員的遭遇感同身受,透過該文章,將他所知道的一切披露出來,代替許許多多台灣的程式員發聲。

夠了!我們不要再談論「該文作者」了!免得讓你因為過度羨慕他而開始哀聲嘆氣,畢竟這麼有福氣又囂張的人實在不多。該文作者「托夢」請我整理這些日子以來讀者的看法,我無法拒絕這樣的請託,因為我和「該文作者」的關係實在太密切了。

有一些有志進入軟體產業的在學學生憂心忡忡,表示看了該文章之後,信心開始動搖,有幻滅的感覺。我認為,幻滅是成長的開始,早點經歷幻滅總是好事,才不會一廂情願地只看到事物好的一面,也因此會多做好一些準備(不管是心理上的準備或技能上的準備),成功的機會就會大幅提高。學生距離就業還有許多年的光景,只要好好把握這些年充實自己,其實以後你們在軟體產業的發展前途仍然是很不錯的。至於程式與香雞排的作者,則是一個「先天下之憂而憂,後天下之樂仍憂」的一個「馬不停蹄地憂傷」的小子,所以你們不要把他那過度負面的看法放在心上。香雞排,你們負責吃就好了,要賣也是我來賣。

也有許多讀者對於該文章感到心有戚戚焉,這類的讀者以程式員居多。我要警告這類的程式員,如果你平常不好好加強自己的分析設計技巧、管理能力、或其他技能,當程式員當了五年後仍然只是最低階的程式員,還得親自寫程式,辛辛苦苦地追著瑣碎的技術跑,那麼你就真得要小心考慮,賣香雞排或許真的比較適合你。

也有人的薪資不止五萬元,質疑該文章太悲觀。一般來說,這種人可能在外商公司、或者已經脫離程式員等級、或者在不太軟的軟體公司(例如 chip design),或者在非軟體公司的 MIS 部門。我認識一個年資約兩年的程式員,在一家不太軟的外商軟體公司當程式員,月薪約 6 萬台幣,但這樣的價碼可是大多數的程式員都無法達到的。薪水這麼高的程式員,不需要轉行賣香雞排。

有些人則沒有受到「該文作者」的恫嚇所打擊,仍堅持要繼續在軟體行業走下去,我很佩服這樣的人,因為你正是軟體產業需要的人。你不把錢看得太重,而且肯努力、有興趣,只要繼續持之以恆,我相信你在未來的報酬自然也不會太差的。但是你千萬要慎選公司,選擇一個有發展前景又願意栽培你的公司,否則你最後還是可能會去賣香雞排的。

還有一些讀者提出許多有建設性的寶貴意見,這些意見包括了:「雞排一塊不只賺 13 元,一天不只賣 300 個,十萬元的估計太保守」、「珍珠奶茶其實更有賺頭,每杯淨賺八成」、「滷味不需要技巧,比較適合程式員轉行」、「當靈修講師不需要大學學歷,輕輕鬆鬆月入七萬元」。但不管怎樣,我還是對賣香雞排情有獨鍾,我兩小時前才剛到饒河街夜市吃了一個香雞排,此刻仍然齒頰留香,回味無窮。賣香雞排的收入也有很大的差異,有些香雞排的攤位門可羅雀,有些香雞排的攤位生意好到老闆累得一邊吊點滴一邊炸香雞排。前陣子我看到電視新聞採訪一位在新竹科學園區附近賣香雞排的女老闆,她說她每個月賺 45 萬元以上。她還告訴記者香雞排好吃的秘訣在於醬料,但任憑記者怎麼追問,她仍不肯透露醬料的作法。急於開店賣香雞排的我對此婆娘小氣之舉很不以為然,我悻悻然地自言自語:「哼!秘訣?你以為我無法得知你的醬料配方?」我決定重金禮聘擅長偷拍的「郭女士」出馬,先接近該香雞排店的女老闆成為她的靈修姊妹淘,取得信任之後,再潛入該女老闆的廚房裝設針孔攝影機。我相信,以郭女士純熟的偷拍手法,醬料的配方會落入我手中。有了她的醬料,加上我獨門研發使用高筋麵粉和數十種珍貴藥材做出來的銷魂蝕骨酥皮,我寫程式的苦日子即將結束,我終將成為香雞排大亨的。想到這裡,我喜孜孜地笑了。

本文作者:蔡學鏞 張貼日期:01/01/2002

畢業三年,同學基本都辭職了

當時公司招了大批應屆本科和研究生畢業的新新人類。平均年齡25歲。那個新的助理,是經過多次面試後,我親自招回來的一個女孩。名牌大學本科畢業,聰明,性格活潑。私下裡我得承認,我招她的一個很重要的原因,除了她在大學裡優秀的表現之外,還因為她寫了一手漂亮的字。女孩能寫一手好字的不多,尤其像她,看起來長髮飄飄,多麼女性化的一個姑娘,一手字卻寫的鏗鏘倜儻,讓我對她不由多了很多好感。

手把手的教。從工作流程到待人接物。她也學的快。很多工作一教就上手。一上手就熟練。跟各位同事也相處的頗融洽。我開始慢慢的給她一些協調的工作,各部門之間以及各分公司之間的業務聯繫和溝通讓她嘗試著去處理。

開始經常出錯。她很緊張,來找我談。我告訴她:錯了沒關係,你且放心按照你的想法去做。遇到問題了,來問我,我會告訴你該怎麼辦。仍然錯。又來找我,這次談的比較深入,她的困惑是,為什麼總是讓她做這些瑣碎的事情?我當時問她:什麼叫做不瑣碎的工作呢?

她答不上來,想了半天,跟我說:我總覺得,我的能力不僅僅能做這些,我還能做一些更加重要的事情。那次談話,進行了1小時。我知道,我說的話,她沒聽進去多少。後來我說,先把手頭的工作做好,先避免常識性錯誤的發生。然後循序漸進罷。

半年以後,她來找我,第一次提出辭職。我推掉了約會,跟她談辭職的問題。問起辭職的原因,她跟我直言:本科四年,功課優秀,沒想到畢業後找到了工作,卻每天處理的都是些瑣碎的事情。沒有成就感。我又問她:你覺得,在你現在所有的工作中,最沒有意義的最浪費你的時間精力的工作,是什麼?她馬上答我:幫您貼發票,然後報銷,然後到財務去走流程,然後把現金拿回來給您。

我笑著問她:你幫我貼發票報銷有半年了吧?通過這件事兒,你總結出了一些什麼資訊?

她呆了半天,答我:貼發票就是貼發票,只要財務上不出錯,不就行了唄,能有什麼資訊?

我說,我來跟你講講,當年我的做法吧:98年的時候,我從財務被調到了總經理辦公室,擔任總經理助理的工作。其中有一項工作,就是跟你現在做的一樣,幫總經理報銷他所有的票據。本來這個工作就像你你剛才說的,把票據貼好,然後完成財務上的流程,就可以了。

其實票據是一種資料記錄,它記錄了和總經理乃至整個公司營運有關的費用情況。看起來沒有意義的一堆資料,其實它們涉及到了公司各方面的經營和運作。於是我建立了一個表格,將所有總經理在我這裡報銷的資料按照時間,數額,消費場所,連絡人,電話等等記錄下來。

我起初建立這個表格的目的很簡單,我是想在財務上有據可循,同時萬一我的上司有情況來詢問我的時候,我會有準確的資料告訴他。通過這樣的一份資料統計,漸漸的我發現了一些上級在商務活動中的規律,比如,哪一類的商務活動,經常在什麼樣的場合,費用預算大概是多少;總經理的公共關係常規和非常規的處理方式。等等等等。

當我的上級發現,他佈置工作給我的時候,我會處理的很妥貼。有一些資訊是他根本沒有告訴我的,我也能及時準確的處理。他問我為什麼,我告訴了他我的工作方法和資訊來源。

漸漸的,他基於這種良性積累,越來越多的交待更加重要的工作。再漸漸的,一種信任和默契就此產生,我升職的時候,他說我是他用過的最好用的助理。

說完這些長篇大論,我看著這個姑娘,她愣愣的看著我。我跟她直言:我覺得你最大的問題,是你沒有用心。在看似簡單不動腦子就能完成的工作裡,你沒有把你的心沉下去,所以,半年了,你覺得自己沒有進步。她不出聲。但是收回了辭職報告。

又堅持了3個月,她還是辭職了。這次我沒有留她。讓她走了。

後來她經常在MSN上跟我聊天。告訴我她的新工作的情況。一年內,她換了三份工作。每一次都堅持不了多久。每一次她都說新的工作不是她想要的工作。05年的時候,她又一次辭職了。很苦惱,跑來找我,要跟我吃飯。我請她去寫字樓後面的商場吃日本料理。吃到中途,忽然跟我說:我有些明白你以前說的話是什麼意思了。

所謂的職業生涯,其實你很難預測到你將來真正要從事什麼工作,將來所要從事的工作,是否跟你在大學裡學的專業有關。大多數人,很有可能將來所作的工作,跟他當初所學的專業一點關係都沒有。從22歲大學畢業在26歲之間這四年,重要的不是你做了什麼,重要的是你在工作中養成了怎麼樣的良好的工作習慣。這個良好的工作習慣,指的是:認真,踏實的工作作風,以及是否學會了如何用最快的時間接受新的事物,發現新事物的內在規律,比別人更短時間內掌握這些規律並且處理好它們。具備了以上的要素,你就成長為一個被人信任的工作的人。

人都有惰性,也都願意用那些用起來順手的人。當你具備了被人信任的基礎,並且在日常的工作中逐漸表現出你的踏實,聰明,和細緻的時候,越來越多的工作機會就會提供到你面前。原因很簡單,用一句話就能交代清楚並且能被你順利完成的工作,誰願意說三句話甚至半小時交待一個怎麼都不明白的人呢?溝通也是一種成本,溝通的時間越少,內耗越少,這是作為管理者最清楚的一件事。

當你有比別人更多的工作機會去接觸那些你沒有接觸過的工作的時候,你就有了比別人多的學習機會,人人都喜歡聰明勤奮的學生,作為管理者,大概更是如此。

一個新手,大多數新手,在這四年裡,是看不出太大的差距的。但是這四年的經歷,為以後的職業生涯的發展奠定的基礎,是至關重要的。很多人不在乎年輕時走彎路,很多人覺得日常的工作人人都能做好沒什麼了不起。然而就是這些簡單的工作,循序漸進的、隱約的,成為今後發展的分水嶺。

漫不經心的對待基層工作的最大的損失,就是將看似簡單的事物性處理方式,分界成為長遠發展的能力問題。

聰明的人,總是不認為自己的能力有問題。時間長了,他會抱怨自己運氣不好,抱怨那些看起來資質普通的人,總能比自己更能走狗屎運。抱怨她容貌比自己好,或者他更會討領導歡心。等等等等。慢慢的,影響心態。所謂的懷才不遇,有時是這種情況。

工作需要一個聰明人,工作其實更需要一個踏實的人。在聰明和踏實之間,我更願意選擇後者。

而踏實,是人人都能做到的。和先天條件沒有太大關係。

暴強的程式師考題

一、選擇題(皆為單選):

  1. 以下誰是二進位思想的最早提出者?a,伏羲;b,姬昌;c,萊布尼茨;d,柏拉圖。
  2. 以下哪個概念和公孫龍的《指物論》中的“指”字含義相近?a,變數;b,陣列;c,對象;d,指針。
  3. 藺相如,司馬相如;魏無忌,長孫無忌。下列哪一組對應關係與此類似?a,PHP,Python;b,JSP,servlet;c,java,javascript;d,C,C++。
  4. 秦始皇吞併六國採用了以下哪種演算法思想?a,遞迴;b,分治;c,反覆運算;d,模擬。
  5. 雅典王子忒修斯勇闖克里特島斬殺米諾牛的時候採用了以下哪種演算法?a,動態規劃;b,窮舉;c,記憶化搜索;d,Dijkstra演算法。
  6. 印度電影《寶萊塢機器人之戀》中的機器人七弟採用的智慧演算法最有可能是以下哪一種?a,神經網路;b,遺傳演算法;c,模擬退火;d,窮舉演算法。
  7. 《公孫龍子》記載:“齊王之謂尹文曰:‘寡人甚好士,以齊國無士,何也?’尹文曰:‘願聞大王之所謂士者。’齊王無以應。”這說明了齊王:a,昏庸無道;b,是個結巴;c,不會下定義;d,不會定義自己的需求。
  8. 惠施曾提出過“卵有毛”的命題,以下哪一項是導致這個錯誤命題的原因:a,混淆了命名空間;b,引入了錯誤的包;c,衍生類未重載;d,調用了危險的指標。
  9. 下面哪種物件導向的方法可以讓你變得富有?a,繼承;b,封裝;c,多態;d,抽象。
  10. 明朝時期張居正改革的一條鞭法的主要思想是:a,面向過程;b,萬物皆數;c,統一介面;d,泛型程式設計。

二、匹配題(分析A中的句子所體現的演算法,和B中的演算法一一匹配):

A:

  • 江南可採蓮,蓮葉何田田,魚戲蓮葉間。魚戲蓮葉東,魚戲蓮葉西,魚戲蓮葉南,魚戲蓮葉北。——漢樂府《江南》
  • 眾裡尋他千百度,驀然回首,那人卻在燈火闌珊處。——辛棄疾《青玉案》
  • 從前有座山,山裡有座廟,廟裡有個老和尚,再給小和尚講故事,故事內容是:從前有座山,山裡有座廟,廟裡有個老和尚,再給小和尚講故事,故事內容是:從前有座山,山裡有座廟,廟裡有個老和尚,再給小和尚講故事,故事內容是……
  • 只勸樓臺追後主,不愁弓矢下殘唐。——孔尚任《桃花扇》
  • 飛鳥之影,未嘗動也。——《莊子》

B:

  • 貪心;
  • 回溯;
  • 窮舉;
  • 分治;
  • 遞迴;

三、閱讀理解(閱讀下文,回答後面的問題):

美國的貝爾實驗室設計了最初的C語言 刻在UNIX作業系統距今已有三四十年 你在螢幕前凝視資料的繾綣 我卻在旁輕輕敲打鍵盤把你的夢想展現 迴圈 遞迴 貪心 動規 是誰的從前 喜歡在匈牙利演算法中你我牽手的畫面 經過MSRA門前我以大牛之名許願 思念像斐波那契數列般漫延 當軟工淪落在設計的文檔間 演算法依舊是永垂不朽的詩篇 我給你的愛寫在程式間 深藏在最長不下降子序列裡面 幾萬組資料流過後發現 我的心依然不變 我給你的愛寫在程式間 深藏在最長不下降子序列裡面 用無盡的代碼刻下了永遠 那已保存千年的誓言 一切又重演我算了很多遍 時間複雜度還是趨於無限 我只想要這樣永遠連結在你的身邊

  1. 題目中的MSRA是什麼的縮寫?
  2. 試賞析“思念像斐波那契數列般漫延”一句。
  3. 請結合時代背景,談談你對“當軟工淪落在設計的文檔間,演算法依舊是永垂不朽的詩篇”一句的理解。
  4. “幾萬組資料流過後發現,我的心依然不變”一句體現了演算法的什麼特性?
  5. 就“喜歡在匈牙利演算法中你我牽手的畫面”一句,談談你對匈牙利演算法的理解。

本文來源網路,出處未知,真想認識出這試題的牛人啊~

society/programmer_chicken.txt · 上一次變更: 2013/01/12 11:16 由 wenpei