網路城邦
上一篇 回創作列表 下一篇  字體:
再大的軟體系統裡面也沒有神仙!
2019/10/27 04:28:31瀏覽1157|回應0|推薦8

我有一位很天真,但是也真的很天才的高中生讀者,正在嘗試自己(好像還有一位夥伴)寫一個地震預警系統!但是在複雜的網路通訊與資料庫運用部分常常不穩定出錯,於是寫訊息跟我要我當年替嘉義市寫的道路車牌辨識系統的程式做參考,我推託說可能有違反保密協定之虞不方便給,其實我不是不能給他一些類似的舊專案,但有兩個原因我還是都沒給他!

自私一點的原因是:好多年前寫的複雜程式我自己已經不記得細節,連架構理念都忘得差不多了!如果給了他,他看起來一定有很多問題,隨便問問我就必須複習回憶好久才能答覆,況且那時我的功力也不好,寫得不合理的違章建築很多,我真的不想浪費太多時間「教他」連我自己都已經不想用的過時爛程式。

另一個原因是電腦技術與環境日新月異,他想做的系統與我的系統也不盡相同,他費力研究我的老舊系統實在沒有意義!一樣的網路通訊功能,在五六年前必須用非常繁複迂迴的程式才能做到,現在上網Google一下就可以有非常簡單高效率的程式寫法,連我自己遇到要寫這些程式時,都是優先找新方案,不會每次都回頭翻舊專案,除非是自己發明的影像辨識演算法。

他當然是某個頂尖高中的資優生,才能做這麼誇張的大專案,我大概可以想像他會找我的原因,其實也是升學主義養成「人才」的一個大缺點!當他們碰到困難時,傾向於相信已經在運作中的大系統裏面一定有些神秘難解的理論技術,一定要找到「大師」提供「秘笈」才能做得專業!也就是以為一定有個完美的標準答案?其實沒有!

如果你已經有過一些程式開發經驗,有機會去參觀龐大系統的原始程式,通常會有兩種情況:一種是發現裡面亂到見不得人!你會好奇怪?這麼大的違章建築怎麼還沒垮掉?但是只要東西能用了,使用者不會覺得不對!即使真的出了小錯,用最笨的方法補救,對客戶只要有個冠冕堂皇的藉口,也混得過去!那些推銷軟體與解釋異常狀況的,其實是半調子的業務,不是真正寫程式的工程師,他們多半是瞎掰亂講的!

另一種情況是:程式架構與各種模組細節都井井有條,非常精準而且優美,真不知道他們是請哪位大師建構的?其實這不見得是好事,沒有任何大系統一開始就很完美的!變得這麼好是因為系統功能需求已經幾十年沒變,也真的有賺到錢,專職工程師不能閒閒沒事領乾薪,就會一直雞蛋裡挑骨頭找事做,系統就變得越來越美了!就像有錢人家的千金,沒事不打扮自己還能幹嘛?

所以不必幻想那些運轉中的系統裡面必有大神進駐?絕對沒有的!只要乖乖讀過電腦科系,真的寫過一些有用的程式,裡面就不會有讓你看不懂的東西!想做出大系統,最重要的是你實作的組織能力,和與系統運作目標有關的專業,譬如完全不懂地震的人,當然不適合寫地震預警系統。程式技巧與細節當然很多,但是絕對不必去找「大師」學習,自己Google就有了!

昨天就是用這些概念與小朋友溝通之後,他恍然大悟!原來真實業界的程式師是這樣子過日子解決問題的?也開始對自己信心滿滿,努力多做實驗找到最佳方案才是正辦,追尋其實不存在的大神祕技是沒用的!不然我怎麼可能完全靠著自學就走到今天的地步?我在這個領域幾十年了,自信甚麼軟體系統都能做了,也還沒看過甚麼神仙啊?年輕人就別找了!自己試著修練成仙比較實在。

當然對於初學者來說就不是這麼容易的,你至少要入門學會一些程式基礎能力,就像學武功蹲馬步與打坐的基本功夫還是有師傅教比較快,所以我也給了他我的教學網頁,連基本動作都不會時,看我的教材範例就比上網找論壇前輩說得更清楚:

http://www.ezonesoft.com.tw/ycc/HTML/Subjects.htm

( 心情隨筆校園筆記 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=130344253