Re: [請益] 年紀大的人適合進來這行嗎?

看板Soft_Job作者 (三分熟的鬧鐘)時間10年前 (2014/03/29 17:55), 編輯推噓21(21052)
留言73則, 22人參與, 最新討論串10/14 (看更多)
※ 引述《sedgewick (三分熟的鬧鐘)》之銘言: : 事後我問他, 為什麼會定義成 DATA_SET_SIZE*4 這麼大的 storage size? : 他的答案也很妙:「提高安全係數. 」 : : 所以實際上程式員並不確定他會用到陣列的哪個部分. :D : : 推 uid88:程式寫成這樣,code review怎麼會過? : → sedgewick:整個事件的原因在於程式員的基礎知識有缺陷... 說到 code review 也有很有趣的事情. 我曾經遇過某個超級程式員. 英文非常破爛, 常常拼出莫名其妙的錯別字. 譬如會把 signal 拼成 single 之類的. 長一點的那是必敗無疑... 譬如 multicore_dispatcher 這種本來就很糊塗的字眼. 問題是他的產能是別人的十倍... 結果我就遇上其他的程式員跟我抱怨「能不能請他換一本正常的字典」. 因為錯久了, 大家都要跟著一起習慣那些怪字. 每個人都在擔心發生程式功力提升不多, 英文卻整個毀了之類的慘案. 偏偏又不能用 code review 卡住他. 他寫得更多、更快, 而且絕大部分情況都沒有問題. 寫到五維陣列都不會錯(這可以讓 99% 的 reviewer 消化不良. ) 純粹就程式邏輯而言, 被派去 review 的人都不會比他好... 你手上就是生不出第二個可以「趕上他的進度並修正他的工作」的人. 他只是不會拼字而已! :P 因此大家允許他使用一個很白爛的 house rule. int xxx; int xxxx; int xxxxx; 這種命名方式──我說的是 global variable naming convention!! 而且要有三個 x 以上... 當然用 a, b, y 之類的也無妨. 之後的悲劇嘛......大家可以猜猜看. 某天有個 xxxx 莫名其妙地被改掉. 當然第一個猜測都是, 「馬得這傢伙又拼錯字了. 」 但是很奇怪, 所有針對 xxxx 的存取都是正確的. 可是它就是在某些不知名的時刻會被改掉. 而且還是老問題, 只要加掛神器 gdb 的時候又一切正常. 最後查出來的結果嘛............勉強算是拼錯字. 只是他拼錯的不是 xxxx, 而是 xxx. 在某一個不起眼的角落, 有一個長得像這樣的東西... *((someptrtype *)&xxx + 1) = 20; 這裡面的 xxx 其實應該是 xx (昏倒了沒?) 被誤寫成 xxx 的 xx 是一個 local pointer... 偏偏還有個 global 的咚咚也叫 xxx, 是一個簡單的 type int.... 所以在某些 compiling condition 的情況下... 這個 &xxx + 1 會指到下一個 global variable 的位址, 也就是我們的苦主 xxxx. 到現在我還是不太確定要如何預防這一類的錯誤. 甚至我不太確定 valgrind 這種工具有沒有辦法完全識破這種錯誤. 說它是高級錯誤也不對, 明明只是拼錯字. 說它是低級錯誤嘛... 平庸一點的程式員隨便亂寫 pointer expression 那是當得一塌糊塗. 不會有什麼「明明程式跑得好好的, 就是結果怪怪的」這種. 因為連跑起來的機會都沒有. 話說這個 bug 印象中找了一個禮拜. 為了處理它, 還把整個 multi-thread 全部翻修成 single-thread. 當然是............沒用. 越高明的程式員, 犯下的錯誤越危險; 所以應該雇用猴子就好(誤). -- 新詩練習:新鮮。踩破初春裡的狗大便;不經意的滄桑,滿溢著嫩黃的喜悅。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.223.182 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1396086929.A.A27.html

03/29 18:29, , 1F
Find and replace錯字就好了為什麼要走到xxx那一步...
03/29 18:29, 1F

03/29 18:34, , 2F
程度差不多的團隊才有機會修補錯字...
03/29 18:34, 2F

03/29 18:35, , 3F
當你跟一個別字大王共事, 整份 code 有一半以上都很糊塗
03/29 18:35, 3F

03/29 18:35, , 4F
你會直接說「阿鬼, 你還是說中文吧!!」
03/29 18:35, 4F

03/29 18:36, , 5F
這就是為什麼最後會跟 xxx 這種命名妥協.
03/29 18:36, 5F

03/29 18:40, , 6F
至少也用aaa, bbb, ccc吧XD
03/29 18:40, 6F

03/29 18:43, , 7F
那當然, 可是這些也全被用光了... 最多可以到八九個 x.
03/29 18:43, 7F

03/29 18:50, , 8F
看到程式進步不多,英文卻整個毀了差點笑噴..XDDD
03/29 18:50, 8F

03/29 18:52, , 9F
可以用一個支援中文變數名的語言來coding.....
03/29 18:52, 9F

03/29 18:57, , 10F
這很慘烈的... Orz
03/29 18:57, 10F

03/29 19:50, , 11F
1F的方法感覺很好阿...
03/29 19:50, 11F

03/29 19:56, , 12F
replace不就好了…code review的成本花在效正英文,太浪費
03/29 19:56, 12F

03/29 19:57, , 13F
不是有重構工具?
03/29 19:57, 13F

03/29 19:57, , 14F
用XXX,XXXX,XXXXX 感覺也沒拼錯字高明
03/29 19:57, 14F

03/29 20:02, , 15F
這個嘛, 所有的 refactoring 都要求特定的 framework.
03/29 20:02, 15F

03/29 20:03, , 16F
問題是你的團隊不見得可以接受那些 framework 的限制
03/29 20:03, 16F

03/29 20:04, , 17F
至於 search and replace 哦... 當你要換的東西太多時.
03/29 20:04, 17F

03/29 20:04, , 18F
會換出一大堆非常科科的結果.
03/29 20:04, 18F

03/29 20:05, , 19F
而且最糟糕的是, 這些都還是沒辦法避免文中的錯誤
03/29 20:05, 19F

03/29 20:05, , 20F
只是「也許」發生時比較不會眼花繚亂而已, 也許哦...
03/29 20:05, 20F

03/29 20:07, , 21F
不信的話請隨便開一個程式, 一千行左右的就好...
03/29 20:07, 21F

03/29 20:07, , 22F
把裡面最常出現的變數, 譬如說 t 好了, 換成 t0...
03/29 20:07, 22F

03/29 20:08, , 23F
只換這樣就好了, 看看會有什麼結果...
03/29 20:08, 23F

03/29 20:11, , 24F
這種常見的case不是find和replace的字串前後加空白不就好了
03/29 20:11, 24F

03/29 20:15, , 25F
其實不是, 因為會有人寫 "t," 然後換行... 呼叫函數時.
03/29 20:15, 25F

03/29 20:16, , 26F
另一件事情是要確定是不是有其他的地方藏著 t0.
03/29 20:16, 26F

03/29 20:16, , 27F
當然還可以 find a word, 問題是你也會換到字串裡的 t.
03/29 20:16, 27F

03/29 20:18, , 28F
然後像 macro 裡面的 t, 這個該不該換?(通常是不該)
03/29 20:18, 28F

03/29 20:19, , 29F
總之如果只跑個 sed 把所有的 t 換掉, 通常是會死的.
03/29 20:19, 29F

03/29 20:20, , 30F
變數replace真的沒有那麼複雜,百萬行的程式碼也還好
03/29 20:20, 30F

03/29 20:22, , 31F
還是老問題, 有 framework 罩著的不難... 一般的很難.
03/29 20:22, 31F

03/29 20:32, , 32F
請個工讀生幫他改錯字好了(默
03/29 20:32, 32F

03/29 20:35, , 33F
啊咧! 有道理耶, 我當初怎麼沒想到...
03/29 20:35, 33F

03/29 20:54, , 34F
可能不是沒想到,很大可能是成見太深.
03/29 20:54, 34F

03/29 21:00, , 35F
科科, 繼續留著錯字這招我們也不是沒想過...
03/29 21:00, 35F

03/29 21:01, , 36F
既然說這叫成見太深的話, 我想問這會引發什麼問題?
03/29 21:01, 36F

03/29 21:01, , 37F
可以猜猜看, 文中我寫到一些... 但是還有另外一些沒寫的
03/29 21:01, 37F

03/29 21:15, , 38F
XDDDDD
03/29 21:15, 38F

03/29 21:36, , 39F
你們應該請一個工讀生坐在他旁邊,專門看他命名變數
03/29 21:36, 39F

03/29 21:38, , 40F
反正他產能是別人十倍,多花一個工讀生的錢應該是小case
03/29 21:38, 40F

03/29 21:53, , 41F
是啊, 所以才說請個年輕貌美的拼字秘書是個好方法(誤)
03/29 21:53, 41F

03/29 21:54, , 42F
開始練習拼錯字 (握
03/29 21:54, 42F

03/29 22:15, , 43F
想太多了..10倍 工讀生不用給錢喔
03/29 22:15, 43F

03/29 22:26, , 44F
讓他轉技術顧問可能比較實在
03/29 22:26, 44F

03/29 22:26, , 45F
Steve Jobs 的說法是「十倍到一百倍」... :P
03/29 22:26, 45F

03/29 22:27, , 46F
連拼字都有問題, 轉技術顧問會被欺負啦...
03/29 22:27, 46F

03/29 22:34, , 47F
用google翻譯就好了啊,複製貼上絕不會有錯字,頂多是文
03/29 22:34, 47F

03/29 22:34, , 48F
法怪
03/29 22:34, 48F

03/29 22:43, , 49F
你就饒了他吧, system call creat 都能拼錯了
03/29 22:43, 49F

03/29 22:58, , 50F
的確是很經典的 creat() 啊...
03/29 22:58, 50F

03/29 23:02, , 51F
好有趣的案例 XD
03/29 23:02, 51F

03/29 23:12, , 52F
這時候就是要引入漢語拼音命名法!
03/29 23:12, 52F

03/29 23:16, , 53F
答對了, 漢語拼音這招勉強有效!! 真的...
03/29 23:16, 53F

03/29 23:17, , 54F
不過大家都會很白爛地寫幾個 xiao3gou3() 之類的函數.
03/29 23:17, 54F

03/29 23:17, , 55F
或者 chang2jing3lu4(), 長頸鹿是也...
03/29 23:17, 55F

03/29 23:17, , 56F
說實在地有點礙眼就是了.
03/29 23:17, 56F

03/29 23:59, , 57F
長頸鹿太好笑了吧XDD
03/29 23:59, 57F

03/30 00:19, , 58F
題外話:這個簽名檔好熟悉, 是台大DR的元老嗎?
03/30 00:19, 58F

03/30 00:21, , 59F
啊咧, 竟然有人知道 DR 這個東西............
03/30 00:21, 59F

03/30 00:22, , 60F
簽名檔從沒換過, 但是帳號常因為發呆被砍了又砍就是了.
03/30 00:22, 60F

03/30 10:22, , 61F
試試 pair programing?
03/30 10:22, 61F

03/30 11:25, , 62F
很詭異,英文再差,寫久了應該也會背起來吧??
03/30 11:25, 62F

03/30 11:55, , 63F
年輕貌美的拼字秘書也能算成 pair programming 嗎?:D
03/30 11:55, 63F

03/30 11:57, , 64F
至於拼字哦, 背得起來的人其實就是拼字還不夠差... XD
03/30 11:57, 64F

03/30 11:58, , 65F
不要說我講的那個超級程式員了...
03/30 11:58, 65F

03/30 11:59, , 66F
連我自己拼 encapsulation 每次也都要靠字典啊~~~
03/30 11:59, 66F

03/30 14:35, , 67F
我是B83開頭的~剛好是DR開始擴張時......只是忘了
03/30 14:35, 67F

03/30 14:35, , 68F
您是哪位大大~
03/30 14:35, 68F

03/30 16:03, , 69F
啊... 這個都十幾年前了! :o
03/30 16:03, 69F

03/30 22:11, , 70F
推一樓~~而且拼字不是基本功嗎@@
03/30 22:11, 70F

03/31 16:57, , 71F
B83......現在都B03了XDDDDD 學長晚安
03/31 16:57, 71F

03/31 23:08, , 72F
creat很經典
03/31 23:08, 72F

04/02 01:34, , 73F
為什麼我覺得我認識這個人 @@a
04/02 01:34, 73F
文章代碼(AID): #1JDfYHed (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 10 之 14 篇):
文章代碼(AID): #1JDfYHed (Soft_Job)