4/28/2008

寫程式: 會, 不會

01 上有這麼一則討論

"請問資工資管畢業生有幾%不會寫程式"

這是個月經話題了, 不過, 今天我想了一想, 在討論"會不會寫程式"之前, 必需先定義什麼是"會寫程式"

 

我不完整地劃分出幾個等級

 

1. Casual Scripter - a trained monkey can do

    1. 有能力編寫基本的 script 用來操控系統或資料庫
    2. 有能力編寫基本的 server side script. 或 dynamic web pages

2. 入門程式設計師 - showing potential

    1. 能使用業界慣用的工作做出 script 能做到的事, 並且效率更好
    2. 熟知, 並且能實作基本的演算法與資料結構
    3. 對 programming 與 computer science 具備廣泛的常識
    4. 大概知道那些服務應該由 OS 提供, 而那些又從 language 本身提供
    5. 能實作一支 10000 - 20000 行的程式

3. 中階程式設計師 - good implementation

    1. 對問題與執行環境有大略清楚的掌握
    2. 完整地處理所的錯誤
    3. 正確地使用 System API, 正確地 implement 一個 design.
    4. 程式碼條理清楚, 遵偱既定的 coding standard, consistent style.
    5. 能正確地選擇, 便用最合理的演算法 (e.g. tree v.s. list, standard library v.s. custom made), 並且能提出具體的理由支持自己的選擇
    6. 能有系統的 debug
    7. 能領導測試人員與 PM 一同達到最好的產品品質

4. 可堪獨立作業的程式設計師 - good designer

    1. 清楚地掌握問題與環境
    2. 清楚地比較各種設計的優缺點與限制
    3. 清楚地掌握各種 state 與行為
    4. 沒有不必要的 layering
    5. 預見, 處理所有的 edge case.

 

我預期一個科班畢業生最少達大一半以上的 level 2. 而在入行二年後達到大部份的 level 3.

 

合理嗎?

沒有留言: