蘋果的成長日記

          我還是個青蘋果呀!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            57 隨筆 :: 0 文章 :: 74 評論 :: 0 Trackbacks

          不久前,蔡學(xué)庸先生發(fā)表了兩篇分別叫做"程序與香雞排","再論香雞排"的文章,受到的回響之大,據(jù)說連作者本人都接到該文的轉(zhuǎn)寄。足以見得該文的內(nèi)容道出了臺灣程序設(shè)計師心里最深處的想法。所以,本文想針對臺灣程序設(shè)計師來做討論,看看身為一個程序設(shè)計師,究竟犯了什么過錯,導(dǎo)致大家寧愿賣雞排也不愿再繼續(xù)寫程序。璩美鳳小姐為自己驚動臺灣社會的行為寫了真情懺悔錄,我們也該真誠地檢討一下自己。

          本文:
          在臺灣,大部分的人都有個認(rèn)知,就是"搞硬件的比搞軟件的要好賺","做SA/SD比coding地位要高"。那些做ID Design的家伙待的公司所發(fā)的股票,永遠比搞Software Design的人待的公司發(fā)的還多,股價也高出好幾倍。搞SA/SD的人,在公司地位好象也比單純寫程序的人高。于是我的父親有一次問我:"是不是搞硬件的人智商比較高?","是不是搞分析設(shè)計的人比較有地位?"

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

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

          "那么,為什么寫程序的進入門檻比較低?"

          在各位信息從業(yè)人員的身邊,非科班出生的比率非常高(當(dāng)然沒還賣雞排的高),科班出生的學(xué)生,搞不好在老板眼中的地位,還比不上一個半路出家的自學(xué)者。那位自學(xué)者會ASP、JSP、PHP、C++、C+、Java、Linux、Windows、Oracle...等,十八般武藝樣樣精通。而我們科班出生的學(xué)生,只會離散數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)和算法,Visual Basic搞不好沒有用的沒人家熟,網(wǎng)站的架設(shè)搞不好也沒人家熟,更何況科班出生的學(xué)生,他的基礎(chǔ)學(xué)問搞不好根基也不扎實(問看看您身旁的科班學(xué)生),難怪最常見的就是很多非科班的"高手"看不起科班的學(xué)生,覺得他們無三小路用,連個Windows操作都比他們差,甚至有的還大言不慚的說:"我這輩子寫程序從沒用過書上的數(shù)據(jù)結(jié)構(gòu)和演算法,讀那些干啥?"。 長期下來,科班的學(xué)生也開始質(zhì)疑自己的所學(xué),甚至考慮轉(zhuǎn)行,當(dāng)然,也有曲高和寡,孤芳自賞之人。 總之,沒辦法受到老板垂青,薪水永遠那么少,想賣雞排的念頭就開始萌生。

          之所以會有這種情況,筆者個人認(rèn)為有兩種主要原因,一是技術(shù)的流通性,二是臺灣軟件市場的需求。為什么技術(shù)的流通性可以產(chǎn)生大量半路出家的非科班生? 這都要感謝臺灣大量作者,寫出大量的入門書籍,大幅減低的進入程序設(shè)計領(lǐng)域的門檻。即使在各位眼中,繁體中文的爛書很多,而且非常。但是,大家眼中的爛書,常常是再版多次的入門書,對某些人認(rèn)為是垃圾的東西,常常是另外一批人進入信息業(yè)的最佳踏腳石。不信各位到書店看看,是"24小時學(xué)C++"、"快快樂樂學(xué)Java"的書比較多,還是"輕輕松松學(xué)微分方程式"、"21天學(xué)復(fù)變"、"電子學(xué)不求人"的書多? 兩者的差距是 N:0。是微分方程序和復(fù)變比++,Java難學(xué)嗎?筆者兩個都學(xué)過,至少我可以發(fā)誓,就一個有基本學(xué)習(xí)能力的人來說,難度是一樣的,學(xué)成所需要的時間和功夫也是一樣的。再看我們的公開討論區(qū)(BBS或Forum),我們可以看到大量的軟件技術(shù)討論區(qū),卻看不到硬件技術(shù)討論區(qū)(喔,請別跟筆者說那些每天問哪家主機板比較好,哪臺燒錄器較穩(wěn)定、或者說CPU時脈越高速度就越快越好,或是說x86的Out-Of-Order Executon是"故障執(zhí)行" 這一類渾話的討論區(qū)和我說的硬件技術(shù)討論區(qū)是一樣的喔!)書籍和討論區(qū)促進知識的流通,造成了大量的軟件人才,更何況,學(xué)習(xí)設(shè)計軟件只要一臺PC就能寫出好用的軟件,而學(xué)習(xí)硬件設(shè)計,需要的設(shè)備更是天價。
          更重要的一點,就是學(xué)軟件的人,充分發(fā)揮儒家分享的精神,只要不是在BBS上冒充小妹妹想要騙取大哥哥的同情來幫你寫程序作業(yè),只要不是很差勁的亂問一通,通常至少會有熱心人士愿意留下一個URL,讓我們可以找到參考文件,更具熱誠的,如新竹師院BBS站Java版的TAHO先生,還擅用很多生動的比喻讓初學(xué)者體會技術(shù)的真義。在這種知識充分流通的環(huán)境下,當(dāng)然產(chǎn)生出非常多的信息從業(yè)人員,每買一臺PC,上頭各種軟件的需求是無窮無盡的,每天都有各行各業(yè)的人需要各種軟件,所以程序設(shè)計師的需求有一定的量。難怪有人說:"寫程式的人餓不死,但是也不會發(fā)大財。"

          再來就是臺灣軟件市場需求所引發(fā)的問題.一般我們把軟件分成系統(tǒng)軟件(System Software)和應(yīng)用軟件(Application Software). 編譯器,組譯器,除錯器,操作系統(tǒng),驅(qū)動程序,都是屬于系統(tǒng)軟件的一部分.

          臺灣除了硬件廠商,IC Design House之外,甚少有撰寫驅(qū)動程序的需求.
          前幾年Linux被炒的熱時,也有許多高手投入操作系統(tǒng),編譯器以及簡化標(biāo)準(zhǔn)函式庫的研究.而臺灣所需求的軟件,極大多數(shù)是屬于應(yīng)用軟件,這些需求的應(yīng)用軟件其中很大比例是和數(shù)據(jù)庫有關(guān)系的(其實不只是臺灣,其它地方也是約略相同的情形).所以VB,Delphi和PowerBuilder這類IDE大行其道,因為他們?nèi)菀咨鲜?可以快速開發(fā)數(shù)據(jù)庫應(yīng)用程序,相關(guān)入門書籍很多,會的人更多. 因此符合我們前面所說的:"會的人越多,價值就越低"的理論.

          但是別忘了,系統(tǒng)軟件有部分是偏向應(yīng)用軟件的,比方說開發(fā)軟件用的JBuildr和Visual Studio;制圖用的AutoCAD;一套IC Design用的Xilinx或Altera;做OOA/OOD的Rational Rose和TogetherJ,筆者習(xí)慣稱這些軟件叫做"軟件的軟件"(Meta Software).

          在一般程序設(shè)計師眼中,這類軟件"理所當(dāng)然"地認(rèn)為都是由國外所發(fā)展.
          這類軟件有極高的進入門檻,所以國外這類軟件公司的獲利率很高,所以該公司的程序設(shè)計師可是身價非凡. 要知道,先前在媒體上有報導(dǎo)過,能夠讓Microsoft買軟件來用的公司,只有Rational Rose(當(dāng)然,不可能只買Rose來用). 如果做IC Design的人沒有你的軟件就沒辦法做事,身為一個程序設(shè)計師,你會覺得你的身價和地位比做IC Design的人低嗎? 如果你做的軟體像SoftICE或DriverWorks那樣被做硬件的工程師大量地倚賴,你會覺得搞硬件的人比你厲害嗎?

          問題是,知道該如何設(shè)計一套這類軟件的人,恐怕才是真正的異數(shù). 而且需要跨領(lǐng)域的專才.要不是許多OpenSource的project(例如:KDeveloper)正在進行,恐怕很少人知道該如何設(shè)計一套IDE. 既然會制作這類軟件的人在國內(nèi)少之又少,那么他們的身價高嗎?

          很抱歉,臺灣沒有公司發(fā)展出足以和國外大廠競爭的開發(fā)工具. 舉IDE為例,國內(nèi)早期有家公司開發(fā)出一套名為DBtools的產(chǎn)品勉強可以算的上是這類產(chǎn)品,
          旗標(biāo)也曾為它出版過入門手冊,可是使用這套軟件的人好象...沒看過(如果該產(chǎn)品有不錯的占有率,請原諒我是井底之蛙),沒有市場,公司無法賺錢,即使你是少數(shù)能做制作某類型產(chǎn)品的高手,公司最后關(guān)門大吉了,您也只能算是"少數(shù)能讓公司賠錢的程序設(shè)計師"罷了.所以我大膽假設(shè), Games Golsing或Anders Hejlsberg如果學(xué)李敖一樣50年不離開這個小島,大概早餓死了.

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

          好了,程序設(shè)計師價值低落的原因討論過了,如果您同意筆者的論點,那么不禁疑惑,大家彼此毫不保留地讓知識得以流通,技術(shù)得以擴散,本意是好的,結(jié)果反到造成自己和別人身價的低落,這樣我們是不是從此不再和別人分享我們的心得?

          王森:程序設(shè)計師真情懺悔錄(下)
          (2002.03.28)
          所以從今天開始,如果你對程序設(shè)計有一股熱愛,那么我們一起努力,做個真正的程序設(shè)計師,而不要做一個雜碎且破壞別人行情的程序設(shè)計師.做一個真正寫的出有用軟件的工程師,不要做一個只會寫程序的程序設(shè)計師.當(dāng)然,如"意外的計算機王國 / 聯(lián)經(jīng)出版社"一書所言,很多技術(shù)都是用來原本沒有預(yù)料到的地方而大行其道.許多科學(xué)研究無法有立即的貢獻,但是影響深遠,我們也期許有意從事基礎(chǔ)研究的科班研究生,認(rèn)真的作研究,不要老是研究一些別人已經(jīng)研究過的研究,不要老是冀望騙國科會等研究機構(gòu)的經(jīng)費,到了最后計劃結(jié)案時,才匆匆忙忙交出另外一篇騙更多錢的計劃書,或是拿不出臺面的研究.

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

          Q1: 你尊重專門技術(shù)嗎? 換句話說,你認(rèn)為術(shù)業(yè)有專攻嗎?

          當(dāng)你接受外面的教育訓(xùn)練課程時,你總是崇拜看起來什么都懂的老師?

          換句話說,你認(rèn)為那些遇到課外問題就跟你說他不懂的講師是爛老師?

          你老覺得真正的高手應(yīng)該精通各門各派的技術(shù),如果你會XML,他不會,你就覺得你比他厲害.你覺得他的履歷上寫的技能太少,證照太少,所以你認(rèn)為你比他優(yōu)秀?

          有人老是覺得自己蠻會用MFC開發(fā)軟件,所以直覺認(rèn)為那些只喜歡,或是只會用VB的人程度應(yīng)該不高.問題是,有人用VB的程度是,當(dāng)他覺得組件不好用,所以自己寫程序處理HTTP,因為他懂HTTP協(xié)議的運作方式.組件盤里附的瀏覽器組件太爛,就自己用公認(rèn)語法不是很頂尖的Basic語言來寫parser.

          相反的,有人號稱會用MFC,但是除了靠Help找出名為Cxxxxx的類別來用,再

          自己補上事件處理的部分之外,其它什么事都做不出來.

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

          有人覺得他精通各家廠商的數(shù)據(jù)庫,所以看不起那些只會下SQL指令或是只會寫store procedure的人, 因為這個人精通ODBC, JDBC, ADO, ADO.NET各種程序的寫法.問題是,一個精通SQL的專家和只會寫SQL指令的人,在數(shù)據(jù)庫表格交互參考,資料量很大的時候,要從中取出我們需要的資料,

          所下的指令在效率上是幾秒鐘和幾個小時的差別. SQL也是個專門學(xué)問,要能夠巧妙的操作它,必須下非常多功夫做研究,而且一研究可能就是十幾年才有辦法累積豐富的經(jīng)驗. 如果貴公司的項目老是苦于數(shù)據(jù)庫存取的效能不夠,你猜老板會花錢找一個有能力徹底改善所有SQL命令之中效能問題的稀有專家,還是再找一個號稱他什么都會,結(jié)果一點用場也派不上的"數(shù)據(jù)庫女工" ?

          我們常常看到某人列出他的履歷,好象會很多就是很厲害.但是當(dāng)我們完全深入一項技術(shù)時(喔,我是說你真正下工夫的時候),通常我們會越來越感覺到自己的渺小.

          蔡學(xué)鏞先生就是一個非常尊重專業(yè)技術(shù)的例子.我們看到他在 www.csdn.net/expert/cxy/ 上寫的,他說他只精通 lots of Java APIs.我和學(xué)鏞聊過三次,有一次,我聽他說:"干麻叫我搞Linux,我又不懂Linux!" 如果是你聽到這句話,你會不會真的以為他玩起Linux來肯定比你遜色?

          筆者突然想起神雕俠侶里頭的獨孤求敗,晚年只會拿樹枝和別人比武,可是你拿再厲害的刀劍就是無法打敗他.所以,請尊重專業(yè)技術(shù),不要以為人家沒說他會,你就比他厲害.真正厲害的人很多都不在臺面上,而是躲在后面偷偷笑我們呢! 而我們一輩子永遠不知道我們被別人偷偷取笑了.中國文化數(shù)千年來都是文人相輕的歷史,夠了,大家尊重專業(yè)吧!

          Q2: 你覺得算法和數(shù)據(jù)結(jié)構(gòu)無三小路用,因為你從沒使用過?

          我們承認(rèn)"無招勝有招"是內(nèi)功心法的最高境界,但是在信手拈來之際,后面所代表的是對各家武功路數(shù)的徹底了解.由于臺灣幾乎只有應(yīng)用軟件的開發(fā)需求,沒有系統(tǒng)軟件的需求,所以大多數(shù)的程序設(shè)計師都是站在"程序女工"的角度看世界,只要有錢,只要有人販?zhǔn)劢M件,有什么搞不定的. 但是今天如果你想設(shè)計一個XML parser,不懂?dāng)?shù)據(jù)結(jié)構(gòu)和算法可以嗎?

          好吧! 你說我們不該重新造輪子,我們應(yīng)該站在巨人的肩膀上看世界,如果什么都自己硬干,世界是會退步的. 那么試問,當(dāng)你在使用Java提供的Collection Framework時,你了解ArrayList, LinkedList, TreeSet, HashSet之間的差別嗎? 你知道他們的優(yōu)缺點嗎? 你知道他的特性嗎? 不了解ArrayList和LinkedList的差異,用哪種去寫程序執(zhí)行結(jié)果都一樣,可是效率差很多.

          大多數(shù)的人連了解特性都談不上,更別說很多每天想發(fā)展自己的語言,自己的編譯器,自己的操作系統(tǒng)的人,沒有基礎(chǔ)學(xué)問的了解,如何去設(shè)計一個Collection Framework或STL?你說數(shù)據(jù)結(jié)構(gòu)和算法沒有用,你去做看看現(xiàn)在IDE中普遍有的code insight功能看看?以Borland C++ Builder來說,要在短時間內(nèi)搜尋所有的標(biāo)頭文件并找出某函數(shù)的prototype,如果沒有對數(shù)據(jù)結(jié)構(gòu)和算法有充分了解,一樣做的出來,只是產(chǎn)品會賣不出去罷了.

          我在課堂上常常舉一個scalability的例子給學(xué)生看:

          我希望寫一個1+2+3 ... + 100的程序,大多數(shù)的人都是寫

          int sum = 0 ;

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

          sum = sum + i ;

          而真正受到數(shù)學(xué)觀念熏陶的人會寫成

          int sum = 100(100+1) / 2

          前者的復(fù)雜度是O(n),后者是O(1),當(dāng)項數(shù)很多時,運算時間是不是差很多?

          這些都是我們的教育所產(chǎn)生的問題(當(dāng)然筆者也是其中一位受害者),老師只叫你寫好作業(yè),助教只叫你run出正確的結(jié)果,認(rèn)真一點的還會測試你是不是抄來的. 卻從來沒告訴你程序中不能只有一個main函式,程序代碼不能第一行寫到第一千行從不切割成其它子程序. 你的程序代碼看起來不堪入目,老師助教從沒告訴你,你的.class檔被decompiler反編譯之后,長的比你寫的還漂亮.

          但是從今天開始,我們可以開始認(rèn)真思考每行程序,不要再做一個雜碎程序設(shè)計師.

          試想發(fā)展MP3算法的人和寫WinAmp的人,哪個比較厲害? 你會說都很厲害,可是沒有前者就沒有后者,前者搞不好還可以坐收權(quán)利金,后者只能苦哈哈的賺些小錢或等人購并. 我們停留在崇拜應(yīng)用程序技巧的階段,而真正值得崇拜的是那些難得一見的創(chuàng)意.

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

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

          你是科班生,瞧不起非科班生? 因為你是正統(tǒng)?

          你是非科班生,瞧不起科班生? 因為你覺得會的東西比科班生的還多.

          爛學(xué)校會出現(xiàn)好學(xué)生,好學(xué)校也會有爛學(xué)生.

          因為比例一樣多,所以我們不能以偏概全.

          如果仗著受過幾年正規(guī)教育,自己又從未好好深入學(xué)習(xí),就自己為是正統(tǒng),比較學(xué)術(shù)的說法這叫做"陽具文化".有些創(chuàng)新的idea是一般制式腦袋的科班學(xué)生很難想出來的,因為專家是訓(xùn)練有素的狗.

          如果你是學(xué)電信的朋友,你發(fā)現(xiàn)交換機是一個葬儀社的老板因為生意被別人搶走而發(fā)明的,那你會不會氣死?

          如果自學(xué)有成的程序設(shè)計師仗著自己會的東西比較多,你說你精通Java的各種技術(shù),你看不起從沒寫過JSP的科班學(xué)生.

          但是有人告訴你發(fā)展Java的Games Golsing博士是一個正統(tǒng)出生的科班生,知道了這件事情,會不會讓你更加尊重幕后認(rèn)真打拼的科班生?

          Q4: 你是學(xué)計算器科學(xué)的,可是邏輯能力并沒有比較好,還常常受騙?

          你會被潮流所鼓動嗎? 你常常被別人的思考牽著走?

          人家鼓吹Linux多好多好,你的腦袋連轉(zhuǎn)都沒轉(zhuǎn)過就發(fā)憤努力地考Linux認(rèn)證 ?

          -------------------------------------------------------------------

          別人把公司里的server全換成Linux,客戶端也都改成Linux,公司仍然正常地運作,結(jié)果你學(xué)了Linux之后,看到電視上BSA同法務(wù)部做的廣告仍然嚇的你冷汗直留.

          深怕明天去住套房.

          Sun跟你說Java跨平臺,你沒試過也跟人家說跨平臺的優(yōu)點?

          ---------------------------------------------------

          Borland已經(jīng)可以做到一份光盤里同時附上Solaris, Linux, Windows, MacOS X的JBuilder,

          你卻為了EJB無法deploy到不同公司的Application Server忙的像無頭蒼蠅.

          之前一窩峰人鼓吹XML,結(jié)果你盲目追求流行,做出來的東西tag比data還多?

          -----------------------------------------------------------------

          會用的人徹底了改變了公司里資料交換的流程,而你整天只會SAX來,DOM去的寫XML數(shù)據(jù)庫(用XML來儲存資料的數(shù)據(jù)庫)

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

          --------------------------------------------------------------------

          套句BBS上moga先生的名言:"那我現(xiàn)在在Windows 2000上跑的Java程序是神跡?"

          現(xiàn)在一票人每天宣傳web service的好處,你連想都沒想過就急著想要把公司的舊系統(tǒng)全部改成web service來做,結(jié)果浪費一堆錢,糟糕的速度讓你每天被客戶臭罵 ?

          ----------------------------------------------------------------------

          Web service當(dāng)然是美好的前景,但是并非適用于每個角落,目前世界上并不存在完美的solution.

          人家說不能寫程序一輩子,寫程序的人生命周期很短,你也跟著別人開始往SA/SD前進 ?

          ---------------------------------------------------------------------------

          如果世界上每個工程師都可以經(jīng)由經(jīng)驗就成為優(yōu)秀的SA/SD人員,那么理論上咱們應(yīng)該有些象樣的軟件產(chǎn)品才對. 有些人寫了幾十年,

          還是一個優(yōu)秀的程序設(shè)計師,你問問他,如果沒有遇到糟糕的老板,

          糟糕的待遇和糟糕的制度,他愿不愿意寫一輩子程序? 我愿意.

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

          ---------------------------------------------------------------

          結(jié)果真正賺到錢的都是那些像JReport做軟件組件的軟件公司.

          微軟說J2EE Blueprint的Pet Store,用.NET技術(shù)做比用J2EE做還要快許多,然后你就相信了,最近, IBM和Oracle重新加強Java版的Pet Store,讓它比.NET版的還要快18%~22%,你又改口說Java比較好.

          --------------------------------------------------------------------------------------------

          一個系統(tǒng)在設(shè)計的時候有很多考量,有人以擴充性為主,有的以安全性為主,有人以效能為主.

          如果沒有設(shè)計理念,大家程序里頭的function全部改成inline就好了,管他編譯出來的執(zhí)行檔有多大.

          系統(tǒng)只以效能做考量,我們還需要Design Pattern做什么?

          那些王八蛋數(shù)據(jù)和我們選舉時的民調(diào)一模一樣...對一個腦袋清楚的人完全沒有參考的價值.

          當(dāng)然,以情感因素來看民調(diào)的人例外.

          如果你沒有經(jīng)過自己的自主判斷就盲目的跟隨潮流,那么下次當(dāng)你看到有人排隊買米酒,買蛋塔,搶購衛(wèi)生紙的時候,請不要投以排隊的人們奇怪的眼光.

          Q5:你尊重老前輩嗎?

          我們都相信,世界上唯一不用努力就可以獲的東西就是老.

          所以吃過的鹽巴比你吃過的米還多的人,沒有任何值得尊重的.

          我們更相信,信息業(yè)永遠是年輕人出頭,而英雄少年也常在心里想:

          "李杜詩篇萬口傳,至今已覺不新鮮,江山代有才人出,各領(lǐng)風(fēng)騷數(shù)百年."

          但是我們認(rèn)真想想,從Apple 2的時代到現(xiàn)在隨便一顆CPU都是1 GHz的時代,

          計算器的本質(zhì)有什么改變嗎? 不就是一臺不斷對內(nèi)存作處理和I/O動作的機器.

          你笑那些只會用Fortran或COBOL的老前輩,那你學(xué)的Java或C#比起這些老語言又高明到哪里去? 寫程序不過是 宣告,循環(huán)和函式三大要素.時間久了,產(chǎn)生了一堆新名詞,配上一些新的發(fā)展理念但本質(zhì)上沒有改變.

          如果你是推倒前浪的后浪,當(dāng)你看到李維先生撰寫的 "[長篇] 我的回憶和有趣的故事"或侯捷老師最近兩期在Run!PC撰寫的"侯捷觀點"這些老前輩寫的文章,你有把握寫出比它們更高明,更有深度的東西嗎?

          最重要的問題,

          Q6:你騙過老板嗎?

          你在履歷上寫的十八般武藝樣樣精通,結(jié)果是梧鼠技窮(注:比喻技能雖多,而不能專一),一錄取之后什么東西都做不出來,筆者至少聽過20個老板跟我講過這件事情.你以為你的身價比較高,只因為你從事"軟件研發(fā)"的工作?

          然而現(xiàn)實的生活中,"獲利"是真正決定成敗的關(guān)鍵.除非你的東西幫老板賺了錢.

          如果沒有,你憑什么要求更多薪水,憑什么要求50張價值數(shù)千萬元的股票?

          如果你寫的東西品質(zhì)很差,bug超多,客戶抱怨不斷,老板賺不到很多錢,

          你還老是在外頭痛罵老板不尊重技術(shù)人員.如果把行業(yè)換成色情行業(yè),那老板不就等于被干洗?

          這樣看來,程序設(shè)計師和詹惠華(黃顯洲3P案女主角)干的事情有什么兩樣?

          如果這樣的雜碎程序設(shè)計師太多了,真正要去賣香雞排的,不是寫程序的人,

          而是雇用了這些雜碎的老板才對. 不過很遺憾,真的很多軟件公司的老板要改行了,雞排太多人賣了,我建議某位感同身受老板寫篇"程序員的老板與蚵仔煎",

          請踴躍投稿.

          ............全文完
          Sun計算機教育訓(xùn)練中心 王森 (moli@pchome.com.tw)

          posted on 2005-06-24 15:52 蘋果 閱讀(354) 評論(0)  編輯  收藏 所屬分類: J2EE/JAVA學(xué)習(xí)
          主站蜘蛛池模板: 织金县| 绥阳县| 仁怀市| 仪征市| 涿鹿县| 通江县| 寻乌县| 洛川县| 霍林郭勒市| 通化县| 郓城县| 凭祥市| 惠水县| 锡林郭勒盟| 望城县| 刚察县| 隆林| 海原县| 饶阳县| 南投县| 东乡族自治县| 邢台市| 丁青县| 泗水县| 右玉县| 子长县| 石首市| 唐山市| 东源县| 盖州市| 崇左市| 棋牌| 应城市| 勐海县| 调兵山市| 内黄县| 大竹县| 贵德县| 宜兰市| 霍林郭勒市| 曲阜市|