天天看點

程式員職業生涯探讨

通常而言,工作的前兩年,最想換環境。工作3到5年,最想休息! 但無論如何,多看看别人的經曆與想法,對我們也會大有益處!

轉一篇文章: http://werwfrxx.javaeye.com/blog/198196

這是個人對程式員生涯的一己之見,隻代表作者的個人想法,其中疏漏甚至錯誤之處在所難免,希望大家多提寶貴意見。 

前言 

豐厚的薪水,高端的職位和有成就感的事業是人人都想要的,而這些都取決于你每天的認真工作,努力學習和靈活做人上。日子就像一塊塊磚,你就像是一個泥瓦匠每天在堆砌着你的人生,最終砌出一個宏偉的大廈或是一幢低矮的小屋甚至是堆成一堆瓦礫全取決于你自己。 

程式員是一碗青春飯嗎? 

程式界和軟硬體一樣都要遵守摩爾定律,也就是說目前的技術知識很快會被替代,你需要不斷學習新的東西,否則就會面臨着被淘汰的危險。然而,一個人的學習動力和欲望都是有限的,記憶力還會随着年齡的增長而衰退,從這個道理上來說,年齡大的遲早會被年齡小的超過,成為雞肋并最終将被無良的公司抛棄。難道程式員這個職業做不過三十五歲,永遠是一碗青春飯嗎? 

根基是決定一個人會不會被淘汰的關鍵 

我剛進入IT業就聽說過這種說法,不過當時的年齡限度是30歲,當工作一段時間後,這個限度上調了五歲,而且還有陸續上調的趨勢,而在各個公司中,超過35的程式員并不罕見,在外國做了一輩子軟體的人也屢見不鮮。難道“程式員是吃青春飯的”是一個謬論嗎?那麼為什麼很多人持有并宣揚此論調呢? 

其實這個結論既正确也不正确,它的結果取決于要評判的人。一個人如果根基紮實,他就更容易學習新的事物新的知識,年輕和精力相對于紮實牢靠的根基是微不足道的,對于别人是一座山的障礙,對于他也許就是一張紙的隔閡,這樣的人是不會面臨着被超越被淘汰的危機的,青春飯的論調對他完全不适用;而一個人如果根基不牢,隻是靠精力和年齡勉強立足,每次新事物新知識出現都在和年輕人拼體力拼精力,那麼他遲早将被淘汰,優勝劣汰的社會就是這樣殘酷無情,但很公平 。 

什麼是程式員的根基 

面向對象的思想。MVC,分層架構,按接口程式設計,依賴注入,OR Mapping,面向方面,SOA等都是OO的發展,不從根本上領會它,程式員就難以把握程式發展進化的趨勢,永遠停留在老窠臼中無法自拔,自我提高升華進化當然更是一句空話。 

資料結構。程式的核心目的是收集,整理和展示資料,而資料的核心就是資料結構,它的重要性不言而喻。線性表、棧/隊列、串、多元數組、廣義表、樹、圖這些資料結構你都需要認真掌握,掌握的程度越深,日後學習的阻力就越小,相對于他人将更有優勢。如果缺乏好的算法,程式架構得再完美資料再貼切都無濟于事,猶如一台法拉利卻用牛來拉一樣。疊代法、窮舉搜尋法、遞推法、貪婪法、回溯法、分治法、動态規劃法都是你需要掌握的,不要以為這很難,讀透一本算法導論就足夠了。 

基礎API。隻有思想,資料結構和算法隻是一條腿,要健步如飛還得兩條腿走路。程式員的另一條腿就是基礎API,你需要認真掌握TCP/IP協定詳解,Socket通信,線程,檔案讀寫等每種語言和技術都需要的基礎知識,一個新事務即使再絢爛奪目也是利用這些基石搭建而成的,如果你徹底了解了它們将永處不敗的境地,甚至覺得新技術也不過如此。 

如何打好根基 

多學。從項目中學,從書本中學,從别人哪裡學,從失敗中學習,掌握基礎API就是需要多學習,如果有已有的知識總結可以起到事半功倍的效果。 

多想。學習OO和算法都需要了解,光是死記硬背毫無用處,子曰“學而不思則罔”,OO和算法的學習都需要一個了解消化的過程,隻有徹底了解了,你才真正掌握了它們。 

多練。經過代碼的曆練,程式員才能百煉成鋼,成功的項目能告訴你什麼是正确的,失敗的項目會暗示它為什麼會失敗,下次你就能更進退有據。更重要的一點是,不做項目,不做多個項目,不做大項目,程式員對“度”的把握總是缺乏經驗,不是過就是不及。真正親手手寫過10-20萬行代碼的是成為一個成熟程式員的必要條件(但不是充分條件)。 

多見。眼光狹窄,目光短淺,固步自封隻能造就一隻井底之蛙,你的眼光必須超越自己所在的環境才能取得真正的進步,現在有許多開源社群和軟體都是你應該涉足的地方,和什麼樣的人在一起你自然也會成為什麼樣的人。“蓬生麻中,不扶而直,白沙在涅,與之俱黑“說的就是這個道理。 

程式員的身價是由什麼決定的? 

如果一個程式員有良好的根基,充滿智慧的頭腦,積極主動的精神和锲而不舍的毅力,他就一定能有豐厚的薪水嗎?答案是否定的。原因在于薪水不光取決于自身的水準,還取決于周圍的環境。 

程式員的身價首先決定于他能給雇主帶來多大的利益,如果帶不來利益,程式員再有本事也是白搭,這就要求程式員一定要根據自己的特點尋找合适自己發展的公司,在你的職業生涯之初就要研究自己和世界,逐漸選擇一個合适自己的方向發展,永遠記住,方向比努力更重要。 

其次,程式員的身價也取決于他的不可替代性,即使一個人能帶來很多的利益但身後有大批的後備軍資源,幹不好立即就有人頂替你,這樣的人薪水也不會高,反正你不幹有的是人幹,資本家就是這樣無情。這告訴我們要使自己不可替代,就要努力向高處走,一定和衆人拉開差距才能彰顯自己的價值。 

程式員生涯能給我們帶來什麼 

IT是一個朝陽産業,正處于蓬勃發展中,選擇這一行比其它行業擁有更多的發展機會。 

相對于其它職業,程式員對自己命運的把握程度更大。”榮辱自取,不求于人“,這是一種非常好的感覺,在别的職業中是難以找到的。 

隻要人們還在使用計算機,程式員這個職業就永遠不會消亡,因為計算機運作永遠需要軟體。 

在資訊時代,程式是一個非常有效的收集或釋出資訊的工具,如果利用得當,它能直接帶來巨大的收益。 

程式員事業發展的方向 

架構師,CIO。對于熱衷于技術的程式員來說這是一個不錯的方向,架構師這個職位的必要條件是有優秀的技術功底和豐富的設計經驗,此外還需要有某個領域的深入知識。對于CIO要求更高,他需要對未來五年内的技術走勢把握得比較清楚。 

項目經理,部門經理。人際關系處理良好,語言能力出衆的程式員适合走這條路。這也是大連大多數程式員的理想選擇。 

做自己的網站,當一個給自己發薪水的人。網站做好了收入頗豐,低端如hao123,高端如google的例子都擺在眼前。其實做網站初期投入并不巨大,但需要持之以恒的毅力尤其是敏銳的市場嗅覺,它決定了你是否能從網站中盈利。此外,擁有自己的網站對于自我宣傳,建立個人品牌有很大的好處。這條路适合于熱衷于網絡技術的程式員。 

開公司創業。制作軟體并不難,難得是是否能接到活,能否接到長期的活,如果能做到的話,你就可以選擇創業。拿工資緻富是不可能的,而一次項目的利潤可能就等于你前期的工資總和。 

後語 

相對于永恒的宇宙,我們确實非常渺小,應該有謙卑之心;但是跟别的任何生命相比,我們的尊嚴,我們的價值,我們的可能性,是一樣的;就算人家确實是牡丹玫瑰,自己隻是小小的,角落裡的一朵苔花,也應該燦爛地綻放,把自己漲圓,并且自豪地仰望蒼天,說:“我也能!”

參考:

繼續閱讀