看板 Soft_Job 關於我們 聯絡資訊
答應朋友要寫,結果一直拖,在暫存裡面修修改改的 內容有點長不好意思 小弟114學碩畢業,研究領域是Machine Learning和DSP 畢業後選擇研發替代役,進入影音系統廠的Mobile App部門 (在這裡奉勸未畢業的朋友,找研替要多想想,不要沒魚蝦也好) 在此期間寫過iOS App,Mac Driver/Application,Windows MFC,Linux Embedded 專長是影音相關和救火(?) 研替結束後因為沒有其他想法,且公司有給一些願景,就順勢簽了一年合約 不過此期間有不少當初的規劃跳票(每次都看那塊畫到快要發霉的大餅) 為了避免黃金枷鎖和脫離孤獨單兵開發生活 決定拒絕第二年的合約離開 面試目標: 個人在開始找面試前有列出了一些目標的想法和條件如下 1. 薪資與頭銜成長不列入重點 以離職前為基準(年薪100,資深工程師),不要差太多都可以接受 2. 排除外包廠與大公司 3. 重視UI/UX(有硬體產品的話包含ID) 4. 重視軟體開發流程 這次主要是透過headhunter尋找機會 會這樣做是因為104太多罐頭邀請信件,大多難以直接判斷公司好壞 因為給自己排定的時間有限,評估之後就放棄了104,如果有主動聯繫才會聊聊看 以"正常"的hunter來說,他們能夠從你的履歷去推薦合適的工作機會 也會比較了解推薦的公司狀況,可以從他們身上取得較多的側面資訊 此外他們手頭上也常有非公開徵才的好職缺(競爭者較少XD) 上面之所以會強調"正常",是因為有遇到一問三不知,或是只會問待遇的hunter 更多是拿了履歷沒有聯繫也沒有後續(大概是被拿去塞buffer了吧) 要自行判斷hunter的好壞或是靠朋友去推薦可靠的hunter 履歷內容: 我只有寫English CV,同步到104上,內容著重在3個點上 1. 開發過的產品與負責的部分當中較重要亮眼的部分(例如Streaming Engine) 2. 熟悉的語言和工具,按照熟悉程度排序 3. 使用過的第三方Library和Framework 在前公司有某次機會面試畢業生,他的履歷跟系統文件差不多詳細 覺得簡單條列式就好了,寫太多讀起來就跟教授懶得批論文是差不多的感覺 整體面試心得: iOS職缺大多以前端為主,少部分是需要碰到底層的職缺 各公司都是以Objective-C為主,加上C與C++ (個人有在寫Swift,履歷上也有標示,但只有一間公司問到) ObjC特性方面問題都會圍繞在 GCD,Block,Category,Protocol,Delegate,Memory Manaegment,Multithread 面試下來認為最重要必須要會的是GCD 另外NSOperationQueue也最好略懂,至少要能夠說明何種情況下使用而不是輕量的GCD 想更熟悉ObjC建議可以翻翻Effective Objective-C 2.0 (其實我也只看過這本ObjC的書._.) iOS平台開發問題,基本上UIKit一定會問 常見的就是View Hierarchy與UIControl家族 深入點的有Layer和The Responder Chain Design Pattern部分必考MVC,Singleton,Delegate 除了上述之外,比較特殊而印象深刻的問題有 1. App之間的資料交換 (URLScheme,KeyChain和剪貼簿) 2. JavaScript與ObjC的溝通 (我只答得出UIWebViewDelegate) 3. iOS Daemon (未回答,但網路上有文章介紹還沒時間看) CI,Unit Test,Auto Test也有不少公司問到 但只寫過很基本很基本的XCTest,這部分就沒辦法給太多意見了 Mac有兩間公司提到,在台灣開發Mac的人很少,有在做Mac的公司更少 問的問題都滿深入的,例如KEXT,Daemon與Agent的實作 雖然有碰過也有答出來,但大部分問題真的不是"寫過"就能夠回答的 另外可能因為這次大多是新創或小公司 在面試時常常會遇到技術外的問題或對談,三個建議的點 1. 知道自己想要追求什麼 2. 保持對產品的靈敏度(產品觀) 3. 對Bussiness Model的興趣 能夠順暢表達出來會有很大的幫助 (很多面試一聊開就聊了三四個小時....) 各公司面試心得: 前兩間是在我懶散時期面試的,被洗臉洗得一蹋糊塗 也算是推動自己在後來的半年內積極學習的動力 因為時程趕,很多公司未給答案我就先婉拒了 但從hunter那邊收到的資訊這次年薪大約落在90~120,是可以接受的範圍 部分公司和主管聊天的成分居多,內容會有點冗,請多多見諒 orz 1. PositiveGrid 年初由hunter主動推薦 共面試兩次,採遠端Skype面試 考了不少Design Pattern,C++,Objective-C特性與iOS問題 Design Pattern偷K書算平安地渡過 因為從沒認真學過C++,從語言特性到進階的STL應用或template等都不是很熟悉 這部分直接被完爆 ObjC部分幾乎考了所有上面提到的重點 還有為何盡量不要使用NSNotificationCenter等等實作面的問題 iOS上主要考View的Hierarchy,Layer和The Responder Chain等UI層概念 當時覺得自己有DSP與影音處理背景,玩過樂團,也有底層的經驗應該是十拿九穩 但因為當時太混了,算是把我的臉洗得超乾淨XDrz 第二次面試的主管遇到我答不出來的問題都會解答,是學到最多的一場面試 結果:無聲卡 2. KKBox hunter主動推薦 在面試前hunter有提醒過去被刷掉的面試者很多是沒有跟上時代 也就是對於新技術沒有敏感度(聽到的時候也是抖了) 除了沒考C++外,面試內容和第一間大體類似 問題滿多元的,問到許多Framework的使用 此外也有一些不限定於iOS的問題,像是database之類的 唯一有提到些許Swift的面試(不過主要是聽面試官幹Swift) 結果:感謝卡 3. MixerBox 104聯繫 面試內容滿紮實的 第一階段紙筆,內容有ObjC的基本與應用考題,還有Algorithm的題目 第二階段上機考,主要是資料處理與TableView實作 (我不會用Storyboard,所以開了project後新增了一個空白nib 結果緊張之下在IB中view沒有連到viewController上,Failed) 第三階段iOS工程師面試,主要針對前兩階段的作答來問問題和了解過去經驗 第四階段後端主管面試,紙上作答題 內容是陣列搜尋,手寫code,卡住的話主管會給一些提示 (不過我還是寫得一蹋糊塗) 充滿強者的公司,其實一開始在介紹公司成員的時候心裡想著 "怪好像有點太強,我還是先走好了..." 聽起來沒有制度上的開發流程,開發前討論完就是單兵作戰,負責自己的Quality 結果:感謝卡 4. Sentri 主動找hunter得到的面試機會 Kickstarter上募資成功的新創公司,對於他們的產品有十足的興趣 (自己是ID迷,所以看到ID做得好的公司都會超級有興趣XD) 沒有問太多技術問題,主要聊過去的經驗(Encode,Decode,Streaming) 由於該公司是做Smart Home,知道我過去實驗室是音訊辨識這一塊,所以也聊了頗多 結果:還沒得到回應就已經下決定了,請hunter幫我轉達 5. Pinkoi 唯一一間主動投的公司 因為閃光有在使用Pinkoi,自己也偶爾會上去逛逛買買設計商品 加上對於電商發展有一定的興趣 雖然知道跟自己過去所做的相距甚遠,還是主動投了 打算過去聊聊看看是否有新的發展方向 iOS方面主要是做前端Native App(包括現在的消費者商場與經營者後台) 面試內容主要是過去的經驗談,ObjC基本應用和GUI處理的演算法 其中演算法是直接寫code在會議室透明玻璃上 外頭坐著一整排的女生不時盯著看坦白說有點壓力XD 結果:婉拒了第二次面試 對方收到婉拒信還很親切地回信告訴我他們搬家了歡迎去坐坐,揪甘心 6. iCHEF 主動找hunter推薦,是第一個在辦公室看到實體Scrum Board的公司 考試部分為上機考(兩個小時膀胱爆裂),資料處理和UI實作 結束demo後是口試問答ObjC與iOS的相關問題 其他的部分大多是過去經驗了解與閒聊(?) CTO兼co-founder聊起來覺得是有理想與堅持的人,公司氛圍相當舒服 (還有手沖咖啡社,一度心動) 結果:雖然吸引人,但由於跟我想發展的方向的有段差距,請hunter幫我婉拒了 7. iSAP 104聯繫 CEO突然打來做phone interview,問題大多圍繞在Video專業上 之後面試了兩次,幾乎未再考技術問題 第一次為CTO,主要了解過去經驗和聊天 第二次為CEO,介紹公司,人格特質了解和聊天,之後便口頭邀請我加入 側面資訊相當少,非常低調,由CEO主動找面試對象 對他們的想法與Bussiness Model很心動 且CEO願意讓我在公司內學習各方面事物 這讓我在做決定時猶豫了很久 結果: 想自己摸索出未來發展的可能性,因此先婉拒了 唯一面試後有互相留下直接聯繫方式的公司 8. 趨勢 不確定是hunter推薦還是104聯繫 會接受邀請是因為想看看台灣數一數二大的純軟公司現在和未來的發展 紙筆考試主要為C語言,有一些特別的Memory offset考題 面試的主管是做郵件威脅模組的 面試到一半主管和我才覺得怪怪的(明明是來面試iOS職缺的) 之後就先被請回,隔幾天做了iOS/Mac的phone interview 9成的問題都是圍繞在Mac上 因為有接觸過,所以大體上都能夠回答 結果:無聲卡 9. VMFive hunter推薦 新創公司,Virtual Machine應用 第一階段CEO面談,主要介紹公司的願景與了解人格特質 第二階段工作內容面談,有iOS工程師與PM參與 內容有ObjC的特性問題,還有一些影音處理的相關討論 第三階段co-founder的面談,與第一階段類似,但有一些技術的討論 最後CEO再聊了一陣,是技術沒什麼相關性內容 是個人喜歡的辦公室風格(不管是氛圍還是裝潢) 結果:offer get 10. Splashtop hunter推薦 專做遠端桌面的公司 這次面試有個小插曲 當天到了hunter給的地址辦公室卻不是寫Splashtop,而是一個英文教學的公司 (心想說他們開始發展副業了嗎?線上Low Latency英文教學嗎?) 恰好那間公司的員工出來,表明是來面試iOS工程師後被請了進去 待了一陣子後那位小姐過來尷尬地說這裡沒有我要找的那個面試官 "........." 馬上撥給hunter,原來她給我的是以前的地址 (-_-) "啊哈哈哈...我們也有在找iOS工程師,如果有興趣的話也歡迎你..." (那位小姐大概是這麼說的) hunter傳來正確的地址後才匆匆忙忙趕了過去 面試的主管一開始拿了張考題希望我寫,但看了一下都是問答題 就大膽要求口頭回答,幸好他接受了 內容大致上為ObjC的特性 裡面比較特別的有MRC和ARC的比較,因為前面面試的公司都沒有提到MRC (大概是現在用ARC的人比較多,不會特別提到MRC) 心裡大概對於這個工作機會有了幾個猜測 1. 他們對於Memory控管比較嚴謹 2. 核心是舊產品不斷修改上來 3. 要找Maintain的人 口頭的部分主要是Mac的問題居多,面試官也表明了他們想找會Mac的人 (台灣寫Mac的人真的是稀有動物啊...) 剩下就是介紹公司和發展方向,也交流了一些iOS/Mac上的AV的處理 第二個主管面試基本上和第一階段差不多,多了詢問需求和待遇 自己是Splashtop第一代產品老用戶,事實上我相當喜歡他們 只可惜聽起來目前的發展有些保守,並不是目前我想做的工作 結果:婉拒第二次面試 11. iKala hunter推薦(而且是不斷推薦) 第一次面試是遠端面試,線上考試 第二次面試是直接到他們辦公室 (Rayark在對面啊啊啊,當初有想過投看看,但專業實在差太遠,只好放棄) 主要是白板題與再一次過去的經驗了解 整體來說是算成熟的新創公司,空間舒適,看重RD,也注重彼此分享 結果:hunter有表達他們的興趣,但是先請她婉拒了 12. 某IPCam廠 104聯繫與前同事內部推薦 不寫名字是因為和前公司關係敏感(雖然大家都知道是哪一間) 因為內部合作過的前同事眾多,基本上就是去填填資料喝喝水聊聊天 結果:offer get,是所有面試當中package最好的 -- 很久沒面試了 剛開始面試的時候真的會滿緊張的,不過多去個幾間後就會變成老屁股了XD 預祝求職的各位順利~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.115.132.231 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1439222799.A.446.html ※ 編輯: pw429311 (58.115.132.231), 08/11/2015 00:09:51 ※ 編輯: pw429311 (58.115.132.231), 08/11/2015 00:10:37
vidcina: 推 感謝分享! 08/11 00:20
neotek: 推 08/11 00:27
jazzter: 好實用,謝謝分享 08/11 00:29
Cellia: 謝謝分享~ 08/11 00:30
tomin: 推 08/11 00:38
※ 編輯: pw429311 (58.115.132.231), 08/11/2015 00:57:24
ceowu: VMfive有小郭雪芙XDDD 08/11 02:14
ProGuy: 推 08/11 08:35
s001582000: 有一半我看不懂 我也是寫obj-c的啊 崩潰~ 08/11 08:39
srxrrr: 強者推!!!!! 08/11 10:25
Boska: 推 感覺很強 08/11 14:38
NCUking: 研替公司真得要慎選呀 看起來原po實力不錯 08/11 16:22
NCUking: 當初選擇去當兵 起薪大概就能有你現在的水準了 08/11 16:26
不...我之前真的超混,很多東西都是這半年到一年內學起來的
tom19830924: 請問從找工作開始到上工中間時間多久 08/11 19:29
大約花了近一個月面試,兩週決定,休息兩週後上工,所以大概是兩個月
monoceros629: NSNotificationCenter實作上的問題是什麼? 08/11 19:32
我只知道其中一個問題是:在ARC下若沒有謹慎使用的話會造成memory leak 個人少用是因為架構,坦白說不是很愛這種可以隨便穿來穿去的protocol 但NSNotificationCenter在某些狀況下確實方便,就是在設計使用時要特別小心
milonga332: 推~ 08/11 20:22
※ 編輯: pw429311 (58.115.132.231), 08/11/2015 21:17:10
Antirrhinum: 大推~~~超強的!!! 08/11 21:57
Ghosso: 我覺得使用nsnotification還要記得處理disappear的時 08/12 02:17
Ghosso: 候要記得移除 忘記的話感覺會發生恐怖的事XD 不過有的時 08/12 02:17
Ghosso: 候真的需要他 08/12 02:17
yuanruo: Notification有leak問題?因為block回調那個retain cycle? 08/12 02:19
block回調是一個,另一個就是樓上說的observer沒移除的問題 太隨便使用真的會發生恐怖的事情 而且如果不是自己debug的話,那個人會比你自己更找不出問題在哪....
monoceros629: Machine learning 有在業界用到嘛? 08/12 10:17
monoceros629: 為什麼不想進大公司? 08/12 10:18
monoceros629: Pair programming很有趣,單兵開發常想睡 08/12 10:19
Machine Learning我出社會沒使用過,不過現在big data正夯,應該一堆公司在用 不進大公司是希望自己可以碰觸更多領域,也可以更靠近產品一點 Pair Programming的話....想節省成本的公司基本上就不會採用啦 orz
MOONY135: 強者... 08/12 11:19
CuteAmi: 我也是常救火的UXer.....XDDD 08/12 12:52
偉大的救火弟兄好(敬禮)
ntddt: 超詳細推 08/12 21:03
※ 編輯: pw429311 (58.115.132.231), 08/12/2015 22:53:57
neotek: 想請教何時該用NSOperationQueue or GCD 08/12 23:01
neotek: UIView的layer會問一些什麼相關的問題呢? 08/12 23:03
NSOperationQueue還是GCD我的回答是 "如果task處理的問題較為複雜時會選擇NSOperationQueue,其他用GCD" NSOperationQueue(其實應該把NSOperation一起拉進來談)底層其實也是使用GCD實作的 但GCD很多操作必須要自己處理 像是他沒辦法直接做task的cancel,更沒辦法清空queue 其他例子像是task有依賴關係諸如此類 自己處理當然也是可以,但當程式變得複雜時會超容易產出bug 回到NSOperationQueue,雖然比起low level的C-based GCD來說效能較差一點 但因為他是屬於比較上層的class,當中包含了很多常用的task處理method 使用起來會簡單很多(不用加一堆flag或特殊處理method) 如果對GCD的task控管沒有把握的話,我比較推薦使用NSOperationQueue layer部分我遇到較多的問題是問view和layer的關係,屬於iOS UI層架構方面的問題 另外還有一些CoreGraphics的問題 但這邊我比較不熟,所以就沒辦法給太多意見了
viper9709: 推~感謝分享 08/12 23:10
※ 編輯: pw429311 (58.115.132.231), 08/12/2015 23:49:29
neotek: 感謝大大解答!! 08/12 23:49
wk7: 真的感謝分享!!! 08/13 17:17
otaku5566: IOS新手路過,覺得好害怕@@~~ 08/14 16:46
TsaoCCFGOGO: 沒有原po萬分之一強,但NSOperation跟GCD在今年WWDC 09/06 15:41
TsaoCCFGOGO: 都有session, 可找來聽聽 (我是完全新手,冏) 09/06 15:41