看板 Soft_Job 關於我們 聯絡資訊
我覺得前文可能讓人有點誤解了,借這篇回 我認為要進FB難點有三: 1. 難點在於一邊寫CODE一邊要講英文,這要先練不然會死 2. 第二個難點是用 紙 + 筆,不是VIM 更不是 ECLIPSE 雖然說不要求CODE都沒錯字,但沒練過紙筆寫CODE穩死 (我是面對面INTERVIEW,因為我很怕電話英文聽不懂) 3. 緊張 <-- 相信我,一個印度人跟你講英文面試,面試十次還是會緊張 以上三個是私以為台灣人很難過INTERVIEW的原因 當然就是練習 練習 再練習就是了 至於那些說有題庫的 沒那回事,所有的考官都是自由找題目 當然很多熱門考題不練不行,但沒人有辦法練完 有興趣的人上GLASSDOOR.COM查FB,裡面題庫沒有上千也有數百 就算練過也不可能“背”起來 至於考這有沒有用,有! 不代表FAIL的人就實力不強,但PASS的人實力強的機會較高 當然問題不會只有寫CODE,還會有很多資料結構、ALGO、OS的問題 只是就寫CODE能力這項來說,你FAIL就難錄取(FAIL其它的也未必有救) 反正想進去的人多的事,他們也不缺 ※ 引述《sandy4444 (質樸)》之銘言: : 我是資工系大三的學生 也想應徵看看intern // 是類似summer intern 的那種?? Intern必須能在美國合法工作,非公民沒錄卡只能用CPT 也就是你必須在美國留學,並且待滿九個月以上才能申請CPT 至於全職就沒限制,反正H1以FB來說,要幫你辦不是問題 : (之前一直以為是不可能接觸 沒想到真的可以interview) : 不敢相信申請link-in 就可以投fb履歷 > < 你誤解了,FB的RESUME是上線投的,跟LINKED IN沒關 http://www.facebook.com/careers/university.php PUZZLE以前是公開的,現在好像是改用CHALLENGE http://facebook.interviewstreet.com/recruit/challenges 如果你認識Recruiter,可以用LINKEDIN加他,有機會可以跳過CHALLENGE了 我是當初和朋友組隊參加hackathon http://www.facebook.com/hackathon 沒拿第一,但有得評審獎,所以之後就沒再要我線上作PUZZLE 不過我不覺得HACKATHON比較輕鬆 24小時不睡覺CODING真的是要人命,雖然他們提供無限的紅牛咖啡食物 但那實在是太操了…不想再來一次…><” 但結論是想進FB的人很多,上面是我知道拿到INTERNVIEW的方法 (但我沒通過,所以就祝大家好運了) 硬要說,這很麻煩,連拿個Interview都好煩… 貼一下我回家後自己寫的(大陸仔的答案啦) (原題問到的是回答有幾種組合) 但我問他能不能給我HINT,他說如果覺得回答有幾種組合不會寫 可以改“印出”所有組合(這比較簡單,用DFS就行,我打結了,連這也死) (難怪FAIL ~ 哭哭) 原題(文法可能有錯,我就我聽懂的硬打下來) You know that in a basketball game, a player may get either 2 or 3 points when he made a shot, right? Suppose we have a special game that a player may make a point 2, 3, 5, 11, ... and at the end of a game the final score is N, say 100. Can you write a function, returning # of possible combinations of scores. (The order is not matter here.) 然後我發呆了好一陣子,他接著說 If you think this problem is too hard for you, you may just print out all combinations. 然後我假設分數只有三種,丟了一個三個FOR的暴力法,當然,他不滿意,就說 What if you get the forth or fifth type of score? 簡單的講暴力法不是問題的關鍵,問題是你不寫把FOR寫死 因為你不知道有多少種CHOICE 下面是阿陸啊講給我的解法 public static int count(int[] choice, int target) { int[] pre = new int[target + 1]; int[] cur; for (int c : choice) { cur = new int[target + 1]; for (int i = 0; i < cur.length; i++) { if (i < c) { cur[i] = pre[i]; } else { cur[i] = pre[i] + cur[i-c]; } if (i==c){ cur[i] += 1; } } pre = cur; } return pre[target]; } //別叫我解釋,不相信的自己跑,答案是對的就是了 //我沒處理CORNER CASE,像是N為負的這種,INTERVIEW時考官也沒要求 //不過你時間多的話要加IF在最前面CHECK也行 Space Complexity: O(N) 就二個N+1 的ARRAY 假設分數有C種 Time Complexity: O(CN) 在我電腦上跑choice = {3, 7, 11, 13, 17},target = 100000 不需要1秒,答案是 2140103010 如果想跑更多的數,把int改成long就行了 不用遞迴,就典型的DP,他不到十分鐘就寫完 他說這題他以前遇過類似的,所以很快 我有請教他平常怎麼練習,他說他就在這裡參加比賽 http://www.topcoder.com/ 免費的 後來才知道,人家是ACM大陸代表隊,世界第六名的隊伍的LEADER 聽說有史以來,台灣還沒拿到冠軍過。(我們要加油) 後來我們有合作一些PROJECT,我可以跟你保證,這些ACM的高手 CODING實力很強。 有的人會說,啊我平常寫CODE都是查MSDN或是JAVA DOC用別人的LIB 很不幸的是FB或是這些軟體大公司裡面,常常要寫自己的LIB 換句話說,除了你偶爾要CALL 別人的Library你也要寫給人家CALL 更不用說,他們解的問題不會是平常那種標準什麼連資料庫取資料這種 也就不奇怪他們對寫CODE能力要求的原因 當然上面都是我的胡亂猜測,大家別太認真(汗) 當然是考試就是可以“補習”的啦 所以基本上考古題可以多練練,當天記得睡飽然後別緊張 我有順口問了他們,正職的面試 他說,基本上差不多,但他們會出機票讓你飛去總部面試 (台灣的話,可能先用電話面1~2次,但最後還是得飛去面完剩下的) 面試一整天,原則上五~七關,每關45分鐘 在白板上寫CODE,不是電腦 祝要衝FB的鄉民好運囉 題外話聊一下Hackathon (在學校辦的) 基本上就是用24小時寫一個東西出來,什麼都可以 然後FB會有評審,各校第一名的就送你去總部再比一次 贏的團隊當然就保證HIRE囉 FB不適合每個人,HACKATHON完其實我就多多少少覺得不適合我(酸) 一邊寫CODE,一邊放NBA的比賽(投影到大螢幕上) 然後不斷放音樂(很大聲像PARTY) 每三十分鐘會抽獎玩小遊戲 喝不完的飲料,吃不完的食物 三不五時FB的員工會滑到你旁邊跟你hey man... what are you doing now? 沒錯,他們一邊在你旁邊丟球 + 溜滑板一類的 基本上就是Coder Party 和電影不一樣的事,不喝酒,然後不比快(比酷+有用的成果) 系統隨你,語言隨你選,作什麼也隨你 如果自認為不擅長考ACM類型的題目,覺得自己是"實作"型的 走這條路也可以錄取:) 比完我只想睡覺,什麼都不想 我的隊友很強,撐了24小時,我中間至少昏迷了三個小時(睡著了) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 76.169.69.1
lmr3796:台大我沒記錯兩年還三年前拿過World Final第三 02/26 14:54
chucheng:Asia or World ? 02/26 14:59
chucheng:更正一下,是沒拿過冠軍 (WIKIPEDIA) 02/26 15:00
chucheng:至於金牌獎是第幾我不曉得,我沒參加過 ><" 02/26 15:01
chucheng:已更正 02/26 15:03
※ 編輯: chucheng 來自: 76.169.69.1 (02/26 15:03)
Wolfken:如果你是要寫lib給人家call,比較重要的反而是code要self 02/26 15:35
Wolfken:contained,loosely coupled,要有延展性,要很小心設計你 02/26 15:35
Wolfken:public的interface,因為一旦出去有人開始用了,你要再改 02/26 15:36
Wolfken:就有很多限制,壞的架構就會跟你到永遠,這跟你解題快不快 02/26 15:36
Wolfken:更是沒什麼關聯囉 02/26 15:36
danielguo:另外 FB 電話面試常用 collabedit, 可以把電話設擴音講 02/26 15:48
danielguo:話說 Amazon AWS 在招不少人, 有興趣的可以上網站看 02/26 15:58
bleed1979:感謝分享,得到很多資訊。 02/26 17:40
CGary:Top coder 真的是每個高手都會去玩的地方 XD 02/26 18:37
manlike:如果只是要算有幾種方法, 這題只需要用一個N+1的陣列.. 02/26 19:10
manlike:啊陸仔的寫法的想法是, 只用2分可以可湊成哪些分數, 多了 02/26 19:14
manlike:3分可以多湊成幾種分數, 然後 5分, 7分, ...... 02/26 19:15
manlike:其實考這種經典題目沒啥意義, 比賽這種這題都直接背起來的 02/26 19:17
manlike:時間寶貴啊~ 這種送分題, 都是第一個被解決掉的 XD 02/26 19:20
manlike:如果要考也考加一些變化的, 比較看的出實力.. 02/26 19:22
final01:這種題目 拿連面試還可以阿 又不是在參加比賽 XD 02/26 19:40
genius945:這問題之前看cormen好像有,也有一種用backtracking的解Y 02/27 18:29
genius945:不對,找了一下筆記不太一樣XD 02/27 18:30
※ 編輯: chucheng 來自: 131.179.64.159 (02/28 06:29)
chucheng:backracking可以解,如果要"印出"所有的組合,就是 02/28 06:29
chucheng:用backtracking 02/28 06:30
iamccc:good context 02/28 21:30