我的個人體驗和探索
? 我大學是在上海交通大學里面唯一一個叫交通的專業,學習航運、集裝箱和容器。因為感興趣和為了好找工作,又學習了第二專業,計算機專業。沒有學桌面軟件制作、網站制作,而是主要學習操作系統、計算機網絡、編譯原理、算法與數據結構、數據庫、計算機組成與系統結構,最后考研也是考的這個方向。畢業之后,首先面對的第一道關卡就是面試。我在這給大家總結了關于面試的幾個套路。
第一類:薪資比較低的企業,面試的時候注重會不會做個網站,甚至上手做個東西出來。
其實這類企業是在找代碼熟練工。
第二類:越是薪資高的企業,越重視基礎知識的考察?;A好,可塑性強,培養起來成長快。
第三類:最牛的公司一般面試考的是算法和思路。
說在話外:別怪HR太狠心,面試題目太奇葩?!督洕鷮W的思維方式》一書中寫到,所有的稀缺品都需要以某種方式分配,必須建立某種規則和制度,對那些要求得到稀缺品的人加以甄別,決定誰該得到多少。價格只是最常用的一種方式。所以,面試前做好充足的準備很重要。


面試中,簡歷應該是什么樣?
? 簡單:最長不要超過兩頁。
量化:多寫能夠數字化、能量化的東西,少寫一些模糊的東西。比如寫到項目的時候,多說一些項目多大規模,處理多大的數據量,管理多少臺機器,處理速度如何,實時性如何,使用什么技術等等,少說一些諸如“和團隊精誠合作,能吃苦耐勞,善于溝通,什么北方人的豁達,什么南方人的細致”等,這些東西在簡歷中不能提供任何有價值的信息。清晰:整個簡歷盡量使用表格、列表形式,而非大段大段的描述性語言,多用專業詞匯。

提取亮點:首先你需要列出你做過的所有的項目,對于每一個項目,你可能做了很多細碎的工作,你需要做的是,從中發掘出你覺得有技術含量,能讓看簡歷的人眼睛一亮的地方。
由點到面:上面的亮點直接寫上去,面試官一般會問這樣的問題:你知道實現這個都有哪些方式?為什么選擇用這個方式?各有什么優劣勢?你需要將你的知識面擴展開來。比如負載均衡,LACP可以做,等價路由可以做,F5可以做,LVS可以做,haproxy可以做,nginx可以做,OVS可以做,iptables可以做嗎?
從面到體:面試官還可能問,你用了這么久多線程,它們背后的原理是什么?所以你還應該了解背后的原理,如果你用的是Java多線程,各種線程同步機制的原理總應該清楚。
例如ip addr命令,里面的很多細節其實往往都不注意。
理論升華:上面說的都是招式,接下來應該練一練內功了??梢钥匆恍┙浀鋾?,這樣除了會用,還能說的頭頭是道。比如《深入理解 Linux網絡技術內幕》《Concurrent Programming in Java》等等。
?

開源軟件上手套路
在這個過程中,我為什么會不斷地追求核心代碼,分析代碼,其實我就是追求最熟悉,求最核心、最本質,哪怕最困難,路最遠。當你發現某一個技術在未來會成為一個很好的方向,你一定要攻克它,且一定要看經典,讀源文檔,在這里給大家分享一個開源軟件上手
套路:
手動安裝起來,一定要手動;使用一下,推薦XXXin Action系列;讀所有的官方文檔,記不住,看不懂也要讀下來;了解核心的原理和算法,推薦XXX the definitive guide系列;看一本源碼分析的書,會讓你的源碼閱讀之旅事半功倍;開始閱讀核心邏輯源代碼;編譯并Debug源代碼;開發一個插件,或者對組件做少量的修改;大量的運維實踐經驗和面向真實場景的定制開發。

程序員有哪些發展維度?
技術深度
有的人會選擇更細的技術分支進行更深入的研究,繼續擴大自己在技術深度這一維度的優勢。此類人職業規劃簡單直接,就是成為某項技術的大牛,不希望找過多的需求結合點,就像郭靖一樣,就是降龍十八掌一掌一掌練下去,就靠一技之長行走江湖。

架構廣度
有的人希望對整個系統,從前端到后端,從底層到上層,都能夠有一定程度的了解,也即開始擴展架構廣度這一維度。此類人對每一項技術都會了解到一定的深度,能夠搭建起整個系統,他們的職業規劃就是成為架構師。業務知識有的人做軟件是面向某個行業的,比如金融、證券、財務、航運、電力等。他們除了技術深度形成一定的優勢外,也開始慢慢了解這些行業,于是擴展了另外一維——業務知識。他們能夠迅速理解這些行業的業務需求,并轉換成為軟件需求。他們的職業規劃就是需求分析師,他們需要更系統的學習業務方面的專業知識,以期能準確把握需求。
管理水平
有的人在成為技術主力后,由于有一定的溝通和組織能力,開始帶新人,領導一些人完成任務,于是擴展了另外一維——管理水平。他們需要學習項目管理、組織行為學、績效管理等方面的知識,職業規劃是成為技術經理。

所有順暢的表達,都是體系化的思考
對于架構師來講,表達能力也很重要,不但要自己會,也要給客戶、產品經理、開發說明白。所以需要使用通俗易懂的方式表達深奧的知識。
沒有什么天然會表達,口若懸河,只要涉及嚴肅的內容。如果沒有體系化的思考和總結,現場肯定發揮不出來。從逐字稿開始準備,看起來隨意的現場表達,都是熟練背誦后的輕松表現。
我在極客時間開設的專欄,是自己錄的音頻,覺得新聞聯播主播很不容易,但有了一個全新的嘗試。所以,技術人員不要鄙視不做技術的人,要講給他們聽,寫給他們看,技術要為客戶服務。