調整好心態和策略,從底層做起——致2011畢業生

http://blog.csdn.net/chgaowei/archive/2011/04/26/6365552.aspx

 

眼下馬上快到六七月份了,又到了應屆畢業生的入職高峯期。

這篇文章權作對初入職場的畢業生的一個建議,希望能夠對他們的學習和工作有一些幫助。本文針對一般的普通的畢業生,天才除外——因爲我不是天才,也很少遇到天才,天才的情況我不瞭解,他們的發展軌跡可能異於常人。

正文:

上週在CSDN發表了一篇文章《畢業一年不到的員工要跳槽,我的建議》。很多人進行了回覆,討論,大家佔的角度不同,看問題的思路也不一樣。其中還是有很多精闢的論述,比如針對發生這種現象企業方責任的一些觀點。

同時,我也看到有些人回覆說,在剛畢業的一年裏,他們一直做一些在別人代碼上修修補補的工作,去維護別人的代碼,以及簡單性的重複性的工作,感覺學不到東西——這是我今天想說的重點。

先說維護

首先,從客觀上來說,維護工作在軟件開發中是一個佔很大比重的工作。有調查顯示,軟件開發的人力,有80%是投入到維護工作中的。而且,維護其他人代碼的這種現象在軟件開發中也很常見——軟件開發團隊成員經常會發生變化。所以,讓應屆生進入公司後從事維護性的工作,是一個正常現象,同時也是他切入到軟件團隊的一個非常好的方式。

其次,從應屆生的能力來說,他們在編程能力、開發環境、編程規範、業務知識等各個方面存在欠缺,直接讓他們從事新產品或模塊的開發風險非常大。按照我的經驗,一個應屆生工作半年後可以勝任簡單模塊或程序的開發任務,工作1年後,可以在老員工的帶領下參加新的產品或模塊的部分開發任務。

再次,產品維護其實也是一門藝術,也可以學到很多的東西。這個下面說。

如何在維護工作中學習

維護工作一般是指產品已經開發完畢,在產品運行期解決產品出現的bug,以及在原有功能和結構基礎之上開發新功能等相關工作。

從事維護其實也可以學到很多東西。

要維護產品就要閱讀他人的代碼,這是軟件開發中比較重要的一種學習方式。在閱讀代碼的過程中,你可以:

1、學習你所使用的編程語言的語法;

2、學習你的軟件開發團隊的編程規範;

3、學習一下前輩是如何利用編程語言來完成功能的;

4、學習他是如何設計函數,如何設計數據結構的,如何使用算法的;

5、學習他是如何搭建一個程序或者模塊的,模塊之間是如何交互的;

6、學習他是如何提高代碼的可讀性的;

根據我的經驗,一個應屆生接觸到的第一份代碼對他的影響非常大,他會在後面的編程過程中不自覺的模仿這份代碼的風格、整體結構、設計思路等。如果這份代碼非常規範,嚴謹,思路清晰,可讀性好,這對一個新手是一個非常好的學習機會。

如果不是這樣,你可以主動的去找一些優秀的開源的代碼拿來對照學習,比較這兩份代碼的差異,看代碼好在什麼地方,差在什麼地方。這個過程中可以適當的擴展一下閱讀,找一些設計相關的書籍來結合學習,效果可能會更好。如果時間允許,項目允許,並且你也做了充分的積累,你可以建議你的上司重構這份代碼,如果成功的話,這將是一個難得的實踐機會。

維護工作也可以提高定位問題和解決問題的能力。這對一個程序員來說是一個重要的能力,程序員天生就在和BUG做鬥爭,無論是在開發階段還是維護階段。在這個過程中,你可以學習到比較常用的定位問題的方法,工具,以及思路。還可以學習都修正問題的方法,還有驗證問題已解決的方法。

再提升一個層次,隨着你經驗的積累,你可以記錄下來你在維護的過程中遇到的比較難於理解,難於修改的地方,出現這個問題一般情況是結構設計的問題。把他們記錄下來,並且找出你的解決方案,在新的一個版本開發的過程中去實踐。這又是一個提升個人能力的非常好的方法。

關於機會

上面說的,可能是你做新的產品和模塊之前必須要完成的積累。新開發模塊的機會其實並不是很多的,特別是在大公司,產品相對穩定,分工比較明確,很多人就是專門維護代碼的。

而當機會出現的時候,你之前的積累,就非常有助於你獲得這個機會。

很多公司給新員工的機會在長期內是均等的,但短期可能並不均等的。有句話,叫“寧可斷其一指,也不破其十指”——很多公司的新員工培訓都會採用這個策略:當機會有限時,把機會集中給少數新員工,讓他快速的成長。之後在重點培養其他員工。所以,你要時刻積累,時刻準備着去領先這一步——它可能會使你在很長一段時期內都處於領先地位。

關於重複性工作

前面提高可能會給新人安排一些簡單的,重複性的工作,這在工作中倒也常見。與其抱怨,不如調整一下策略:事不過三,過三則將它自動化——意思是,如果一個事情你重複做了三次,那就想辦法把它自動化吧。這是一個高效程序員的特徵之一。如果你真的做到這一點,你周圍的人一定會對你刮目相看。

關於視野

“井底的青蛙”在我寫的上一篇文章的評論中隨處可見。要擺脫“井底的青蛙”的標籤,除了跳槽之外,一個更好的辦法是參與技術社區——在這裏你可以瞭解到最新的技術發展趨勢,新的設計方法,同行們的優秀經驗以及他們的學習方法。比較常見的技術社區包括CSDN,博客園,ITEYE,外刊IT評論,INFOQ,IBM DEV等。

工作的心態

一般可分爲兩種心態,一種是完成工作,一種是把工作最好。選擇後一種。

 

畢業生進入崗位,一般都要從底層做起,可能會比較枯燥乏味缺少調整,這個時候你一定要調整好心態和策略,工作也可以變得充滿機會,趣味和挑戰。

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