一下是我的建議,也是隨便聊聊吧:
因爲我說的不一定對,可能也有很膚淺的地方。
本人做JAVA差不多6年了
現在在一家大型公司 負責帶人做研發和麪試新人。
作爲過來人,曾經熬夜看書記筆記,敲代碼,深知IT的辛苦,不想大家錯了方向。
之前有說法JAVA已死。
實話實說JAVA現在確實走下坡路了,特別是web方向 下坡路很嚴重。
所以在對JAVA開發選擇方向上確實需要慎重。
因爲JAVA原來的SUN已被Oracle收購,Oracle對JAVA的發展確實不夠支持
因爲他基本是專注於自己的數據庫產品賺錢。
而且其他的語言近年來突飛猛進。
所以現在只會做JAVA收入確實比以前低了不少。
但目前來說JAVA還是熱門職業,但已絕對不算高薪【付出和收入比例】。
【關於框架和麪試】
現在常用框架不外乎SSH, JBPM, Ibatis, Hadoop.
ssh現在有點像雞肋吧。
我最早參與聯通網上營業廳項目,用的struts1,漏洞太多。
後面後期改爲strut2 成本很高,結果爆了一個ONGL的注射漏洞 。
移動聯通電信全部都遭殃了,呵呵。
所以現在大型項目基本不感冒這些框架了 一般都自己寫框架。
但從另一個方面也說明SSH也有用武之地,比如快速開發小型web項目。
總之框架會用就行,SSH被淘汰是不久的事,重要的還是原理和項目經驗。
這裏一說要說很多,框架這個東西水很深,不是純學術的東西。
記住,對於框架來說,我們是用戶。把開發人員說成用戶?
雖然這樣說很彆扭,但確實是那樣。
因爲研發框架本身不能盈利的,這些研發基金會靠什麼?
我們用它的框架做項目,我們是他們的客戶,核心技術上就依賴它。
項目從一個框架轉換到另一個 付出的成本是巨大的 框架基金會可以變向盈利。
像webwork團隊搞的Xwrok開始沒火,就藉助strut1的團隊名聲,搞了個Struts2出來,誰知道ONGL漏洞是不是故意留下的呢?呵呵。
又如JBPM4吧,好像是主要研發人員和團隊鬧彆扭,跳槽到另外公司又搞出JBPM5,完全不一樣的東西。
【關於面試SSH】
SSH已經非常普遍了。
面試的內容,這雖不是我們一家之言,
但公司最想是你參入項目的經驗有多少,掌握有多少,學習能力?
這個是公司招人的共性。
SSH一些面試方向:
struts2 你能講到底層數據傳輸機制ValueStack 會覺得你掌握足夠了。
hibernate 你能講到對其優化,封裝映射臨時對象, 怎樣使用緩存分頁最有效率 其中一個,我也不會再問,算精通了。
spring 無非 IOC和AOP原理,它的MVC的話,web項目基本會用strut2代替。還有個整合其他框架。
其實整合問題這個蠻BT的,因爲整合版本問題,我自己都要弄很久,但是問到主要是想了解你的項目經驗。
JBPM 這個東西,也沒什麼說的,沒工作經驗的可以
網上找個現成項目,自己花一週重做一遍即可。
這是一家之言,但SSH框架內容就這麼點 不離其中。
【Hadoop】
這個目前還比較火吧。淘寶都用它。其實跟SSH一個樣,就是個框架。
如果同樣的時間學習SSH和Hadoop。
Hadoop絕對是能輕鬆找到工作,而且待遇高於SSH。
現在時間是2013.11,是絕對輕鬆找到開發工作,待遇相對高於web開發。
所以準備學框架的學生,再特別深入學SSH意義不是太大,可以考慮直接Hadoop
人才較缺,原因,SSH是web方向,JAVA Web 在走下坡路。
而分佈式,大數據,數據挖掘,雲計算現在較流行。
難點:知識內容並不比SSH難,主要是好教材少,硬件配集羣麻煩,也是人才較缺的原因。
【Android】
Android移動市場佔有很高,學起來很簡單 現在學找工作沒問題(3年內) 待遇不差。
但是不能常青,Android碎片化目前是沒有解決方案,再這樣下去 路線接近Symbian,隕落只是不到5年的事。
這部分面試 就簡單多了。
如你沒有項目經驗,你可做個APP放商場,我們看到完整的應用。即使這個APP相當簡單。
其他移動發展方向:
html5 現在還不成熟,大項目沒法用,慢。不用太深入,fackbook都在抱怨了麼?
WP: 這個值得了解,沒有大的硬傷,而且看看背後的公司是誰。
IOS: 這個目前好處多多,公司會給你配蘋果電腦,手機,ipad。
目前是中薪以上高薪以下。
Hybrid:混合開發,目前我們項目的解決方案,因爲移動終端多樣化,不止是手機電視,包括車載終端,大客戶的特種移動設備。 待遇可觀。
說了一些看似和Android沒關的,但實際相關性很大,面試時,你除了android 就算只瞭解這些,加分很大的,因爲以後市場變化誰都說不清,公司是以市場盈利爲目的,招你進來都會讓你學習其他語言 你有這個意識,會給人印象深刻。
【數據庫】
mySQL最好不要弄了,用oracle代替。
有幾次 問到沒工作經驗的應聘者關於oracle數據庫,我還得到:電腦太卡所以用mySQL的答案。
記住,MySQL被oracle收購來,就是準備弄死的。
oracle學習優化,花費精力不到你學一門JAVA框架1/2的時間,而有優化能力對你應聘JAVA工作是開綠燈的。
這不是我一家之言,跟同城軟件負責招聘的交流過,都是很注重額外優化能力。
大項目上線遇到最多的問題,始終是負載,承載能力,說白了大部分就是數據庫承載。
過年發短信不是要堵塞麼? 雙11支付不是要卡死麼?
只能oracle,沒有替代方案,目前沒有,幾年內也很難有。
nosql 雖然在高併發處理能力上非常優秀,但是也有碎片化的趨勢,因爲下面的具體產品
沒有統一標準。
安全性較於oracle,低太多,銀行,通信等行業不敢用,用在新浪微薄還行。
而且oracle主要就是JAVA編寫的,目前又是JAVA的母公司。
所以學JAVA千萬不能忽略oracle。
【面試注意的】
當面試問到你,不知道或記不到的內容,千萬不要回答,“我學過忘了或者不知道。”
因爲從我們的角度公司沒法評估你,甚至對你的能力產生疑問。
因爲有時我能感覺出來,其實應聘者瞭解這部,但可能學的不深,忘了。
最好的方式: 也是我們最願意聽到的,如問到一個你不太清楚的問題,你不清楚其實關係不大,你可以回答相關的。SSH只要你學過,內容其實都過了一遍,回答你擅長的,越詳細越好,即使相關性不大,但是會給人印象很好。
一個例子,我讓一個應聘者說說JAVA設計模式,按標準應該說要能至少了解10多種纔算過關。
對方可能知道點但瞭解不多,就講了單例,工廠,觀察者。
但是這位面試者把觀察者模式說的很詳細:適用於那種情況,添加刪除觀察者,容器是否需要同步,怎樣notify,JDK有提供支持類。
其他設計模式卻說不出來,但是這樣 我認爲也過關了。
以後做項目,代碼研究仔細點,邊做邊看花幾天時間,相信這樣的人也能弄透徹。
記住,雖然面試是可以找捷徑的,就是儘量展示自己會什麼?
初次工作者,畢業生 儘量不要說 “我可以學,瞭解一些”,是的,因爲聽到太多這種回答。
審美疲勞吧,應聘者應該說點不一樣的。因爲求職的確實多,也不乏濫竽充數者。
從我內心來講,我覺得才畢業的大學生有許多優勢,有激情,動力,同時年輕記憶能力好,也容易管理 薪資要求不高。
缺點就是缺乏工作經驗,項目經驗。經驗是沒法找捷徑的,必須得通過時間堆起來。