跳至內容
Sars' History
使用者工具
登入
網站工具
工具
顯示頁面
舊版
反向連結
最近更新
多媒體管理器
網站地圖
登入
最近更新
多媒體管理器
網站地圖
足跡:
society:programmer_chicken
本頁是唯讀的,您可以看到原始碼,但不能更動它。您如果覺得它不應被鎖上,請詢問管理員。
====== 偷了世界的程式設計師 ====== 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」其實是自由! ====== 程式設計師真情懺悔錄 ====== <code> 時間: Sat Mar 30 02:04:54 2002 作者: austen (奧斯汀) 看板: kenduest 標題: 【轉載】程式設計師真情懺悔錄(上)(中)(下) </code> -來自 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 先生,還擅用很多生動的比喻讓初學者體會技術的真義。 <code> @@"..... 光看這一段 好像是褒獎 不過看了整篇文章... 突然發現...... 原來我是讓程式設計師不值錢的兇手之一.... 真是罪該萬死啊.... </code> ---- 但是 mue 先生接下來的發言,說卻命中本文真正的核心價值觀: ---- 發信人: mue.bbs@bbs.im.tku.edu.tw (閒人) 不會啦..要是每個程式師都死守自己所會的..讓所謂的專業門檻更高的話.. 就很難進步了..就是讓本來難的變簡單..自然就會有更難更深入的東西出現.. 這樣社會才進步得快丫.. ---- 做應用軟體的人真的沒價值嗎? 有些靠應用軟體賺了不少錢的朋友開始偷笑了. 軟體必須加上專業知識,才能夠發揮價值. 換句話說,如果您真的只會"寫程式",卻沒有配合各種領域的專業知識,"寫程式"這項技能本身根本毫無價值可言. 就很像你的電腦裝了瀏覽器,可是卻沒有對外連線的網路一樣,如果沒有網路本身,瀏覽器一點價值也沒有,更不需要一家公司大費周章地利用平台優勢去整倒另外一家公司. 我們可以把程式設計師比喻成架子上滿滿的資訊相關書籍,而雇你的老闆就是前來買書的讀者. 你不能否認這麼一堆書裡頭,有好書,也有爛書,你也不能否認你心中的爛書是一本書,但是你卻不能說書裡面教你如何寫 Java 程式的內容是錯的. 可是,購書的讀者壓根兒根本覺得某幾本書一點價值也沒有. 我們只能說,太多只會"寫程式"的程式設計師打爛了市場,就像一牛車的爛書一樣, 你不能說爛書沒有價值,可是爛書會讓你對架上其他書籍的價值大打折扣. 除非,你之前看到別人口耳相傳這本書是好書. 大家或許不相信"只會寫程式"的程式設計師存在於這個世界上,所以筆者舉個簡單的例子說明之: 很久以前, BBS上有人發表了post,內容大概是說某公司在整理舊的程式碼時,發現了一則奇文,奇文內容如下: <code> //底下是一個判斷某個整數是不是奇數的程式碼 public static boolean isOdd(int n) { while(true) { if(n==1) return true; else if(n==0) return false; n=n-2; } } </code> 您說撰寫這個程式碼的人不會寫程式,他又好像會寫,你說他會寫程式,你又不服氣,覺得這個傢伙根本在胡搞一通. 看過這則奇文軼事之後,當您下次聽到某公司抱怨他們的程式設計師做出來的軟體一堆 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 的程式,大多數的人都是寫 <code> int sum = 0 ; for(int i = 1 ; i < 101 ; i++) sum = sum + i ; </code> 而真正受到數學觀念薰陶的人會寫成 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 ====== 暴強的程式師考題 ====== 一、選擇題(皆為單選): - 以下誰是二進位思想的最早提出者?a,伏羲;b,姬昌;c,萊布尼茨;d,柏拉圖。 - 以下哪個概念和公孫龍的《指物論》中的“指”字含義相近?a,變數;b,陣列;c,對象;d,指針。 - 藺相如,司馬相如;魏無忌,長孫無忌。下列哪一組對應關係與此類似?a,PHP,Python;b,JSP,servlet;c,java,javascript;d,C,C++。 - 秦始皇吞併六國採用了以下哪種演算法思想?a,遞迴;b,分治;c,反覆運算;d,模擬。 - 雅典王子忒修斯勇闖克里特島斬殺米諾牛的時候採用了以下哪種演算法?a,動態規劃;b,窮舉;c,記憶化搜索;d,Dijkstra演算法。 - 印度電影《寶萊塢機器人之戀》中的機器人七弟採用的智慧演算法最有可能是以下哪一種?a,神經網路;b,遺傳演算法;c,模擬退火;d,窮舉演算法。 - 《公孫龍子》記載:“齊王之謂尹文曰:‘寡人甚好士,以齊國無士,何也?’尹文曰:‘願聞大王之所謂士者。’齊王無以應。”這說明了齊王:a,昏庸無道;b,是個結巴;c,不會下定義;d,不會定義自己的需求。 - 惠施曾提出過“卵有毛”的命題,以下哪一項是導致這個錯誤命題的原因:a,混淆了命名空間;b,引入了錯誤的包;c,衍生類未重載;d,調用了危險的指標。 - 下面哪種物件導向的方法可以讓你變得富有?a,繼承;b,封裝;c,多態;d,抽象。 - 明朝時期張居正改革的一條鞭法的主要思想是:a,面向過程;b,萬物皆數;c,統一介面;d,泛型程式設計。 二、匹配題(分析A中的句子所體現的演算法,和B中的演算法一一匹配): A: * 江南可採蓮,蓮葉何田田,魚戲蓮葉間。魚戲蓮葉東,魚戲蓮葉西,魚戲蓮葉南,魚戲蓮葉北。——漢樂府《江南》 * 眾裡尋他千百度,驀然回首,那人卻在燈火闌珊處。——辛棄疾《青玉案》 * 從前有座山,山裡有座廟,廟裡有個老和尚,再給小和尚講故事,故事內容是:從前有座山,山裡有座廟,廟裡有個老和尚,再給小和尚講故事,故事內容是:從前有座山,山裡有座廟,廟裡有個老和尚,再給小和尚講故事,故事內容是…… * 只勸樓臺追後主,不愁弓矢下殘唐。——孔尚任《桃花扇》 * 飛鳥之影,未嘗動也。——《莊子》 B: * 貪心; * 回溯; * 窮舉; * 分治; * 遞迴; 三、閱讀理解(閱讀下文,回答後面的問題): 美國的貝爾實驗室設計了最初的C語言 刻在UNIX作業系統距今已有三四十年 你在螢幕前凝視資料的繾綣 我卻在旁輕輕敲打鍵盤把你的夢想展現 迴圈 遞迴 貪心 動規 是誰的從前 喜歡在匈牙利演算法中你我牽手的畫面 經過MSRA門前我以大牛之名許願 思念像斐波那契數列般漫延 當軟工淪落在設計的文檔間 演算法依舊是永垂不朽的詩篇 我給你的愛寫在程式間 深藏在最長不下降子序列裡面 幾萬組資料流過後發現 我的心依然不變 我給你的愛寫在程式間 深藏在最長不下降子序列裡面 用無盡的代碼刻下了永遠 那已保存千年的誓言 一切又重演我算了很多遍 時間複雜度還是趨於無限 我只想要這樣永遠連結在你的身邊 - 題目中的MSRA是什麼的縮寫? - 試賞析“思念像斐波那契數列般漫延”一句。 - 請結合時代背景,談談你對“當軟工淪落在設計的文檔間,演算法依舊是永垂不朽的詩篇”一句的理解。 - “幾萬組資料流過後發現,我的心依然不變”一句體現了演算法的什麼特性? - 就“喜歡在匈牙利演算法中你我牽手的畫面”一句,談談你對匈牙利演算法的理解。 本文來源網路,出處未知,真想認識出這試題的牛人啊~
society/programmer_chicken.1303962243.txt.gz
· 上一次變更: 2011/04/28 11:44 由
wenpei
頁面工具
顯示頁面
舊版
反向連結
回到頁頂