天天看點

逗比青年的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

海澱區中關村羅莊西裡

繼續閱讀