春風博客

          春天里,百花香...

          導航

          <2008年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統計

          公告

          MAIL: junglesong@gmail.com
          MSN: junglesong_5@hotmail.com

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          程序員之路探究

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

          前言

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

          程序員是一碗青春飯嗎?

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

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

          我剛進入IT業就聽說過這種說法,不過當時的年齡限度是30歲,當工作一段時間后,這個限度上調了五歲,而且還有陸續上調的趨勢,而在各個公司中,超過35的程序員并不罕見,在外國做了一輩子軟件的人也屢見不鮮。難道“程序員是吃青春飯的”是一個謬論嗎?那么為什么很多人持有并宣揚此論調呢?
          其實這個結論既正確也不正確,它的結果取決于要評判的人。一個人如果根基扎實,他就更容易學習新的事物新的知識,年輕和精力相對于扎實牢靠的根基是微不足道的,對于別人是一座山的障礙,對于他也許就是一張紙的隔閡,這樣的人是不會面臨著被超越被淘汰的危機的,青春飯的論調對他完全不適用;而一個人如果根基不牢,只是靠精力和年齡勉強立足,每次新事物新知識出現都在和年輕人拼體力拼精力,那么他遲早將被淘汰,優勝劣汰的社會就是這樣殘酷無情,但很公平 。

          什么是程序員的根基

          面向對象的思想。MVC,分層架構,按接口編程,依賴注入,OR Mapping,面向方面,SOA等都是OO的發展,不從根本上領會它,程序員就難以把握程序發展進化的趨勢,永遠停留在老窠臼中無法自拔,自我提高升華進化當然更是一句空話。
          數據結構。程序的核心目的是收集,整理和展示數據,而數據的核心就是數據結構,它的重要性不言而喻。線性表、棧/隊列、串、多維數組、廣義表、樹、圖這些數據結構你都需要認真掌握,掌握的程度越深,日后學習的阻力就越小,相對于他人將更有優勢。
          算法。如果缺乏好的算法,程序架構得再完美數據再貼切都無濟于事,猶如一臺法拉利卻用牛來拉一樣。迭代法、窮舉搜索法、遞推法、貪婪法、回溯法、分治法、動態規劃法都是你需要掌握的,不要以為這很難,讀透一本算法導論就足夠了。
          基礎API。只有思想,數據結構和算法只是一條腿,要健步如飛還得兩條腿走路。程序員的另一條腿就是基礎API,你需要認真掌握TCP/IP協議詳解,Socket通信,線程,文件讀寫等每種語言和技術都需要的基礎知識,一個新事務即使再絢爛奪目也是利用這些基石搭建而成的,如果你徹底了解了它們將永處不敗的境地,甚至覺得新技術也不過如此。

          如何打好根基

          多學。從項目中學,從書本中學,從別人哪里學,從失敗中學習,掌握基礎API就是需要多學習,如果有已有的知識總結可以起到事半功倍的效果。
          多想。學習OO和算法都需要理解,光是死記硬背毫無用處,子曰“學而不思則罔”,OO和算法的學習都需要一個理解消化的過程,只有徹底理解了,你才真正掌握了它們。
          多練。經過代碼的歷練,程序員才能百煉成鋼,成功的項目能告訴你什么是正確的,失敗的項目會暗示它為什么會失敗,下次你就能更進退有據。更重要的一點是,不做項目,不做多個項目,不做大項目,程序員對“度”的把握總是缺乏經驗,不是過就是不及。真正親手手寫過10-20萬行代碼的是成為一個成熟程序員的必要條件(但不是充分條件)。
          多見。眼光狹窄,目光短淺,固步自封只能造就一只井底之蛙,你的眼光必須超越自己所在的環境才能取得真正的進步,現在有許多開源社區和軟件都是你應該涉足的地方,和什么樣的人在一起你自然也會成為什么樣的人。“蓬生麻中,不扶而直,白沙在涅,與之俱黑“說的就是這個道理。


          程序員的身價是由什么決定的?

          如果一個程序員有良好的根基,充滿智慧的頭腦,積極主動的精神和鍥而不舍的毅力,他就一定能有豐厚的薪水嗎?答案是否定的。原因在于薪水不光取決于自身的水平,還取決于周圍的環境。
          程序員的身價首先決定于他能給雇主帶來多大的利益,如果帶不來利益,程序員再有本事也是白搭,這就要求程序員一定要根據自己的特點尋找合適自己發展的公司,在你的職業生涯之初就要研究自己和世界,逐步選擇一個合適自己的方向發展,永遠記住,方向比努力更重要。
          其次,程序員的身價也取決于他的不可替代性,即使一個人能帶來很多的利益但身后有大批的后備軍資源,干不好立即就有人頂替你,這樣的人薪水也不會高,反正你不干有的是人干,資本家就是這樣無情。這告訴我們要使自己不可替代,就要努力向高處走,一定和眾人拉開差距才能彰顯自己的價值。

          程序員生涯能給我們帶來什么

          IT是一個朝陽產業,正處于蓬勃發展中,選擇這一行比其它行業擁有更多的發展機會。
          相對于其它職業,程序員對自己命運的把握程度更大。”榮辱自取,不求于人“,這是一種非常好的感覺,在別的職業中是難以找到的。
          只要人們還在使用計算機,程序員這個職業就永遠不會消亡,因為計算機運行永遠需要軟件。
          在信息時代,程序是一個非常有效的收集或發布信息的工具,如果利用得當,它能直接帶來巨大的收益。

          程序員事業發展的方向

          架構師,CIO。對于熱衷于技術的程序員來說這是一個不錯的方向,架構師這個職位的必要條件是有優秀的技術功底和豐富的設計經驗,此外還需要有某個領域的深入知識。對于CIO要求更高,他需要對未來五年內的技術走勢把握得比較清楚。
          項目經理,部門經理。人際關系處理良好,語言能力出眾的程序員適合走這條路。這也是大連大多數程序員的理想選擇。
          做自己的網站,當一個給自己發薪水的人。網站做好了收入頗豐,低端如hao123,高端如google的例子都擺在眼前。其實做網站初期投入并不巨大,但需要持之以恒的毅力尤其是敏銳的市場嗅覺,它決定了你是否能從網站中盈利。此外,擁有自己的網站對于自我宣傳,建立個人品牌有很大的好處。這條路適合于熱衷于網絡技術的程序員。
          開公司創業。制作軟件并不難,難得是是否能接到活,能否接到長期的活,如果能做到的話,你就可以選擇創業。拿工資致富是不可能的,而一次項目的利潤可能就等于你前期的工資總和。

          后語

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

          posted on 2008-05-27 11:05 sitinspring 閱讀(4697) 評論(14)  編輯  收藏 所屬分類: 隨想錄

          評論

          # re: 程序員之路探究 2008-05-27 11:34 rocket

          程序員有一期有個文章叫做程序員的7樣兵器,作者可以找來看看,再把這篇文章豐潤一下.覺得在關于程序員修煉的方面有些興猶未盡的感覺.  回復  更多評論   

          # re: 程序員之路探究 2008-05-27 11:43 如坐春風

          @rocket

          謝謝提醒,我也覺得這塊需要再挖掘一下。
            回復  更多評論   

          # re: 程序員之路探究 2008-05-27 11:45 wenzq

          為什么我們出不了優秀的書籍? 我想有點原因就是我們的編程經驗太少,我們國內沒幾個人有過20+年的編碼經驗的, 期待博主有更多的精彩文章.  回復  更多評論   

          # re: 程序員之路探究 2008-05-27 12:49 隔葉黃鶯

          為什么中國把程序員的年齡定在30歲,35歲,干幾十年的程序員鮮有,因為中國的軟件發展才不過多少年,所以做經驗豐富的程序員未必不能象如今的老外程序員那般  回復  更多評論   

          # re: 程序員之路探究 2008-05-27 18:51 deathnote

          還有一年大學畢業了,要開始我的程序員之路了,支持一下,不知道我的路會怎么樣,呵呵。。。  回復  更多評論   

          # re: 程序員之路探究 2008-05-28 00:26 mythal

          我也要畢業了呢,都不知道怎么辦。。。不過感覺很多同學都說以后肯定不做程序員,聽了蠻傷心的。。。  回復  更多評論   

          # re: 程序員之路探究 2008-05-28 08:59 如坐春風

          @mythal

          其實那行都辛苦,怕吃苦的話基本就都不適合了。

          如果是能有更好的發展,進入其它行業也未為不可。  回復  更多評論   

          # re: 程序員之路探究 2008-05-28 09:37 rogerfan

          謝謝分享,收獲甚多  回復  更多評論   

          # re: 程序員之路探究[未登錄] 2008-05-28 18:03 Daniel

          重修內功, 不嬌不燥!  回復  更多評論   

          # re: 程序員之路探究 2008-05-29 21:57 大衛

          逐字逐句讀完后,感覺文章寫得條理清晰,并在內容上一點點將一個程序員內心的普遍疑惑做了經驗性的總結。最有收獲的是讀到最后,忽然感覺到作為一個程序員,其實是可以成為比較強勢的一個群體的,增強了不少信心。前提是要努力。很喜歡的一句話——“相對于其它職業,程序員對自己命運的把握程度更大。榮辱自取,不求于人?!?nbsp; 回復  更多評論   

          # re: 程序員之路探究 2008-05-29 22:00 大衛

          ......和什么樣的人在一起你自然也會成為什么樣的人?!芭钌橹?,不扶而直,白沙在涅,與之俱黑”。......
          本文有很多類似的金玉良言,我認為這是一篇每一位程序員都值得收藏的佳作。  回復  更多評論   

          # re: 程序員之路探究 2008-06-13 11:50 達到

          數據結構,算法這些有那么重要嗎?我是從事J2EE開發的,工作快一年了,感覺都是調用API進行開發,數據結構,算法這些好象之呼都沒用到,可能也是我的層次還不夠吧,目前還沒進行什么深層次的開發。以前也想好好看下數據結構,算法之類的,但工作的時候沒感覺到需要看這方面的知識。  回復  更多評論   

          # re: 程序員之路探究 2008-06-13 12:13 如坐春風

          @達到

          這個如同內力,能讓強者如虎添翼,有空加強一下還是很有必要。  回復  更多評論   

          # re: 程序員之路探究 2008-09-10 16:17 Fingki.li

          很有感觸!
          作者的文筆非同一般呀!  回復  更多評論   

          sitinspring(http://www.aygfsteel.com)原創,轉載請注明出處.
          主站蜘蛛池模板: 古蔺县| 陈巴尔虎旗| 甘泉县| 灵山县| 衡东县| 东平县| 长兴县| 新源县| 克山县| 南乐县| 东城区| 浮山县| 崇阳县| 桑植县| 永寿县| 衢州市| 平潭县| 绥宁县| 永顺县| 平南县| 利川市| 江西省| 仪陇县| 台山市| 瑞金市| 五台县| 大港区| 武定县| 揭东县| 乌拉特中旗| 海安县| 东光县| 禄丰县| 九江市| 乌鲁木齐县| 元谋县| 阳城县| 赣州市| 阜新| 扬州市| 鹤庆县|