[轉錄][討論] 【轉載】程式設計師真情懺悔錄(ꐠ…

看板Soft_Job (軟體人)作者 (^^)時間14年前 (2011/06/04 17:03), 編輯推噓7(708)
留言15則, 9人參與, 最新討論串1/1
※ [本文轉錄自 CareerPlan 看板 #1DwD000z ] 作者: l17 (L17) 看板: CareerPlan 標題: [討論] 【轉載】程式設計師真情懺悔錄(上)(中)(下) 時間: Fri Jun 3 20:13:49 2011 http://j2se.myweb.hinet.net/article/java/004.htm <不負責講座> 程式設計師真情懺悔錄(上) (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@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 案女主角)幹的事情有什麼兩樣? 如果這樣的人多了,真正要去賣香雞排的,不 是寫程式的人,而是僱用了這些雜碎的老闆才對. -- 這是最近系主任分享的文章 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.76.140

06/04 16:18,
看完這篇,我發現我完全不會寫程式
06/04 16:18
-- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.147.183

06/04 17:53, , 1F
寫得太好了
06/04 17:53, 1F

06/04 18:00, , 2F
他還沒提到看一看XX天學會XX就以為天下無敵的人XD
06/04 18:00, 2F

06/04 18:08, , 3F
3分鐘 puts("Hello World!\0");
06/04 18:08, 3F

06/04 19:30, , 4F
推! 還好學校老師的堅持讓我養成不用元件的習慣.
06/04 19:30, 4F

06/04 19:34, , 5F
那時候很羨慕資管都可以拉一拉介面, 寫幾行就完成.
06/04 19:34, 5F

06/04 20:26, , 6F
3F已會ruby XD
06/04 20:26, 6F

06/05 01:55, , 7F
程式工人有程式工人的價值
06/05 01:55, 7F

06/05 01:55, , 8F
資料庫有資料庫供人的價值
06/05 01:55, 8F

06/05 01:57, , 9F
不需要高手的事找新手來做就好
06/05 01:57, 9F

06/05 01:57, , 10F
而且任何一份工作本來就有資深資淺之分
06/05 01:57, 10F

06/05 07:54, , 11F
不用元件不一定是好習慣...
06/05 07:54, 11F

06/05 12:06, , 12F
這篇文章沒勸說人不用元件吧?
06/05 12:06, 12F

06/05 12:32, , 13F
我是說樓上某人寫的...XD
06/05 12:32, 13F

06/07 14:35, , 14F
如果寫個hash或是queue就要元件,是不被允許的喔
06/07 14:35, 14F

06/07 14:36, , 15F
如果你要用到oracle db,試試看不要用JDBC之類的lib啊:P
06/07 14:36, 15F
文章代碼(AID): #1DwVJZpz (Soft_Job)
文章代碼(AID): #1DwVJZpz (Soft_Job)