※ 本文為 layzer 轉寄自 ptt.cc 更新時間: 2015-01-06 16:52:14
看板 Soft_Job
作者 標題 Re: [請益] 我是不是程式設計師的料?
時間 Tue Jan 6 00:11:42 2015
※ 引述《administer (系統管理者)》之銘言:
: 作為一名受害者,我要勇敢上來踢爆sedgewick大大您的見解有偏差
: 以證明批踢踢真der害人不淺QAQ
咳, 抱歉這個嘛... 咳咳, 其實有下半卷沒講.
順便跟大家分享一下我的經驗. :P
既然是 job 類板, 我也來寫一些關於面試錄取與否的咚咚.
: ※ 引述《sedgewick (三分熟的鬧鐘)》之銘言:
: : hsundo 兄不要氣餒, 不過你這個程式是真的要改一下.
: 這週小妹弟被導航王公司通知面試工程師
: 過去前一個小時要寫考卷,其中有一題是C++閏年題
: 正當小妹弟躊躇該怎麼寫比較能展現我的高度智商時
: 突然腦中靈光一閃,我相信最簡單的程式就是最好的程式
: 經過版上大大的教誨更是自信十足
: 於是就遵照sedgewick大大的示範
: 我依樣畫葫蘆:
: printf("2000, 2004, 2008 ... 2100\n");
: ↑
: 中間太長懶的列
這個程式的數字如果全對(去掉尾巴那個 2100 還沒有其他錯誤).
那其實也還好, 甚至不要錯太離譜嘛... 也還好.
請聽我道來...
以程式訓練而言, 九九乘法表當然是基本中的基本.
另外什麼費氏數列也是基本題, 科科.
不過通常面試不會只考基本題, 譬如九九乘法表會有所謂的進階題.
我可以洩幾題我的題庫給大家看.
類似題一:
假設用 1000x1000x1000 的三維矩陣表示一個 1μm x 1μm x 1μm 的空間.
A.) 每個矩陣元素有一個既定的數字叫做溫度 T.
請以程式概念表達如何計算 gradient(T) 與 laplacian(T).
B.) 每個矩陣元素有一個既定的向量叫做電場 E.
請以程式概念表達如何計算 curl(E) 與 divergence(E).
C.) 請預測 A.) 與 B.) 程式的困難處會是哪些?
PS: 我會把所有數學符號的運算方法全部寫出來, 這個不必猜.
類似題二:
請寫程式計算橢圓 x^2 + 4y^2 = 1 的周長.
並估計
1.) 計算誤差
2.) 程式執行所需的時間
PS-1: 老規矩, 會給線積分的形式, 不過要自己會轉成差分.
PS-2: 這有另一個變形是求 x^2 + 2y^2 + 3z^2 = 1 的表面積.
這一類叫做數值方法的入門題.
專門考驗一個人有沒有辦法把數學形式轉成電腦可以處理的形式.
以我的經驗, 每個可以在「引導下」把問題答完的面試人員...
都會是非常優秀的程式人員.
看職位也可能考難一點的.
譬如說 sin(1/x) = 0 在 10^-20 到 1 之間有幾個解之類的.
至於這些題目嘛, 我通常不知道標準答案, 但是我會知道答案是不是正確方向.
第二種是機率跟排列組合之類的問題.
第二種是機率跟排列組合之類的問題.
一次考足資料結構跟演算法.
基本題當然是 1A2B 那種咚咚.
進階題就很多啦, 譬如寫一個模擬 Buffon's needle 的程式.
或者寫一個預測等電梯時間的程式.
或者又寫個大樂透用一萬元包牌, 號碼要怎麼選, 期望值才會高的程式.
老話一句, 在「引導下」可以答得很好的人, 通常程式也寫得不錯.
總之九九乘法表或者萬年曆怎麼寫根本就不重要.
它們其實只是壓驚用的題目.
避免應徵人員被一堆奇怪的問題嚇到無法作答.
而我發現, 被錄取的人都可以很好地回答我所列出來的那些問題.
所以先科科一下.
繼續我們來分享什麼叫做程式技巧...
我覺得最大的苦惱是...
「每個程式員都只會重構他看得懂的部分. 」
而且..................會充滿熱情.
讓我最幹的一點是, 通常這些在整組程式當中只是無關痛癢的東西.
有人會認真跟我討論一百筆資料的排序該怎麼寫, 而不必呼叫 qsort().
問題是這個東西了不起佔個 1ppm 的運算量.
另外佔了 30% CPU time, 一個 selection rule 寫了一萬五千行的「片段」.
完全視而不見... 因為看不懂.
還會有人跟我討論這個 if 跟某一個 if 應該併在一起.
因為什麼又什麼(通常是因為 condition 在那個 snapshot 一樣. )
當我說, 那請把那一個十幾層, 總共四千多行的 if-else 處理一下時...
又繼續裝傻.
這些都是真實發生的事情.
而這些看起來非常荒謬的寫法(if-else 寫到數千數萬行)...
通常都是很有名的加速技巧.
譬如我的手上就有一段程式碼, 只有一個 ANSI C function.
但是整個檔案的大小是 4.6MB.
你沒看錯, 這個函式寫了將近 5MB.
當然這鐵定是 code generator 做出來的.
不過我說要把對應的 generation rule 找出來時, 就是不會有人做.
每個人寧可跟我討論這個按鈕應該是紅色還是綠色.
我要說的是, 大家真的覺得一個按鈕是什麼顏色有這麼重要嗎?
當然有時候很重要, 但是有更多的時候不是那麼重要.
所以嘛..............九九乘法表或萬年曆怎麼寫, 會很重要嗎?
好吧, 我也不敢保證.
不過對我來說不是那麼重要, 因為這是標配.
當然我還是會考; 是因為因為因為... 它是給受試者緩和情緒用的.
: 然後我就從古亭捷運站按回卷了QQ
: PS. 它們公司環境很不錯,裝潢讓人心情很放鬆的說~
管理員兄不要傷心, 這是下半卷. :D
話說我的考試沒什麼程式技巧就是了.
譬如我不會問 printf - main 的結果是什麼.
--
新詩練習:新鮮。踩破初春裡的狗大便;不經意的滄桑,滿溢著嫩黃的喜悅。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.57.20
※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1420474305.A.BA6.html
※ 同主題文章:
12-27 21:07 ■ Re: [請益] 我是不是程式設計師的料?
12-28 20:31 ■ Re: [請益] 我是不是程式設計師的料?
01-01 17:38 ■ Re: [請益] 我是不是程式設計師的料?
● 01-06 00:11 ■ Re: [請益] 我是不是程式設計師的料?
推 : 推~想知道那個加速技巧是什麼?聽起來很酷!1F 01/06 00:23
→ : 查表法?2F 01/06 00:27
推 : 我都不會 看來我還太嫩了3F 01/06 00:29
→ : 哦,它只是一個單純的窮舉法... :P4F 01/06 00:30
→ : 屬性不同啦, 譬如 web programmer 不會來我這...
→ : 屬性不同啦, 譬如 web programmer 不會來我這...
→ : 不能同意 把數值計算拿來做臨場考題6F 01/06 02:17
→ : 真正做數值的 哪個不是numerical recipe放手邊隨時查
→ : 把那些數值演算法背起來 並沒比較厲害 真的要考的話
→ : 應該考演算法的診斷 直接給suboptimal數值演算法 問
→ : 該算法可能碰到的問題
→ : 真正做數值的 哪個不是numerical recipe放手邊隨時查
→ : 把那些數值演算法背起來 並沒比較厲害 真的要考的話
→ : 應該考演算法的診斷 直接給suboptimal數值演算法 問
→ : 該算法可能碰到的問題
→ : reco 兄, 我列的都只是大一大二程度的題目而已.11F 01/06 02:25
→ : 還沒到深究 numerical analysis 的地步.
→ : 但是這些題目會需要受試者同時又懂數字又懂電腦.
→ : 這種人都是超級程式員的潛力股, 就算他其實數學很爛
→ : 實務上我用這種類型的題目, 比起考程式本身要有鑑別力
→ : 當然也可能遇上主考官不考這個... 絕對有可能.
→ : 不過我是不覺得會用九九乘法表當成判斷標準就是了.
→ : 至於考業界常用的演算法, 我的心得是.............
→ : 這只會找到近親繁殖的產物而已, 非常畸形的篩選結果
→ : 還沒到深究 numerical analysis 的地步.
→ : 但是這些題目會需要受試者同時又懂數字又懂電腦.
→ : 這種人都是超級程式員的潛力股, 就算他其實數學很爛
→ : 實務上我用這種類型的題目, 比起考程式本身要有鑑別力
→ : 當然也可能遇上主考官不考這個... 絕對有可能.
→ : 不過我是不覺得會用九九乘法表當成判斷標準就是了.
→ : 至於考業界常用的演算法, 我的心得是.............
→ : 這只會找到近親繁殖的產物而已, 非常畸形的篩選結果
→ : 你這樣考簡單的 那更有問題啊 因為有看過就是有看過20F 01/06 02:36
→ : 有人答出來 你就不知道是他剛好以前看過 還是現場想
→ : 有人答出來 你就不知道是他剛好以前看過 還是現場想
→ : 其實不會, 這種題目可以考倒台大資工跟數學出身的人.22F 01/06 02:38
→ : 因為會寫程式的人通常把數學忘光了, 需要提醒...
→ : 而數學很熟練的人, 會完全不知道怎麼處理程式問題.
→ : 後者會被刷掉, 雖然基礎數學還在, 但是我是要找程式員
→ : 最後的結果通常會有點意料之中或者意料之外...
→ : 意料之中是說, 名校的學生平均而言都答得好上一大截.
→ : 但是答得最好的那個可能背景完全難以想像...
→ : 因為他的資歷裡頭完全沒有相關的東西, 譬如說化工畢業
→ : 然後去台泥還是中油什麼地方上班三年.
→ : 這種的我一定用, 那根本就是撿到寶.
→ : 但是! 通常這類高手一問下去才會知道他打算出國了...
→ : 大部分還是只能在答得很出色的族群裡面選一個.
→ : 因為會寫程式的人通常把數學忘光了, 需要提醒...
→ : 而數學很熟練的人, 會完全不知道怎麼處理程式問題.
→ : 後者會被刷掉, 雖然基礎數學還在, 但是我是要找程式員
→ : 最後的結果通常會有點意料之中或者意料之外...
→ : 意料之中是說, 名校的學生平均而言都答得好上一大截.
→ : 但是答得最好的那個可能背景完全難以想像...
→ : 因為他的資歷裡頭完全沒有相關的東西, 譬如說化工畢業
→ : 然後去台泥還是中油什麼地方上班三年.
→ : 這種的我一定用, 那根本就是撿到寶.
→ : 但是! 通常這類高手一問下去才會知道他打算出國了...
→ : 大部分還是只能在答得很出色的族群裡面選一個.
→ : 數值運算有專用工具,不是一般程式在解決的面向34F 01/06 08:11
→ : 拿來做程式能力的判斷有點奇怪,這篇比較像是找特定人才(?)
→ : 至少我看到這類題目,直覺反應是用matlab之類的
→ : 拿來做程式能力的判斷有點奇怪,這篇比較像是找特定人才(?)
→ : 至少我看到這類題目,直覺反應是用matlab之類的
推 : 很別緻的篩選方法,請問你是數學系出身的嗎37F 01/06 09:19
→ : 不過我老實說離開學校之後就沒碰數值,如果面試突然問個
→ : 積分可能都要想一下,就像@galic說的,我直覺也是用Matlab解
→ : 如果碩士在學時應該有把握可以答出來,可是這些年
→ : 在業界被汙染(?)後,可能會答的2266 XDD
→ : 我另外好奇的是這種篩選法,很可能會把資工出身的篩光光吧?
→ : 反而答的好的比較容易是數學系或是其他工程類科系
→ : 請問你們面試的職位是什麼呢?
→ : 不過我老實說離開學校之後就沒碰數值,如果面試突然問個
→ : 積分可能都要想一下,就像@galic說的,我直覺也是用Matlab解
→ : 如果碩士在學時應該有把握可以答出來,可是這些年
→ : 在業界被汙染(?)後,可能會答的2266 XDD
→ : 我另外好奇的是這種篩選法,很可能會把資工出身的篩光光吧?
→ : 反而答的好的比較容易是數學系或是其他工程類科系
→ : 請問你們面試的職位是什麼呢?
推 : 「每個程式員都只會重構他看得懂的部分. 」 XD45F 01/06 10:57
推 : 會給公式又會引導,應該是要看解問題的能力吧46F 01/06 11:50
→ : 大樂透怎麼包期望值都一樣吧, 可能是變異數最小?47F 01/06 13:19
推 : 上篇是九陰白骨爪 這篇是內功心法48F 01/06 13:34
→ : 上下卷應該M起來
→ : 上下卷應該M起來
→ : 個人比較認同這種考法.也比較有意思.而且這考法對新人來說50F 01/06 16:22
→ : 會是一個具有被認同感的考法...
→ : 會是一個具有被認同感的考法...
--
※ 看板: layzer 文章推薦值: 0 目前人氣: 0 累積人氣: 704
回列表(←)
分享