想了解java程序員中心嗎?想了解Java 程序員每天都在做什么?,Java程序員必看的技術(shù)社區(qū)?? 嗎?......本文帶你一探究竟。
1.Java 程序員每天都在做什么?
魚(yú)皮是一名 在大、中、小微企業(yè)都待過(guò) 的 Java 開(kāi)發(fā)者,今天和大家分享下自己在不同公司的工作日常和收獲。包括一些個(gè)人積累的工作提升經(jīng)驗(yàn),以及一些 Java 學(xué)習(xí)的方法和資源。先從我的*份 Java 開(kāi)發(fā)實(shí)習(xí)工作說(shuō)起吧~實(shí)習(xí)生工作日常我是在大二暑期開(kāi)始了我人生的*次實(shí)習(xí),崗位正是 Java 開(kāi)發(fā),還混了個(gè) title 叫 “助理 Java 工程師”!這家公司屬于一家中型企業(yè),作為*份實(shí)習(xí),我已經(jīng)很滿足了。剛進(jìn)入公司的*天,在導(dǎo)師和運(yùn)維同學(xué)的幫助下,搞好辦公設(shè)備,安裝開(kāi)發(fā)環(huán)境,本以為第二天就能開(kāi)始寫(xiě)代碼。但是整整兩周,我都沒(méi)有寫(xiě)下一行 Java 代碼!而是先花了一周的時(shí)間熟悉企業(yè)的業(yè)務(wù)、我要參與的項(xiàng)目源碼(Spring 全家桶 + Dubbo)、以及公司的各種辦公套件和研發(fā)流程。這些幾乎是每位剛剛進(jìn)入新公司的同學(xué)都要做的事情。然后我就開(kāi)始接需求了,面對(duì)前人留下的 xx 一樣的代碼和復(fù)雜的業(yè)務(wù),我根本無(wú)從下手。那么這一周我做了些什么呢?在導(dǎo)師的指導(dǎo)下,我針對(duì)這個(gè)需求涉及的業(yè)務(wù)流程畫(huà)了一個(gè)很完整的流程圖,并且在流程圖上進(jìn)行了詳細(xì)的標(biāo)注。畫(huà)完流程圖之后,我突然感覺(jué)思路清晰了很多,接下來(lái)就是寫(xiě)偽代碼,終于在一周后,我才正式開(kāi)始寫(xiě) Java 代碼了。在此之前,我基本都是跟著視頻教程寫(xiě)寫(xiě)簡(jiǎn)單的 Demo 程序,或者自己為了學(xué)習(xí)做做簡(jiǎn)單的小項(xiàng)目。從來(lái)沒(méi)有像這次一樣在寫(xiě)代碼前進(jìn)行如此精心的設(shè)計(jì),*次有了自己走出校園的感覺(jué),這種體驗(yàn)和成長(zhǎng)是在學(xué)校無(wú)法感受到的。這也是為什么我建議計(jì)算機(jī)專(zhuān)業(yè)的同學(xué)在學(xué)了一些開(kāi)發(fā)技術(shù)后,趁早去找一份實(shí)習(xí),不用擔(dān)心自己的經(jīng)驗(yàn)不足,通過(guò)面試和企業(yè)工作的磨練才能讓你積累更多的經(jīng)驗(yàn)、提升技術(shù),也能幫助你明確自己的目標(biāo)。現(xiàn)在也有很多幫助*生找實(shí)習(xí)的平臺(tái),像 牛客網(wǎng)、實(shí)習(xí)僧 都是很不錯(cuò)的。實(shí)習(xí)的這家公司雖然不大,但是團(tuán)隊(duì)的氛圍非常好。也正因?yàn)楣静淮螅图夹g(shù)主管、CTO 等大佬的交流機(jī)會(huì)也非常多,我們每天開(kāi)工前都會(huì)開(kāi)站會(huì)(敏捷開(kāi)發(fā))來(lái)討論工作,并且定期地舉辦技術(shù)分享。整個(gè)實(shí)習(xí)過(guò)程真的非常愉快,學(xué)到了很多技術(shù)和業(yè)務(wù)知識(shí),也開(kāi)拓了眼界,明確了我今后的職業(yè)發(fā)展方向。最爽的事是工作不忙的時(shí)候也摸魚(yú)兒刷了一些算法,真的非常感謝公司和這段實(shí)習(xí)經(jīng)歷!然后分享我目前在 騰訊 做 Java 開(kāi)發(fā)的日常。鵝廠工作日常沒(méi)錯(cuò),鵝廠并不是只有 C++ 這一門(mén)后端開(kāi)發(fā)語(yǔ)言,其實(shí)鵝廠的 Java 程序員數(shù)量也是很多的!我從大三暑假開(kāi)始就在騰訊實(shí)習(xí),并通過(guò)答辯轉(zhuǎn)正,雖然只畢業(yè)半年,但至今累積在鵝廠寫(xiě) Java 已經(jīng)一年半多了,那除了偶爾摸魚(yú)外,我平時(shí)的工作都做些什么呢?起初我以為大廠程序員的工作日常也就是寫(xiě)代碼、造輪子,在大公司,就得寫(xiě)更多的代碼!結(jié)果在剛?cè)肼殨r(shí),由于經(jīng)驗(yàn)不足,再加上年輕氣盛,有著莫名的自信。剛拿到需求后,我覺(jué)得特別簡(jiǎn)單,不就是 CRUD(增刪改查)么?于是,我就懶得設(shè)計(jì)方案了,沒(méi)怎么思考就直接上手寫(xiě)代碼了,結(jié)果不斷翻車(chē),出現(xiàn)了很多細(xì)節(jié)問(wèn)題,比如數(shù)據(jù)沒(méi)有訪問(wèn)權(quán)限獲取不到、和其他*的同學(xué)接口字段沒(méi)對(duì)齊等等,甚至還出現(xiàn)需求理解錯(cuò)誤的情況!*導(dǎo)致的結(jié)果就是做了很多無(wú)用功,把本來(lái)幾天就能做完的需求一拖再拖,一度以為自己要被勸退了! o(╥﹏╥)o經(jīng)歷了一次次的翻車(chē)后,我開(kāi)始思考自己的問(wèn)題到底出在哪里,為什么我總感覺(jué)自己什么都知道、可以寫(xiě)出代碼,但寫(xiě)出的代碼卻經(jīng)常錯(cuò)誤連篇呢?我向?qū)熀推渌耐抡?qǐng)教后發(fā)現(xiàn),其實(shí)大家更多的時(shí)間并不是在寫(xiě)代碼,而是在 開(kāi)會(huì)討論、核對(duì)需求、溝通對(duì)齊、設(shè)計(jì)技術(shù)方案、測(cè)試等。寫(xiě)代碼的時(shí)間其實(shí)很少很少!導(dǎo)師對(duì)我說(shuō):“其實(shí)寫(xiě)代碼并不難,關(guān)鍵是要明確為什么要寫(xiě)代碼、怎么寫(xiě)代碼、寫(xiě)什么代碼?!痹瓉?lái),相比寫(xiě)代碼,更重要的是寫(xiě)代碼前的技術(shù)方案設(shè)計(jì)和寫(xiě)代碼后的測(cè)試!技術(shù)方案設(shè)計(jì)當(dāng)程序員確認(rèn)完需求后,要先根據(jù)需求來(lái)給出一個(gè)清晰明確的技術(shù)方案,一方面是證明需求的可行性,另一方面是對(duì)自己之后的代碼實(shí)現(xiàn)有一個(gè)大致思路。很多的問(wèn)題其實(shí)是可以在設(shè)計(jì)階段去發(fā)現(xiàn)和規(guī)避的,而不是等你寫(xiě)代碼的時(shí)候,才發(fā)現(xiàn)之前的設(shè)計(jì)有問(wèn)題、甚至是需求本身就不合理!到時(shí)候耽誤了項(xiàng)目上線,背鍋的就是程序員自己!之前有朋友問(wèn),在大公司,萬(wàn)一寫(xiě)著寫(xiě)著代碼,沒(méi)思路了、寫(xiě)不出來(lái)了怎么辦?這種問(wèn)題其實(shí)就是可以通過(guò)前期的技術(shù)方案設(shè)計(jì)來(lái)規(guī)避的。畢竟老板才不關(guān)心你代碼寫(xiě)的怎么樣,他只關(guān)心你的技術(shù)方案,換句話說(shuō),是關(guān)心你能不能按時(shí)完成項(xiàng)目!此前,我即使畫(huà)了一些流程圖,目的也僅僅是在于幫助自己寫(xiě)代碼。覺(jué)得代碼能寫(xiě)出來(lái)后,我就不再去考慮方案設(shè)計(jì)了。而在意識(shí)到技術(shù)方案的重要性后,我會(huì)在理解需求后,先寫(xiě)一份詳盡的技術(shù)方案,包括需求的合理性分析、選用什么技術(shù)來(lái)實(shí)現(xiàn)指定的功能、怎么設(shè)計(jì)庫(kù)表結(jié)構(gòu)、怎么設(shè)計(jì)類(lèi)之間的關(guān)系(用哪種設(shè)計(jì)模式)、怎么設(shè)計(jì)接口、計(jì)劃工期是多久、有沒(méi)有什么風(fēng)險(xiǎn)點(diǎn)等等。開(kāi)發(fā)設(shè)計(jì)好方案后,就要投入開(kāi)發(fā)。基本就是先利用一些數(shù)據(jù)庫(kù)管理軟件或者登陸服務(wù)器去配置一些庫(kù)表,然后選用一些 Java 類(lèi)庫(kù)和工具來(lái)編寫(xiě)業(yè)務(wù)代碼。說(shuō)是編寫(xiě)代碼,其實(shí) 80% 以上都是復(fù)制粘貼!復(fù)制別人的,復(fù)制自己的,積累的代碼多了之后,簡(jiǎn)直爽的飛起!不能復(fù)制粘貼的,也可以用一些代碼生成工具、甚至是低代碼工具來(lái)偷偷懶。誰(shuí)說(shuō) CRUD 工程師就沒(méi)有技術(shù)?哼,咱偷懶也要有水平。寫(xiě)代碼的過(guò)程中,你要遵循一定的規(guī)范,不斷地將重復(fù)的代碼進(jìn)行抽象、封裝和復(fù)用,可以利用一些設(shè)計(jì)模式,并且要多多編寫(xiě)注釋?zhuān)岣叽a的可讀性和可維護(hù)性。關(guān)于代碼規(guī)范,建議參考 Google 開(kāi)源的 Java 代碼規(guī)范或者阿里巴巴的 Java 代碼規(guī)范,非常專(zhuān)業(yè)!寫(xiě)好代碼后,你要再次檢查自己的代碼,可以利用一些代碼格式化和代碼檢查工具來(lái)提前發(fā)現(xiàn)一些規(guī)范問(wèn)題以及 bug,還要在本地編寫(xiě)單元測(cè)試來(lái)最細(xì)粒度地保證代碼的可運(yùn)行性和正確性。Java 的單元測(cè)試類(lèi)庫(kù)一般用 JUnit 就行了,本地自己測(cè)試請(qǐng)求接口的話可以直接用 IDEA 自帶的測(cè)試插件,也可以選用 Swagger 或者 YAPI、Postman 等接口管理工具,甚至還可以直接使用命令行 curl 等。測(cè)試在寫(xiě)完代碼之后,要經(jīng)過(guò)非常非常非常充分的測(cè)試才能提交代碼!這個(gè)階段也是非?;〞r(shí)間的,需要配合測(cè)試同學(xué),提供一些測(cè)試的細(xì)節(jié)和補(bǔ)充說(shuō)明,并且對(duì)測(cè)試中發(fā)現(xiàn)的問(wèn)題進(jìn)行修復(fù)。很多程序員應(yīng)該都有這種感受:寫(xiě) bug 一分鐘,改 bug 一小時(shí)!這些就是我目前在鵝廠的日常工作,其實(shí)和其他公司不會(huì)什么區(qū)別,無(wú)非就是你負(fù)責(zé)的業(yè)務(wù)量級(jí)越大,你在設(shè)計(jì)、測(cè)試等環(huán)節(jié)上投入的時(shí)間和精力就要更多;業(yè)務(wù)團(tuán)隊(duì)越大,你在需求溝通和合作上也要花更多的時(shí)間。這些工作看似和寫(xiě)代碼關(guān)系不大,但對(duì)于程序員的經(jīng)驗(yàn)積累以及職業(yè)素養(yǎng)、工程能力的提升是至關(guān)重要的!優(yōu)秀的程序員,不只是有能力寫(xiě)得一手好代碼,更多的是需要具備一些工程師素養(yǎng),比如:對(duì)技術(shù)有獨(dú)特的興趣和追求,持續(xù)學(xué)習(xí)有全局觀,總能站在一個(gè)更高、更全局的視角去考慮問(wèn)題處理事情小心謹(jǐn)慎,而不是憑直覺(jué)和過(guò)去的經(jīng)驗(yàn)主觀臆斷溝通能力強(qiáng),能夠用方便他人理解的方式來(lái)描述問(wèn)題強(qiáng)大的設(shè)計(jì)架構(gòu)能力刨根問(wèn)題,深究問(wèn)題本質(zhì)代碼潔癖,精益求精不止技術(shù),還注重業(yè)務(wù)底層邏輯,關(guān)心用戶執(zhí)行力強(qiáng),有責(zé)任心懂得利用自動(dòng)化工具提升效率善用繪圖、圖表來(lái)描述技術(shù)架構(gòu)和問(wèn)題樂(lè)于分享,積極為他人指路在工作之余,我也在朝著成為一名優(yōu)秀工程師的路上而努力。因此,我會(huì)利用公司提供的知識(shí)平臺(tái)、問(wèn)答平臺(tái)和技術(shù)資源進(jìn)行學(xué)習(xí),并且多和身邊的技術(shù)大牛們交流。大公司技術(shù)好,大佬多,提供的資源也真的非常多,這是我認(rèn)為很多同學(xué)應(yīng)該去大廠的一個(gè)原因,而身在大廠的同學(xué)更應(yīng)該利用好這些資源。我還會(huì)積極參與一些公司內(nèi)外的開(kāi)源項(xiàng)目,和優(yōu)秀的程序員朋友一起合作,互相學(xué)習(xí)進(jìn)步,提升代碼的水平。這里也建議大家多看 GitHub 上的開(kāi)源項(xiàng)目,先在本地運(yùn)行并熟練使用它,然后嘗試分析源碼和貢獻(xiàn)代碼。不會(huì)找開(kāi)源項(xiàng)目?我之前分享過(guò)一篇文章,能幫到大家:【硬核干貨】如何高效找到優(yōu)質(zhì)編程項(xiàng)目?此外,提升個(gè)人影響力也是很重要的,我認(rèn)識(shí)很多 Java 開(kāi)發(fā)工作者都喜歡寫(xiě)技術(shù)文章,并且一些朋友開(kāi)通了自己的自媒體平臺(tái)來(lái)分享文章,甚至有一些大??孔悦襟w收入還實(shí)現(xiàn)了財(cái)富自由!在寫(xiě)文章的過(guò)程中,我進(jìn)一步鍛煉了自己的文筆,向很多朋友學(xué)到了知識(shí),也督促我來(lái)不斷輸入知識(shí)、提升自己。以上就是我的 Java 開(kāi)發(fā)日常,你可能會(huì)好奇,魚(yú)皮在哪家小微公司待過(guò)呢?這是個(gè)秘密!Java 開(kāi)發(fā)者的工作看似平淡,但只要你愛(ài)好編程,愛(ài)好這個(gè)行業(yè),每一天都能過(guò)的充實(shí)而有意義!
2.Java程序員必看的技術(shù)社區(qū)
作為一名技術(shù)人員,視野必須要足夠開(kāi)闊。只有見(jiàn)得多,才能升華自己的知識(shí)以及想法。今天給大家介紹幾個(gè)Java程序必看的技術(shù)社區(qū),我保證你一定會(huì)在里面收獲大量的知識(shí)。注意:每個(gè)網(wǎng)站的網(wǎng)址我都沒(méi)有具體貼出來(lái)(原因大家都懂的,請(qǐng)見(jiàn)諒),需要大家自行在搜索引擎搜索,一般都是*條。GitHub想必所有程序員都對(duì)GitHub有所耳聞,它是全世界*的代碼倉(cāng)庫(kù)(由于男性程序員居多,被調(diào)侃為”世界上*的同性交友社區(qū)“),大多數(shù)主流的框架都在此孵化成長(zhǎng)。代碼倉(cāng)庫(kù)的種類(lèi)已經(jīng)超越了Java的范疇,任何編程語(yǔ)言的任何項(xiàng)目,只要你想的到的,幾乎都能在里面找到。Java官網(wǎng)也許這是最不起眼的一個(gè),但它確實(shí)是最重要的一個(gè)。諸如Java語(yǔ)言規(guī)范、Java虛擬機(jī)規(guī)范、Java EE規(guī)范等,這些往往被大家所忽略。IBM 隸屬于IBM的一個(gè)Java技術(shù)社區(qū),里面有著諸多質(zhì)量很高的文章,貼近當(dāng)前*最主流的技術(shù)。另外值得一提的是,該網(wǎng)站提供中文版,可以說(shuō)是很方便貼心了。Simple Java該網(wǎng)站分為很多專(zhuān)題,每篇文章都短小精悍。不妨試著挑一些你感興趣的專(zhuān)題看一看,相信你一定能收獲頗豐。Java World主要是一些Java以及Java生態(tài)的技術(shù)文章,包括安卓等。內(nèi)容比較精美,簡(jiǎn)明扼要,讓你比較輕松快速地了解一項(xiàng)技術(shù)。Stack Overflow全球*的技術(shù)問(wèn)答社區(qū),回答都非常有質(zhì)量。值得注意的一點(diǎn)是,許多開(kāi)源框架如Spring等,都會(huì)在上面建立對(duì)應(yīng)的話題,幫助開(kāi)發(fā)者解決各種問(wèn)題。介紹完前面幾個(gè)重磅推薦的社區(qū),下面再補(bǔ)充幾個(gè)國(guó)內(nèi)技術(shù)社區(qū)。其中的內(nèi)容良莠不齊,好的文章確實(shí)寫(xiě)得很好,看過(guò)之后會(huì)有不小的收獲,但是也存在復(fù)制泛濫以及內(nèi)容錯(cuò)誤的情況,需要大家自行鑒別。CSDN一個(gè)技術(shù)氛圍滿滿的社區(qū),不過(guò)*的缺點(diǎn)就是界面讓人感覺(jué)比較老舊。目前中文領(lǐng)域*的編程問(wèn)答交流社區(qū)平臺(tái),原型是上面提到的Stack Overflow。碼云國(guó)內(nèi)大型的代碼托管平臺(tái),原型是GitHub。由于訪問(wèn)速度比GitHub快,同時(shí)也是中文語(yǔ)言無(wú)縫貼合*開(kāi)發(fā)者,現(xiàn)如今越來(lái)越多的人會(huì)選擇將項(xiàng)目托管在碼云上??赐晟厦娴慕榻B你可能會(huì)有些疑問(wèn),為什么主要推薦的都是國(guó)外的社區(qū)網(wǎng)站?其實(shí)原因很簡(jiǎn)單,IT相關(guān)的東西,都是從國(guó)外開(kāi)始發(fā)展的,后期才傳入國(guó)內(nèi)。學(xué)習(xí)一個(gè)先進(jìn)的東西肯定是從模仿開(kāi)始的,模仿的過(guò)程中必然會(huì)有各種問(wèn)題暴露,需要不斷地完善和發(fā)展。但是國(guó)內(nèi)的技術(shù)社區(qū)也不容小覷,首先就具備了中文的天然優(yōu)勢(shì),相信在不斷探索之后也會(huì)形成自己的一番天地,大家一起加油吧!
上述文章了解到關(guān)于Java 程序員每天都在做什么?,Java程序員必看的技術(shù)社區(qū)?? ,讓我們對(duì)java程序員中心 有一個(gè)直觀的認(rèn)知。我們發(fā)現(xiàn),作為一個(gè)優(yōu)秀的Java程序員是多么的自豪。