挨踢部落故事匯(12):習(xí)慣成就技能提升
原創(chuàng)【51CTO.com原創(chuàng)稿件】作為一個(gè)普通的蕓蕓大眾,資深宅男,碼農(nóng),狂爵的生活除了工作之外,還喜歡看書,聽(tīng)歌,靜坐。對(duì)政府項(xiàng)目深有研究,目前是CMS核心開(kāi)發(fā)團(tuán)隊(duì)成員,普通程序員組長(zhǎng)??窬?3年畢業(yè)后就開(kāi)始從事Java CMS產(chǎn)品開(kāi)發(fā),目前所在公司是航天集團(tuán)下屬單位,開(kāi)發(fā)的項(xiàng)目都是政府項(xiàng)目。他參與開(kāi)發(fā)過(guò)國(guó)家某保密單位內(nèi)網(wǎng)(三級(jí)等寶,信息遷移,數(shù)據(jù)擺渡,信息密級(jí)權(quán)限),國(guó)家電網(wǎng)內(nèi)網(wǎng)升級(jí)改造,中工網(wǎng)系統(tǒng)WebLogic集群升級(jí),水利部(財(cái)務(wù)門戶、水資源監(jiān)控應(yīng)用門戶、單點(diǎn)登錄系統(tǒng)、信息門戶),國(guó)防科工局內(nèi)部福利系統(tǒng)(偽電商)項(xiàng)目及Java CMS系統(tǒng)等。
狂爵·Java CMS產(chǎn)品開(kāi)發(fā)
年少輕狂
決心學(xué)習(xí)編程是一個(gè)偶然的機(jī)會(huì),狂爵高中時(shí)在電腦上胡亂的輸入一串地址,巧合的進(jìn)入了一家IT培訓(xùn)中心的網(wǎng)站。簡(jiǎn)單了解后,他深感其神奇,就此與IT結(jié)緣,打算以后報(bào)考計(jì)算機(jī)專業(yè)(其實(shí)當(dāng)時(shí)是被那廣告上打的高額工資所誘惑了)。后來(lái)學(xué)習(xí)的過(guò)程同廣大學(xué)生一樣,三分鐘熱度一過(guò)就無(wú)聊至極,三天打魚,兩天曬網(wǎng),如此渾渾噩噩的過(guò)到畢業(yè)。
***份工作是在13年12月份才找到的,剛剛求職時(shí)狂爵意氣風(fēng)發(fā),感覺(jué)自己十分牛x,從要求10K的工資一路狂降到4k,期間不斷復(fù)習(xí)所學(xué),才有了***家公司的offer。在那近半年的求職生涯中,狂爵遭到了社會(huì)大學(xué)的無(wú)情抨擊,許是自尊心作祟,他曾默默計(jì)劃畢業(yè)后就獨(dú)立生活,不再向家里伸手(家是農(nóng)村的,生活本就不易),故此那半年期間他過(guò)的極為艱辛,看著錢包一天天變少,卻不能向家里求助。對(duì)當(dāng)時(shí)的狂爵來(lái)說(shuō),已窮途末路,為了這得之不易的機(jī)會(huì),他只能奮起直追,一切的緣由、后悔已無(wú)關(guān)緊要,目標(biāo)只有一個(gè):生存。
廢寢忘食,全心投入
從參加工作進(jìn)入項(xiàng)目組開(kāi)始了解,狂爵參與開(kāi)發(fā)的***個(gè)項(xiàng)目是全國(guó)工商聯(lián)500強(qiáng)企業(yè)調(diào)研系統(tǒng)。這個(gè)系統(tǒng)需要生成每年的調(diào)研題目,統(tǒng)計(jì)調(diào)研數(shù)據(jù),用DataGrid展示出來(lái),有200+列(每年的題目數(shù)量不定),要求實(shí)現(xiàn)用Excel導(dǎo)出,報(bào)表顯示各種統(tǒng)計(jì)數(shù)據(jù)。入職***天,狂爵辦完手續(xù)就去了客戶現(xiàn)場(chǎng)進(jìn)行開(kāi)發(fā)工作,分配給他的是統(tǒng)計(jì)報(bào)表模塊,當(dāng)時(shí)使用JasperReport報(bào)表組件,然而他之前并沒(méi)有接觸過(guò),這對(duì)初入職場(chǎng)的他來(lái)說(shuō)壓力山大,有很多地方需要學(xué)習(xí),為了快速找到一席之地,他喝了半年的紅牛,每天只睡6小時(shí),其余時(shí)間要么熟悉項(xiàng)目需求,了解各種統(tǒng)計(jì)項(xiàng)的計(jì)算方式(總資產(chǎn)周轉(zhuǎn)率、資產(chǎn)負(fù)債率、銷售凈利率、資產(chǎn)收益率、凈資產(chǎn)利潤(rùn)率、勞動(dòng)生產(chǎn)率、人均利潤(rùn)率等等),要么研究分配任務(wù)需要的組件JasperReport,學(xué)習(xí)相關(guān)知識(shí),攻克iReport報(bào)表過(guò)程中遇到的種種問(wèn)題,包括獲取當(dāng)前時(shí)間及展示格式、屬性為空判斷、使某個(gè)字段中的數(shù)據(jù)在特定條件下才打印出來(lái)、嵌套子報(bào)表、自動(dòng)換行、高度自動(dòng)、分頁(yè)設(shè)置、字體設(shè)置、中文亂碼、報(bào)表變量、對(duì)報(bào)表內(nèi)SQL進(jìn)行動(dòng)態(tài)值傳遞等等。編寫報(bào)表內(nèi)SQL語(yǔ)句,為滿足一張報(bào)表的信息展示,需要對(duì)多張表進(jìn)行各種復(fù)雜的SQL查詢,用到很多高級(jí)SQL查詢,直到項(xiàng)目上線。半年時(shí)間近200份報(bào)表都是狂爵獨(dú)立完成。后期他也參與了其他模塊的開(kāi)發(fā),DataGrid的展示,excel導(dǎo)出等等。這半年是他人生中轉(zhuǎn)折的半年,他的努力,同事的幫助和信任,都是他步入社會(huì)的一筆財(cái)富。這半年讓他擁有了可以在這個(gè)社會(huì)上生存的資本,掌握一技之長(zhǎng),拾起過(guò)往所學(xué),更重要的是生活所迫讓他認(rèn)清了自己及這個(gè)殘酷的社會(huì),而不是初出茅廬時(shí)的狂妄自大,不知所以。談及到每天6小時(shí)的睡眠,狂爵覺(jué)得這已經(jīng)很奢侈了。“人,都是被逼出來(lái)的。在最初的一年中,我做的不是工作,而是把工作當(dāng)作事業(yè)來(lái)做的。所以廢寢忘食,全心投入。”
關(guān)于報(bào)表和開(kāi)發(fā)工作中遇到的問(wèn)題不計(jì)其數(shù),狂爵整理了一些筆記,原創(chuàng)都寫在博客里了,點(diǎn)擊查看>>。好習(xí)慣便從此開(kāi)始。
養(yǎng)成好習(xí)慣,快速提升開(kāi)發(fā)技能
狂爵的開(kāi)發(fā)技能是在不斷學(xué)習(xí)中提升的,基本流程如下:先學(xué)會(huì)使用,知道都有什么功能;然后熟悉程序,知道每個(gè)包、文件夾里面對(duì)應(yīng)哪塊功能的程序;再閱讀具體功能模塊的代碼,看看功能的實(shí)現(xiàn),以及同其他功能模塊是否有關(guān)聯(lián)影響;***看數(shù)據(jù)庫(kù)表設(shè)計(jì),知道每張表都是存儲(chǔ)的什么數(shù)據(jù),每個(gè)字段是什么意思,字段內(nèi)的值代表什么,如狀態(tài)字段status的1234值各代表什么。這套流程下來(lái)就有了大概的認(rèn)知。在此基礎(chǔ)上進(jìn)行后期的開(kāi)發(fā)或功能優(yōu)化就比較容易了。
三年多的工作經(jīng)歷,他也養(yǎng)成了一些工作上的習(xí)慣:
1、代碼有詳細(xì)的注釋,方便生成API(包括實(shí)體字段、各個(gè)層的方法作用及參數(shù)含義,數(shù)據(jù)庫(kù)類含義及字段說(shuō)明等);
2、統(tǒng)一代碼Format(遇到過(guò)一團(tuán)亂麻一樣的代碼,當(dāng)時(shí)的心情是悲痛的);
3、遵循命名規(guī)范(有遇到a,a1,a2,b,b1,b2這樣的字段命名及aa(),bb()這樣的方法命名又沒(méi)有相關(guān)注釋說(shuō)明,有種砸電腦的沖動(dòng));
4、 SVN提交需有詳盡的修改日志說(shuō)明(這點(diǎn)很重要,團(tuán)隊(duì)開(kāi)發(fā),說(shuō)明你的提交修改了什么問(wèn)題,或作出了什么修改,會(huì)對(duì)別人和你自己都省很多事情,畢竟你不是電腦,不會(huì)記得所有的修改);
5、每天下班寫工作日志,總結(jié)分析一天的工作;
6、寫筆記記錄工作中遇到的問(wèn)題,有的問(wèn)題已經(jīng)有先驅(qū)者躺過(guò)雷并向大家分享了問(wèn)題的解決方法,他會(huì)將問(wèn)題和解決方案紀(jì)錄在個(gè)人筆記中,對(duì)于自己躺的雷和一些重要的問(wèn)題會(huì)發(fā)布為博客;
每學(xué)習(xí)一項(xiàng)新技術(shù),狂爵都會(huì)按照這3個(gè)步驟來(lái)學(xué)習(xí):
1、學(xué)習(xí)一個(gè)新的工具可以參照其官方的文檔和Demo,一般都有提供,如果沒(méi)有可以在網(wǎng)絡(luò)上尋找資源。
2、在本地實(shí)現(xiàn)Demo的功能效果,嘗試?yán)斫馄渚売伞?o:p>
3、嘗試在Demo基礎(chǔ)上實(shí)現(xiàn)高級(jí)的功能,在沒(méi)有文檔API的情況下,需要不斷的實(shí)驗(yàn),查找資料,或直接閱讀源碼。
有些高級(jí)的需求還需要修改源碼進(jìn)行操作,比如百度的UEditor編輯器,上傳機(jī)制會(huì)將圖片附件統(tǒng)一保存到一個(gè)文件夾。UEditor的上傳機(jī)制不符合CMS的要求,CMS每篇文章的圖片、附件,會(huì)保存在”/站點(diǎn)id/欄目id/文章id”文件夾下,有時(shí)上面還有日期的文件夾。這個(gè)就需要對(duì)其源碼進(jìn)行修改,查找跟蹤其上傳保存邏輯代碼,實(shí)現(xiàn)自己的邏輯,這就是一個(gè)學(xué)習(xí)的過(guò)程了。
在開(kāi)發(fā)中表現(xiàn)突出,得到Boss賞識(shí)
狂爵的職場(chǎng)經(jīng)驗(yàn)只有一點(diǎn),認(rèn)真干活。對(duì)任務(wù)和自己要有個(gè)估算,每天他總是超額甚至***的完成進(jìn)度,如果工作期間沒(méi)有完成,自己加班搞定(實(shí)在搞不定找同事或領(lǐng)導(dǎo))。不要耽誤整體進(jìn)度,不要為自己的不行找理由,不要強(qiáng)加自己的主觀想法于代碼中。利用閑暇時(shí)間和項(xiàng)目開(kāi)發(fā)相關(guān)人員討論想法,畢竟很多需求都是用戶的一個(gè)模糊概念,不是所有用戶都懂技術(shù),他們只會(huì)在你做出一版后,在其基礎(chǔ)上表達(dá)自己的不滿和所需。而這些往往在程序員看來(lái)是比較糟糕的問(wèn)題。在充分了解用戶意圖后可以根據(jù)自己的經(jīng)驗(yàn)或和同事討論來(lái)得出合適的解決方案,同用戶協(xié)商。
這些習(xí)慣為狂爵的工作帶來(lái)了突出表現(xiàn),效率大增。恰恰是狂爵每天超額完成任務(wù),公司對(duì)他很滿意,領(lǐng)導(dǎo)直接找到他給加薪,就這樣狂爵半年內(nèi)工資陸續(xù)漲了50%,并且調(diào)入產(chǎn)品開(kāi)發(fā)組,進(jìn)行學(xué)習(xí)和培養(yǎng)。他很珍惜這來(lái)之不易的機(jī)會(huì),在之后的的產(chǎn)品開(kāi)發(fā)和支持中,狂爵勤于思,敏于行,能力再次得到提升,和老員工相差無(wú)幾。公司又給他漲了60%工資。試用期直接全額工資,一個(gè)月轉(zhuǎn)正。至今回憶起來(lái),狂爵仍然覺(jué)得當(dāng)時(shí)的他,需要高強(qiáng)度工作來(lái)融入職場(chǎng),找回自己荒廢的時(shí)光,用現(xiàn)實(shí)的經(jīng)驗(yàn)充實(shí)他自己,畢竟除了向家里伸手,當(dāng)時(shí)他已無(wú)路可走。
但如此高強(qiáng)度的工作非常累,以至于他現(xiàn)在已經(jīng)做不到剛?cè)肼殘?chǎng)***年那種勁頭了??窬粽J(rèn)為那樣只適合剛剛步入社會(huì)進(jìn)入職場(chǎng)的程序猿,需要借此尋找自己的方向,找到自己的價(jià)值所在。如今的狂爵,只是***的完成工作(其實(shí)是生存無(wú)憂了,人性的懶惰發(fā)作),然后用剩余精力去學(xué)習(xí)更多的東西。通過(guò)這幾年的工作及CMS開(kāi)發(fā)經(jīng)驗(yàn),狂爵在閑暇之余嘗試寫一個(gè)自己理想的CMS產(chǎn)品,目前還處于偶爾想起時(shí)才會(huì)開(kāi)發(fā)的狀態(tài),他已經(jīng)搭好框架,開(kāi)發(fā)了站點(diǎn)、欄目、信息等一些基本功能。
生活總是這樣的平淡如水,能耐住寂寞,做好自己就行。程序員的本質(zhì)就是解決問(wèn)題,那么一切的因由自然也就是自己的能力了。一時(shí)的不得意也許只是工作的考驗(yàn)抑或是在別人眼里,你并不如你以為的那么優(yōu)秀。撇開(kāi)“你以為,你以為的,就是你以為的”,正視自己。
有一種落差,是你配不上自己的野心,也辜負(fù)了所受的苦難??窬粢源俗毅憗?lái)時(shí)刻警醒自己,在開(kāi)發(fā)路上挑戰(zhàn)極限。
如果你也愿意分享你的故事,請(qǐng)加51CTO開(kāi)發(fā)者QQ交流群 312724475聯(lián)系群主小官,期待你的精彩故事!
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】