我這兩年提高技術的經歷和感覺(溫馨區危機篇)

    和2017年的稅後收入相比,19年的稅後收入預計能翻番,固然基數絕非是5萬10萬,畢竟17年的時候我已經達到了Java高級開發的職級。並且在這基礎上,尚能作到生活工做平衡。html

    回想起來,做對了很多事,也走了很多彎路,因此打算用若干篇系列文記錄這一過程,一方面也算個總結,另外一方面也把走過的彎路寫出來,但願各位朋友看了有所收穫。java

1  在外企溫馨區,工資性價比高,但我的所掌握的技術太沒競爭力

    在2017年初的時候,我在外企也享受了一段比較溫馨的時光,到什麼程度呢?程序員

    1 早上應該是9點上班,但9點半辦公室裏會有一半的人,從9點45開始,一些老油子(也包括我),會陸續到達,一些混吃等死的人(不是我),會10點或者更晚後到。有些人可能會想,這不算什麼,人家互聯網公司有比這個時間更晚的,但外企前天的下班時間通常不會超過7點。面試

    2 到了之後,先看下美國的郵件,若是沒大事(通常不會有),早上慢慢回下郵件,到11點半吃飯,外面逛一圈,週五能逛兩圈,1點15開始幹活寫代碼。spring

    3 下午,若是遇到可能會擔責任的事,就拉上人開個會,你們定個方案,而後慢慢作,作到5點半,坐等下班,若是很忙,不會超過7點。數據庫

    4 晚上和老外開電話會議,通常一週1次,晚上9點到10點。國內老闆管人事,業務向美國方彙報,國外用的技術絕對沒國內先進,因此你們懂的。編程

    5 一年過兩份假期,中國的以外,美國假期當天沒郵件過來,因此第二天通常也沒事。好比7月4日是獨立日假期,美國不上班,因此咱們7月5號通常沒郵件,也至關於沒事。緩存

    說到這裏,可能你們很是羨慕,其實天下沒免費的午飯,我這樣的工做經歷過之後,技術落後到什麼程度?數據結構

    1 平時工做,java只須要JDBC,Spring都用不到,ORM就用相似hibernate的框架,因爲沒業務需求,組裏還專門成立spring cloud學習小組,就學些基本的demo案例。多線程

    2 SQL就通常的增刪改查,也就是個MySQL主從讀寫,沒有LVS。

    3 部署用Jenkins + Git + Sonar,這塊勉強沒落後,這是我可貴的能帶到新公司的技術。

    4 Redis用單機版的,Nginx + lua,也就是個調研項目,Netty或kafa或Mycat等組件,沒據說過,甚至dubbo都沒機會用。

    因此當時,只要是組內跳槽出去的,過三個月後技術就能超過咱們。這還不算,最糟糕的是,當時我更不知道BAT等互聯網公司究竟用什麼技術,也就是說,我當時開始準備面試時,連該準備什麼都不知道。 

2  剛開始面試,撐不過半小時,只能硬着頭皮不斷學

    我是何時打算要換工做的?看網上,一些工做年限遠小於個人人,在互聯網公司裏工資比我高,並且獎金至少是4個月的,再結合本身整天技術沒進步,就着急了。

    剛開始的時候,因爲不知道要學什麼,只能一方面先看,另外一方面先找些小公司去面試。回想起我當前面試的窘況程度,簡直不堪回首。

    1 面試官問,你分佈式框架用過哪些?應該是Redis之類的,但我直接說,用過Spring MVC框架。

    2  面試官問,你用過哪些緩存?我說,我用過HashMap裏放內容,做爲緩存。再深刻就不知道了。

    3 面試官問,大家數據庫層面怎麼作優化?我只能說到經過執行計劃優化。分庫分表,我都沒據說過。

    後來好些了,也看了諸如Netty和Redis之類的框架,也能撐過些基本問題,好比Redis有哪些數據結構,Netty如何設置編碼器和解碼器。但一些底層問題一問就倒。好比Redis如何搭建集羣,Netty裏讀寫索引的工做原理。

    諸如此類,雖然一次次面試失敗沒回音的滋味很差受,但總算知道了前進的方向,一方面,趕忙根據面試問題,把相關知識點看熟悉,另外一方面,會看面試被問到的底層代碼。

    到後來,我也看了很多文章,這段時間我遇到的問題是,其實到後來,一些組件我都掌握了,並且也看了一些架構方面的書,但一方面沒實踐經驗,面試過程當中無法說上細節,另外一方面,缺少架構技術和業務的整合,因此面試時,只要是個資深面試官,就能看出個人技術是看來的,而不是實踐獲得的。因此一些小的互聯網公司我都進不去,更況且是BAT。 

3  中間出了一本書,也在不斷講課,從中不斷感覺到本身和平均水平的差距

    這段時間裏,用屢敗屢戰來形容我也不爲過,爲了提高能力,我也開始在博客園寫文章。爲了提高本身的技能,我還到一家培訓學校去講課。對,是講課掙錢,而不是去出錢聽培訓。固然,那時我Java基本功仍是很紮實的,也寫了Java Web輕量級開發面試教程Java核心技術及面試指南這兩本書

    經過講課,我一方面沒誤人子弟,另外一方面在備課的時候,還加深了對Java核心和Web的理解。更重要的是,我結實了很多資深老師,在學生中,也不乏牛人,我也算臉皮比較厚,尚能虛心向人請教,因此那個時候,好歹也搞清楚了該看哪些方面的內容以及須要達到的程度。    

    以前我是經過面試和看文檔,瞭解外面廣泛用到的技術,講課後,隨着接觸到更多的牛人,我能清晰地看到本身和平均水平的差距,甚至一度產生了繼續在溫馨區混的想法。不過幸虧,後來面試成功了兩家公司,也算增長了我一些自信心,並且我也算危機感比較強,因而終於也堅持下來了。 

4  面成了一家互聯網金融公司,但沒敢去

    面成的第一家公司是之外派的身份去一家比較大的互聯網,錢很多,但想一想是外派,當時個人外企名稱畢竟也能唬人,並且好歹仍是正式員工,還算穩定,因此就沒去。

    另一家是P2P金融公司,也應聘成了架構師,記得當時面試分4塊。

    第一是Java核心和Web的基本功,好比集合多線程Spring MVC,我這個秒過。

    第二是數據庫,我好歹看了一些關於執行計劃的調優,也瞭解了一些MySQL的集羣,也過了。

    第三是大數據,是Hadoop,我一些理論過了,也能證實本身在項目裏用過,但被面試官看出,只用過基本的技能,一些集羣和高級知識點沒用過。

    第四塊是我最擔憂的分佈式集羣,不過當時就問了Dubbo和Zookeeper整合,以及Redis集羣的基本問題,沒怎麼細問,結論也是用過,但沒深刻了解過。 

    結果我就經過了面試,但看下來這是家P2P金融公司,風險太大,就沒去。後來果真,18年6月份,這家公司倒了。再回想一下,可能當時能力比較強的人已經不怎麼願意去這家P2P公司了,因此招聘要求有所下降。

    總之我也是幸運,不然17年年中進去,18年年中公司倒閉我出來,再怎麼解釋總會有污點,後來再要進好公司就難了。

    後來當我進了一家互聯網公司後,就見到很多3年左右經驗的程序員進入一些P2P金融公司,而後公司踩雷倒了,隨後他們就在一些小公司之間展轉,每家公司也幹不長,這類人很惋惜,其中不乏能力強的,但由於每家公司幹不長(雖然不是我的緣由),但再要進好公司,可能就得先在一家公司幹個至少3年證實本身穩定性不差後再作打算了。  

5  終於面成了一家規模比較大的互聯網公司,換公司前很是忐忑

    若是幹一類事情的成功率只有10%,那麼幹多少次,至少成功一次的機率能達60%?

    幹一次失敗的機率是90%,連續8次都失敗的機率是43%,也就是至少成功一次的機率已經接近60%。並且那個時間點,至少面試了10家,按這個算下來,成功一次的機率到66%了,更況且每次面試結束後,我會不斷總結提高,因此終於在17年的年末,我面成了一家互聯網公司,雖然不是BAT,但規模不小,國內也很是知名。

    因爲我那個時候已經成爲麪霸了,面試時表現也算不錯(不過進去之後領導估計就後悔了)。

    1 第一輪技術面試是我將要進組的組員,介紹項目經驗時,我直接拋出線程池內存模型,再經過volatile和final講述了ConcurrentHashMap內部細節,面試官沒細問就讓過了。

    2 第二輪技術是組長,我介紹了一通JVM虛擬機優化和SQL優化,也讓過了。說實在話,前兩輪技術面試都是以我爲主,面試官沒怎麼問。

    3 第三輪技術面試是部門經理,原本,我還想挑戰一下架構師的工資水平,但部門經理火眼金睛,雖然我竭力說了一通,結論仍是:我基本功還行,架構方面也有實踐經驗(真實狀況是個人經驗都是看資料得來的),但架構方面沒達到架構師的水平。因而和我明說,我能夠幹架構師的活,但工資只能給到高級開發的水平,若是願意就繼續。

    我在面試以前,已經知道這家公司加班不算少,因此在心裏也定了一個公司標準,說實在的,當時在工資方面其實沒達到個人預期,但一方面我也面了那麼多了,也知道本身的真實水平,更知道要找家能提供架構師方面實踐經驗的公司很難。相反,若是繼續在外企呆着,時間不等人,估計再這樣下去個人技術就更加落後於平均水平了,因此我就咬咬牙進去了。

6  後文預告

    在原來外企辦離職的時候,很多人理解我,但也有人說我從外企到互聯網公司會很苦,其實我已經作好了準備。

    技術上,我就繼續看相關資料,態度上,當時我還在外企,就再也不繼續鬆鬆垮垮,好比上班再也不看手機,多看技術資料,也儘可能在下班後再多幹點活,以適應加班的節奏(事實上在外企我根本想象不到互聯網公司的加班)。

    不過心態上我還算放鬆,畢竟本身基本功不錯,並且人也算上進,肯多問,並且我也作好了進互聯網公司被別人鄙視的準備。辦好外企的離職手續後,我就與18年的年初去後面要詳細介紹的互聯網公司。

    在下文裏我將詳細介紹:

    1 外企的技術與互聯網技術的差距以及我是怎麼適應過來的。

    2  外企有工做節奏比較慢,因此人際關係不復雜,而互聯網公司推崇狼性文化,我是怎麼一點點經過加班和改變工做模式等的方式適應過來的。

    3 尤爲地,我是經過作項目和多問人,熟悉了很多分佈式組件技術,從而在升級到架構師的路上不斷進步。

相關文章
相關標籤/搜索