免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

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

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

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

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

"那么,為什么寫(xiě)程序的進(jìn)入門(mén)檻比較低?"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相反的,有人號(hào)稱(chēng)會(huì)用MFC,但是除了靠Help找出名為Cxxxxx的類(lèi)別來(lái)用,再

自己補(bǔ)上事件處理的部分之外,其它什么事都做不出來(lái).

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

有人覺(jué)得他精通各家廠商的數(shù)據(jù)庫(kù),所以看不起那些只會(huì)下SQL指令或是只會(huì)寫(xiě)store procedure的人, 因?yàn)檫@個(gè)人精通ODBC, JDBC, ADO, ADO.NET各種程序的寫(xiě)法.問(wèn)題是,一個(gè)精通SQL的專(zhuān)家和只會(huì)寫(xiě)SQL指令的人,在數(shù)據(jù)庫(kù)表格交互參考,資料量很大的時(shí)候,要從中取出我們需要的資料,

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

我們常??吹侥橙肆谐鏊穆臍v,好象會(huì)很多就是很厲害.但是當(dāng)我們完全深入一項(xiàng)技術(shù)時(shí)(喔,我是說(shuō)你真正下工夫的時(shí)候),通常我們會(huì)越來(lái)越感覺(jué)到自己的渺小.

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

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

Q2: 你覺(jué)得算法和數(shù)據(jù)結(jié)構(gòu)無(wú)三小路用,因?yàn)槟銖臎](méi)使用過(guò)?

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

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

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

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

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

int sum = 0 ;

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

sum = sum + i ;

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

int sum = 100(100+1) / 2

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

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

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

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

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

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

你是科班生,瞧不起非科班生? 因?yàn)槟闶钦y(tǒng)?

你是非科班生,瞧不起科班生? 因?yàn)槟阌X(jué)得會(huì)的東西比科班生的還多.

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

因?yàn)楸壤粯佣?所以我們不能以偏概全.

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

如果你是學(xué)電信的朋友,你發(fā)現(xiàn)交換機(jī)是一個(gè)葬儀社的老板因?yàn)樯獗粍e人搶走而發(fā)明的,那你會(huì)不會(huì)氣死?

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

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

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

你會(huì)被潮流所鼓動(dòng)嗎? 你常常被別人的思考牽著走?

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

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

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

深怕明天去住套房.

Sun跟你說(shuō)Java跨平臺(tái),你沒(méi)試過(guò)也跟人家說(shuō)跨平臺(tái)的優(yōu)點(diǎn)?

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

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

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

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

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

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

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

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

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

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

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

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

人家說(shuō)不能寫(xiě)程序一輩子,寫(xiě)程序的人生命周期很短,你也跟著別人開(kāi)始往SA/SD前進(jìn) ?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Q5:你尊重老前輩嗎?

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

所以吃過(guò)的鹽巴比你吃過(guò)的米還多的人,沒(méi)有任何值得尊重的.

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

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

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

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

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

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

最重要的問(wèn)題,

Q6:你騙過(guò)老板嗎?

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

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

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

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

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

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

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

而是雇用了這些雜碎的老板才對(duì). 不過(guò)很遺憾,真的很多軟件公司的老板要改行了,雞排太多人賣(mài)了,我建議某位感同身受老板寫(xiě)篇"程序員的老板與蚵仔煎",
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
史上最快速最簡(jiǎn)單的java入門(mén)教程
關(guān)于B/S和C/S架構(gòu)的探析
我心目中10大開(kāi)源軟件,你呢
手機(jī)軟件格式
PHP:草根語(yǔ)言挑戰(zhàn)大腕Java .Net
如何用手機(jī)進(jìn)行編程?有哪些值得推薦的軟件?
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服