看板 Soft_Job 關於我們 聯絡資訊
有點擔心一般的面試官出程式題會漸漸帶往偏差的方向, 使面試者試久了,就學到一種投其所好的思維, 將來思考任何程式都以快為準則,卻沒有思考寫程式的其他有趣的地方, 例如Knuth稱程式設計之藝術的那些方面. 有句話說:資訊安全的程度,就像鏈條一樣,強度等同於最弱的那一環. 比擬這點,程式的效率,差不多可以說是 「跟全部程式中效率最差的那一段程式碼一樣差」, 要說你寫的程式很快,必須保證效率最差的環節也是最快的,才能算數. 並不是養出隨手就寫出最快的程式碼就算是可錄取. 如果有高人是這個樣子,頂多稱為程式界的激進份子兼為優秀的第一線程式工. 這種人或許在第一線寫程式很猛,思考流程稍微可以,但創意就不見得可以. 把程式的寫法要求到極端是很恐怖的,例如: for (i=10; i>0; i--) s += i; 本來C/C++提供的好功能讓妳隨便寫for迴圈都可以,但是一旦為了快, 從 1 加到 10 非這麼寫不可. 激進的面試官只喜歡看到這個答案. 但是,進行工作的時候,若是老想著每一個環節都要最快, 就是pre-mature optimization的毛病了. 而許多大工具和大架構的效能調校,通常不是把局部程式碼修得很快. 因此,我個人當面試者也是反看面試官的態度, 如果他只關心程式敘述層級的問題,差不多就知道是要找個工人而已. 這種工作我也不想要. 我很幸運找到了稍微高層一點的職位,讓我能夠有一些思考問題解決的空間. 很好奇,有沒有人找程式工作,在專長欄不特別指出會哪些語言和工具? 有人敢寫專長是problem solving或architecture performance tuning嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.69.71 ※ 編輯: yauhh 來自: 61.231.69.71 (09/21 13:05)
psliurt:我程度不是很好,但是 文中的那個程式是無窮回圈嗎? 09/21 13:30
ericinttu:i-- 吧. 另外不會是無窮迴圈, 會回到0的 09/21 13:34
iincho:看你職位, 你應徵高階一點的位子就有機會...:p 09/21 13:34
ericinttu:s也要給初始值才行 09/21 13:34
ericinttu:對不起 班門弄斧了 orz 09/21 13:35
※ 編輯: yauhh 來自: 61.231.69.71 (09/21 13:38)
iman00b:更極端的應該是 for (register int i... (敲昏拖走) 09/21 16:21
SILee:"register int i"這樣的寫法compiler不見得會理你XD 09/21 17:00
kerickuo:呃... 這個不是用 int n=10; (1+n)*n>>1 就解決了嗎? 09/21 17:21
而且我文章重點不在於有沒有創意, 而是在於你面試一個人是要給他足夠的發揮空間,看他能表現的限度, 或者是以一種限制再限制的"超高效程式"思維去嚇唬面試者, 對他們示威說:如果你程度不到這樣的位置,就不要投履歷來我這邊. 但我真的要再三強調,我絕對沒有攻擊他人缺創意的意思. 那些意思如果是你自己加的,不要把它塞到我這邊. ※ 編輯: yauhh 來自: 218.160.213.114 (09/21 19:55) ※ 編輯: yauhh 來自: 218.160.213.114 (09/21 20:02)
leicheong:可以用assembly language寫inline function嗎? :p 09/21 20:03
leicheong:另外problem solving那些... 我會覺得很難形容吧. 09/21 20:07
leicheong:要知道programming本身就是problem solving, 要把這列出 09/21 20:07
leicheong:來恐怕這能力的強度需求不會是一般的高... 真的提問時 09/21 20:08
leicheong:解問題解得不夠漂亮恐怕考官的印象分會直線下降呢... :P 09/21 20:10
leicheong:至少我在當interviewer時就會這樣想... 09/21 20:11
yauhh:因為前面有人說,沒有人在介紹自己專長是使用扳手的... 09/21 20:16
yauhh:所以我在想,那一大堆人都寫專長是C/C++,如果不要這麼寫的話, 09/21 20:17
yauhh:是不是應該寫一些不會太不實際的專長,資料庫調校就是一例 09/21 20:18
yauhh:另外,考題的質量上,以乘法為例,有一些程式寫法會用加法巧妙 09/21 20:28
yauhh:替代;但是實際工作的處理上,不會隨時都在想這個優化方式 09/21 20:29
yauhh:這樣,是不是說,把考題換成高層次一點的題目比較有意義? 09/21 20:30
TKyo:如果 "1 加到 10" 是固定要做的, 直接定義結果常數就好 09/22 18:11
TKyo:也不用跑迴圈去計算, 前提是它是 "固定" 要做的 09/22 18:11