程式設計師要學些什麼 |
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
此為轉載文章
程式設計師要學些什麼 1.自己設定的方向 程式設計是很迷人的領域,甚至東西弄不出來時,還像是高級的愉樂,令人樂
此不疲我們有一個客戶就是這樣,明明國外可買到合用的軟體,但他一句
話:"不信台灣做不出來",所以他寧可再花一倍價錢來買我們的產品;甚至我
們還在發展中,程式還不能用雖然他不是程式設計師,但他堅持的理念,卻和
我們程式設計師同在而我們呢? 最近瘋狂加班,為了日本展schdule,有一群工程師已在公司不回家72小時
了我們每個人的功力,降個級去寫輕鬆點的Project,不過再要把自己所學
發揮到如此淋漓盡致,卻是不能的了 我最近參與的專案,是用電腦控制伺服機台,定位精度已可到達千分之一mm
程式完成一週之後,電機人員一直嘗試新的PID參數及接線因為程式是一種
數位性的東西,對於精度,在某一個程度後已幫不上忙,try出結果那晚,真
是欣慰且鬆了一口氣,因為這個艱難的結果得來不易;但業務卻在很久以前
就先把產品賣出去了~^_^~
萬一做不出來,結果真是很難想像 2.生涯規劃 當清楚知道一些程度遠遜於我們的程式設計師可能不用這樣加班
不能說我們毫無感覺,而且程式設計師的生命極為有限;這句話是指某個程
度而言,當我還是國小時,寫的程式就讓某些已就業的設計師害怕了
同樣的,我現在最怕的也是那些還在學的學生,這份工作真是很難講年資,如
果沒有生涯規劃,只會coding,肯定將來寫不過年輕人 3.專業的充實 興趣和專業永遠是相生相剋的
一是有助談興的淺嘗即止,另一卻是不達目的不能休止的投入
只有在前面兩點有了定案之後,才能知道要朝哪方向去努力
從前我曾很想寫電腦象棋一類的程式
論coding,我早就有能力了;但我不會下象棋,
演算法這東西不能老是要問別人,自己一定要懂,要能清楚的描述
只懂電腦卻沒專業,那永遠寫不出個東西來
我常說,寫程式其實是個溝通的過程,是把心中的理念implement出來
有些人心中的專業理念根本一竅不通
比如我前女友的客戶;前女友專寫商用軟體,對於直銷公司分紅軟體有五套
以上發展經驗;(這是分手前的數字)
可是她經常面對客戶毫無道理的邏輯:
下線分紅百分之幾,上線及次級上線又分別分紅百分之幾...;
公司內也有一般月薪制管理人員
搞到最後竟然利潤不夠分,請問這是誰的錯??
在此程式設計師是不會錯的,是客戶自己算帳的腦筋不清楚
一個專業不足的人,是絕對無法把程式寫出來的
寫程式前,先把自己的問題好好描述一次,最好能全盤手算模擬一次
連人都搞不懂怎麼一回事的演算法,更別想能向電腦清楚的描述了
不管用什麼語言,還不就是要電腦聽懂你的理念?
現在電腦還不懂人話,但就算懂得人話,遇到腦筋不清楚的設計師
說不定你還是要向它大吵一架:"你還是聽不懂我的意思"^_^ 4.扎實的功夫 從前老師曾教我,做Hard Ware(H/W),就是Hard Work,是苦功;避不掉自
己焊版子tune線路
做Soft Ware(S/W),就是Slow Work,避不掉慢慢的規劃,一步步的實作
這是指比重而言;硬體未必就不用規劃了,軟體也不見得就輕鬆了 但是軟體偏重規劃,是絕無疑問的
我寫程式到現在,從來沒有一個暫時的解決方案將來不出bug的
寫程式一定要規劃,要記錄;
再怎麼急就章的暫時模組,都要當做Release版本一樣詳細記錄
這樣在將來找bug時才能輕鬆應付 我甚至連暫時性的除錯模組都不會濫用如"a,b,c,d,e,a1,a2,a3,a4"等
等語焉不詳的變數名稱
一個大的專案,放個幾週後回頭來看,其難度不遜於看別人的程式
到時看不懂自己寫的程式是很可笑的事^_^
而在Team Work時,也只有這樣才能釐清誰對誰錯
同事一句話:幫我把指令規格改一下,一個月後卻說:功能怎麼不同了
這是很常見的事!!
只有詳細記錄下Spec的更動,才能向同事力爭:規格是你改的,改了怎麼會
一樣!!別以為這很好笑,大公司裏什麼事都要公文白紙黑字,為的也是這件
事;口頭無算!小公司雖然較無文件,管理之累,但軟體人員仍要事事小心
因為你所面對的code,雖然是自己寫的,但面對昨日的自己,去年的自己...
這簡直就像是面對另一個同事,在軟體的高度抽象之下,一個五人的小公司,
面對每年累積的包袱,一個不小心就像五十人運作的中型公司一樣,處處置
肘!! 我現在寫一個難度不低的程式,其功能不過是把客戶檔案轉成另一種格式
這格式是從前同事早寫好的程式所需要的,
換句話說,同事寫Parser,我寫PreParser
面對同事那如同黑盒子,他自己早已招認自己也看不懂,文件失傳的大怪物
我的PreParser做了不少虛功,卻又不能不做;不做就是拋棄舊客戶
但是,PreParser Parser可以簡化成New Parser;難度可非常簡單了!!
只要把演算法詳細記錄,直接寫的New Parser程式可以小很多!!
比如,Parser千辛萬苦的幫一堆整數標定小數點,變成浮點數(單位轉換)
但是標定邏輯有誤,於是PreParser也得千難萬難的故意把新資料轉成整
數,甚至是轉成有特定規格的整數;還得故意產生舊Parser需要的Bug!!
New Parser其實可以...直接從新資料轉成結果,一次OK才對
但誰叫我們失去了Parser程式的演算法...
於是只好一次一次做著多穿一件褲子,等別人來脫的蠢事
穿褲子,脫褲子...我是在形容另做一個Shell來包裝舊程式的愚蠢
這句話大概要曾犯相同錯誤的朋友才能理解了 我常在這個論譠看到朋友們問一堆描述不詳的問題
這功夫做得一點也不扎實
一個只有標題一行,內容一兩行的問句,是很難描述問題的
不只電腦不是我們肚裏的迴蟲,連另一個工程師,也不可能和我練成心靈相
通的本事呀!! 同事要求我做UI的改版時,講三次講不清他的理念,我就會要求圖解了!!
BCB做UI,雖然只是拉拉滑鼠的簡單功夫;
那你向別人提出要求時,為什麼不先回自己座位,拉拉滑鼠畫一張圖給我!?
等你畫完圖,發現在800*600的pixel裏根本擺不下那麼多UI元件
你根本就不會提出那麼可笑的要求 不要認為別人必需幫你做實驗,這樣可以結省很多時間
UI改版說簡單是簡單;但碰上多語系專案,一個UI改版工程還是蠻大的!!
每個語系的UI FORM你都得重畫一次
規劃的時間愈多,除錯的時間就愈少,
這是任何軟體工程都在強調,但每個程式設計師都常犯的一個錯誤
一個有效的方法可以管制這個現象:口頭無算,文件詳實 5.了解自己的價值 從上面可以知道,文件的重要性
如果寫程式還是浮浮燥燥,三不五時就來個結構大翻修,
那麼下面幾句話可以思考思考:
程式其實人人會寫,隨便找個人就比你會coding;人外有人,新人好找得很
公司請一個工程師,其價值絕不在他暫時coding的能力
而在於他長期對自己程式的管理能力 一個能面對昨日的自己,甚至數年前的自己的工程師
其管理能力相當於可以管理數個人,像個小課長一樣
事實上每個工程師經常會受到幹部級的尊重!
即使你的名片上寫的是公司裏最初級的工程師
但是所做的事,所受到的尊重,在在都讓人覺得,你根本就是位課長,根本就
是位經理,因為你所寫的code,在數年後還是要維護,
有什麼別的行業出貨像我們一樣嚴格!!
有,就像醫生,看過病人不能隨便就忘了,而要在病歷上詳細記錄
一個病人的病歷可以長達數年,只有詳細追蹤才能掌握病情 工程師的價值不在短期的coding能力,而在長期的管理能力
每個工程師都應受到幹部級的尊重(分紅配股更是流行趨勢)
而面對這份尊重的自我要求,自我管理當然也不能少了 eyeball 2000/5/23 下午 06:41:22 No.1
這真的是一語道出心中事。好文章。謝謝您,對我這個年輕的程式設計者很
有幫助。 軟貼至ePaper的 JAVA週報 2000/6/2 下午 05:55:34 No.2
我們公司一直都在找人。但是我找人的時候,不會去找號稱"會Java"的人
,因為什麼叫做"會"?如果是一個新的東西,不可能有豐富的經驗。所以
與其找一個"會Java"的人,不如去找一個學習能力強,而且有豐富C 經驗
的人才。因為C 也是功能強大的物件導向語言,有多年豐富的C 專案實作經
驗,很容易可以跨進 Java領域。所以我寧願找一個某一種"舊東西"的高手,也
不要一個今天宣稱"會Java",明天號稱"會XML",履歷表經常更新的牆頭草。其實
C ,Java 都只是工具,真正有價值的是你利用這些工具做出什麼樣的東西。例
如做過醫療方面的產品,對醫療市場就有一定程度的了解;或是寫過影像處理的
軟體,將來這領域的經驗,知識絕對是別人在短期內學不來的。這就是所
謂的"Domain Knowledge"(專業知識)。 所以回到同學們的問題,在學校要學什麼將來才有用?有些趨勢專家會告
訴你將來的市場是在什麼無線通訊或是生化科技等等,我勸大家別相信這
些事後諸葛的話。資訊科學有太多具挑戰性的領域還待開發,例如人工智
慧、機器、翻譯等等,而這些領域需要的基本工夫和其他軟硬體領域一樣
,是數學/程式語言/演算法…等等。唯有打好蹲馬步功夫,再找一門自
己有興趣的科目鑽研。即使將來無法應用所學,相關的學習經驗也會讓你
很容易跨足其他領域。這樣總比老是跟著目前當紅的技術跑得團團轉好得
多。老是學最新技術是學不完的,Client/Server、OOA/D、RDBM、TCP/IP
、HTML…,人生苦短,老是在K別人制定的東西未免太累了,您說是吧?
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
ahcheng
一般會員 發表:13 回覆:72 積分:17 註冊:2002-04-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |