不同的軟體公司對於技術人才的要求各不相同。這裡稍微簡述一下。

1. 互聯網公司

2.電商網路3.金融企業4.數據處理

5.重構

6.框架開發第一類:互聯網公司。典型例子:餓了麼(非公共平臺項目組),大多數中小型創業型公司,萬達,萬科,浪莎,德邦等等。   這類網路公司的項目由於大多數都是區域網應用,例如辦公室OA,郵件平臺,信息平臺,政務平臺,CRM,ERP等等。   這類項目對於安全以及性能的考量比重比較小,有的甚至不考慮PV的測試。所以常規的SSH、SSM框架足以應對這樣的需求,而且公司也一般都有成型的框架。其業務相對來說也比較簡單,但是其對前臺的功底具有一定的要求;比如說jquery、AngularJs、aligeJS以及一些UI框架,EasyUI,EXTjs等等。絕大多數情況下也要求對於頁面有設計功底,能夠按照低保真原型來繪製出HTML頁面;這類公司往往不會招聘專業的UI,都是程序員進行客串。   對於資料庫要求會基本的PL/SQL編程,寫寫包,觸發器,存儲過程,函數,以及SQL的優化方案。   這類公司雖說對於技術的要求偏向於前臺,但是其最大的特點是對於代碼沒有太強硬的規範,也就是說在寫後臺業務的時候可以按照自己的設計來,這對於程序員來說是最具磨練性的;這類公司的好處是可以讓你在短時間內從「流水式」編程向真正的抽象思維編程進行轉變,把設計模式,高性能API方案帶入自己的設計中。   發展方向:PM,架構師,全棧工程師。在這類公司呆一段時間,你會在整個WEB項目技術層面上都有極大的進步,js腳本,UI設計,後臺框架設計,業務實現,資料庫實現等等。

   不足:這類公司項目開發流程一般都缺乏規範性。不一定有開發文檔,需求文檔等等。

   面試要求:會以項目經驗為主,問很多你在項目中的角色,項目需求,如何實現;談談在項目中遇到的問題,以及如何解決等。技術層面會問一些基礎的Java知識,一般不會太難,都是比較常見的API。注意點就是,詳細闡述自己所負責的項目模塊,項目流程,表現出你對該項目業務已經相當熟悉。 第二類:電商網路。典型例子:支付介面開發;相當多的外包公司都有這類項目   這類項目對於安全性,性能的考量十足,其項目上手也具有一定的難度。普遍採用了分散式架構,而對於分散式架構並不是很瞭解的人很難快速地熟悉整個架構情況。這類公司對於技術人員的要求普遍較高,尤其是對java的底層以及部分框架的原理;要求員工能夠寫出十分正規並且可讀性高的代碼;除此以外對於演算法也有一定的要求。資料庫這塊一般都有專業的DBA進行開發、調優和維護。參與的並不多。   其難點在於業務相當的複雜,並且對於性能的要求比較苛刻,會對代碼進行反覆地測試,反覆地修改。   發展方向:產品經理、PM、架構師,安全工程師。這類公司對於你在代碼上的規範整潔十分有幫助,他們會對已有的代碼進行反覆的review,而且薪資客觀!   不足:加班多,需求變更多,上線繁瑣有時候節假日需要無償加班;甚至是在半夜如果數據出問題了需要及時到場檢查。由於其幾乎純後臺平臺的開發,對於前端,資料庫的接觸就比較少,技術進步比較侷限

   面試要求:基礎,基礎,還是基礎!他們往往會問得很深,集合框架,常用API都會問其原理,演算法實現。尤其是在多線程這塊,大型平臺的高並發線程調度往往是他們的熱點;線程調度,分散式通訊等等。

第三類:金融企業典型例子:各大銀行項目組。   這類公司對於人才的要求比較均衡,前臺後臺資料庫都希望你會,但是要求不會過於苛刻。他們的項目相對於傳統的web項目來看,也無非就是業務上更加複雜了點並牽扯到相當多的數據處理、網路通訊以及中間件的使用,例如MQ,Luncence、Slor、redis、dubbo等。如果你對於這些中間件的部署以及應用十分了解或者感興趣,那麼這類公司將會很適合你。   其難點在於對於新框架的學習速度;這類項目往往都會用到一些中間件框架,會對其進行監控,調優。有的框架甚至非常冷門,這就十分考驗你對於新事物學習的速度,越快掌握,你在項目組的地位就越快提升!並且,這類項目組十分看重人才。好的一點就是,加班少,幾乎沒有強制性加班   發展方向:產品經理、PM、架構師。   不足:項目單一,往往一個項目不斷地修改維護,有時候也會修改一些老掉牙的代碼,其維護工作往往多於開發工作。 第四類:數據處理中心

典型例子:Ebay的大數據項目組

Ebay在上海的大數據處理項目組幾乎人盡皆知,環境好,福利好;唯一的不足就是對於英語和技術的要求極高。最好的項目組要求能跟印度人熟練交流專業英語,注意這裡我說的是專業英語!對於技術的要求幾乎是對於底層的掌握,不僅僅是對Java,對Javascript的要求也極高,甚至有的項目組對於C++、C、Shell都有要求。   面試難點在於他們面試的時候會結合實際問題進行面試,讓你寫一個小demo完成一個功能,即便是最簡單的功能,新人和老手寫出來的東西是完全不一樣的。他們面試偏向底層原理以及設計原理;沒有紮實的基礎很難過關。   發展方向:PM、CTO、大數據    面試要求:須精通Java底層實現,有良好的抽象思維和設計思想。英語熟練,最最起碼能讀能寫,因為郵件和文檔都是純英文的。 第五類:重構典型例子:這類項目組很少,一般只有一些大公司內部纔有這類項目組會對於一些老項目進行代碼重構,重析。例如會將一些基於jdk1.4的項目按照jdk1.7的新特性進行重構,所以這類項目組都是需要你有極其紮實的基礎,設計基礎等,並且對於前端也有要求。   發展方向:產品經理、PM、架構師

   不足:重複地學習和分析項目需求,這對於大腦也是個負擔。大量文檔需要編寫,對於基礎的要求以及對抽象思維的要求都很高。沒有實際的開發經驗很難上手

   面試特點:還是基礎!對於不同的情況使用不同的API來性能調優,設計模式,抽象思維都有很高的要求。主流框架需要你對它們的性能有一定的瞭解。 第六類:框架開發典型例子:華為,中興,思科,阿里,百度這類公司就有點大喘氣的,他們對於技術人才的要求不是一般的高,當然我說的是比較好的項目組。他們要求技術員工具有紮實的基礎,能掌握靈活的設計模式,性能調優,甚至要求掌握JVM的底層原理,要求編寫出高質量的代碼。   不足:加班多    面試特點:偏向於演算法實現和數據結構。這兩類普遍都是重難點,給你一個場景,讓你選擇使用哪種數據結構來進行處理,原因是什麼,能帶來哪些好處和不足?以及內存上的分配是怎麼樣的等等。Java上偏向於底層,問的框架不是很多,反而是底層API的特點,以及代碼規範來考察你對API的掌握情況。類似於反射,多線程問得很多,經典的題目就是「如果實現有效的線程調度」,「如何防止死鎖」等等。
推薦閱讀:
查看原文 >>
相關文章