日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

分享下多年积累的对JAVA程序员成长之路的总结

發(fā)布時(shí)間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分享下多年积累的对JAVA程序员成长之路的总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章來(lái)自貼吧。原文地址:http://tieba.baidu.com/p/2017010306



我也搞了幾年JAVA了,由于一向懶惰,沒(méi)有成為大牛,只是一普通程序猿,不愛(ài)玩社交網(wǎng)站,不愛(ài)玩微博,唯獨(dú)喜歡百度貼吧,潛水很久了,手癢來(lái)給新人分享下從新手成長(zhǎng)為老鳥的已見(jiàn),也刷刷存在感,應(yīng)該不比曝照差吧。

首先初識(shí)語(yǔ)法的階段,必須要學(xué)會(huì)怎么操作對(duì)象,操作if和for,操作list set map,然后是線程、IO和jdbc什么的,其余的,若是一時(shí)不理解,可以后邊需要時(shí)再學(xué)。
這階段完了,你可以寫些能在控制臺(tái)打印出來(lái)的小程序,鍛煉下邏輯思維。也就是號(hào)稱JAVASE畢業(yè)了,其實(shí)不過(guò)是入門而已,如果要往WEB方向發(fā)展,這些倒是基本足夠了。

接下來(lái)要學(xué)HTML JSP SERVLET 數(shù)據(jù)庫(kù) JAVASCRIPT TOMCAT,目標(biāo),寫出第一個(gè)動(dòng)態(tài)網(wǎng)站,也許只是個(gè)登陸功能,只能展示下個(gè)人資料,但這是很重要的一步,你要弄清楚的是,一個(gè)用戶的點(diǎn)擊產(chǎn)生的請(qǐng)求,是從哪里發(fā)起,哪里接收,哪里處理,哪里返回,你得理解瀏覽器和服務(wù)器的關(guān)系和分工,cookie和session,request和response。這個(gè)是個(gè)WEB開(kāi)發(fā)的學(xué)習(xí)初級(jí)階段,這都是些JAVA誕生以來(lái)最原始的最官方的WEB開(kāi)發(fā)技術(shù),當(dāng)然現(xiàn)在真正的項(xiàng)目很少直接采用這些技術(shù)了,為了不斷提高技術(shù)的易用性、開(kāi)發(fā)效率和可維護(hù)性、可擴(kuò)展性,無(wú)數(shù)開(kāi)源項(xiàng)目都是在這些原始技術(shù)的基礎(chǔ)上封裝、改進(jìn)。所以這個(gè)階段不要盲目樂(lè)觀地跑去找工作或者對(duì)實(shí)習(xí)挑三揀四,你會(huì)被打擊到的。

好,初始階段完成,開(kāi)始進(jìn)入WEB開(kāi)發(fā)的正題,首先是傳說(shuō)中的三大框架,struts hibernate spring成為熟練的增刪改查程序員是必須的,在這個(gè)階段你還要理解為什么要用這仨而不是那些JSP SERVLET JDBC,你要體會(huì)到寫MVC、三層架構(gòu)的好處。這個(gè)階段不要輕易質(zhì)疑三大框架的價(jià)值,也許剛開(kāi)始你會(huì)覺(jué)得麻煩,覺(jué)得他們有時(shí)候是多此一舉,一兩年后回過(guò)頭來(lái)你會(huì)覺(jué)得少了這些框架你已經(jīng)很難干活了。這個(gè)階段還要避免的心態(tài)是能熟練地增刪改查了,就認(rèn)為寫程序不過(guò)如此,然后往簡(jiǎn)歷上填個(gè)精通,這也是新手面試被批得體無(wú)完膚的原因之一。如果你學(xué)得好,這會(huì)應(yīng)該能熟練地寫個(gè)博客啊,小論壇啊之類的WEB項(xiàng)目了,也就是達(dá)到了就業(yè)的基本要求。

接下來(lái)就沒(méi)有固定模式了,你的第一家企業(yè)對(duì)你的影響會(huì)很大,我見(jiàn)識(shí)過(guò)爛企業(yè)是如何毀新人的,用著設(shè)計(jì)惡劣的架構(gòu),老掉牙的技術(shù),不斷地耽誤新人的成長(zhǎng),有的員工在這種企業(yè)一呆數(shù)年,思維已經(jīng)完全被錯(cuò)誤觀點(diǎn)定型,深陷于公司業(yè)務(wù)和老系統(tǒng)中疲于奔命,看似能解決問(wèn)題,卻無(wú)法給公司帶來(lái)真正的進(jìn)步,就像一個(gè)用了數(shù)年砍刀的人,就算再熟練,刀法再好,也打不過(guò)用槍的。如果離開(kāi)了這個(gè)公司,恐怕很難在這個(gè)行業(yè)再立足。記得有個(gè)說(shuō)法很好,一個(gè)人用10年的時(shí)間重復(fù)做頭一兩年做的事,你的真實(shí)工作經(jīng)驗(yàn)其實(shí)還是一兩年。爛公司的老員工就是如此。在這頭一年里,定個(gè)標(biāo)準(zhǔn)吧,你應(yīng)該能做到的有:
1、把一些常用的瑣碎技術(shù)學(xué)會(huì)了,比如xml的作用和實(shí)際運(yùn)用,如何操作文件,如何運(yùn)用日志,如何簡(jiǎn)化封裝常用的工具類,比如日期操作、編碼處理、分頁(yè)模塊等等,這些小東西會(huì)占用你大量的時(shí)間去處理摸索。
2、把數(shù)據(jù)庫(kù)用好。數(shù)據(jù)庫(kù)不是會(huì)增刪改查就可以了的,你要關(guān)注事務(wù)設(shè)置是否合理,是否有可能產(chǎn)生臟數(shù)據(jù),是否要?jiǎng)佑脴?lè)觀鎖悲觀鎖等等,重要數(shù)據(jù)出了錯(cuò),無(wú)論是技術(shù)上還是業(yè)務(wù)上都是很麻煩的事。
3、懂得什么是集群,什么是分布式,懂得怎么向別的系統(tǒng)發(fā)請(qǐng)求,交換數(shù)據(jù),webservice。
4、如果你也寫頁(yè)面,你要會(huì)用JAVASCRIPT,不一定要很深入,你可以用JQUERY代替,做到無(wú)刷新的頁(yè)面操作以及AJAX請(qǐng)求。

第一年能達(dá)到這個(gè)程度,你絕對(duì)已經(jīng)在平均水準(zhǔn)之上了。在我達(dá)到這個(gè)水平時(shí),我有種似乎一切網(wǎng)站開(kāi)發(fā)都不在話下的感覺(jué),當(dāng)然后來(lái)我很快就發(fā)現(xiàn)了我還差得太遠(yuǎn)太遠(yuǎn)….這個(gè)階段想面?zhèn)€高薪的工作還是很難的,只能說(shuō)達(dá)到溫飽線了,不用為柴米油鹽發(fā)愁。

下一個(gè)階段,你應(yīng)該考慮你的代碼質(zhì)量了。
1、多線程和異步、并發(fā)的概念會(huì)忽然變得很重要,因?yàn)樵谝粋€(gè)對(duì)性能有要求的系統(tǒng)里,是不會(huì)允許你把各種瑣事都排著隊(duì)一件件去辦的,你不能老寫些a方法調(diào)b方法再調(diào)c方法再調(diào)d方法然后返回的代碼。你開(kāi)始想起有隊(duì)列這種東西,有runable這種東西,你開(kāi)始覺(jué)得自己的代碼高端起來(lái)了,和當(dāng)年的增刪改查程序員有天壤之別。但同時(shí)麻煩也來(lái)了,你開(kāi)始遇到線程安全問(wèn)題,尤其是當(dāng)你的程序跑在一個(gè)多機(jī)環(huán)境而不是單機(jī)環(huán)境里的時(shí)候,你會(huì)對(duì)這些很頭痛。對(duì)于這些問(wèn)題,Jms技術(shù)是個(gè)很有代表性的東西,當(dāng)然并不像ssh那么常用。
2、你會(huì)發(fā)現(xiàn)數(shù)據(jù)庫(kù)性能實(shí)在不行,出于不甘現(xiàn)狀,或者趕時(shí)髦,你該去了解nosql了,memcached redis mongodb,眼花繚亂,沒(méi)關(guān)系,試著用用,能很好地緩解mysql之類關(guān)系數(shù)據(jù)庫(kù)的壓力。
3、出于公司某些業(yè)務(wù)需要,你可能會(huì)鉆研一個(gè)特定技術(shù)領(lǐng)域,比如全文搜索技術(shù),lucene\solr,比如工作流jbpm,比如權(quán)限系統(tǒng),單點(diǎn)登陸之類的,又或者某些特定業(yè)務(wù)領(lǐng)域的算法研究,這些是你的加分項(xiàng)。
4、你開(kāi)始發(fā)現(xiàn)你的代碼很亂,久了以后自己都看不懂,重復(fù)的,難以重用的代碼堆積如山,不想維護(hù),BUG百出。于是你要開(kāi)始重視設(shè)計(jì)模式,合理地改造下自己的代碼習(xí)慣,不再被僵化的SSH,MVC三層架構(gòu)束縛住。
5、Google和各種資料是你進(jìn)步的動(dòng)力,極少再遇到必須請(qǐng)教別人才能解決的問(wèn)題,如果你這個(gè)階段還老是問(wèn)別人,你的技術(shù)生涯也就快到頭了。

這個(gè)階段,如果你的交際和自我推銷能力不是太差,你的收入將是白領(lǐng)水平,至少接近了。

我覺(jué)得多數(shù)程序員在工作多年之后都能達(dá)到這個(gè)水平,有的人只需要兩年,有的人卻要用上五六年,在這個(gè)階段落伍的人,有的是出于天賦和思維所限,有的是出于對(duì)技術(shù)缺乏熱情,有的是出于工作內(nèi)容的制約。等到年近中年,再也拼不過(guò)年輕人,被淘汰出局,只能在自嘲為屌絲和碼農(nóng)的無(wú)奈中黯然轉(zhuǎn)行。
這是個(gè)很重要的分水齡,你能不能繼續(xù)進(jìn)步,能不能在30歲以后繼續(xù)從事技術(shù)工作,能不能在公司里獨(dú)當(dāng)一面,我覺(jué)得就看你能不能超越這個(gè)階段了。我前面提到的爛公司里的工作數(shù)年的項(xiàng)目經(jīng)理,連這個(gè)層次都還沒(méi)達(dá)到…

接下來(lái)又是個(gè)全新的階段。
1、你要讀讀優(yōu)秀開(kāi)源項(xiàng)目的源碼,你要搞懂一些當(dāng)年不懂的基礎(chǔ)知識(shí),你開(kāi)始理解thinking in java的精髓,你能寫一些底層的代碼,有時(shí)還會(huì)覺(jué)得自己封裝的比某些開(kāi)源工具更好用更簡(jiǎn)單。
2、WEB的難點(diǎn)和重點(diǎn)永遠(yuǎn)都在于性能、負(fù)載能力上,而現(xiàn)在網(wǎng)絡(luò)的發(fā)達(dá)造成了數(shù)據(jù)量和操作密度的大大上升,硬件卻沒(méi)有相應(yīng)的進(jìn)步,你得試著更好地運(yùn)用更多的服務(wù)器來(lái)協(xié)同工作,從WEB端到服務(wù)端到數(shù)據(jù)庫(kù),全都需要集群,需要分布式,需要合理的控制數(shù)據(jù)的流向,掌握好網(wǎng)站上下,一大堆機(jī)器的平衡,找出性能的瓶頸,找出穩(wěn)定性和安全性的瓶頸,硬件出現(xiàn)故障,第三方技術(shù)出現(xiàn)錯(cuò)誤,將被當(dāng)成家常便飯融入到你的系統(tǒng)和代碼里仔細(xì)考慮。
3、開(kāi)始覺(jué)得方案無(wú)比地重要,一將無(wú)能累死千軍將不斷應(yīng)驗(yàn),一個(gè)不好的設(shè)計(jì),一個(gè)不好的方案,會(huì)讓一群優(yōu)秀的程序員工作成果大打折扣。你要關(guān)注架構(gòu)知識(shí),不能再滿足于SSH三層架構(gòu)到底。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),面向事件開(kāi)發(fā),敏捷開(kāi)發(fā)等等一系列的思想在關(guān)鍵時(shí)刻能決定你項(xiàng)目的生死,這個(gè)階段不再有標(biāo)準(zhǔn)范例讓你照抄,你只知道思想和原理,實(shí)踐卻需要自己不斷嘗試和改進(jìn)。
4、多關(guān)注各種雜七雜八的開(kāi)源技術(shù),有些你可能前面已經(jīng)接觸過(guò)了,和通信有關(guān)的,和集成開(kāi)發(fā)環(huán)境有關(guān)的,和架構(gòu)有關(guān)的,各個(gè)領(lǐng)域你都應(yīng)該能信口說(shuō)上幾個(gè)主流技術(shù),雖然你可能只是聽(tīng)說(shuō)過(guò),了解,但關(guān)鍵時(shí)刻你得知道如何去選擇技術(shù),并快速掌握它。你還會(huì)去考慮嘗試下別的語(yǔ)言,這里不是說(shuō)轉(zhuǎn)向什么C++ C#之類的,那和JAVA程序員不相干,我說(shuō)的是一些運(yùn)行于JVM之上的語(yǔ)言,比如scala和groovy,初識(shí)他們時(shí)你會(huì)覺(jué)得java真的老了。但當(dāng)你回到一個(gè)綜合性的大型項(xiàng)目中,又會(huì)覺(jué)得java積累下來(lái)的整個(gè)體系技術(shù)是如此完善,就像一個(gè)工業(yè)化標(biāo)準(zhǔn)一樣。
你能把這個(gè)階段實(shí)踐好,勝任項(xiàng)目經(jīng)理,乃至中小公司的技術(shù)總監(jiān)都是可以的。

不知不覺(jué)寫了這么多了,以上是我個(gè)人眼里的一般向JAVA EE發(fā)展線路,限于篇輻也不全面,實(shí)際個(gè)人成長(zhǎng)路線可能因?yàn)楣ぷ鲀?nèi)容的不同差異會(huì)很大,有的人偏向了底層研究,有的人偏向了業(yè)務(wù)需求設(shè)計(jì),有的帶有濃重的行業(yè)色彩,而且技術(shù)之外,還有很多知識(shí)也很重要.w做JAVA沒(méi)有輕松的方向,但一個(gè)對(duì)技術(shù)抱有興趣的人,走到這一步時(shí),仍然會(huì)對(duì)開(kāi)發(fā)抱有熱情,想要寫出好的項(xiàng)目。純?yōu)榱松?jì)而工作的程序猿是走不到這一步的。

暫且收手,希望以上能讓J8的新人們了解將來(lái)要面對(duì)的大致?tīng)顩r,同時(shí)也抱著打擊下小朋友們幼小心靈的邪惡心理就此按下發(fā)表按鈕。

能完整看完的同學(xué),在此表示欽佩,我想當(dāng)年的我也未必能看完這種又臭又長(zhǎng)的敘述…

總結(jié)

以上是生活随笔為你收集整理的分享下多年积累的对JAVA程序员成长之路的总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。