精華區beta Programming 關於我們 聯絡資訊
※ 引述《gsj.bbs@bbs.nchu.edu.tw (國王的新衣)》之銘言: : 定Spec 在你眼中這是一件容易的事嗎? : 叫你寫出一份股票交易管理系統的Spec,你會嗎? : 就算你程式語言再如何強,碰到這種狀況也跟白痴差不多吧! : 回到那句老話,Domain Knowledge 不會,就繼續打零工吧 股票交易管理系統? 我把股票、權證、期貨、外匯、選擇權... 的交易管理都寫了, 所以我應該有資格說話,其中困難的地方是哪裡? 對不起,不是 那些 "Domain Knowledge", 而是即時系統架構、資料庫管理和 系統效能改善,想不到吧。 而那些交易細節再怎麼煩瑣,都只是一小塊的程式碼而已。系統 分析本身就是一種知識和能力,根本不用會那些細節。 大部分做這些系統的工程師,對於資訊科技的專業性都很不足, 沒辦法把系統架構設計好,卻一直以為問題出在領域知識的不夠 理解,或是系統分析的不夠詳盡,這才造成開發的困難。 試想若有好的即時系統架構、好的資料管理模型,交易的問題就 只要照著規格和公式寫作就好了,而這就只要找一位專業顧問來 協助和驗證即可,哪裡需要你自己花時間學習? 演算法至上論和領域知識至上論,都是偽論述。在程式語言之外 最重要的就是軟體工程、技術管理、電腦科學等等專業知識,這 才是能讓你把程式寫好、進而有能力開發新系統、研發新技術的 必要知識。 對於科學、工程、管理的深度理解,遠比懂得某領域的知識來得 重要多了。專業的軟體工程師是站在現代文明頂峰的人物,要能 看的夠廣夠遠,而不是守著自己的小小田地,只會某種小知識, 不管是哪一面向的知識,都不足以應付我們所要面對的複雜性。 當然知識是愈廣泛愈好,但不能本末倒置。程式設計者最需要的 就是對於工具的熟練,其次是技藝的高超、再其次是技進於道的 精深廣博,而不是凡事一把抓,沒有領域知識就請專業顧問,要 自己去搞懂才能做事,完全是浪費時間。 什麼叫做分工、什麼叫做競爭優勢,不妨想想。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.95.4