作者Zephyr750 (紅蓮西風750)
看板Soft_Job
標題Re: [討論] 寫程式的經驗如何培養?
時間Tue Oct 29 08:36:36 2013
你一開始說懶得教。
「往往受到挑戰,在不想浪費唇舌的情況下乾脆懶得教了」
最後
「其實說到最後新人並不是不願意學,而是對於沒有工作經驗的人
,這些東西就等於沒有道理」
其實,教新人真的不是這麼容易。
就像別的站友說的「當初是誰面試他進來?」
也許這些問題可以拿來面試談
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
→ b6byc:沒提到溝通方式. 人是很難把自己的想法,強制別人身上的. 10/29 09:07
推 pkmilk:推 10/29 09:07
→ leiyan:直接丟個幾千行規模的case去做就能體會了 10/29 09:28
→ moonshade:話說,這些我都解釋了,但是有的人就是你一講他不對 10/29 11:14
→ moonshade:他馬上就生氣,我拿別人當例子解釋給他聽就OK 10/29 11:14
→ moonshade:但是錯不在他,講過就忘 10/29 11:14
→ moonshade:不過還是謝謝你解釋這些東西,我講這些應該沒有你清楚 10/29 11:16
推 vvind:推 10/29 23:57
→ notBeing:解釋是解釋,能不能夠說服人是另外一回事 10/30 10:58
→ Zephyr750:專業能力,是用來說服人的!並不是用來決定事情的。 10/31 08:07