工作一年,報個平安
水哥2011年畢業於南京農業大學農學院。大學時對寫代碼挺感興趣,只可惜不是電腦專業的。考研名落孫山。但是考研那段日子,學習的電腦課程的資料結構,電腦群組成原理,作業系統,電腦網路四大塊知識,對我後來找工作很有用。非常感謝W學長,找工作時給我的推薦和協助。順願,找到了自己興趣所在的工作。
入職C公司,在Academy參加公司的帶薪培訓,實習期間公司還提供住宿,這一點,一直讓我覺得入職C公司對我來說是一件很幸運的事。
Academy的環境,現在想起來,真是寬鬆,沒有嚴厲,沒有assignment。但有種那段時光荒廢掉了的感覺。Academy把我安排在java學習班,java對我來說是begin
from zero。好在學過點C和C++,跟上Java的學習課程,還是可以的。
回想從離開Academy進入項目組到現在,學習了很多,進步很多。每天都想著學習,滿腦子就是要學,就是要進步。周末還是關在家裡敲代碼,很長一段時間熬夜,後來得了甲亢,只有我知道,其實挺嚴重的了。治療到現在一年多,終於好得差不多了。
那段時間,因為在項目組裡看項目中的代碼,剛開始一點也看不懂,畢竟裡面的代碼量比在academy學習時接觸的代碼多得多
,而且不知道如何看起。那時的我,只懂得java編程基礎,懂得一些JSP頁面上的東西。
我們培訓期間,給我們上過培訓課的有J和M,J一直以為他只是個代課的,就抽了一些Java的基礎知識點給我們講。M是個架構師,很不錯,由於時間很有限,講的很快。從CoreJava開始,由Servlet引入MVC,進而Struts,學習第一個MVC架構,然後Spring,整合SSH
,接著EJB,效能調優……
現在回想起來M講的都是重點,因為培訓時間不多所以講的快,但是每一段話都是要點。可惜那時的我完全荒廢掉了,不是因為不努力,而是根本聽不懂,跟不上。
當時的我還處於在學習JSP表簽中間添加<%java code%>的階段,後來用這種方式,在JSP中寫JDBC,幾個JSP頁面完成了帶有資料庫的User
Login程式,運行成功,高興的得不行,當時想,總算有個盼頭,能做點東西了。
接著因為想把Java Code和JSP頁面分離,才學習MVC。但那時M的課已經快要講完了。
然後是應付Academy的各種考試,幾經崩潰,但鞏固了CoreJava。最後終於還是留了下來。
然後就是進入項目組,開始了一段很瘋狂的學習的日子,我太想看明白項目裡面的代碼了。
真正學習Java EE也應該是在這個時候開始吧!
剛進項目組的時候,無所事事,大家都忙,就我一個人閑著,因為不會做,不懂。更可怕的是,還真不知道該學點什麼,從哪開始學,而且這樣的情況下,我當然也沒我有問題問身邊的前輩們,沒有學習,哪來的問題?是Jed首先看不下去的吧,於是Jed來給我講東西,讓我做點東西,非常感謝Jed,真是個好前輩。是Jed讓我知道我該學什麼。
很幸運的是,在C3,當時M也在那個Block,學習之餘也還能聽到M和其他同事們的一些調侃和討論技術問題。
只可惜,很快,Jed就要離職了。當時我正在學Struts2,Jed臨走前我還問了他一個關於Struts2中Interceptor的問題。Jed走了,又沒有人來教我了。後來有問題,我就只好問身邊的Hd了。Hd平時不會主動給我講什麼,但是我問他問題,他還是很樂意給我講的。好日子不長啊,沒幾天,Hd也要離職,Hd也走了。我那四個位子的格子,走了倆,接著只有我和Alex在。我只有問Alex咯,然後就和Alex他們幾個混起來了。
我覺得奇怪,怎麼誰願意教我點東西的時候,過了不久,這個人就要離職了呢?果然,後來Alex也離職了。那個格子空空如也。
在C3的那段時間,從Struts2
開始學習,單個架構,自己搭,然後是Spring,各個擊破後,兩個架構都懂了,自然就知道怎麼整合了。
所以,心得是,學習SSH,不是一開始就學習怎麼整合,而是分別單獨學習三個架構,三個架構都懂了,那麼整合他們就是水到渠成的事了。而且這樣學習的東西比較穩固,能靈活應變。
因為項目裡ORM用的是ibatis,所以又學習了ibatis這個ORM架構。
為了看明白項目裡所有的代碼,表現層上,不得不努力學習了JS和jQuery,Ajax。
終於,我逐漸的看懂了項目工程的整個結構。[項目分為兩個工程Web和Application。Web是Spring+Struts2,Application是Spring+ibatis。web和application中間用Spring
RMI串連。]
看項目中User Login的代碼,發現是Spring Security,又學習了Spring Security。
一次號稱部門表彰大會,碰巧和我的PM站在一起,PM問了我學習的近況,還向我提起了項目中的規則引擎,那是個好東西啊,只可惜當時還學不起來,慢慢來吧。
接下來的那段時間,M給我們發了些JSF和Web Service的學習資料。感謝M。
閑著沒事,學習了EJB3.0順便也學會了JBoss AS的各種配置。
當我覺得可以勝任項目裡的一些task的時候,項目就要deliver了,真是可惜,還是沒什麼項目實踐的工作。在C3末期的這段時間,常常和Alex學習,還有Wright,Simon,幾個人一起去吃飯,大家的聊天中,也學習到了很多,懂得很多。漸漸地,我們成了好朋友。
2011年快要結束的時候,聽到M講起了SOA和敏捷開發。M,Alex,Simon和Wright開始著手為公司搭建一個敏捷開發平台,我在一旁跟著學習。那段時間的收穫,是學習了Maven,Seam,面向組件的編程思想,ESB架構的相關概念,以及學會關注整個行業的技術走向。
C3結束後,被assign
到N項目。於是不慌不忙,痛痛快快的在SVN上拉了代碼,並且自己動手配配,localhost就跑起來了,有點成就感。想起剛進C3項目組,神馬Eclipse,SVN這樣的開發工具,一點都不懂。工程在Eclipse中還有紅叉叉,好不容易沒有紅叉叉了,tomcat一啟,後台一報錯,就不知道該怎麼辦,束手無策,都是Jed幫我處理。後來都是一點點自己摸索,學習總結出經驗,報錯很容易能解決,這些就是經驗了吧。到N項目一看代碼,Spring+Struts2+ibatis,雖然用了Spring3的一些新的東西,各種annotation代替xml配置,我還是很快看懂了。接下來的時間,一直沒什麼task,閑著也好,有時間自學。
早在Jed教我的時候,我就意識到我的SQL和資料庫的知識太匱乏了。所以接下來的在N項目閑著的這段時間,補了SQL文法,各種複雜查詢,學習了Oracle,PL/SQL編程。還有空餘的時間就看看Linux,事實上,早在大四考研的時候,我的電腦上就安裝了Ubuntu系統,只是用得不多。但我著實很喜歡這個Linux作業系統。各種簡潔,各種快,各種酷。
後來,萬惡的CCP考試廢掉了我2
周的時間。
後來為了學習工作流程,Simon建議我學activiti,一個開源工作流程引擎。
學習之餘,上網看看CSDN,上上iteye是我每天都要做的事,這上面也讓我學到了很多東西。還在CSDN上寫了一些簡單的,很淺的技術部落格。我想,我會繼續下去,學得越來越深,分享更多的知識,將來也許那是自己的一些財富呢。
整個一路走來,M提醒我,不管怎麼樣,CoreJava那些java基礎需要時不時的去加強。我也沒有忘記。
我想,幹這行,我永遠不會脫離代碼。學習真是永無止境的。
N項目兩個多月,我幾乎成了主力,忙了一陣子,但也沒有加班,也許N項目的確是個小項目,沒有什麼難的東西吧,不過正適合我這個菜鳥。
N項目終於告一段落,我有機會換項目,正好有別的項目正需要人,面試到了客戶那一關,電話會議,晚上九點,美國客戶那邊是白天,面試官我想應該是個好幾年開發經驗的前輩,問的問題挺不錯,不過我大部分答不上來,因此沒能順利到那個項目,正好N項目客戶接下來還有新的項目,而且Team中相繼有人離職,PM只好希望我能留下來。
這幾天,事情不多,工作也正式滿一年了,抽點時間,牢騷一下我這一年,不再小孩,也不夠大人。