本人半年前從外企裏跳槽出來到一家業內知名的互聯網公司,原本想寫篇如何在外企和互聯網公司快速提高本身的感想,但仔細一想,在軟件設計原則裏尚且有SRP原則,即一個類(或功能模塊)應當有而且最好只有一個職責,因此在這篇文章裏,就先專門寫在外企相關的感覺。互聯網公司的裏相關感覺待下次分享。 html
以前我寫過一篇博文,工做2年進外企,不是難事,給出進外企的建議,本文會在這篇文章上作進一步的補充。前端
外企有什麼好處?按照個人職業規劃,我該不應去外企發展?這不是本文關注的問題。並且,一千我的對此可能會有一千種不一樣回答,何況,本身狀況不一樣的同窗和所在公司類型不一樣的同窗,對此問題可能也有針對本身的回答。java
本文無心鼓勵你們去外企,固然更不會貶低外企,只是把描述一些客觀狀況,大主意得本身拿。本文更適合的閱讀者是工做經驗5年內想去外企的同窗。linux
正文開始-------------------------------------------------------------------------------------------------------------------------------------nginx
1 通常會到985或211高校或知名高校裏招實習生,從中選擇合適的入職。 web
2 社招,通常一本畢業後,若是再有2到3年相關經驗,就能夠具有面試資格了。面試
3 若是是二本,或者一本非計算機專業,那麼若是具有4年相關經驗,也能夠有招聘資格了。 spring
4 通常外企會從外派公司(Vendor公司)招外派員工,通常這部分的員工能力和學歷要求會適當下降些。每每這批外派員工,工做2年後,就能夠有轉成正式員工的機會了。sql
須要說明的是,外企通常會和獵頭合做,因此候選人若是經過獵頭,就能獲得更多的外企的面試機會。 數據庫
其實若是有進外企的打算,若是提前2年準備,那麼效果會比較好,但通常若是準備3個月,也能具有進外企的能力。
我是作java後端的,因此就從這方面講些注意要點:
1 Java Core方面
1.1 至少得精讀java編程思想,這本書仍是比較經典的,看完後應當能掌握其中的一些諸如併發,面向對象和集合等方面的思想,再此基礎上,最好再看本Effective Java 中文版。固然,其它書是多多益善。
1.2 集合方面,得了解至少一種集合(好比ArrayList) 的底層實現代碼,瞭解hashcode和equals的做用,最好再瞭解下ConcurrentHashMap的底層實現代碼。通常來講,能達到這些要點的,再刷些集合面試題,就應該能夠了。
1.3 多線程方面,得了解併發的各類手段,最好是看些併發方面的書,在此基礎上,得了解鎖,信號量等實現機制,另外,線程池也是必看點。
1.4 Jdbc方面,得了解批處理和預處理,在事務方面,得了解事務隔離級別。
1.5 面向對象和設計模式方面,最好是能結合項目說本身是怎麼用的。
1.6 最好在虛擬機方面,掌握些能夠打動面試官的說辭。
2 數據庫方面
其實就兩點,第一,常見覆雜sql的寫法,好比帶exist,子查詢,group by, having和distinct等的查詢。第二是優化,好比用索引,分區, 執行計劃等手段來優化SQL。
這兩點會衍生出不少問題,再深刻提問可能會涉及到數據庫集羣,分庫分表,NoSQL,大數據之類的,但對於外企的高級開發而言,瞭解到經過執行計劃優化SQL性能,或許就足夠了。
3 Java web方面
3.1 最好得了解一套web框架,目前面試官比較喜歡拿spring系列的來提問,好比spring boot, spring cloud。
3.2 瞭解一套orm的框架,好比mytabis,這裏,最好別停留在會用的級別, 還應當看下底層的實現代碼,好比如何經過spring注入數據源。
3.3 最好了解下spring 依賴注入,AOP,事務管理等方面的底層代碼。
其實這塊個人心得仍是比較多的,我就據此寫過java web輕量級開發面試教程。
4 架構方面
4.1 Redis方面最好了解下,好比基本數據類型等。
4.2 各組件,好比反向代理,消息隊列,網關,負載均衡等,能夠大體瞭解下。最好能結合一個項目,從前端到後端,系統地瞭解分佈式架構的組成以及各組件的做用。
4.3 若是能吃透一方面,好比mq,或者nginx+lua,包括知道怎麼用,知道底層的一些細節,絕對是加分項。
4.4 若是能知道如何在linux裏配置部署項目,如何經過linux命令快速查看日誌,定位問題以及如何在線修改配置,這也是個加分項。
這部分的內容比較長,來總結下。
第一必須刷題,各方面的都得刷,第二得了解些底層實現,第三分佈式組件這塊能夠經驗不多,但得會說。
其實對於互聯網公司而言,外企在技術方面的招聘要求會低些,至於低多少,不一樣人遇到的狀況可能不一樣,但根據本人的面試經驗,外企的錄取要求是,項目年限夠且能匹配,面試時能證實這點就行,而互聯網公司可能再會問些比較新的高併發框架以及性能調優的問題。
寫簡歷時,最好能讓面試官看出你以前的工做經驗和項目經驗和公司要求很匹配,在個人書裏以及以前的博客裏已經提到過這方面的技巧。
而後你能夠本身投,但最好是找獵頭幫你投。如何找獵頭?當你在多個網上表示出你願意換工做,獵頭就會找你,或者你能夠本身找些獵頭公司(本身搜),本身把簡歷給他們,或者你能夠找你朋友,他們多少也會積累些。
找獵頭時,你得明確告訴他們,你想進外企。或許一個獵頭手頭沒這個機會,但當你找了多個之後,這種機會就多了。
或者,可能在某個時間段,某個外企沒入職名額,你也能夠多找幾個,也能夠等(通常不會超過2個月)。
或者,你本身感受,本身的能力離開進外企稍微有些差異,那麼你也能夠和獵頭說,能經過外派公司先進(我見到的外派員工,通常2年後就有轉正機會,並且轉正率不低)。
若是你的下份工做不想再到一些小公司裏將就,那麼你能夠目標稍微堅決些,我想,經過上述渠道,至少你能有到外企面試的機會。
而後是面試,這塊在個人書和博文裏也提到過相關技能,這裏就再也不說了,但這裏請務必注意,必定得準備外語。
我記得我進外企剛開始幾回和老外開會時,就能聽懂三類話,打招呼(hi,hello),說再見(good night,byebye)和叫我名字,但我當時確實經過了面試的英語口試。
其實面試時,英語問題相對簡單,並且集中,好比介紹本身,介紹上個項目,介紹你最拿得出手(或最有感想)的項目,介紹你的興趣愛好(週末幹嗎),再有就是評價你本身(優缺點)。
並且面試的英語對話時間是最可能是15分鐘,就對話幾個問題,這仍是比較好準備的。另外,別擔憂英語差進外企後就不行,其實在語境了,英語提高很快,我在試用期事後,就能和老外簡單對話了,如今,雖然可能發音有口音(其實就不標準),但能夠不只能和老外進行工做上的溝通,並且還能適當聊些其它話題。
我自己能夠算個麪霸,並且作過技術面試官,以個人感覺,(同時結合其它很多人的感覺),面試進外企,難度比想象中要低,更多程度上,難點在於態度(不作很好準備)和心態(不敢去面)。
在外企裏,我體會下來的最大好處有以下三大類。
第一,這是個很是好的平臺, 好比以前你在一個不知名的公司裏幹,可能你工做n年後,工資確實會加,但也就在一些小公司輪轉了。 但在外企裏,你幹了3年,那麼你後份工做的選擇面就很大了,至少能考慮一些大公司,若是想要進互聯網公司,至少工做經歷這塊能達標。
第二,培訓機會不少,我經歷過的就有數據庫,前端,架構等方面的培訓,並且講師的能力都很高,除了從外面請老師,外企內部通常會按期有分享,一些大牛能說下本身的技術。
第三,比較穩定,並且屬於本身的時間會不少,比較適合本身接觸些新的技術。有時候,外企甚至像所大學研究院,往好了講,能夠實現工做和生活的負載均衡,我也據說有種說法,叫資本主義大鍋飯。
整體感受下來,若是在外企裏呆個幾年,技術能力或多或少都會有提高,但更重要的是,綜合能力提高得會很快。
通常來講,在大公司,尤爲是外企工做過的人,談吐,協調以及爲人處世的能力,會給人一種更加職業化的感受。
我不大想直接說在外企的感覺,因此這裏經過些問題和例子來讓你們自行感覺。
1 這是個問題,在國內的外企裏,可否真正作有核心價值的內容,或者換種問法,外企會不會把一些核心技術和核心工做帶到中國子公司?
2 在有些外企,好比干同一類活,通常來講,國外員工的職級要比國內的高些。並且,國內員工乾的活有時候要求會很細,好比蔥絲怎麼切,饅頭怎麼包,都會有具體的定製要求。
3 在外企,不只得和國內同事交流,更得在工做中和國外的同事交流,好比說要用一個新技術,可能審批鏈會到國外,因此不少事情上,得跟多的把精力用在溝通上。
4 外企的平均加班時間可能要比互聯網公司要少,因此在外企裏,團隊建設和公司活動會比較多,我經歷過的就有跳蚤市場,帶娃上班,展會等,至於平時看場電影吃個飯,次數多的我都數不清了。
5 這也是個問題,你們能夠想下,好比小張天天工做很是飽和,有加班,並且用到的是比較熱門的互聯網技術,而小李天天工做壓力不大,平時會有比較多的本身時間,那麼三年後,誰的提高快?
6 在外企的大概一年半時間裏,我有精力寫了兩本書,並且我老婆那段時間生孩子,我也有足夠多的精力來陪產。
這部分以一個冷笑話結尾,在外企,某人20歲時,他的外國上司是30歲,直到他35歲,他的外國上司仍是30歲。
這段話是寫給已經在外企裏的和打算進外企的同窗看的,以下先寫點大的方向。
第一,千萬得有遠慮,若是沒有機會接觸到最新的技術,好比大數據,分步式架構,那麼得多看點視頻教材,別讓本身太脫節。
第二,得抓住機會練外語,外企是個免費練外語的學校,你們能夠對比下一些口語學校的收費。
第三,外企的開發方式會比較正規,你們能夠經過實踐敏捷開發等模式,讓本身在軟件管理方面有足夠的提高。
第四,若是你感受開始吃老本了(技術進步不快,並且總是用現有儲備的技術幹活),那麼你要麼就得提高本身,要麼就能夠開始考慮了。
須要說明的是,當在外企裏呆滿2年後,就要避免「老油條」心態,由於這時,在公司裏也混熟了,哪怕以養老的心態,推諉掉一些事情,也能讓本身獲得「及格」以上的評價。不過我就見過很多人所以脫節於主流技術框架體系。
以下說些能快速提高本身綜合能力的建議。
1 外語就不說了,你們能夠儘量地多參加視頻或電話會議。
2 必定得多和別人交流,從而鍛鍊本身的溝通協做甚至是扯皮的能力。
3 多看看你領導(或者領導的領導)是怎麼管理團隊的,通常在外企裏,很能學到管理能力,相比之下,在互聯網公司,提高技術能力的速度會很快。
4 技術上,相比於其它種類的公司,你有足夠多的時間學,那麼不學白不學,你能夠經過寫博客,寫書,看最新視頻教程,本身搭建小型項目等手段來提高本身。
5 給本身制定個學習規劃,通常來講,再難的技術,學習3個月的之後,不敢說精通,但至少能夠吹噓了。這三個月如何安排:半個月瞭解大體內容以及準備環境,一個半月運行必要的代碼,再經過一個月到網上查資料再深度學習,這樣一年一來,保守估計能學到4種比較值錢的技能。我就這樣學了sprign cloud,高併發組件等技術的。
各位在引用本文前,請和本人打個招呼,引用時請註明原出處。
本人以在外企的面試和工做經歷,寫了此文,限於篇幅,沒法一一展開,你們能夠經過回覆來告知相關問題,好比如何進外企,如何準備面試等,或者問其餘問題,本人會針對性的回答。
對你們來講,外企不是惟一選項,但不失爲一種提高本身的方式。可能有些大神感受外企不適合本身,那麼也別以此理由來反對本文。
最後再說一遍,本文無心慫恿你們進外企,更無心爲外企站臺,本文的動機是想盡力幫助想進外企的同窗。若是你們感受本文有幫助,請點下方的推薦按鈕來支持做者,最後再次感謝你們讀完本文,