最近總有些斷斷續(xù)續(xù)的思考,想想從我入行以來,我到底學(xué)會(huì)了什么,做成過什么,以后要做什么,如何提升自己·······
工作3年了,常聽人說3年,5年,10年是程序員的坎,每過一個(gè)都會(huì)有新的想法,新的改變。
最近剛失業(yè),原公司要解散開發(fā)團(tuán)隊(duì),轉(zhuǎn)做其他業(yè)務(wù),這個(gè)消息對(duì)我來說在意料之外,但是又在情理之中,只是沒想到來的這么快,再這家公司待了2年,學(xué)到了不少技術(shù),但是最后的半年,因?yàn)楣?a target="_blank">產(chǎn)品研發(fā)的一些問題,加上自身的懈怠和懶惰,基本上是在打醬油,現(xiàn)在想起來感覺很后悔,浪費(fèi)了光陰,像這樣能有一份收入同時(shí)又可以學(xué)到東西的機(jī)會(huì)其實(shí)是很難得的,只怪自己當(dāng)時(shí)沒領(lǐng)悟到。
然后就是投簡(jiǎn)歷找工作,我預(yù)想的是有了工作經(jīng)驗(yàn)再找工作應(yīng)該不像當(dāng)年剛畢業(yè)找工作那么難了吧,實(shí)際上卻是當(dāng)我拿著3年工作經(jīng)驗(yàn)的簡(jiǎn)歷面試了一些公司之后發(fā)現(xiàn),其實(shí)我的能力對(duì)于勝任3年工作經(jīng)驗(yàn)的工程師崗位還是有些差距的,突然感覺到比剛畢業(yè)時(shí)更無助的感覺,也后悔工作3年卻沒積累到3年的經(jīng)驗(yàn),也許我是一個(gè)經(jīng)驗(yàn)用了3年,而不是有了3年經(jīng)驗(yàn)。
我是做j2ee開發(fā)的,一直都在做網(wǎng)站方面的開發(fā),但是這一段時(shí)間的面試下來,我感覺現(xiàn)在的公司招人特別是工程師這一崗位的要求是全能型人才,必須了解并掌握軟件開發(fā)中每個(gè)環(huán)節(jié)的具體操作。而我,卻只掌握了其中部分,其他的只有聽過或見別人弄過,是只知其然,不知其所以然。所以鑒于我這樣的情況,一些公司給我的定性是初級(jí)開發(fā)工程師,一開始我覺得很不高興,哥好歹也工作3年了,就給哥這評(píng)價(jià),可后來仔細(xì)一想,人家講的未必沒有道理。現(xiàn)在大部分軟件公司的技術(shù)團(tuán)隊(duì)都不會(huì)很龐大,但是工作量和工作強(qiáng)度卻是非常之大,如果一個(gè)團(tuán)隊(duì)成員不能獨(dú)當(dāng)一面,不能兼顧多方面工作,沒有很全面的實(shí)力的話,整個(gè)團(tuán)隊(duì)效率和能創(chuàng)造出的效益也是非常低下的。
那我們作為一個(gè)Java程序員到底需要掌握多少技術(shù)才能適應(yīng)現(xiàn)在的用人單位呢?
我個(gè)人總結(jié)后覺得有以下這么幾項(xiàng):
1. java 基礎(chǔ)
這就不用多說了吧,不用說精通,至少是常用的要熟練,不會(huì)說連jdk里面提供的類都沒認(rèn)全的(我確實(shí)有小部分不常用的沒記住的T.T)
2. 各種工具的使用
eclipse,SVN ,數(shù)據(jù)庫管理工具等等
3. j2ee 框架
只要你是用java來做WEB應(yīng)用,絕對(duì)少不了使用j2ee框架,目前流行的有
1)struts 2)spring 3) hibernate 4)ibatis 5)spirngMvc 等等的其他一些相似的框架,還有項(xiàng)目架構(gòu)中經(jīng)常會(huì)用到的緩存框架例如memcached ,ehcache,oscache等Java緩存框架
你需要掌握基本使用,部署,性能調(diào)優(yōu),配置
4. 數(shù)據(jù)庫基礎(chǔ)
數(shù)據(jù)庫一直是程序員需要重點(diǎn)掌握的一部分,當(dāng)下主流的還是關(guān)系型數(shù)據(jù)庫,產(chǎn)品有oracle mysql sqlserver db2,當(dāng)然nosql型數(shù)據(jù)庫也是未來方向,很多公司也已經(jīng)在使用,如redis mongodb membase 等等
你需要掌握基本使用,和根據(jù)業(yè)務(wù)邏輯設(shè)計(jì)表,索引,視圖,存儲(chǔ)過程,函數(shù)等
5. 應(yīng)用服務(wù)器
凡是web應(yīng)用首先都要部署到應(yīng)用服務(wù)器上,常用的產(chǎn)品有tomcat,jboss, apache,resin 等等,還有用來提升性能的反向代理服務(wù)器如nginx等
你需要掌握如何部署項(xiàng)目,基本調(diào)試,調(diào)優(yōu)
6. Linux系統(tǒng)
我們平常的編碼通常在windows環(huán)境下,可是生產(chǎn)環(huán)境卻通常是在Linux下,因?yàn)槲④浀臇|西,你懂得
所以我們需要掌握的是shell腳本,vi ,各種軟件的安裝,部署,其中shell腳本是最重要的(我個(gè)人覺得哈)
7. 前端開發(fā)基礎(chǔ) html css js
如果你不是專攻服務(wù)器編程的話,你一定會(huì)接觸前端開發(fā),這其中html你需要掌握各種標(biāo)簽的使用,css首先你得看得懂是吧,js 目前來看屬于一門獨(dú)立的程序設(shè)計(jì)語言,也是前端中非常重要的一塊,需要掌握其語法和一些常用框架如jquery,extjs等的使用(我之前的公司前端只負(fù)責(zé)切html和css,js啥的都是我們自己來)
8. 設(shè)計(jì)模式
面試官最喜歡問的問題之一,這個(gè)被很多人吹的很神的東西我個(gè)人認(rèn)為既不用奉為圭臬,也不用棄如敝履,這是一個(gè)思想的東西,也許寫一輩子程序那23個(gè)設(shè)計(jì)模式也不一定全用的上,但是知道并且能夠在適當(dāng)?shù)臅r(shí)候用他來解決問題就夠了
9. 數(shù)據(jù)結(jié)構(gòu) 算法
記得國外哪位大神說過,編程=數(shù)據(jù)結(jié)構(gòu) + 算法 。雖然感覺平常的工作中用到的不多,但還是覺得這是一個(gè)內(nèi)功的東西,不會(huì)這兩樣也許你也可以完成很多開發(fā)工作,但是如果你精通這兩樣,你的思想境界和思考問題的高度就不是一般人能比的了,如果想要在程序員這條路上繼續(xù)走下去,不管以后是成為技術(shù)專家還是技術(shù)性管理人才,都是必須要爛熟于心的。
--------------------------
上面幾點(diǎn)是我覺得應(yīng)該掌握的具體的技術(shù),再講些其他層面的吧
1. 項(xiàng)目管理
這里的項(xiàng)目管理我指的是對(duì)項(xiàng)目架構(gòu)的理解和軟件開發(fā)標(biāo)準(zhǔn)化流程的一些東西,因?yàn)橐粋€(gè)團(tuán)隊(duì)除了技術(shù)老大之外其他成員也還是需要深刻的達(dá)成一個(gè)這方面的共識(shí),不然沒法共事對(duì)吧
2. 項(xiàng)目架構(gòu)設(shè)計(jì)
這個(gè)就是需要大量實(shí)踐和多看書來培養(yǎng)的了,如果你想成為架構(gòu)師這是必須的,目前web方面的項(xiàng)目架構(gòu)都是朝著高性能,高可用,大數(shù)據(jù)的方向,你需要掌握的不僅是上面提到的所有技能還有技術(shù)之外的產(chǎn)品,業(yè)務(wù)等更深更廣的東西
上面僅僅是我工作中遇到和我認(rèn)為應(yīng)該掌握的,也是僅針對(duì)Java的web開發(fā)方向,如果你是android開發(fā)的話,還需要掌握android sdk中的方方面面。
如果將上述方面的技術(shù)都掌握到熟練的程度,勝任一個(gè)3年經(jīng)驗(yàn)的開發(fā)崗位應(yīng)該是沒有問題了(我就沒有全部掌握。..T.T),當(dāng)然 如果你希望你的技術(shù)水平不只是熟練的話,個(gè)人認(rèn)為則需要把上述其中幾項(xiàng)往深度方面修煉,然后有所成再往廣度發(fā)展,
先在一個(gè)領(lǐng)域有足夠的深度,再往廣度發(fā)展會(huì)容易很多,職業(yè)道路也會(huì)好走很多。
---------------------------------
首先感謝您看我啰嗦廢話到這里,以上都是我在工作3年這個(gè)十字路口的一些所思所想,肯定有所不足和幼稚,希望您看到這里也能發(fā)表下您對(duì)您職業(yè)生涯的感想,我們大家一起交流成長(zhǎng),努力提高自己的技術(shù)水平,可以為將來更好的工作機(jī)會(huì)做準(zhǔn)備。
-
JAVA
+關(guān)注
關(guān)注
19文章
2967瀏覽量
104718 -
程序員
+關(guān)注
關(guān)注
4文章
952瀏覽量
29799
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論