逗比青年的2016

轉眼間,2016年已經悄然離去,而年初時的夢想還沒來得及實現,還不只是一個夢想,而是很多很多的夢想。半月前csdn舉辦2016年總結的徵文活動開始時,我還信心滿滿,要寫個1萬多字的年終總結。沒想到一拖再拖,元旦過後又是各種節後拖延症。我想如果再不寫,活動就結束了,沒有給滿是遺憾的2016寫篇總結,將會是更大的遺憾。一兩千字的總結總比一紙空文好,所以痛定思痛,奮筆急書,寫下這篇文章,用以紀念這逗比的年華。彪悍的人生纔不需要解釋,逗比的人生要經常自樂嘛!我不是我們本科班混的最好的,卻是今年我們班活的最精彩的。跨地之遠:從年初的貴陽到山城重慶,再從重慶到北京。在這圍成三角形的圖形中,用百度地圖一丈量,足足有千里之遙;身份轉變:從學生變成一名軟件工程師(上一家的職稱就是:初級軟件工程師),說的謙虛一點就是程序員,說得直白一點就是從學生變成一名地地道道的碼農。從央企員工變成創業公司員工。人們都說創業公司喜歡給員工畫餅,但是我們公司不一樣,從來沒有給我們畫過大餅,雖然不畫大餅,但是福利也不高啊!經歷的種種,猶如昨天,歷歷在目,卻是那麼的遙遠!

三方協議到手了

央企的入職流程非常的長,長到我都差點失去了信心。去年(2015年)參加了一系列校招,最終選定了中國韓信。關於去年的校招細節,可以移步我年初寫的奔跑吧攻城獅 第一篇 一文。其實我最初的願望是去被當作備胎的惠普,或者去妹子老多的御家匯。但是從大學那一天起,父母強烈希望我畢業之後能夠吃公家飯,比如考上公務員或者考上事業單位之類的,而我就只想做個安靜的程序員,最終的願望是去互聯網一線公司BAT擔任工程師。權衡再三,終於有這麼一家公司,它即是國家飯的,又是做IT的,而且還是高大上的國內民航行業。既遷就了父母,同時也滿足了我畢業之後做技術這一願望。在這裏要感謝貴州大學,是它提供的這麼一個平臺,讓我有表現的機會,同時還感謝貴大的吳常玉同學,是你帶領了我到你們學校的招聘就業大廳,從此面試靈感來了,擋都擋不住。
曾經一度想放棄中國航信,因爲等籤三方協議等的實在是太久了,十一月初參加的筆試,緊接着的一面和二面在一兩天之內完成,也算是挺快的。11月中旬接到壓力測試面試電話,然後告知通過了,等着籤三方協議。可是誰也想不到等籤三方的過程是如此的漫長,我再三催促hr(後來才知道是小梅同學),問了很多次什麼時候三方協議才能到手。小梅同學總是說盡快,等其他同學統一交上來再統一去重慶人事局辦理之類的。十二月初得到御家匯去長沙綜合面的時候,我有動搖去御家匯的心。再次詢問小梅同學,得到的答案依舊是”儘快”,最終還是在12月底等到了中國航信的三方協議,明確2016年3月1號正式參加實習。
知道自己基礎薄弱,所以寒假剛開始的時候給自己預訂了寒假學習計劃,剛開始時雄心勃勃,一定能夠完成。計劃的內容是這樣的:先做完畢業設計,然後再把ssh框架學完,再做一個綜合性項目。然而事實是計劃只實施了一半。回到鄉下之後,閉門斷網在家裏寫了一套電子商城,因爲這是我的論文選題,在學校的時候就選擇好了頁面素材,並搭建好了各種開發環境,其實也不需要額外的開發環境,因爲基本的環境都是配置好的,只額外安裝了一個dreamwaver用來做前端設計。就這樣,在家閉門的情況下,寫了電子商城的v1.0版本。前端html用dw來設計,很少用到js或者jquery,後臺採用servlet+javabean+jsp的經典mvc模型,數據庫用的是oracle。連框架都不用,現在想想都感覺有點low。本來以爲1.0版本只是個暫時版本,到時候再升級的,誰知道這後面很多事就沒有修改過,直到五月份畢業答辯的時候,只添加一個驗證碼的功能就直接上臺演示了。由此可見,我的畢業設計有多渣。
俗話說“酒肉穿腸過,佛祖心中留”,寫完一個畢業設計,離過年也就越來越近了,這手機不打開爲好,一打開朋友圈各種邀約開始了。所以說千萬不能開頭,頭只要一開就一發不可收拾,根本就停不下來,“天天有酒頓頓有肉”的日子早就把學習計劃忘的一乾二淨。
最逗比的是,年後我們村鼓藏節的晚會,我居然當了一把主持人。剛開始負責人找到我,我想我一工科男哪有能勝任這類的活動啊?但是他們說了,我們村你就讀大學,你不上就沒有人了!我頓時雷倒。於是我和我那還在讀高一的妹趕鴨子上架般的當起了村裏晚會的主持人。節目結束之後回到家我自己笑了一晚:想我一理科生,居然去搶人家文科生的活兒(其實我有幾個堂哥都是師範院校畢業的,現在是老師。)

實習生活

中國航信的伙食是挺不錯的,之前一直不珍惜食堂的伙食,認爲跳槽到其他公司,只要月薪提高,其他都無所謂,伙食問題根本不是問題。現在來到創業公司才發現,那些有員工的同學是多麼的幸福,現在又開始懷念那個可愛的食堂,懷念有茶水間的日子。所以這裏勸一權那些有員工食堂的哥們:除非月薪提升的很多,不然一個食堂真的能夠解決很大的問題!關於重慶的生活,可以參考一下我剛北漂時對重慶的回憶金九銀十北漂記第5篇:淒涼的北京 ,今天我想寫的是重慶另一面的生活。
尤記得入職的第一天,我遲到了,原因是前一晚我把行李箱之類的放在同學那,第二天去報道所需要的材料都放在行李箱裏面。所以慌慌張張從大龍山趕到微電園,拿了各種材料再來到光電園。微電園與光電園只一字之差,但是距離卻有十萬八千里。還好,人力資源的張s同學表示諒解。
中午參加一場筆試,感覺都是一些基礎,休息間,大家紛紛議論筆試怎麼樣怎麼樣云云。我到是看得開,都已經入職了,這場筆試或許只是一個過程而已,校招的時候不是過關斬將過來了麼?接下來就是分部門了,3月入職實習的校招人數大概24人左右吧,因爲大部分同學選擇在7月份畢業之後再來實習,而我不同,我們學校整個大四都沒有課程,不僅沒有課,還必要出去實習!所以我3月來入職是理所當然的。首先有12位同學被分配了到航空產品研發部,再接下來是8位同學分配到了分銷部,最後有四位同學被分配到系統研發部。我被分配到了系統研發部,也不知道是喜還是憂,聽着“系統研發”四個字,厲害的不要不要的。我們四位紛紛議論是筆試做的不好分配到這個部門還是做的太好分配到這種部門,其實直到現在我也不知道我的筆試卷子到底屬於我們那一批入職中的什麼層次。無論如何,我終於找到了自己的部門,接下來有了自己的工位,然後是有了自己的工牌號和嶄新的筆記本電腦,抱這新電腦樂了好幾天。
在這要感謝公司的efront在線培訓系統。這是一套免費開源的在線培訓系統,入職的同學都會根據自己的所在崗位,設計了一套培養課程。課程的第一階段,我學到了項目組開發所用到的技能。包括:Git入門和使用,JavaScript基礎,Html+Css,Sql基礎,Java編碼規範,Maven入門。其實第一階段的內容,很多在學系已經學過,很輕鬆就過了。考覈方式是每學完一個課程,都會有有一些選擇題,這部分要求80的準確率,系統自動判分。接下來是編程題目,這部分是人工判分。尤其記得比較清楚的是,在做js題目的時候,其實有多種實現方法的,由於我對js的函數不是那麼熟悉,同時也爲了當時我了爲了臭顯擺一下算法能力,硬是不用js本來有的函數。提交答案的時候評分老師給通過了,我就在題目下面留言怎麼解決之類的,有一女生看到了,QQ來問我怎麼做,直接把git的答案鏈接發給她。結果她看不懂算法,那天剛好是週五,大家都比較急下班回家,週末去玩等等,於是她就直接完全copy我的代碼提交上去。下週回來的時候,評分老師臭罵一頓,怎麼你倆個的答案是“一毛一樣”的?現在想想自己當時太逗比,剛入職的時候以爲自己懂一兩個算法就臭顯擺,簡直猶如小丑在觀衆面前耍技!然而java初級程序員不需要高深的算法的,要的是寫項目能力強的人!進階中級,高級逐漸體現算法的重要性,但事實是我的算法能力low的不要不要的。還有,我第一次知道原來在學校老師一直強調的代碼規範,公司也很重視,不然我還以爲老師在騙我們叻。入職之前自我感覺代碼書寫格式良好,入職之後發現我說了不算,得用SonarQube來掃描纔算,不掃不知道,一掃嚇一跳,原來我的代碼是千奇百怪的不規範,比如迭代循環不加final,不喜歡用泛型等等,反正寫出代碼與寫出健壯性的代碼是兩回事。SonarQube一款基於客戶端、服務器的Eclipse代碼規範插件,優點是掃描到的規範多,有很多建議和意見,還有參考案例。缺點是你需要搭建服務器,或者項目組有統一的服務器,每次需要管理員觸發掃描。此外,本地裝一個叫做codechecker的插件,可以直接在本地Eclipse掃描。當我知道這插件居然就是我們部門一年紀相仿的哥們寫的時候,我心裏佩服的不要不要的。那哥們說這是一款開源的插件,他只是做了優化而已,但是即是是優化,我也想在心裏罵他一句:太TM牛逼了。我當時想,我什麼時候也能寫一eclipse插件,讓公司整個部門都用我的插件,那就牛逼哄哄了。
課程的第二階段。學習了Spring Mvc,Spring,Jquery,以及公司內部的UI框架。學習了Spring Mvc的視圖配置,結果跳轉方式,接收參數,參數傳遞到前端,以及攔截器等。由於在校期間沒有用SSH,所以Spring Mvc是我接觸的第一個框架,搭建HelloWorld尤其的困難,花了兩天多才弄出HelloWorld,真的是淚流滿面了。接着繼續學習了Spring的框架,理解了IOC容器,知道了Bean的作用和Bean的生命週期,然後學會了基於註解的開發方式,剛開始覺得一切bean配置在xml就行了,爲什麼還有註解,不多此一舉嘛。現在想想,基於註解確實比xml配置方便多了。然後學了學習了Spring HttpInvoke的遠程調用,由於項目組的數據都是放在遠程主機,所以不用ORM框架,而底層的遠程調用接口已經有人負責完成。但是實習期間,還是讓我們明白數據是怎麼傳遞的,數據的格式是xml格式傳遞的,自己還要用dom4j來解析這些數據,因此學到了dom4j,隨便學了日誌管理的log4.j等。這時候完成了階段性的測試,就是用Spring+Spring Mvc寫一個登錄系統,登錄成功之後進入主頁,記錄都是通過遠程調用得到的。同時也學了Jquery,Jquery 的學習是在w3school上完成的,把上面的案例寫一遍,其實也沒有記住多少,倒是熟悉了w3school這個幫助手冊。把jquery的選擇器,事件都基本熟悉一遍,知道簡單的效果實現。公司封裝的UI是在Jquery基礎之上的,這樣的UI基本不需要自己去想怎麼寫js代碼,只要知道怎麼傳遞參數就OK了,但是jquery還是需要掌握的,畢竟封裝的UI並不是能夠完成每一件事。UI各種前端的容器,元件,組件,結合起來本生就是爲公司量身定製的,所以簡便了代碼的書寫。有一次項目組喊我去實現一個checkbox全選的效果,我信心滿滿的花一個下午用jq寫了效果,結果同事提示說,這在UI組件裏面就有了,當時直接罵自己混蛋,連api看都不看就直接動手實現了。
走完這兩個階段,也到了畢業答辯時間了。我是在邊學新技術的情況下邊寫論文的。頭一個月根本不想管什麼論文和設計的事,先忙公司的培養計劃。到4月份的時候,學校催促了,手忙腳亂的弄論文,本想用Spring + Spring Mvc框架升級一下原生的MVC模式開發的,但是各種說服不了自己,兩個星期的週末,共四天,把論文湊齊字數就交給學校初審。現在想想,我的這種態度,連我自己都說服不了,我不知道這種態度寫出來的論文是怎麼通過的!
學校明文規定論文查重是在知網檢測的,由於知網比較貴,我選擇了paperpass查重,在網上看到的回答是paperpass的審查要比知網嚴格,所以以爲在paperpass查重通過就萬事大吉,第一次是19%的重複率。爲了以防萬一,做了大量修改,第二次檢測13%的重複率不到。然後意想不到的結果發生了,學校拿去檢測的時候,我的重複率是30%,嚇了我一跳。女朋友的論文都是我幫她改的,她的在paperpass上面做兩次檢測,最後一次19%,學校用知網檢測居然在10%多一點點,我paperpass的13%在知網沒有通過,我一臉蒙逼,氣急敗壞!我可是花了100個大洋在pp上面檢測了丫!我心灰意冷的想大量修改論文的時候,學校又來新通知:爲了儘快幫助學生參加論文答辯,論文重複率允許在35以內!有時候就是這麼的逗比,我4天寫好的論文就這樣拿去參加答辯。現在我想了想,papperpass確實應該比知網嚴格,但是有一點當時我沒有注意,那就是,我論文中附上很多代碼,pp是不去審查代碼的重複率的,但是知網會去比對代碼的重複率,所以女朋友那篇論文重複率比我的底,因爲她的代碼幾乎在附錄,我的直接放在論文正文(爲了拼湊字數)。結果兩個網站的算法不一樣,導致差點死在查重上。不過佩服我們班那些重複率爲0的,簡直是用“神”字來形容了。

從實習到打雜

經過公司兩個階段的培養,心裏還是很沒底,不知道到底能不能勝任開發。把真正的生產任務看得太神聖化,導致做事情畏首畏尾。畢業答辯回來之後就進入了打雜的生活,這在培養計劃中屬於第三階段:考察階段,就是跟着指導老師的腳步,一步一步走向開發。其實,做真正的開發之前,在校已經獨立寫過web版本的信息管理系統,包括登錄模塊,信息的增刪改查模塊,翻頁算法等,都是自己獨立統一完成的。畢業設計的電子商場,也是用Servlet+Jsp+JavaBean這種原始的Java Web開發模式開發出來的。現在想想動手能力應該不算差,但是一種畏懼的心裏佔據自己,一直有一種力量告訴自己不行,這不是學校的那種學習案例和Demo,導致開發過程中遇到一點點技術不懂就不敢繼續動手,而是等下班回家找答案,看視頻,第二天再來解決,這種思維嚴重託慢開發的節奏。
在這裏還要感謝我的指導老師,我想只有大公司才能提供一對一的老師指導方式了。有時候害怕自己的技術不行,但是其實是需求理解不到位,業務理解不到位,這點纔是新人的致命點。不過後來我跳槽到創業公司之後,在沒有指導老師的前提下也學會了獨立起來,來新公司到今天有兩個月了,從聽需求到寫代碼實現需求,從自測到bug修改都是一個人完成,從前端的js代碼到後臺的mapper.xml的書寫,都是自己來完成的。大公司有大公司的好,小公司有小公司的妙,無論是大公司還是小公司,只有適合自己的,給自己儘快提高的,快樂的工作的纔是屬於自己的公司。很多時候並不是說自己有整個思路纔去寫代碼的,而是先順着自己原來的思路去寫,看哪一步遇到了問題,要怎麼解決,不行可不可以換思路?等你完成一個模塊,下一個模塊就可以按照上一個模塊來完成了,最後你發現,一切就是對數據的增刪改查,這就是人們口頭經常說的,初級中級工程師級別的CRUD。
實習中,項目組每開發一個版本都是有一定的時間週期的:需求評審,需求評估,代碼編寫與自測,敏捷測試,集成測試等等。我從學校參加完畢業答辯回來的時候,恰好代碼編寫階段結束,就只能從修改bug開始,這完全屬於一個打雜的範疇。後來又寫了兩週的junit測試,導致現在來到本公司,發現他們都不寫junit測試,剛開始心裏憋着難受,想想這怎麼能行?直到幹到現在,我也漸漸被溶化,不寫單元測試反而是一種習慣,想想那些寫單元測試的人真的很苦逼。同時還參加了2個版本的需求開發,第一版本的需求集中在前端,第二個版本的需求集中字後臺。參加上線的時候還有各種補助,當時聽了還挺開心的。對了,公司內部一直鼓勵在內網寫文章,一篇文章就是一張50元的移動充值卡,漸漸的也體會到寫技術文章或者心得體會的文章不僅能夠對自己進行總結,還直接得到收益。當然現在csdn寫博客沒有移動充值卡了,在csdn寫博客是一種堅持,更是一種分享的精神,還希望繼續寫下去,那將變成一種習慣。

北京,北京

8月初,我開始走轉正流程。一般來說,走完3個流程就正式的轉正,第一個流程是拿生產中曾經碰到的還算是難題來給你解決,有時間限制,一般是兩三天,越快越好。第二個流程是考察編碼規範,就是前面提到的Sonar掃描,每個月只有一次考試,所以需要轉正的同學提前通過第一個流程考試,上報第二個流程,第一個流程是部門出題,第二個流程是公司統一考試。第三個流程是考察安全準則規範和與上級面談。在這個階段可以適當的根據能力來提出加薪,一哥們轉正的時候就是提出了增加薪資係數,結果成功加薪。我走完的第一個流程,正在走第二個流程的時候就離開了。以致我爸很多次問我是不是因爲能力問題而沒有轉正成功,我說第一個流程別人都是一個週末拿回去做才完成的,而且是邊百度邊做的,我只要一天就完成了(用幾個字符串的處理方法和正則表達式就解決)。我告訴我老爸來北京是爲了來追求夢想,北上廣一直是勇敢者的天堂,現在的北京互聯網就像當初改革開放那樣遍地充滿機會,我不想在一個從事航空行業的公司,薪資卻坐不起飛機云云,其實我明白,我說的這些都是扯淡的。離開的原因是很複雜的,只能套用前邊文章提到的話:

在重慶的日子裏,我最喜歡看的是夕陽。有時候是站在公司樓頂看夕陽,夕陽會順着豬八戒大樓那邊落下去,這時看看公司樓頂栽種的盆摘,有種惆悵之感,只能感嘆夕陽無限好,只是近黃昏。我週末也喜歡看夕陽,每到週末,就去周邊走走,在橋樑上看夕陽也是別有一番風味。然後走多了,想的東西也多了,就毅然決然的做了離開重慶的決定。

然而,半年的工作經驗或者說是實習經驗來帝都很尷尬的。有些企業說,我只能算是沒有工作經驗的應屆生,但是我想作爲一屆應屆生去參加校招又不行,人家規定是2017年畢業的應屆生纔有資格。所以,我只能以一個應屆生的身份來參加社招。10月中旬來到的北京,拿不出出色的簡歷,眼看金九銀十的佳季漸漸遠去,再找不到工作。只能有兩條選擇,第一個選擇是去黑馬程序員培訓,等待明年的社招,這是最無奈的想法,還特意去了黑馬程序員培訓基地看了一眼,以爲這個寒冷的冬天就在這裏度過了。第二個選擇是打道回府,邊複習邊在豬八戒威客網做個兼職,但是感覺在豬八戒賺個錢難於上青天,想想以前在重慶,豬八戒就在我們公司對面,每天下班都從豬八戒路過呢!
10月底的某天,華仔去上班了,我在華仔的房間做好了去黑馬的在線考試,總共50道題目,已經完成了20道,都是基礎題,很快就通過了,正想做第30道題目的時候,手機震動了。對面傳來:“我是xx科技的人力資源,恭喜你通過了我們公司的面試,….”。北漂不容易,我把各種的心酸都寫進了前面提到的文章《金九銀十北漂記 第5篇》,當然這僅僅是不容易中的一部分。然而我也要感謝華仔,有他在的北京,多了幾分溫暖,讓我感覺到一下子淒涼的北京很有溫度,很有愛,好幾個週末和他的小夥伴相聚,聊的甚歡,玩各種卡排遊戲,突然感覺來北漂的都是一族。找到工作之後,從朝陽催各莊般到中關村,之後只去過華仔那一次,想想還是挺虧欠他的,以後有機會應該喊他過來聚聚。
創業公司,什麼都得靠自己,需求的理解,前端的效果,後臺的處理,業務處理,數據庫表的設計和dao的增刪改查。來到新公司的頭幾天還懷疑自己能不能獨立開發,幹了兩週,自己獨立把貸款計算器弄出來之後,發現我行的,我可以的。公司用的Spring+Spring Mvc+MyBatis框架組合,一開始,我沒有用MyBatis,而是用了Jdbc,回來熬夜看MyBatis教程,終於最後一個週末之前,把Jdbc換成MyBatis。開發了一個模塊,才知道,原來涉及金融一般都是用的BigDecimal這樣的高精度來處理數據,不然我以爲float和double可以通吃這些浮點數運算。

2017,先定幾個小目標

2016年經過了從學生到實習生,再從實習生到碼農的演變,理解了Web三成架構,知道view層,servcie層,dao層作用,po、vo的區別。2017年準備到達中級工程師的級別,中級一詞可能太抽象,就詳細制定上半年的幾個小目標吧:
1. 深入理解MyBatis。當時迫於項目的需要,快速的入門了MyBatis,然而MyBatis入門可能只需要一週左右,精通卻需要需要努力+勤奮才行,今年在csdn看到很多的勵志故事,我相信勤奮會出天才。看完《深入淺出MyBatis技術原理與實踐》,並完成MyBatis博客專欄。
2. 深入學習Spring。後臺三層架構中,view層流行有strust1.x,struts2.x,spring mvc,Orm層流行有Hibernate,Mybatis,但是Spring一直貫穿3層,而且貌似沒有見到哪個主流框架能夠替代它。可見它存在自有它的道理。所以看完《Spring實戰》是我要完成的目標。
3. 前端的Jquery實戰。最近老是勞煩前端美女幫忙一些前端問題,畢竟人家還是有人家的工作的。自己動手才能豐衣足食,寫一個Jquery實戰系列的博客是我的任務。
4. 看完《鳥個的Linux 私房菜》。鳥哥的這本書貌似是在大三的雙11半價買的,現在還沒有看完。之前看韓順平的linux視頻入linux的門,在centos6.5下玩了一個學期,後來發現linux各種問題不能解決,書上和老師用的全是windows,又切換回來windows,雖然我的電腦是win7+centos6.5雙系統,但是啓動界面的總是進入win。前幾天痛定思痛,把win卸載掉,重新對500G的硬盤重新分區。裝上ubuntu16.04,我想既然來到了linux的世界,就堅持走下去,鳥哥的書羅嗦,但是看着他羅嗦的風格已經習慣,既然選擇走,就一條道走到黑。
5. 重溫數據結構和學習23中設計模式。在學校學的幾個破算法,現在忘記的差不多了。如果向中級和高級進階,這兩個應該是不可忽略的東西。

總之,2016已經走了,我依然身無分文,依然很多夢想沒有實現,但我還是對2017充滿各種期待,機會總會留給有準備的人。

2017/01/05
海淀區中關村羅莊西里

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章