裸辭到杭州的經歷分享

来源:https://www.cnblogs.com/shiyajian/archive/2019/06/22/11070649.html
-Advertisement-
Play Games

本文約3萬餘字,閱讀時間大概為1小時。主要包含:裸辭&辭職、西安&杭州、面試的技巧、螞蟻金服面試經歷、面試題分享等章節。距離來杭州已經過去3個月了,一直想把這幾個月的經歷寫下來,但是遲遲沒有動手,在整理了好久之後終於動手完成了本文,希望大家通過本文可以有所感悟。由於個人的工作經驗和視野有限,文章中的 ...


目錄

本文約3萬餘字,閱讀時間大概為1小時。主要包含:裸辭&辭職、西安&杭州、面試的技巧、螞蟻金服面試經歷、面試題分享等章節。距離來杭州已經過去3個月了,一直想把這幾個月的經歷寫下來,但是遲遲沒有動手,在整理了好久之後終於動手完成了本文,希望大家通過本文可以有所感悟。由於個人的工作經驗和視野有限,文章中的結論和觀點難免存在錯誤,部分觀點也會存在爭議,在這裡歡迎大家批評指正和進一步探討。

這篇文章我構思了2個多月,資料搜集整理、編寫、不斷校正的過程花費了大量的時間。在自媒體發達的時代,別一個複製和粘貼就可以剝奪他人的勞動成功。所以在這裡強調一下:

本文采用 @BY-NC-SA 許可協議,部分章節或全文轉載請註明出處和作者!!!

如果侵權的話,我會去自媒體平臺進行投訴。

1.背景

簡單介紹下自己,一個非科班的學渣,2015年畢業,2014年底通過培訓入行了Java開發。在沒有來杭州之前,以前待過大連和西安,不得不說這都是一些 IT 行業的三四線城市,IT 行業在這兩個城市的發展都差強人意,沒有一開始就選擇北上廣這樣的城市裡面有挺多故事,如果你有酒,我願意講給你聽。

西安的生活環境並不是很好,霧霾也好大,特別乾燥也很熱。剛開始是在家軟體公司,公司效益不好,自研的產品沒有銷量,開始轉型接一些其他公司的外包工作,好好的一個 Java 開發,寫了一個月的前臺頁面和 JS ,嚴重不符合自己的個人職業規劃。正好有個創業公司邀請去,是個搞互聯網健身的公司,然後就跳槽去了,自己也是比較熱愛體育和健身的,加上公司承諾的13薪和股票,我對這個公司抱有挺大的期望值。和絕大部分的創業公司一樣,這家公司也十分的不靠譜,管理者在技術和業務層面做出了多次錯誤的決定,各種毫無規劃的業務改革,就算多次的轉型,當時公司還是遲遲沒有用戶數據,也看不到清晰的盈利模式。一直找不到投資人的情況下,資金逐漸緊張了起來,工資也經常拖著發。但是這都不是最嚴重的,當初承諾的五險一金,竟然從來沒繳過公積金,連最低基數都沒,還有其中幾個月偷偷的把社保給停繳了,沒有任何人被告知,什麼13薪和股票更不用說了,都是大餅。雖然公司一直在說,如果找到投資人,有了資金,社保公積金還有13薪全給補上,當然這些我是完全不信的,混亂的管理,盲目的轉型,無法看到盈利模式,我想我是投資人我也不會去投的。在完全感受不到希望的情況下,我思考之後提出了辭職。在仔細考慮和分析了很久之後,沒有選擇換公司,而是選擇換城市,離開西安前往杭州。

來到杭州的日子是3月16日,找到工作入職的時候已經是5月5日了。為了不讓上家公司的事情再次發生,所以找工作的時候也格外細心。不得不說2019年果然是IT業的寒冬期,找工作真的很辛苦,本來面試機會比較少,經過一番挑選之後,可選的範圍又少了很多。這一個多月內,餘杭區、下城區、濱江區、蕭山區......杭州各個片區逛了又逛,求職的APP上那幾頁招聘信息,不是已經面過的,就是曾經被拒的,每天新增的機會就那麼幾個,也常常收不到回信。

面試這麼多公司中有被外包公司一面就拒的情況,也曾披荊斬棘堅持到見到了螞蟻金服的HR,有被公司強烈歡迎入職,也被有的公司指點的一無是處。還好自己比較堅強和自信,沒有喪失信心,沒有被這些挫折所打倒,終於收穫了一份滿意的offer併入職。現在所在公司是非常符合我的預期,公司以技術為驅動,CEO、CTO、很多技術大牛都曾經在阿裡幹了很多年,整個團隊的投特別游戲,並且業務是我自己比較看好的領域。入職到現在感覺特別不錯,用一句話概括就是:和一群優秀的人做自己喜歡的事。

2 辭職 & 裸辭

2.1 談談辭職

在這次裸辭到杭州的過程中,關我思考了很多,在職業生涯中,每個人都會經歷過多多少少的辭職,這是一個很正常的環節。關於為什麼辭職,馬雲就曾經說過,原因無非兩種:1、錢,沒給到位;2、心,委屈了。這些歸根到底就一條:幹得不爽。“為什麼辭職”也是一個永遠繞不過去的話題。我們通過三個問題,好好思考下辭職,然後再決定我們要不要辭職,甚至是裸辭。

1、自己:為什麼要辭職?

我們在一個公司的時間久了,時不時就會蹦出一個辭職的念頭。出發點很多,比如:覺得自己薪資報酬不匹配 、同事難相處、食堂飯菜太難吃、離家太遠、領導管理有問題等等。有些原因很客觀,確實沒有辦法改變,貌似辭職是唯一的解決方式。不過有的時候,我們確實要再思考思考。

舉個例子:領導分配給你以個任務,限定一天的時間完成,你加班加點凌晨才做完,雖說有點漏洞,但是你自己感覺很滿意,然後將結果反饋了上去。領導在收到你的結果之後,表現的非常的不滿意。領導的內心獨白是,這個任務半天就可以解決,給你一天是不希望給你過大壓力,同時希望你可以用剩餘時間好好檢查下,在這樣的條件下你就不應該出現這些漏洞。後面的結果很可能就是,領導在這次加薪的名單中劃掉了你的名字,然而你覺得自己辛辛苦苦的加班到凌晨,對這種的處理方式感到不公,於是產生的辭職的想法。

這種案例在我們現實工作中特別常見,你和領導對共一件事的判斷缺乏統一的衡量標準,所以產生了嚴重的認知分歧。這時候我們可以分析思考下問題到底出現哪一方。假如同年限的程式員如果都能準時完成,而你需要加班完成,這種情況下你還是別辭職了,換個公司也解決不了目前的問題,因為換公司沒有解決核心問題,核心問題是由於工作能力不足造成的,接下來所要做的就是提升自我能力到行業平均水平;又假如同年限的程式員都完成不了,他們可能需要兩三天,又或者一周,這樣對比下來你就特別高效和優秀。這種情況下你應該和領導進行一次溝通,因為不是每個領導都特別懂技術和具體實現,矛盾和分歧很有可能在溝通之後就解決了,溝通成功了也就沒必要再提辭職了,不要遇到事情第一反應就是辭職,這樣做有點太玻璃心了;當然,肯定有那種比較爛的領導,合理解釋也是狡辯,有證據也不看也不聽,自己的錯也不願承認,這時候你就可以考慮辭職了,我個人也是比較贊成的。

離職原因中最重要的一點,無非就是錢,很少有人覺得自己賺的多,基本都覺得自己賺的太少。偶爾從同事朋友那裡瞭解過他們薪資,然後就感覺為什麼他們某些方面並不如自己,但是工資卻比自己高。長期被這種想法提示,就會慢慢吞噬我們,走上辭職的路。首先不得不承認業內確實室友薪資倒掛是一種現象,但是更多的情況下,薪資是符合一個人所產生的價值的。你可以僅僅通過他工具不熟悉或者流程不規範就覺得他薪資不符,但他其他方面的優點你又確定你能瞭解到什麼程度呢。他的技術演講能力如何?潛力如何?創新力如何?你如果不能全面的分析一個人,那麼你這樣的對比就是不正確的。我有個人大的朋友,我老是嘲笑他 Java 技術太次,連一些常用的技術都不會用,後來他毫不費力的翻譯英文文檔,沒事給大家普及一些人工智慧方面的演算法,這時候我發現差距確實挺大的,他技術差的可能短期內熟練熟練就會了,而我的弱項,可能短期內,或者永久都追不上。我認為這是自己一個使用自己上限和別人下限對比的典型案例。當因為錢決定辭職的時候,一定要好好分析下,是不是自己的薪資報酬不符合付出,而不要去參考別人,嫉妒心和虛榮心往往會促使你做出錯誤的決策。

同樣,當我們為了錢而辭職的時候,我們不能簡簡單單的通過數字的多少來衡量兩份工作誰好誰壞,同時我們要看重一些無形資產的積累。舉個例子:員工A,第一年工資8000,第二年跳槽1W,第三年跳槽1W3; 員工B,同一家公司三年,工資1W,不過已經升級為組長。錶面看起來,員工A每年收穫的金錢數字相對多,但是頻繁跳槽,個人競爭力、業務熟悉程度等方面減分不少,隨著時間的推移,面試機會和崗位選擇越來越少;員工B每年收穫的金錢數字較少,但是業務熟悉度高,有實際管理經驗和才能,這方面在求職中很有競爭力,後面職業規劃中機會更多,薪資漲幅更有議價權。也不是說完全不看錢,也不是說完全看重錢,我們需要制定自己的職業發展規劃,在金錢和能力提升不能夠同時滿足時,我們需要從自身做出一個合理的決策,到底是為了發展可以降低點收入,還是最大化的增加收入。

簡單總結下,辭職一定要慎重,建議“三思”而後行:

  • 是否非辭職不可,有沒有輓回和彌補的措施,假如入職了新公司,那麼目前所遇到的問題可否解決;
  • 覺得待遇過低的情況下,是否對自己進行了正確的估價;
  • 除了薪資漲幅外,還應該分析哪些無形資產(背景、技術、業務)的收益。

2、現公司:為什麼要辭職?

當你向上級領導提出辭職時候,他們肯定會問你這個問題。這時候你只需要禮貌性的說下個人原因就行了,不要各種抱怨待遇不好,也不用長篇大論的去分析公司有什麼問題,需要什麼修改措施。

如果因為薪資原因,領導基本都會提出升職加薪,動之以情曉之以理,許很多美好的承諾讓你不要離開。但是我還是勸你果斷離開,你的領導所有的輓留措施都是暫時的妥協,是為了更好的讓你完成工作交接,預留一定的緩衝期找到新的接替者。因為你一旦提出辭職,你和領導心目中的間隙已經生成,從那一刻起,領導就認定你是一個要走的人。假如你今天被領導勸下來了,領導會繼續擔心你明天會不會又提辭職,為了避免工作上面的風險,最好的措施就是找人替換你,他會開始尋找新的替代者,由新的替代者開始慢慢接手你的工作,等接替者基本勝任你的工作的時候,就開始慢慢邊緣化你,迫使你離職。所以,既然不要輕易說出口,既然說出口了就不要猶豫。當然也希望大家好聚好散,站好自己的最後一班崗,做好最後的交接工作,假如今天提離職,明天就說不來了,那就太沒職業素養了。

如果是公司管理制度方面的原因,領導可能當時會誇你提出的建議很好,但是結果肯定很明顯,根本不會去執行。有個道理要明白,能改的早改了,不會等到你提出了突然改。有些問題是以前沒發現,現在既然你提出了,那麼就各種向上彙報,然後討論開會,最後的結果大多是不了了之;要不是發現了因為各種歷史原因,制度,制度等約束條件沒辦法改。除非身居高級管理職位,不然不要輕易對公司的規章流程指手畫腳,有些事是因為自己看的不全,有的是自己無能為力。

3、求職單位:為什麼要從上家單位辭職?

在求職過程中,這個問題是100%會被問及的。新的單位有自己的風險評估,他們會評估,假如你入職,那麼你從上家單位離職的情況會不會再次發生,概率有多高。因為招聘一個員工,如果離職再找替代者,等到替代者能完全勝任,這個過渡周期的時間成本和人力成本特別高,沒有企業願意浪費時間和金錢在一個風險比較大的求職者身上。回答的時候不要傻乎乎的給上家公司列個幾十條罪狀,一頓訴苦和抱怨,這樣影響特別不好,新的單位會害怕同樣的事情在自己身上復現。原因的話,可以說是個人職業規劃和個人發展方面的原因。比如說以前公司的技術已經趨於穩定,自己想找一個更有技術挑戰的平臺挑戰和提升自己;又比如說自己家裡買的房子在公司附近了等等一些客觀的,從個人角度出發的問題。

順便說下,頻繁的跳槽辭職不利於求職面試,所以辭職時候一定要慎重。

2.3 裸辭 & 裸辭利弊

1、裸辭

百度關於裸辭的解釋是:還沒找好下家就辭職,不考慮後路,意味著離開的決然。因工作壓力身心疲憊達到了極限,或長期缺乏工作幸福感。

我個人選擇裸辭主要是因為自己要選擇換城市,以前找工作的時候沒有認真分析,沒有對公司做很好的評估,結果很不理想。這次裸辭我為了給自己更多時間,靜心下來為個人整個職業生涯做好規劃,同時裸辭直接來到杭州,也速食麵試。

裸辭和在職跳槽各有利弊,那麼我下麵就簡單分析下我眼中的裸辭。

2、裸辭的優勢

  • 心情愉悅。每個人辭職的原因各不一樣,總的來說都是乾的不爽,如果在職找工作,平時遇見心煩的人,做心煩的事,動不動還要抱著極其不情願的心態去加班,還要面試,這種情況下心態分分鐘爆炸。假如裸辭的話,沒有其他事影響,以一顆輕鬆愉快的心去面試,整個過程是輕鬆愉悅的;
  • 集中精力做好求職的工作。如果你裸辭了,你不用中午改著BUG,下午加著班,隨時擔心著領導和同事的連環Call,複習的時間只能靠擠。你可以系統的制定複習計劃,專心的做好面試複習工作,精神好了就學,累了就休息,根據自己的習慣合理的把握複習節奏,專註而高效;
  • 不會錯過任何機會。假如某天你正在開會,會議要求全場手機靜音,然後完美的錯過了一個面試邀請,等你回撥過去的時候,發現是集團的總號,你根本不知道轉接給哪個分機,所能做的就只有祈禱對方會再次來電。又假如,你已經面試通過,對方特彆著急,要求7天內必須入職,但是這邊工期特別緊張,領導死活不放人,不簽字,導致遲遲拿不到離職證明,錯過了入職的機會。裸辭的話這些問題應該都不用擔心;
  • 坦坦蕩蕩。如果在職找機會,領導指揮著你在改BUG,突然郵件一閃,XXX公司邀請你前來面試,這樣的尷尬場景我想你肯定不想遇到,就像做賊一樣的感覺。又假如領導並沒有發現你離職的意圖,但是你為了去面試,每天編出各種理由請假去面試,今天肚子疼,明天頭疼,後天自己家小狗要生了,各種五花八門的理由和藉口,編的自己都詞窮了,還要忍受領導各種冷眼和不滿。

3、裸辭的劣勢

  • 金錢的壓力。工作的目的就是為了賺錢,經濟發展,物價飛漲,要想滿足基本的生活都需要很多錢,如果需要更高質量的生活那麼需要更多的錢。假如你選擇了裸辭,運氣好的情況下,可能只需要一兩周的休息期後就可以繼續工作賺錢,並沒有太大影響。但是很多時候不盡人意,一個兩月找不到工作,甚至半年找不到工作的人大有人在。在這麼長周期沒有收入的情況下,如果再有房貸、車貸、小孩、老人生病等情況下,長期沒有收入是致命的。就拿我來說,細算下我沒有工作的這一個多月里,差不多損失了台頂配的Mac Pro,想想就肉疼。不過換個角度想下,我現在公司所帶給我業務和技術的提升又是巨大的,在沉澱多年之後,這點小小的損失是不值得一提的。有舍有得,需要自己去衡量;
  • 談判陷入被動局勢。如果其他公司中意你,覺得你特別適合自己,而你又在就職狀態,他們會恨不得立馬挖你過來,比目前公司高個幾千塊月薪,外加股票期權都沒有任何問題。但是如果你處於離職期的話,他們就開始會深思熟慮,公司會有很多疑惑,他是不是真的優秀呢,優秀的話怎麼還沒找到工作?以前公司是不是給的太高了,我們是不是應該降點?你裸辭找工作,會不會特彆著急入職,那麼我壓壓你工資怎麼樣?套用目前比較流行的一句話,這像極了愛情。如果你單身,人家考察你考察的可全面了,什麼車房外貌收入啥的。但是你如果有對象,那麼考察的就比較少了,看的順眼,不惜一切去搶,也沒那麼多參考和要求了;
  • 心態很容易奔潰。在沒有裸辭前,我們對自己的評價可能挺高的,覺得自己能力又強,技術又好,又是什麼部門負責人。但是當真正出來面試的時候,被拒絕是很經常的事,更甚者會被各種打擊。原因方方面面,比如面試發揮不好,面試官對自己所做的領域不瞭解,個人年齡偏大,以前公司技術陳舊,沒有瞭解目前新的技術發展方向,沒有應聘崗位相關內容的工作經驗等等。在目前求職環境不景氣的情況下,很長時間可能接不到面試邀請,offer又遲遲沒有的概率很大,最後好不容易有個offer,公司及薪資待遇和自己的預期又相差甚遠,去入職的話很不甘心,工作起來也不開心,不入職話,這是距離裸辭已經好多天了,這時候人的心態會受到極大影響,更甚者會崩潰,會懷疑自己,會自暴自棄,開始喪失繼續找工作的想法,這種打擊也是致命的。

4、 裸辭的時候註意些什麼

在已經決定要裸辭之前,要有一定的經濟儲備,同時要做好心理準備,給自己一個可接受的無收入期限,比如一個月或者兩個月。努力把握好每次面試機會,如果要想繼續面試嘗試更好機會之前,一定要先把握個保底的offer,在得不到滿意職位的時候,入職保底offer及時止損。當然了,裸辭最重要的還是心態,永遠不要喪失對自己的信心。

2.4 求職環境

自從2018年底的大裁員開始,就業環境就變的十分嚴峻,應該不止杭州,各大城市應該都是如此,在金三銀四的月份,找工作也變的異常困難,我相信很多人深有同感。

以2018年底為分界線,求職環境從供不應求變成供過於求,當然也不是絕對的分界線,只不過2018年底各一線大廠開始鎖HC,各二線大廠頻繁裁人,裁人也不是突然出現的,肯定是問題積累了很長時間之後的爆發。之前的時間里,互聯網處於高速發展期,各種IP層出不斷,大數據、雲、共用、區塊鏈、AI 的出現,每個熱點後面都是成群瘋狂的追隨者,上市的靠這些 IP 提高自己知名度,沒上市的靠這些 IP 努力吸引用戶,然後拉投資上市,為了迎合這些熱點,公司會開闢各種業務線,涉足不同的業務領域,在這樣的背景下需要大量的人員參與到戰鬥中去,整個求職市場是很明顯的供不應求,IT 培訓市場熱火朝天,每個公司為了招人,招聘要求也不是特別高,有時候看到有一定潛力的也會招進來進行培養;隨著一個個泡沫的破滅,雞毛一地,雖然概念很好,但是商業的目的就是賺錢,如果你模式賺不了錢,那講再多都是沒用,投資人也越發的理智,以前一個概念,一張嘴動不動幾千萬,現在給錢也不像以前大方,變得十分謹慎。在幾年瘋狂之後,為了公司財報數據,為了公司收益,為了迎合投資人,那些發展不好,看不到盈利模式,長期不賺錢的業務註定被砍掉。市場上的需求崗位不但減少了,而且釋放了大量的有大廠背景,有高學歷的求職者,在這樣供過於求的市場里,崗位變少外,求職者變多,隨之而來的是崗位的能力要求也越來越高。

當然,裁員也不是崗位變少的唯一原因。科技的進步,開源社區的分享,公司很多基礎設施已經趨於完善,同時市場上存在大量開箱即用的服務,比如雲伺服器、簡訊、人臉識別、支付等等。在這樣的環境下,業務實現方式更加簡單快速,很多類似於OA、ERP、文檔管理平臺都有免費開源的,大多數公司不需要再投入人力物力重覆開發,相應工作崗位的需求也就不斷變少。有點像富士康,在採用機械替代人工操作之後,裁了很多組裝工人,只保留一些高技能的維護工人。

目前的市場中,有能力再大量發展業務線招人的公司不多了,更多公司的策略是走個蘿蔔填個坑。供過於求的市場最直接的影響就是公司面試要求變高,機會變少,就連小的的創業公司都變的十分挑剔,對於大量沒有大廠和名校背景的員工來,就像我這樣的人來說,找工作變得十分困難。前段時間和朋友聊天中獲悉,不光杭州,北京和上海目前的就業形勢也不明朗,公司的招聘要求基本上都是統招本科起步了,而且技能要求也特別高。

當然有的人也會說了本科有什麼了不起,我代碼還不是比他們寫的好。這種想法是不太恰當的,就像我們上面說的,我們不能用自己的上限去找最差的幾個人的下限去比。工作中除了寫代碼外,還有各部門溝通之間的能力,遇到技術難點解決問題的能力,業務分析和設計能力。以上幾點需要我們具備英語、情商、部門協作、文檔編寫、軟體工程、電腦技術等各方面的綜合能力。我們不能單單憑藉代碼寫的好壞去評判一個人是不是比自己優秀,這樣太膚淺了。在供過於求的環境下,企業和HR不是有耐心和時間,細細品完每天的上千上萬份簡歷,學歷、經驗、跳槽率、過往背景都成了門檻,他們不可能為了部分幾個人,而在一大群不符合要求的人中去浪費時間,這就是社會,不得不去接受,上學時候沒有認真念書欠下的債這時候是需要來還了。

目前的現狀下我的建議是:如果目前公司發展還算平穩,能正常發放工資,那麼還是繼續工作,不要輕易換工作。

3 西安 & 杭州

3.1 西安

當時去選擇西安工作更多的是一個無奈之舉,在西安的工作的兩年時間內,感覺住的環境也不是特別好,再就是 IT 技術氛圍不是特別好。下麵我從各個方向簡單表達下自己對西安的評價和印象(個人觀點,覺得不對請忽視,輕噴):

  • 西安美食:美食很多,著名的有羊肉泡饃,涼皮,肉夾饃,油潑面……都是特別不錯的,好吃,而且也很便宜,涼皮一般5,6塊,肉夾饃也就7.8塊,杭州一碗涼皮基本都15左右了。。同時,說到美食,不得不再提下著名的回民街,我想說的是,回民街的東西都是**,隨便找個城中村或者一個小店都比那裡面的食物正宗好幾百倍,如果沒去過的,不建議去那裡吃;
  • 生活環境:西安位處關中盆地,四周高,中間低,南部是秦嶺,空氣不流通,同時南方的水汽吹不過來。這樣的地形下造成最直接的影響就是氣候比較乾燥,而且特別熱,很少下雨,去年最高有40度.41度吧,曾經鐘樓附近地表溫度有70多,有人直接在地上煎過雞蛋;其次霧霾特別嚴重,冬天PM指數有時候比北京都高;
  • 就業環境:IT 以傳統軟體行業為主,最著名的應該華為西安研究所,接下來的大頭就是華為的兩大外包助手軟通動力和中軟國際。互聯網公司特別少,能叫上名的互聯網公司更是沒幾個。各大互聯網公司的西北研發中心也沒有選擇西安,大部分在成都或者重慶,比如頭條和螞蟻。從側面可以說明西安的 IT 環境並不好;
  • 工資水平:工資確實低,華為應該是最高的,不具備平均參考價值就不說了。以軟體行業為例,互聯網公司可能多一點,西安的普遍薪資水平大概如下:3年工作經驗在7000-9000,4年在10000左右,每年大概漲幅1000多點;
  • 房租房價:我當時居住在高新區,是軟體行業的集中地區,我居住的公寓距離華為研究所10分鐘自行車路,周圍的公寓1500,合租1000,城中村700.800的價位,買房的話,房價大概2W多了。從2015年底,西安房價跳躍式發展,短短3.4年,很多地方房價已經翻倍了,比其他城市漲的時機晚了點,估計還有幾年高潮期;
  • 發展趨勢:現在西安的規劃是要兼併咸陽,打造西咸新區,著重發力區域,在這個區域打造高新技術產業,軟通動力已經部分搬移到附近的灃東新城了。這裡目前房價1W左右,短期內鳥不拉屎,配套設施短缺;
  • 人才多也少:人才多,是因為西安高校多,211.985的學校也多,每年大量優質畢業生輸入到人才市場,導致各個崗位競爭力過大,有時候和你競爭外包公司的職位的都是一個211.985的,你說嚇人不嚇人。人才少,是因為大部分的優質畢業生,流向一線城市去發展,然後在西安買個房,用外地收入還貸款,等錢賺的差不多了回來西安養老,對技術的熱情也沒大熱情。

3.2 目的地選擇

趁著還算不是特別老,我想去一二線城市發展下,提高自己的技術視野,提升自己的技術實力,當然也不得不承認錢多也是其中一個原因。搞 IT 的挑來挑去也就"北上廣深杭成"這幾個地方了。畢竟已經快30了,這次選城市的時候也是抱著以後定居打算的,所以北上深直接就排除掉了,不得不說城市很不錯,但是各種嚴苛的政策,望而卻步的房價,加上自己已經不小的年齡都不再適合去這些城市發展了。接下來排除的是廣州,不是因為廣東人能吃,尤其愛吃胡建人這個梗。是我接受不了滿大街的……算了,怕引起種族歧視的批鬥。剩下的選擇就是成都和杭州,不得不說兩個城市都是特別好的城市,都是新一線城市,尤其成都,常年處於“最具幸福感的城市”榜首。兩個城市的共同特點有:工資還不錯,雖說不如北上廣,但是80%多還是有的,比絕大部分城市的工資要高;環境都挺優美;房價雖說也高,但是還勉強可以接受,掙扎下也能買個偏遠小戶型。對比完兩座新一線的城市,分析了兩者的共同優勢之後,綜合考慮了下最後還是選擇了杭州(其實內心還是想回大連,雖說大連公司少些,工資也不高,但那裡承載了我太多的回憶),簡單說下選擇杭州的原因:

  • 居住環境:成都在內陸,杭州這邊是個水鄉,我個人比較喜歡江河湖水之類的,看到水之後感覺內心特別平靜,特別舒服,杭州這個優勢簡單粗暴的俘獲了我的芳心。不過聽說成都小日子很舒坦,吃著火鍋打著麻將甚是悠哉,未來一定去體驗體驗;
  • 夢想:阿裡的總部在杭州,很多人來杭州最主要的原因就是阿裡,這是個情結,我也是如此。

3.3 杭州

1、 居住環境

目前來杭州才3個月,對杭州的瞭解還不是特別的深,不過目前來說我個人對杭州的環境還是比較滿意的,有山有水,綠化做的也很不錯,我個人還是比較喜歡這樣的居住環境的。不過經常下雨,經常一下一周多,不過我挺喜歡下雨的,一下雨整個世界都安靜了。

2、 工作環境

以前面試的時候,逛了杭州挺多地方,有高樓大廈,也有民居小樓。總的來說有兩個公司的工作環境我感覺特別棒,一個是互聯網小鎮,小橋流水,另一個是西溪首座,綠蔭環繞。我目前在AI小鎮,感覺也還可以挺不錯的。還有一些可能更好的地方還沒有逛到,歡迎大家補充。

3、996之都嗎?

很多人都說杭州是996之都,也不完全正確,大部分公司平時多多少少都會加班的,只不過部分公司是周六不加班的,就像我們公司就是雙休。

基本每個公司在面試的時候都會問到是否接受加班這個問題。加班在這裡也是常態,995.996.大小周都有,也有部分從不加班的單位。不過就算再正規的公司,為了項目上線和趕進度也會加班的,加班費和調休大部分公司都沒有的,再說了各行各業哪有不加班的。銀行、醫生、公務員他們也加班呢,只不過是誰加多誰加少的問題。我們從踏入 IT 這行起,就應該這樣做好這方面的心理準備,畢竟不是服務員,到點走人就行了。程式員還是以結果為導向的,還是要對自己的產出負責的,在進度和工作強度合理的情況下,實現應有的產出並且保證質量。

4、房價

以前記得有個房產大佬說的一句話我覺得特別有理,具體是誰不記得了。他的原話差不多就是,有錢你就買,沒錢需要借錢就別買;如果買來住你就買,如果投資就別買。

4 面試心得

4.1 面試前

1、 做好基礎準備

大部分人工作的時候是CRUD Boy, 對於什麼 JVM 、多線程 什麼的都忘的一干二凈,跳槽的時候,這些要全部重新撿起來。途徑特別多,比如百度、博客園、Github等可以找到,系統的進行幾遍複習,就可以完成初步的準備。面試題主要考察點的有 Java 核心基礎、MySQL、Redis還有一些框架知識。

同時要準備業務和架構方面的知識。簡單說就是知道目前公司的技術選型和業務流程。舉個例子:假如你們公司是做的電商業務,用的技術框架是Apache Dubbo 、Redis、Mq,那你就要知道一些常見的業務流程,比如一個下單過程,如何下單,如何支付,如何回調;技術方面你要知道你們的技術乾什麼用的,比如 Redis裡面存什麼東西,比如多個系統 dubbo 是怎麼調用的等等,這些知識都需要知道,這個說明瞭你在上家公司的參與度和對業務系統的理解能力。

2、找些公司練手

在面試自己心儀的公司之前,不要直接投遞,假如第一次發揮不好被拒的話,那麼簡歷就會被凍結一段時間,短期內不能再投遞。為了避免這種尷尬的事情發生,我們要做的就是先找一些一般的公司練練手。這樣相當於一次摸底考試,瞭解下常見的面試題目,鍛煉下自己溝通和表達的能力,總結下自己的知識盲點。在有幾次練習之後,你已經進入了面試狀態,面試常見的問題已經對答如流,常見的知識點已經瞭然於胸,並且自信滿滿,這樣就可以試著投遞自己心儀的公司了。

3、 努力把握好入場券

如果把面試邀請當成邀請入場的入場券,那麼我們就需要做好每個細節,不錯過任何一次能得到入場券的機會。我當時找工作通過三個途徑:各種招聘軟體;技術交流群的朋友內推;獵頭朋友的幫忙內推。

內推和獵頭的話,可以將你的簡歷直接發送給HR。海投簡歷的話,可能像上面說的,直接因為簡歷太多被篩選掉,內推和獵頭的話發送的簡歷,跳過了被篩選,增加了簡歷通過的概率。一般公司內推都是有獎金的,所以如果認識心儀公司的朋友,你讓他們內推的話,他們也是十分願意幫忙的。獵頭的話,也分專業性的,專業性強的會給你推薦合適的,面試通過概率大的單位,你滿意他拿佣金,皆大歡喜;但是也不乏一些不專業性的獵頭,感覺像人口販子,賣人頭賺錢,隨便一個崗位就海推給每一個人,一點不分析候選人的背景和意願。

當然,也不是每個人都可以有渠道找到內推或者獵頭,大部分的選擇還是招聘軟體投遞,那麼說點招聘軟體投遞的細節:

  • 定製招呼語:在目前供大於求的市場,一個hr每天輕輕鬆收到好幾百個招呼或者簡歷,如果你沒有一些自己的亮點,很有可能就被忽略掉。現在軟體會預設幾個招呼語,像“您好,貴公司還在招人嗎?”,“您好,我對這份工作十分滿意,是否可以聊聊?”之類的,大家千篇一律都這樣,那麼你根本毫無優勢,被忽略的概率高達90%以上。你可以打造下自己的招呼語,更清晰的表達自己的經歷和能力,比如改成這樣:”您好,我有4年Java工作經驗,統招本科,有電商、金融等項目經驗,熟悉分散式和SpringCloud方面技術,可以聊聊嗎?“。這樣修改完的招呼裡面涵蓋了HR關心的所有學歷:幾年經驗,什麼學歷,做過什麼業務,會的技術名詞和技術方需求的技術名詞符合不符合。如果HR看到了,很大概率會對你產生興趣,想進一步瞭解,那麼下一步就是查看微簡歷。
  • 微簡歷:微簡歷是求職軟體中提供的你的簡歷,統一的風格和規範,主要填寫你的過往經歷和項目經驗,這裡面希望你認真填寫,著重描述下你曾經工作項目的內容和自己所負責的模塊,因為簡歷第一眼是HR看,HR不會太懂技術,更多的是從業務上看你曾經做過的和目前是否類似,會的幾個技術名詞和技術部要求是不是匹配等。
  • 簡歷:當HR初步審核過你的微簡歷之後,一般就會要一份你的個人簡歷進一步瞭解。簡歷在網上找個簡歷模板填寫就行了,填寫時候要註意以下幾點:簡歷需要精煉,最多不超過兩頁;簡歷一定一定一定要用pdf格式,別用word格式,更別用wps格式;千萬別簡歷造假,以阿裡為例,如果發現簡歷造假,永不錄用,其他公司也一般明文規定,簡歷中資料必須真實可靠,如果發現造假,可以無條件開除。

4.2 面試中

當你通過簡歷篩選之後,那麼下一步就是面試了,把握住每次面試的細節,可以讓自己距離成功更進一步。

1、做好準備工作

獲得面試邀請的時候,HR會發送相應的信息,裡面有標註公司的地理位置,通過地圖就可以查詢出來詳細的路線,為了避免路線不熟悉導致的延誤,建議在路線用時上增加10-20分鐘。如果到的時間過早,可以找個地方坐坐,整理下情緒,熟悉下麵試題和自己的個人介紹內容,一般提前10-15分鐘到公司就好,絕大數公司進入公司之後首先會填寫一個應聘記錄表,很多人比較反感這個,覺得簡歷裡面已經有了,為什麼還要寫呢,純屬浪費時間。但是從公司的角度來看,每個人的簡歷格式各異,千奇百怪,不利於統一管理和歸納,如果你個人不想過多填寫,一些敏感的比如緊急聯繫人什麼的就別填寫了。還有,每個應聘記錄表肯定有一行小字,大致的意思就是本人承諾以上信息填寫真實有效,如果有任何不實的地方,公司可以無償辭退,算是一個保證書吧。所以有打算簡歷造假的一定要慎重。

如果一個公司從招聘軟體上發送邀請,絕大部分情況下是不用攜帶簡歷的,但是也是有部分公司不會準備簡歷,所以面試的時候帶份簡歷以防萬一是個不錯的選擇。雖說自己都不准備的簡歷的公司可能不太靠譜,但是目前就業形勢這麼嚴峻的情況下,還是希望大家不要錯過任何一次機會。

說到提前10-15分鐘提前到公司準備,我想到個令我噁心的公司,在餘杭搞教育的,叫XHJY,自己的公司2點上班,讓候選人2點來面試,結果我和很多人一直從1點50在大門口站著等,2點他們公司打鈴上班,差不多2點05才看到公司前臺的人。自己公司的作息這樣,面試安排個2點15,2點30不可以嗎?對候選人太不尊重了!

2、準備好開場白

如果參加的面試足夠多,那麼你絕對會因為開場白講的頭皮發麻,去多少家公司,你就要自我介紹多少次,如果有多輪面試,那麼這個次數還要增加,等到後期,你只要聽見”自我介紹“就十分煩躁,這是一個特別正常的反應,但是這種情況你不得不去接受。

大廠一般有完善的招聘和麵試流程,面試官會提前閱讀求職者的信息,瞭解求職者的過往和經歷,然後制定相應的提問和考察路線,比如我面螞蟻的時候,每輪面試都是不需要自我介紹的。

小廠的話,面試流程並不規範,等你前來面試的時候,面試官很可能是從一群既沒開會,又沒出差的員工裡面現挑的,這樣也就不存在提前瞭解你了,估計簡歷都沒有閱讀過,這種情況下肯定需要你先做個自我介紹,結合你的講和自己粗略的現場閱讀下瞭解下你。除了瞭解你的基本情況之外,同時會考察下你的語言表達能力、邏輯思維能力等綜合素質。所以這個環節不僅要重視,而且還要做好。再舉個例子說明下這個情況:

假如你去一個景點旅游,想找廁所,然後你問景區工作人員廁所怎麼走,那個人如果很不耐煩的告訴你,你會怎麼樣?肯定內心很生氣,你在想自己客客氣氣的問,他為什麼這麼不友好。但是你可能不知道,每天都有上千個人問相同的問題,每天好幾千人問他廁所在哪,他每天回答幾千遍,假如換成你,我估計你也炸了。同樣的道理,每到一個新的公司,一輪新的面試,或許你的自我介紹已經是第幾十遍,第幾百遍,但是對於面試官來說,這是他聽到的第一遍,換位思考下就沒那麼多情緒了。認真對待每個人,對待每一個環節,這樣才不會錯失機會。

下麵是自己寫的一個開場白模板,僅供參考,對效果不做任何承諾:

我叫XXX,今年XX歲,從事XX語言開發X年工作經驗,本次前來求職的崗位是高級開發(中級/架構/……)。我過往的工作經歷基本如下:第一家,XXX領域,主要做的業務和模塊有XXX,自己主要負責的有XXX,所使用的技術有XXX;第二家,XXXX
……我個人有以下優勢:第一、熱愛技術經常寫博客和代碼分享;第二、熱愛健身,抗壓能力強;第三、***

總結一下,就是要簡單的說明下:我是誰、我來幹嘛、我曾經乾過啥、我為什麼覺得自己能勝任。

3、努力做好自己

經常有人抱怨面試官心不在焉,自己答的慷慨陳詞,面試官不是玩手機,就是敲電腦,以為面試官對自己不負責任。其實,很多面試流程比較完善的公司,面試一般有3,4輪,流程規定每一面都需要對求職者進行面試記錄。方便下一個面試官瞭解到上一次面試的知識點和回答的表現,下一輪的面試就可以有選擇的跳過曾經已經回答過的問題。一場面試基本都在半個小時甚至一個小時多,面試官如果1個小時之後再去記錄你的面試經過,他可能記不全,也可能沒有時間去記,因為他除了面試還有自己的其他任務需要完成。如果你一遍回答問題,他一遍在記錄。說明從公司角度來看,這還是一家流程比較完善的公司。你所要做的就是回答好每一個問題,做好自己。

4、有條不紊,切勿急功近利

在面試的時候,面試官有時候會拋出一個簡單的問題,然後想利用這個簡單的問題進行不斷的深入,不斷的探索你知識儲備的深度和潛能,你所要做的就是認真審題,跟好面試官的節奏就可以的,不要因為這塊自己熟悉就一下全部講了出來,有可能會博得面試官欣賞,更有可能會打亂面試官節奏,引發麵試官的反感,風險和收益並存。

舉個實際例子,上次我當面試官的時候,問到求職者一個問題:Java的集合框架的繼承關係是怎麼樣的。我當時的想法是,先瞭解他對這個繼承關係是否瞭解,如果瞭解下一步探討線程不安全的List和Map的知識,如果瞭解再深可以繼續討論線程安全的List和Map,如果答的不錯可以繼續討論底層的CAS和ABA方面的問題。如果某個環節答的不好,我們就不再深入,換下一個話題。

當時的求職者,說完繼承關係之後,簡單描述了下Map,然後開始講ArrayList和LinkedList的區別,又講ArrayList的擴容,增刪改查的代碼實現,然後再Linux中的如何操作記憶體,總之就是知道的全講出來了,答出來的幾個關鍵點是對的,但是整體答題思路太亂了。我首先的印象沒有認真審題,我主要的考察點是幾個類的繼承關係,我當時用來評判他回答是否正確的思維也集中在這塊,他突然的引出的知識點,我需要重新從大腦提取相關的知識點,有點倉促。不可否認他是有一定的知識儲備和見解的,其次他還是喜歡研究技術的,最起碼也是做過充分準備的,這塊值得贊賞和承認。但是,這個回答帶來的好感並不是特別多,主要是因為他的邏輯太過混亂,沒有一個很清晰的思路,在ArrayList的知識點上沉陷太深,都涉及到linux底層了,卻對LinkedList和Map一句話帶過。

和高中我們老師教我的道理一樣,面試的時候,我們一定要認真審題,不要著急回答,當感覺問題有歧義或者面試官表述不清楚的時候,我們要及時確認,理清楚面試官考察的知識邊界,整理好思路和邏輯再回答。只要回答到點子上,答案的多少已經無所謂了,比一股腦的把知道的全說出來要強多了。當你回答比較簡單的時候,一個合格的面試官會不斷的繼續深入提問,以相同的方式回答好每一個環節就好了。這樣的問答方式之下,面試官可以正常的順應自己的節奏不斷進行,從這方面來說,加分不少,如果你邏輯清晰,問題都回答到了關鍵點上,答案少點也沒事,也會有很不錯的加分,如果一定要多說,請一定要組織好語言,理清楚思路,不要一股腦的想到啥說啥全倒出來。

5、把握最後的機會

一般面試完成之後,面試官會問求職者會不會有什麼問題,這一般都是正常流程。你可以提問一些和技術相關的問題,可以進一步的加深自己在面試官的影響。比如可以問下公司研發部的構成,公司所使用的技術,自己進入公司之後所擔任的職位和負責的業務。不要去問一些和求職崗位無關的一些問題,比較掉分,讓面試官覺得你好像不是正經來找工作的,比如公司妹子多嗎?食堂飯好吃嗎?能穿拖鞋上班嗎?……

4.3 面試後

1、失敗不要氣餒,有時候問題並不在於你

面試時候我們會遇到各色各樣的面試官,而直接決定我們命運的往往就是他們,有時候並不是你不行,而是你沒遇到對的人,有時候也不是你特別強,只是你運氣好,下麵講幾個我面試時候的實際案例,有面試體驗很好的,也有面試體驗極差的:

  • 面試YZ(掛)。面試官問了我幾個問題都沒回答上來所以掛了,比如講下二叉堆、優先隊列、講下Redis數據常用數據結構的底層實現。這些問題都是屬於比較偏門的問題,也都是屬於我的知識盲點,以前面試的時候從來沒問到過。
  • 面試螞蟻。面試官問的問題都是一些常見的中規中矩的問題,我基本95%以上都曾經認真研究過,所以答的都還是很不錯,這屬於緣分,正好是個人比較擅長的知識,面試體驗不錯。
  • 面試JX,創業公司,簽約相關。因為我們上家公司使用的是 Spring Cloud,然後我們面試的大部分內容都是圍繞著微服務和 Spring Cloud 討論,其中明顯的感覺到了他的幾個技術觀點並不正確,比如說分散式發號器會因為帶寬產生性能瓶頸,後來在提問環節,我問了下公司現在使用的技術,說是 Spring Boot,後來我明白了,他對 Spring Cloud 的瞭解也大部分處於學習階段。
  • 面試HM,創業公司,簽約相關。面試官不知道怎麼評價,為了保持我的形象我就不說髒話了。面試過程中,全程讓我自己表達,毫不指點。我個人比較謙虛,雖然 JVM 記憶體結構什麼的也瞭解,查錯調優也讀過幾篇文章,在對比那些技術大佬之後,我覺的自己還有很多要學習的地方,簡歷這塊都寫的是有一定瞭解。這個面試官問我自己覺得自己哪塊掌握的好,我說自己 Java,JVM,集合框架各個方面都還行,都可以探討下。他直接說,那這樣的話我就感覺就不用問了,潛臺詞好像在表達我也就停留在剛剛會用的地步,難道我一定要學那群剛培訓出來的那樣,樣樣技術都說自己是精通?
  • AHXX,一個老牌安防公司。面試時候,面試官問我Dubbo(嘟保)是什麼樣的實現原理。如果經常看小馬哥的推廣,或者官網,或者網上視頻的時候,就知道官網的發音是Dubbo(搭保)這種發音,沒面試完我就知道這家我不會去了,因為我覺的他是一個並不關註技術發展的人。後面他有問了我一個極度反感的問題:你統計過你這幾年寫了多少代碼量了嗎。說實話,沒統計過,也從來沒打算統計,我每天學習進步是為了提高代碼質量提高開發效率。代碼量在我看來毫無參考價值,如果代碼量有參考意義,你讓 Lombok、lambda、各大框架情何以堪。
  • DH,一個老牌安防公司。這個直接無語了,面試邀請就去了,幾十號人去一個大廳開始領表填寫,然後幾十號人去一個屋子一起做面試題,不區分你幾年經驗,只要方向一樣,答的都是同樣的題,在這裡感覺每個人沒有年限,就是一個廉價勞動力,像極了皮包公司。
  • 現在入職的公司。因為簡歷中有寫自己的博客和Github,就是想展現自己優點,比如熱愛技術交流分享,熱愛學習等等。當時面試的是CTO平威,他提到了我的博客,並對其中一篇文章表示了肯定。後來問我為什麼博客數量並不多,我回答到我喜歡寫一些自己深思熟慮之後的經驗總結,教程什麼的滿大街都是,沒必要寫了。他對此也比較認同,說有他也比較認可有個人想法的人,不太喜歡那種千篇一律人云亦云的。整個面試過程還是十分友好,提問的技術問題很有水平,很深,都是以前沒有註意到的一些小細節,能感受到他的實力水平很強,其次他關註到我想展現的方面,而且給出了肯定,整個面試過程感覺特別的好。

在知識儲備和能力儲備都到位的情況下,面試中的運氣成本還是很大的,能遇到個自己知識點匹配並且賞識的面試官很重要,偶爾一兩次的失利並不重要,可能只是運氣不好,下次試試說不定就成功了。

2、善於總結,不要灰心

每次面試完,不管你自我感覺如何,都應該總結一下。記得有一次面試,我感覺自己回答的特別好,但是很長時間還是沒消息,後來我把自己曾經回答過的問題挨個搜索了一遍,發現好多的回答是錯誤的,當時只是自己的感覺良好罷了。從那以後,每次面試結束之後,不管自己認為對還是錯,都會重新整理一遍,不斷糾正,不斷理解,不斷加深印象,隨著面試次數的增多。對知識點的掌握程度也越來越深,瞭解的知識點也越來越多,準備的也就越來越充分了。保持信心繼續努力,一份好的 offer 不久就會收入囊中,加油!!!

5 螞蟻金服(網商銀行)面試分享

當時是在招聘軟體上受到邀請投遞的,投遞的崗位是網商銀行 Java 專家的崗位,貌似是P7。開始沒有抱太大希望,沒想到很幸運的接到了面試電話,然後又很幸運的一路走到最終面,整個流程大概3周就有了結果,效率也是相對比較高的,每一輪基本都在2天之內,HR面可能趕上了年底評績效所以耽誤了點時間,總的來說還行。大廠的流程還是十分正規和完善的,每一輪面試考察的範圍都不同,綜合起來全面考察了各個方面,面試官還是很友善的,面試過程善於聆聽,不時還給一些指引。幫忙挖掘了自己的潛能,也指點了不足,雖然結果是被拒絕的,但是整個面試過程收穫滿滿。每個人可能面試的過程和體驗並不一樣,我只簡單分享下我自己的面試過程,具體還要根據個人而定。

5.1 一面 ( Java 核心基礎 )

一面是晚上22點左右接到的電話面試,電話面試為期了一個小時左右。主要圍繞著Java核心基礎知識考察,簡單總結下:

  • JVM:記憶體模型,每個區域存放的內容,對應的記憶體溢出。垃圾回收演算法和垃圾回收器,JVM問題排查時候用到的幾個工具;
  • 多線程:集合安全的框架 ConcurrentHashMap,CopyOnWriteList,CAS -> ABA -> 使用到ABA的 Atomic*,線程同步的幾種方式,線程池構造方法的幾個參數是什麼,ThreadLocal;
  • 集合:HashMap的幾個基本問題,大小,負載因數,擴容時機,擴容比率,轉換成紅黑樹的時機。ArrayList和LinkedList;
  • Redis:基本數據結構和備份方式;
  • Mysql:索引數據結構,觸發索引的條件,explain執行計劃。

整個考察的題目也是比較中規中矩的常見面試題,有些問題可能由於時間過久記得不太清楚了,總之這樣就算一面結束了,第二天上午收到了阿裡的內推成功郵件,等待下一步安排。

5.2 二面 ( 項目 )

二面是第三天下午打過來,當時在外面,我說自己不太方便,約的半個小時之後打過來,當時準時打過來了。他先介紹了我應聘的職位和工作內容,講解了下部門的構成和工作挑戰。然後讓我做了一個自我介紹,就開始面試了,簡單總結如下:

  • 講下你最熟悉的項目;
  • 講解下這個項目中的工作難點以及怎麼解決的;
  • 分散式事務(很多公司都問,一般主要問的都是 TCC);
  • 講解下分散式的幾個組件的實現原理,這樣主要講了 Eureka 和 Hystrix ;
  • 講下幾個記憶體溢出的情況,以及如何排查。

二面的面試時間大概40分鐘左右,主要考察的是項目相關的一些內容,以及分散式的知識,主要考察你曾經工作的時候對整個項目的理解和參與程度。

5.3 三面 ( 演算法 )

接到了阿裡的三面電話,說發送了一個郵件到我的郵箱,打開之後是一個鏈接,阿裡的伯樂系統,點擊進入之後左邊是一個共用屏幕,右上方是個視頻,右下方是個打字區域。面試官給的時間是30分鐘,說30分鐘再打電話過來,比較友好的是可以通過IDE將答案寫好之後複製過來也行,不一定非得直接在共用屏幕寫,主要的兩個題是這樣:

  • 單向鏈表翻轉
  • AAABBXXXXEEEFFF,這樣的字元串,最後列印出”A3B2X4E3F3“這樣的結果

這一面主要是演算法考察,不經常刷LeetCode,也不知道這樣的問題算怎麼個級別,個人感覺是兩道比較傳統的演算法題,題目30分鐘,解題完成之後,面試官給你電話,通過電話你給面試官闡述下你的解題思路。

5.4 四面 ( 架構與設計 )

第四面就是現場面了,收到了阿裡巴巴的面試郵件,還有螞蟻金服的訪客密碼。我當時面試的網商銀行的職位,在德力西大廈。接待樓層的面試會議滿了,之後去研發區域的會議室,這也是運氣特別好的地方,研發區域的會議室有個大黑板,可以盡情的發揮。大概的面試經歷如下:

  • 給定已有的數據結構 Stack ,特點是後入先出,實現一種數據結構 Queue ,特點是 先入先出。並實現 init,插入,取出,長度等方法。就是一個比較簡單的手撕代碼,在黑板上寫。
  • 儘可能完善的搭建一個秒殺系統。這塊有前端、後端、運維、架構各方面的知識點。比如秒殺開始前頁面靜態化,CDN分發,緩存,redis集群,網關等一些。
  • 如果讓你完善你以前的系統你會怎樣做。當時就是先將以前的架構圖畫出來,然後把多餘的砍掉,覺得彌補的增加上,並闡述自己的觀點和理由。我當時是建議增加 SkyWalking 作為日誌的鏈路跟蹤,當時順著這個點,繼續考察瞭如果自己設計一個鏈路追蹤平臺,比如如何設計消息體,確保同一請求的不同服務的消息是一起,比如增加 TraceId, SpanId,通過TraceId確認是同一個業務,通過SpanId區分服務,然後又討論瞭如何保證日誌的前後順序,然後又繼續討論了分散式環境下,如果將TraceId,SpanId傳遞,我當時答的是如果是Http協議,就將參數通過Head傳遞,對方應用收到後,保存到ThreadLocal中,又問到,如果當前線程新起的線程,那麼ThreadLocal中的值是否還能取得到,這塊沒有答上來,後來回來查到 MDC 和InheritableThreadLocal。

這次面試應該是難度繫數最高的一場面試,有基礎代碼功底考察,有整體系統架構能力考察,也有個人潛力的考察,考察候選者是不是一個有想法和見解的人。

5.5 終面 ( 部門BOSS + HR )


終面本來應該是BOSS和HR一起的,結果HR有事沒來,就和BOSS簡單的聊了聊,主要討論了下自己為什麼要轉行,為什麼要來杭州,個人學習成長的方式等等一些問題,個人職業規劃等等,技術問題問的比較少,然後就離開了。在焦急的等了2個星期之後,收到了HR的電話,問的問題也和BOSS問的問題差不多,感覺多少有點緊張,面答的不太好,簡單聊了20分鐘就結束了。

5.6 面試總結

HR面完的第二天收到了拒信,有點可惜。不過感覺也很賺了,瞭解了自身的不足,發掘了自己的潛能,再就是自己能走到這一步,很大程度上提升了自己的自信心。自己也簡單思考了下可能被拒的原因,大概這麼幾個可能吧:

  • 能力略有欠缺;
  • 跳槽頻率可能過高,擔心個人穩定性問題;
  • 沒有金融領域相關工作經驗;;
  • 這個崗位,有更優秀的候選人可以選擇。

總的來說就是再接再厲吧。目前的公司還不錯,安心好好沉澱3.5年,未來如果有可能,我們再見面。

5.7 面試題參考資料

簡單分享一些參考資料,主要來源於博客園,個人覺得還是質量比較高的文章。我沒有將每個問題的答案都列舉出來,是因為我相信當你能力足夠強的時候,你可以自己總結問題,尋找答案,參考資料簡單看看就行。當你什麼都不想做,也不會找答案的時候,給你再多參考資料也沒用,頂多是變成一個收藏家。

秒殺系統架構分析與實戰 : https://www.cnblogs.com/andy-zhou/p/5364136.html
JVM簡介: https://www.cnblogs.com/cherryljr/p/7623606.html
mysql基本知識點梳理和查詢優化: https://www.cnblogs.com/chenfangzhi/p/9979676.html
MySQL性能優化,索引和查詢優化: http://database.51cto.com/art/201806/575594.htm
java問題排查: https://mp.weixin.qq.com/s/UXZHoAB8j6OwV2NHepYeNw
redis中文網: http://doc.redisfans.com/
spring事務傳播機制: https://www.cnblogs.com/icenter/p/5279728.html
jdk併發包總結: https://www.cnblogs.com/xdecode/p/9102741.html

6 總結

有的人進入這一行完全是因為大學專業是這個,順其自然只好乾這個,大學選這個又完全高中填報時候填的這個,可能是家長建議,也可能是專業調劑,他們並不喜歡這個行業,也沒想好乾多長時間,很多人在想著錢賺夠了就去做其他事情了。還有的人是因為熱愛軟體開發這項工作,享受軟體開發這個過程,喜歡這種從0到1的創造,我想我就是後面這種人吧。如果你和我是同樣一類,那麼我有幾點建議分享下:

  • 制定清晰的職業規劃。一定要想好自己未來的路線,管理崗,還是技術崗。有的人適合管理,有的人就適合技術,有空閑時間了可以多思考思考,然後向這個方向努力。如果你想走管理崗,那麼你需要儲備項目管理方面的知識,與人溝通交流能力;如果你需要走技術崗,那麼你就需要不斷鞏固自己的基礎知識,瞭解目前業的技術發展方向,瞭解行業內的常用解決方案,不斷提升自己的技術實力和技術影響力;
  • 業務能力很重要。有的人太註重技術而忽略業務,我們要清楚的是技術為業務發展而服務,只有更好的理解業務,才能做出正確的技術方案,不會出現技術無法實現業務,業務被迫修改的這種尷尬的場景。技術儲備雖然重要,業務經驗積累更重要,如果有可能的話,持續在一個業務領域一直深耕細作,慢慢的就會成為這個領域的專家。技術人員有時候挺單純,有時候多個幾千塊錢,或者下家公司比這家公司用的技術更先進點,就毅然跳槽了,前些年追大數據,後來追區塊鏈,現在又追AI。多年之後雜七雜八的業務方向在求職的時候喪失了競爭力,相對比在某個領域持續工作多年的人非常吃虧;
  • 要有造輪子的能力,也要有選輪子的能力。這個觀點說白了就是技術上面既然有深度,也要有廣度。從廣度上講,需要瞭解目前市場上已有的一些解決方案和框架工具。在眾多已經被其他同行已經踐行和檢驗的工具和框架中挑選到適合自己的,參考已有的解決方案,制定自己的研發計劃和方向,這樣可以避免少走很多彎路,提高生產效率,節約時間和人力成本。從深度上講,在可選的方案和技術無法滿足已有的業務場景下,我們需要有能力自己進行定製和修改。既不能全靠輪子,也不可不用輪子。
  • 終身學習,持續進步。曾經有個朋友給我講過這麼一個故事,他的一個同事,公司給的福利很好,每個月比其他公司多幾千塊錢,所以這個朋友一直待了接近10年,10年之後他的同事不滿足於現狀,終於想跳槽了,發現根本招不到工作。原來這個同事他們公司一直使用資料庫的存儲過程實現業務,對於其他技術很少瞭解,比如Spring、Mybatis這種最常見的技術都不瞭解,這樣的結果可想而知,這樣的工作年限和市場脫節的技術棧,根本不可能被市場所接受。前段時間的外企裁員中,我們也可以得到類似啟示。總的來說我們要居安思危,時刻瞭解行業內的技術走向,不斷豐富自己的技術視野,提升自己的能力。只有你跟著時代走,時代才不會棄你而去。比如前幾年我們會關註 SOA、SAAS、PAAS、大數據,目前需要關註的微服務、分散式、DevOps、Service Mesh 等等,未來可能還有更多新技術出現,只要願意持續學習,時刻保持戰鬥力,就不會被行業所淘汰。
  • 綜合素質也很重要。當我們工作到一定的年限後,我們就不再是一個無憂無慮的小碼農,每天寫完自己的BUG就完事了。我們可能變成一個 Leader,用我們多年積累的經驗和思想指導別人,我們完成了一個從手到頭的轉型。這時候需要我們有除了寫代碼之外的其他能力:和各個部門及職位良好溝通的情商和表達能力;可以將自己的所思所想呈現出來的文檔和畫圖能力;將文檔和架構圖給下級講解清楚的演講能力;任務拆解、監督執行、跟蹤彙報的管理能力等等。

如果還

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [TOC] Unit4 作業分析 作業 4 1 UML類圖解析器 UmlInteraction 1. 架構設計 1)度量分析 2)結構分析 3)演算法分析 作業 4 2 擴展解析器(UML順序圖、UML狀態圖解析,基本規則驗證) 1. 架構設計 1)度量分析 2)結構分析 3)演算法分析 classMo ...
  • ​一、 前言 從過去的OA、CRM、ERP等單機即可滿足要求的系統到現代互聯網時代各大公司的分散式、微服務平臺,互聯網架構正在經歷著巨大的變革,技術也在不斷的更新迭代,這也意味著眾多軟體開發者們的壓力和挑戰正在不斷的加大,這種新技術更新的速度甚至讓我們望而卻步,而我們需要做的恐怕不僅僅是學習那麼簡單 ...
  • 本文主要是詳細介紹如何利用maven對SSM框架整合的思路及其詳解 ...
  • 現在我們已經能愉快地看著一頁一頁羅列出來的菜單進行點菜了。現在又有的小伙伴希望能夠加上一份餐後甜點的“子菜單”。怎麼辦呢?我們不僅僅要支持多個菜單,甚至還要支持菜單中的菜單。 如果我們能讓甜點菜單變成餐廳菜單集合的一個元素,那該有多好。但是根據現在的實現,根本做不到呀。我們想要的是這樣的: 我們需要 ...
  • 現在使用的仍是AWT的事件模型。涉及到3類對象: Event Source:事件源,即事件發生所在的組件 Event:事件,封裝了此次事件的相關信息 Event Listener:事件監聽器,監聽事件,發生指定事件時自動調用對應的方法 監聽器可以繼承介面自己寫代碼實現,也可以繼承適配器(空實現),然 ...
  • 首先python是一種面向對象、開源的、具有解析性的編程語言.接下來我們來看看python的基本一些語法. 學習一門語言,第一個程式就是Hello World程式.在Python裡面,Hello World的程式代碼如下: print("Hello World") 從這句代碼我們可以看出來,pyth ...
  • Spring Event 是基於觀察者模式實現,介紹其之前,我們先介紹下JDK提供的觀察者模型 觀察者:Observer, 被觀察:Observable 當被觀察者改變時,其需要通知所有關聯的觀察者。Observable實現邏輯如下: 好了,下麵我們介紹Spring基於觀察者模式的Event機制 首 ...
  • 一、SpringDataJpa的含義: SpringDataJpa: 是Spring基於ORM框架、JPA規範封裝的一套JPA應用框架,是SpringData中的一個子模塊,可讓開發者用極簡的代碼即可實現對數據的訪問和操作。它提供了包括增刪改查、排序、分頁等在內的常用功能,主要針對的就是 Sprin ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...