作者:菜蟲 時間: 2018.08.06
記錄下近半個月面試的感想,
-
“面試造飛機,入職擰螺絲”
大部分的公司在考慮的候選人的時候,往往都是往大了的地方去考慮,綜合各種因素,但是對於一個求職者來說,很多時候是不能完全滿足的,畢竟大部分的都是跟著公司或者產品的方向走的。所以需要更多的基礎知識跟個人態度,
-
謙卑的態度
作為一個技術人,個人覺得這是一個最基本的素養,勇於跳出舒適圈,對新奇的事物保持好奇的態度,對平常的事物保持虛心的態度,去求知,去學習;不要太過於計較眼前的利 益
面試前
以前我在找工作的時候,從來不考慮這些問題,但是,隨著工作年限的增加,到達一定的年限後,如果不是自己已經在工作中積累了相當多的知識和經驗,全靠工作中那點知識是完全不夠的。在找工作的時候就會出現工作年限跟經驗不匹配的情況,這個時候更多的就需要突擊學習,老祖宗留了一句話“臨陣磨槍不快也光”,這點對我個人來說的話,是非常受用的,畢竟工作跟找工作不是一碼事,而且很多時候,當時玩的很6的東西,過段時間差不多都忘了,也就基本上記得踩過的坑,和一些大體上東西,細節的一些就記不太清了,這基本是我現在在工作中遇到的情況。
在需要換工作的時候一定要給自己預留一個準備的時期,我個人的話建議,一個月左右,不要太久,也不要太短,也可能很多會說,我三天前看的東西,讓我一個月之後採用,鬼才記得哦;我這裡有一個比較好的方法:做筆記,做粗不要細,根據自己的理解能力去做,做一個自己能看懂的,網上那些東西可以看,但一定要自己去理解記錄,還有,不到迫不得已千萬別去背面試題,一定要理解,去實踐!耐克不是有一句很有名的廣告語“just do it”,直白點就是去幹,別跟老子說別的,一句話,就是幹,老子拿起鍵盤就是一把梭!
簡歷
個人覺得簡歷的紙張在2頁半最好,不要附加任何無關工作的東西,性別、年齡、籍貫、住址什麼雜七雜八的不需要再這上面體現出來,畢竟也會讓你填個面試表,裡面都會有這些內容的,真正有用的也就是電話跟郵箱,一個是可以約你面試用的,一個是給你發麵試邀請跟offer用的,足矣。
工作經歷這塊,個人覺得滿足4點就可以了,起止時間、公司名、職位title、工作內容,對於工作內容這一塊,我有幾點想說的
- 剪短精悍,學會總結提純,儘量能直觀表現出來工作內容跟業績,能用數字說話的就別BB
- 突出自己,儘量突出自己在團隊中的價值,畢竟你也不是什麼好酒,不會自誇的王婆怎麼賣出去自己,但是一定不要裝逼,裝過了就不好收場了,還有,中國的文字博大精深,同樣一句話用不同的詞彙表達出來意思就完全不一樣了,所以,你懂的
個人技能這塊的除非你真的是精通,不然老老實實寫熟悉或者深入瞭解過,反正我是不敢寫的,大概寫個7~10條,主要突出以下幾個方面,工作經驗,專業技術,第三方主流庫的理解
對於專案經驗,主要寫3個左右就可以,能突出一定的代表性,內容的話可以介紹下這個產品是什麼東西,如果是日活在W級別或者下載量在百萬級別再或者是進過主流商店排行榜的的可以描述一下,突出描寫下在這個專案裡的職責,用的什麼技術,做的什麼功能,用到了什麼理念,儘量的按條來表述,如果太多了,可以調重要的寫,能一筆帶過的就別複述
畢業院校,如果你是211/985的一定寫到最前面,寫在工作經歷前面,如果是跟我一樣的,非知名主流大專生,寫到最後吧,畢竟很多時候看的還是你的能力
面試
我也面試過人,很多人其實就是能力特別強但是在嘴上表達的時候稍微欠佳,get不到重點,這種時候其實就可以把面試官當成普通同事,面試也就只是一場技術交流的過程,不要侷限在一個問題上,畢竟面試也不會因為一個問題直接pass掉你。
說話的技巧方面,特別忌諱的就是直接來一句,不會,不瞭解,不清楚,這個否認三連下來,誰還會提的起興趣在繼續聊下去,要學會委婉的說,舉個例子,因為我最近的公司是做直播的,重點來了,這些都是第三方sdk做的,我怎麼知道,我的回答就是,公司這塊用的是第三方的,具體細節的東西,我們是看不到的,但是這塊我大概瞭解了下,巴拉巴拉。。既表達了我不會,又表現出來我對這塊又是有了解的。逼裝的又優雅又不會被打臉。能用一句話表達出來幾句話的意思,也能用幾句話表達出來一句話的意思
每次面試完一定要總結!總結出來自己的薄弱點,針對薄弱點突擊加強!
面試題
其實這個東西我是不想寫的,但是架不住總有問的,我就這次找工作的時候遇到的面試題大概寫一下,有些記不住,答案我就不寫了,自行google吧
-
OOP
- 物件導向的6大原則
- 從物件導向的角度講一下抽象類跟介面
- 怎麼設計物件,舉例說明
-
設計模式
- 你用過什麼設計模式,應用場景
- 同一場景下你為什麼選擇了這個設計模式,跟其他的設計模式對比,你覺得你用的這個好在哪裡
- 單例的優缺點
注:設計模式這個東西一定要在工作中嘗試去用,多注意總結,很多時候只要會其中一個,其他的基本沒啥問題
-
Java
- 類的載入機制
- gc機制及演算法
- ArrayList和linklist區別
- map、set、list的區別
- 執行緒的5種狀態、執行緒安全、同步問題(synchronized)、sleep與wait
- hashmap的原理及hash碰撞
- 執行緒池,構造方法的那幾個引數多注意下,至於裡面深點的東西我沒有被問到
- ThreadLocal,一定要去看下原始碼具體實現,這個跟handler是有關聯的,我就被問死過
- String StringBuffer StringBuilder
-
資料結構及演算法
- 排序,注意,一定要針對不同的場景給出不同的排序,不要一上來就是一個快排,要講出原因
- 自定義連結串列及反轉
- 二分法查詢
- 佇列,原理及應用場景
-
資料庫
- 資料庫三正規化
- 索引原理
- 事務原理
- 資料庫升級(資料量大的時候怎麼處理?用考慮過用指令碼做資料庫升級麼?)
-
Android
- App啟動流程
- View渲染機制(不是自定義View那個)
- Activity、fragment的生命週期
- 事件分發機制,一般講了之後都會出一個情景題,根據實際情況再去做講解
- 自定義View
- Handler,建議看原始碼,自己梳理,特別留意Threadlocal這個東西,一定要多看下,會結合場景問,也會單獨問裡面具體的一些實現
- Parcelable和Serializable的區別
- 記憶體洩漏和OOM,這個說的時候一定要先講下原理,然後再具體結合Android說
- Actiivity的4種啟動模式
- 廣播,動態和靜態註冊、本地和全域性,從這2個維度去講
- service 啟動方式,生命週期,service工作執行緒
- Activity view Window的區別及載入流程
- ANR定位
- AIDL及binder機制
- 熱修復原理
- LRU原理
- Activity的狀態儲存(onSaveInstanceState)及觸發時機
-
網路
- Http請求流程
- http和https的區別,
- https的單雙向認證
-
優化或高效能程式設計(重頭戲)
個人總結了以下幾個方面,可以根據這幾個方面自行總結:
- UI渲染方面
- 記憶體方面
- 電池
- 網路
- 架構
也被問到過好多次,這個東西說虛也虛,主要就是自己在做專案的是多留心觀察,多看看關於這方面的東西,有興趣的話可以看看人家做後臺伺服器一些東西,自己去總結提煉並付諸實施,而且不同的專案用的也不一樣,全靠經驗
結束語
差不多以上就是我這次找工作的一些感想和附帶的一些面試題,至於答案什麼的自己根據實際的情況總結,多在工作中終結知識點,多記筆記。實在是啥也沒做的,可以突擊複習,切記一定要以理解為第一前提的情況下,去做筆記,去記憶!背面試題是下下策
說下為什麼我總是說記筆記這個東西吧,我個人是比較健忘的,一般也就記個1周,很多細節的東西都會忘,但是一看到筆記,很多東西基本上都能想起來,而且每看一次,就會記憶強化一次,忘的速度也就會慢一些。
希望大家能拿到自己心儀的offer