Re: [討論] 寫程式的經驗如何培養?
你一開始說懶得教。
「往往受到挑戰,在不想浪費唇舌的情況下乾脆懶得教了」
最後
「其實說到最後新人並不是不願意學,而是對於沒有工作經驗的人
,這些東西就等於沒有道理」
其實,教新人真的不是這麼容易。
就像別的站友說的「當初是誰面試他進來?」
也許這些問題可以拿來面試談
1. 物件的概念
為什麼要建物件?建物件的好處是什麼?壞處是什麼?
機槍座的例子,是機槍組裝的機制出問題?還是不該從UI的資訊來決定?
為什麼要建物件
1. 符合心智圖
2. 隱藏複雜度
3. 增加重覆使用率
2. 整齊格式的重要性
coding style要好,除了看code之外,還有沒有其它更強而有力的例子呢?
ex: 讓程式碼可以在換文字處理器時不會因為tab width設定的關係,變動太多coding
style??
3. 命名
好命名除了取代comment之外,還有隱喻和內聚力的問題。新人真的明白嗎?(這真的滿難
解釋的)
4. Golbal太多的問題
其實就是呼應第一個物件的概念。
也許,你沒有拿最強而有力的重點去教導你的新手,如果他真的說不聽,你就直接拿一本
書請他k完(當然要限定他k的時間),你所教的每一個觀念最好書裡都有。這樣一來,你所
教的東西有書可以增加說服力,我想高學歷的傢伙再堅持也只是證明,只是自己單(ㄩˊ)
純(ㄔㄨㄣˇ)的執著。
程式專案進行的過程,很多做法都是用來降低溝通成本的,命名是物件也是,盡量讓程式
碼在不需要解釋的情況之下就可以讓概念互相流傳。
你也可以拿一段超爛的code(也可以留一段他自己以前寫過的程式碼,時間要夠久)給他看
!問他是不是要看很久,看了是不是會一直註解髒話之類的....
※ 引述《moonshade (一隻歐拉貓)》之銘言:
: 寫這篇主要是抱怨,每個人就業的成長過程各有不一,
: 最近帶新人的時候感覺非常挫折,很多我覺得是直覺的
: 東西,要新人接受的時候,往往受到挑戰,在不想浪費
: 唇舌的情況下乾脆懶得教了,但是這種新人我也不敢讓他
: 碰核心原件。
: 我想要問一下一些寫程式的概念,如果工作中學不到,
: 有甚麼快速的途徑可以學,因為新人總覺得自己念了
: 博士,很了不起,寫程式這種簡單的東西,哪有那麼難...
: 1. 物件的概念,簡單來說就是物件自圓奇說的觀念和
: 故事,例如一個汽車的物件是不會長出只有汽車自己
: 存在的時候不能解釋的東西,像是車頂有個不知所謂角架,
: 這時候只有開汽車就不知道這角架用來幹嘛,如果要如此
: 設計,就要能夠自圓其說解釋這是一個機槍座,可以
: 裝哪些種類的機槍,但是新人只是丟了一行comment
: 寫請看機槍手(UI level)如何使用此角架,但老實說我看
: 前後文看不懂的時候,這個comment造成我額外負擔必須要
: 去讀更多的程式
: 2. 整齊格式的重要性,簡單來說就是一致的coding style,
: 新人似乎也不在乎這些東西為何重要,但是對老人來說,
: 這個影響一秒鐘看4行和一分鐘看2行的速度差別,但是對於無法
: 一秒四行的新人似乎無法理解這有多重要,甚至在hard tab的問
: 題也能爭吵不休,我已經解釋了每個人的tab width設定不一樣,
: coverity這類web-based viewer 也會看到不一樣,但是新人
: 還是堅持只要把tab width設成跟他一樣就好了。這個花了兩個老人
: 對他勸說了將近30分鐘,但也無法說動他把之前的code用sed
: 全改成空白鍵
: 3. 程式命名的藝術,很多人的程式寫得很好,根本不用comment
: 大家就能看懂,但是有新人就是不知為何發明一些需要解碼的
: 名稱,還宣稱這很好用很方便
: 4. Global 滿天飛,尤其在現在重視reentery的時代,global
: 就算無法避免也希望用singleton替代,但是講了半天又舉例,
: 最後還是不理你
: 其實說到最後新人並不是不願意學,而是對於沒有工作經驗的人
: ,這些東西就等於沒有道理,講了也不會記得,話說我剛入行
: 就是前輩說甚麼就照做,把code寫得跟老人一樣,讓他們以為是自
: 己寫的,但是現在的新人自己想法很多,也不知道怎麼教...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.98.226
→
10/29 09:07, , 1F
10/29 09:07, 1F
推
10/29 09:07, , 2F
10/29 09:07, 2F
→
10/29 09:28, , 3F
10/29 09:28, 3F
→
10/29 11:14, , 4F
10/29 11:14, 4F
→
10/29 11:14, , 5F
10/29 11:14, 5F
→
10/29 11:14, , 6F
10/29 11:14, 6F
→
10/29 11:16, , 7F
10/29 11:16, 7F
推
10/29 23:57, , 8F
10/29 23:57, 8F
→
10/30 10:58, , 9F
10/30 10:58, 9F
→
10/31 08:07, , 10F
10/31 08:07, 10F
討論串 (同標題文章)