> ==>發信人: drkkimo.bbs@ptt.cc (), 信區: programming
...
> 不過 我主要想說的是 程式設計師的核心能力就是對程式語言的使用技巧吧
> 這是我給程設計師的定義
一個完成良好的程式軟體是沒有量產問題的, 因為只要讓電腦做她專長之一
的完整複製(copy)就行了, 生產同一種有形的硬體一直都還沒有自動化到這種程
度, 硬體生產線需要分工做同一件事的人(比電腦機器人更聰明靈活的工人), 生
產分工的配置與排程是企管/生管的專業, 其中一個事實依據是機器或人只做同
一類不變的事, 而且是反覆的做.
程式設計師是在製造程式, 但每個程式都不同. 福特的生產線是量產同一型
車, 還無法同一個生產線隨時造金龜車或 T 型卡車. 程式設計師團隊每造一個
程式就要重新安排新的生產線與道具, 而每個新的程式都有每個新的問題對象要
解決, 要讓電腦解問題就得有算法, 只是會讓程式設計師接手的任務問題多數是
要有已知的架構與算法才會被接案, 但存在算法並不代表程式設計師就能將算法
變成程式, 何況算法還不止一種, 那又怎麼個挑選法 ?
學電腦的都知道有序的資料找起來可以用 binary search 會最快, 而排序
是 quick search 最快, 但如果那張表也不過幾十個, 那還是放在 memory 用
linear search 程式, 是又短又好寫也差不多的夠快, 這是挑選組件的設計工作
而不是照樣本組裝的裝配工作.
這種問題與工作的差異就像時裝設計師與樣板師是不同於車縫師的. 生產管
理是安排一堆車縫師如何快速量產一堆已知的, 同樣的衣服. 但一堆時裝設計師
與樣板師可是只做一套 "新衣服" 而已. 做新衣服可能會採用新的零件(例如外掛
的口袋), 新零件就像是新創的演算法, 但整套新型衣服也會是新創的樣式與運用
(例如可以裝水喝水的上衣口袋).
樣板師跟車縫師一樣都得用 縫衣機(程式工具) 試製衣服, 但只有首席設計
師是動口不必動手的, 但設計師可不會鬧出用焊接機才能縫合的設計要針車縫做
出來. 做新零件(新問題的演算法)的都是針對新問題找答案, 因此, 要裝水的上
衣口袋可能就會是塑膠鋁箔襯裡用強力膠與點焊機先縫合內圍, 再於外圍車縫.
成衣業的時裝設計師與樣板師父是一定要試縫與調整的, 都只試製少量幾套.
前者急了可以用別針訂著讓模特兒能亮相走一圈不穿梆就行, 樣板師父可要當真
的編排布料位置才能省布, 設定車逢次序才能讓車縫師(這裡的車縫師就是使用
者與電腦的結合)縫的又快又牢靠.
樣板師父都一定會用針車車縫, 也能當車縫師使用針車. 但要亂套生產管理
與生產線, 把樣板師父當車縫師看待, 這樣的生產關係是出不了好成品也降不了
成本.
"會不會寫程式" 是老式的用語, 就像問現代年輕的女孩會不會 "做衣服"
是一樣的, 會做衣服的女孩從設計,選料,裁剪,定型,縫製是得樣樣精通, 不會就
是通不了, 但只要會花錢選購就行了. 可是時裝業的上游從設計,定型,樣板 可
是含糊不得. 就像服裝科畢業不會 "做衣服", 那是因為新娘學校就只要會選穿
衣服就好了, 有錢的老爸自然能培養這樣的新娘, 服裝科的老師又何其怨枉哉 ?
不過, 如果沒有服裝產業, 服裝科的老師一定也很難過活就是了.
該唸那個資工系 ? 還不如先問爹娘是否同意, 是否撐得起唸新娘學校(未必
前途不好, 不是嗎 ? 古有先例)
> 這麼講也許有人會說 太狹隘了 程式設計師也要懂演算法 懂XXX… 但是他的核心能力
> 還是對某類型語言的應用技巧吧 如果硬要說程式設計師最主要的能力是理論面 那就
> 該叫他會寫程式的研究人員啦
> 所以說新的語言一被提出來 不是像C++到JAVA 而是假如更劇烈的轉變 像樹狀、網狀資
> 料庫 轉換到關聯式資料庫 作應用面的程式設計師 技巧再高 也是限於對舊東西的技巧
> 特別要說這不像數學 數學新的東西被提出來不代表舊的就會失去價值 但程式設計的特性
> 卻不一樣吧 ?
> 也許我的表達能力還不夠清楚 而且我看的也許還不多吧 只是講個人看法 不贊同的話就
> 看看就算了吧
> : 而且往往供不應求
> : 國外有做過研究
> : 經驗老到的程式員
> : 他們的工作效率是新手的好幾倍
> : 甚至是十多倍以上
> : 更不用提bug產生的數量
> : 舉我個人的實例
> : 某個案子需要加入資料庫的功能
> : 韓國的顧問說要半年
> : 老闆私下問其他公司說要兩三個月
> : 結果一個月不到做好了
> : ※ 引述《drkkimo ()》之銘言:
> : : 我覺得還是理論重要耶 … 拿制作機械 例如制作一架飛機來說好了 研究理論的人
> : : 就像是研究飛機會用到的物理特性的物理學家和畫設計圖的工程師 而程式設計師
> : : 的角色 就好像是工廠裡操作組裝工具的工人 …
> : : 有人說程式設計師也要用到技巧 不是單純編碼… 之類的 我覺得只不過是工具用的
> : : 比較熟的工人而已
> : : 修過生產管理的課就知道 以前早期製作機械還沒有分工分的很專門 作一台汽車
> : : 可能有經驗的老師傅 要負責各部份的工作 所以那些人的價值就很高 因為一個工人必
> : : 須要懂汽車很多方面的技術才有辨法作一台車 要很多時間才能養成 所以負責製作
> : : 汽車的工人價值就很高
> : : 後來出了個科學管理之父泰勒 提倡科學管理 其中的理論就包括分工專門 所以就變成
> : : 一條生產線 工人甲負責作上某個零件的動作 然後產品流到工人乙 再負責上某個螺絲
> : : … 每個人只要負責單一、技術性低的工作就好了 這樣產能就爆增 汽車組裝工人的
> : : 價值也變低 太多人可以勝任同樣的工作了 這樣工人當然會抗拒呀 但是這種方法好
> : : 就會被採用(當然還有工作單調化的問題 所以後來才有別的管理學理論修正… ) 所以
> : : 在這種典範轉移下工人的價值就更低摟
> : : 我覺得寫程式的也一樣 今天為什麼會有你在用的這種程式語言呢? 為什麼有了組語還要
> : : 有其他高階的程式語言 這是別人發展出來的一種工具而已呀 因為目前來說 利用這種工
> : : 具開發資訊系統最適合 所大家採用它 程式設計師把程式能力提升到很高 就只是把工具
> : : 用的很熟呀 將來可能會被提出另一種更有用的開發方式 舊的開發方式就會被新的取代呀
> : : 那只關注程式設計的人 會不會有跟汽車組裝工人一樣的狀況呀??
> : : 所以上面打了好多字 簡單說的話我的看法就是程式設計師只是一個工具用的熟的工人而已
> : : 像我現在也投入了不少時間在增加程設能力 但那是因為我是資訊科系 為了剛出社會工作
> : : 需要具備一些技能而已
--
◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234