(上)程序員
http://blog.csdn.net/yzsind/article/details/5401134算法
和不少IT人溝通,發現表現出來更多的是浮躁與抱怨,因此有了本文,其實咱們不管是coder,仍是架構師或項目經理,都存在一樣的心理,只是比較的對像及發展的路線不同罷了。shell
如今是一個和平與發展的社會,大部份人不會爲了吃飽而發愁,更多的是爲了生活更好,爲了工資、房子、車子,爲了獲得周圍人的褒獎,受到周圍人的影響,以致於不知道本身想作什麼,常感受前途不知在哪裏。IT人是這樣,國企的人也同樣,咱們不須要抱怨。數據庫
國企的人每天上班,每天作着差很少的事,幾乎只有一條路線可走,那就是當領導,不多人會想多作一些有意義的事,因此他們大部份人感受生活與工做沒有激情。編程
IT是一個新的行業,特別是在中國,變化太快,因此沒有太多歷史人物的路線能夠借鑑,不少人說程序員在中國只能到30歲,最多35歲。這句話反映了一些現實,但不是宿命。爲何我這麼認爲,咱們來分析一下:服務器
IT行業的人大部份都不在國企,所以不會認爲這家公司就是本身的一輩子,通常20+歲進來,仍是新手,沒有包袱,惟一能夠想的是穩定下來與提升本身,工做了3年後發現又來了一批新人,因而感受本身是老手,可是再過1年後,發現本身與他們沒什麼區別,由於你們作的事也差很少,工資也差很少,因此發現不能再這樣下去了,面對程序員前面的路,感受只能朝項目經理、架構師、分析師方面發展,要麼就是本身創業了。那有多少人轉行成功了呢?網絡
要成爲架構師與分析師,須要的是平時的積累,須要站在更高的高度,可是發現本身在平時的工做中只是一個編程機器,大部份人平時沒有給本身更高的要求,日子一天一天過去,4年的工做經驗發現本身仍是一個coder,除了比新手更多瞭解一些技術的歷史。只有那些平時注意積累,有強烈的技術與業務鑽研精神的人才能成爲合格的架構師與分析師。架構
作架構師與分析師有難度,發現項目經理也不錯,由於不少人感受項目經理能夠知足本身管理的慾望,高人一等。本身工做了4年,看來寫代碼沒優點,只要溝通能力還行的人估計會想選擇當項目經理。其實這是很天然的一條路。可是我發現能不能成爲項目經理很大緣由不徹底是我的能力的問題,而是在於公司的業務發展,有些公司業務發展不錯,項目比較多,只要你的溝通能力還行,有必定的業務和技術經驗,向主管自動錶達一下,作項目經理的機會很大。可是大部份公司的業務發展通常,搞來搞去就那幾個項目,現任項目經理也很穩定,那本身若是沒有特別的能力,只能仍是當coder了,或者是高級coder。框架
架構師與分析師沒當上,項目經理也沒當上,懷才不遇,有一些新想法,因而創業去了,創業的路很艱難,這個我想你們能體會,資金的問題,管理的問題 ,市場的問題,人才的問題,技術的問題。。。。。總之問題不少,可是仍是不少值得佩服的人一腔熱血幹上了,雖然成功的機率不高,可是至少本身是老闆了,還能夠給員工畫餅玩。編程語言
從以上幾條路來講,最終成爲項目經理的人也很多,有的是隻有2,3我的的項目經理,而有人是上百人團隊的項目經理,總之是項目經理了,可是我想大部份人仍是會感受迷惘,緣由在於這些人當上了項目經理,發現本身只是多管幾我的的項目經理,多了一些保姆的職責。在項目過程當中團隊是否和諧與進取,與客戶主管溝經過程中是否是發現本身仍是低人一等,項目好不容易上線了,才發現擦屁股的事一堆又一堆。其實若是出現這種現象,只能說明一點,咱們還不是合格的項目經理,只是由於公司發展的狀況下,被安上了項目負責人的一些工做。
爲何在好的國企,就算一個普通職業你們也能夠幹到50,60歲,那是由於國企的人沒有選擇,由於在他們思想裏這家單位就是他一生的公司,他感受沒有選擇,在年輕時爲了當上主管、領導下了不少功夫,可是上升的人只是少數,因此在國企咱們會看到年紀比較大的人也仍是普通職員,他們面對着新進來的員工也有很是大的壓力,最後只能把但願留給本身的子女。
因此,咱們不用羨慕國企,他們只是表面上讓你們看到穩定,實際上人成長的機會少得可憐,也充滿着浮躁與抱怨。就算咱們如今已經30+歲了,可是IT行業是一個有挑戰的行業,咱們應該分析本身的我的潛力,咱們更須要的是找準目標,腳踏實地的前進!
葉正盛(MKing)
2010-3-21
(下)
http://blogread.cn/it/article/4243?f=wb#original
2010年初寫過一篇博客(咱們是一羣和平年代充滿浮躁與抱怨的程序員),一年過去了,社會好像更浮躁,也有網友問我這方面的問題,因而有了下面這篇文章,再次寫給咱們這些剛入行浮躁的程序員,如何成長,如下是列出了一些成長的心得,咱們沒必要每條都去實踐,可是優秀的程序員成長過程當中總會實踐裏面的幾條。
多作項目,多思考
不要懼怕作事,剛畢業的同窗最缺的就是工做經驗,亂七八糟的項目能讓你很快就瞭解了一個公司的業務與使用的技術,而且能夠多接觸同事與客戶。
當你畢業後剛進一家公司時,若是主管沒有把你安排到項目組工做,那真的很杯具,由於他認爲你還不能勝任工做或者你的加入會讓項目組更糟。
還有人說,我剛進公司,公司就把我當成了苦工,工資又低,項目組加入好幾個,也作了不少事情,天天都要加班。我估計有不少人感受是這種狀態,爲何會是這樣,由於全國人民(不僅是程序員)裏有90%可能都和你同樣的感受,這說明你如今情況是很廣泛的,也說明你如今的能力並無不少出衆的地方。也許是逆境才能讓人成長,若是有一天你讓你的團隊從這些苦力工做中解脫出來或者能給你的團隊前進的動力,那你就昇華了,你就比他們出衆。你沒有能力去改變現狀,因此只能接受,而不要認爲是本身生不逢時,或者說公司環境太差。創業也同樣,不要認爲公司沒發展的主要緣由是環境太差,那你不要去當老闆算了,投資環境都很是好還能輪到你嗎。
還有不少同窗感受本身付出了不少,回報太少,這個問題很難平衡,首先一點,公司在聘你進來後不會由於你沒有成績就先給你回報,公司也不可能會在你有了成績後就當即給你回報,可是長時間付出沒有回報,那這個公司就不值得你付出。我不同意頻繁換公司,這麼作至少能夠說明你是一個只求回報不求付出的人。
至於薪資的問題,這個很難去評估,由於每一個企業的收益相差太遠。可是剛畢業的同窗工做須要關注薪資+成長環境,當薪資能夠知足普通生活需求後,成長環境更爲重要,就比如,給你一月5000元,或者6000元,真的不那麼重要,由於這些收入在你之後的人生中基本沒有影響。固然,若是你如今在大城市幾年裏每月只拿着1000元,那仍是須要選擇一下收入更好的公司,由於這麼低的收入會嚴重影響你的工做學習計劃,也說明你的公司不重視員工,沒有能力給員工好生活的公司,未來的發展也是有限的。
特別說明一點,互聯網公司與傳統信息化企業不同,互聯網一直是風險比較高的行業,也許你選擇了一個看好的企業,也佩服老闆的眼光,可能你如今須要的是與公司患難與共。不要期望在剛創業的團隊裏拿到很是好的待遇,由於你如今就是在投資,也許幾年後公司成功了,你就是功臣,不怎麼出色的你也能夠當上總監或副總裁。
本身開發框架與工具來提升工做效率
當你參與了不少項目,當你發現本身常常作一些COPY,PASTE的操做時,你能夠考慮花時間去提取問題的共性,作一些自動化工具去擺平問題,或者是寫一些基礎框架來屏蔽這些無聊而且累贅的代碼。
本身開發框架與工具,可讓你快速的從一個初級程序員轉變成更高級的程序員或分析師或架構師,由於這個過程當中給你提供了爲其餘程序員服務的機會,你有動力去了解其它程序員的工做需求,你能夠把你的框架或工具寫得很好,接口簡單靈活而且性能好,分析師和架構師就常常要幹這種讓人力成本下降的事。但要記住一點,不要覺得本身開發框架與工具就認爲很NB了,由於這種工做並不會體現多少技術含量,而只是提升我的抽象問題的能力,這個活不少程序員都能幹,可是不多人去幹好。
參與開源項目
參與開源項目可讓你領略到不一樣程序員的溝通方法,開發習慣,技術思惟,能夠認識更多的朋友,若是你足夠強,也可能一鳴驚人哦。可讓你更深刻了解這個開源東西,因此最好是感興趣或者是與工做有關的,不要說什麼流行就參與什麼。開源項目能夠本身貢獻一個新的項目,或者參與一個感興趣的項目。
不要期望開源項目會給你帶來直接的金錢,若是你想拿着開源項目封裝一下去發財,那我真不知道如何作,能夠去問問什麼什麼芯,什麼什麼國產操做系統的人,他們更有經驗。
英語
在這個全球信息時代,英語真的是一個很重要的工具,我真的很羨慕那些學校裏英語就很好的同窗,好的英語能力能夠更快速的瞭解到更多知識。當前,新的技術與知識大部份語言都是英語或翻譯成英語,若是能把英語學好,可讓你人生少奮鬥10年。
寫技術博客
寫技術博客是一種能夠快速提升的方法,可是一我的能堅持每週寫技術博客,那是須要付出不少代價,寫博客並非要咱們寫出高質量的文章才發表,咱們能夠分享本身的一些小經驗,也能夠分享本身的體會。同樣東西在你大腦裏,並不表示你已經掌握了,若是你能說給別人聽,或者用文字表達出來,那首先你要將這些知識點整理清楚纔好表達。我常常認爲本身已經對某個問題了解了,可是在整理技術博客時發現本身的知識盲點,而後再去查找知識來補充本身的盲點,直到最後搞清楚了纔算告一段落。
有些人不喜歡分享或者懼怕分享,可是在這個世界,只要不是公司機密或商業祕密,拿出來分享可讓你獲得更多同行的反饋,網絡上的人會給你相對真實的反饋,由於大部份人與你沒有利益關係。
新人不要懼怕本身分享的知識是否有技術含量,只要你認爲有價值,均可以拿出來,這不只能夠給別人提供知識,也能夠本身整理思路,還能夠獲得網友的反饋。若是你的知識沒有價值,分享出來也沒有關係,若是你的文章技術含量低,怕被人鄙視,那是你這我的不敢認可現實,由於同事與朋友可能不會說你的文章很菜,就算被鄙視了又如何,有時被人鄙視也是一種前進的動力。有人說若是幾年後我進步了不少,但還讓人看到我這些初學時弱智的文檔,誤人子弟,很差意思,Ok,那個時候有能夠徹底把文檔刪除,其實我更喜歡放在那裏品味本身成長的過程,把有誤導的地方更正。
我知道有一個技術博客做者,數據庫專家楊廷琨(http://yangtingkun.itpub.net/),他幾年來,天天堅持寫一篇技術博客,如今已經有2千多篇,個人ORACLE數據庫水平比他差不少,可是我也偶爾看到一些他新寫的文檔我幾年前就會了,但這些並不妨礙我對這位博客做者的敬佩,由於他的博客讓我學到了不少知識。
加入感興趣的技術論壇
每一個公司使用的技術與產品及環境都不太同樣,也許你在公司裏感受什麼東西都是別人作好了,我只是個流水線工人,咱們的系統因爲有嚴格的規範也不太出問題,本身的實踐提升機會太少,那建議你加入感興趣的技術論壇。
技術論壇上你能夠看到不少人各類各樣的問題與分享討論,你也能夠試着去幫別人解決問題。技術論壇可讓你進一步成長,但不要告訴我你只是會沙發、頂或接分的那種。
國內CSDN、ITPUB、CHINAUNIX、JAVAEYE、MSDN、51TESTING都是人氣很旺,裏面也不缺技術大牛與無敵大菜鳥。
常看參考手冊
不少程序員,遇到問題喜歡直接去請教別人,或是Google找結果,經過別人或Google也許問題能夠解決,可是隻能造成知識點,不能造成知識體系。
要全面掌握一個東西最快的方法是看產品的官方參考手冊,參考手冊通常是表明正規的用法或者是推薦的用法,對於小產品最好是先將參考手冊所有看一遍。若是是比較大的產品如(ORACLE、JAVA、.NET)那能夠選擇看常用到的部分。只有當你在看完參考手冊還不懂的時候再去Google或與別人探討,這樣的方式會讓你的知識更體系化。
深刻分析問題緣由
程序員必定要具有對技術問題刨根問底的想法,不少程序員能解決問題,可是不想去了解問題的根源。咱們常常遇到問題,並且不少問題重啓程序或者重啓機器就行了,有多少程序員會去挖掘重啓就解決問題的緣由。我是從事數據庫的,也常常看到不少人遇到數據庫有問題,重裝一下搞定,而沒有深刻分析問題產生的緣由。也許在生產環境咱們沒有時間去分析,可是在開發環境、測試環境你是否是也常常重啓解決問題。若是能在開發環境與測試環境遇到問題,這是技術人員成長的最好機會,咱們在本身的領域必定不能放過這種成長的機會,由於大部份專家都是在這種歷練中出來的。
不要懼怕複雜
不少程序員習慣了利用各類框架及工具解決問題,本身只是寫一些簡單邏輯,當有一天遇到一個問題,沒有對應的框架或工具時就放棄需求。咱們不要懼怕困難,若是你天天的代碼都沒有挑戰,那何來提升,咱們應該在適當的時候給本身一些壓力,這樣可讓本身提升得更快一些。好比你的系統須要一個輕量級的工做流引擎、編譯器、解析器、界面設計器、屏幕控制器,或者一個http服務器之類的東東,可是現有的東西都感受不太滿意,你能夠本身去搞一個試試,不要懼怕不成功,不要懼怕本身作很差。這些東西看起來有點複雜,可是當你深刻去作時,你會發現裏面有不少有意思的東西,你須要去逐步改進你的小系統,直到它能很好的運行爲止,這是個很好的成長過程,可讓你對程序有更深的理解,也可打開思路。
學習計算機基礎,深刻技術原理
有時候咱們常常迷惘,感受技術水平沒有提升,感受技術能力老是浮在表面,特別是當你發現本身算法分析、性能分析、故障診斷能力有限時,也許這是你再次須要學習計算機基礎的時候,由於基礎不牢,因此你的問題診斷準確率不高。每一個程序員應該都學過計算機基礎(計算機體系、操做系統、網絡、數據庫原理、算法等等),這些知識對不少人來講是很枯燥。在當前高級編程語言時代,你的計算機基礎很差也能編碼,並且效率也不低,可是當你要想成爲技術牛人,計算機基礎就是一道坎,由於不紮實的計算機基礎知識會讓你在忽悠與被忽悠中成長。
關心產品市場與商業動態
程序員是否須要關心產品市場與商業動態,我認爲是有必要的,除非你真是技術天才,能閉關十年後橫掃江湖。計算機技術發展太快,每一年都有新的流行產品與技術,大公司也常常改變戰略或易主。若是你想引領技術潮流,想創業,那必定要關心產品市場與商業動態。
不要去輕視任何一種職位、語言、工具
在IT崗位裏,沒有高低之分,不要去輕視任何一種崗位,有些程序員認爲本身的成果最有價值,美工、測試只是邊緣崗位,項目經理就只會瞎指揮,不幹活,銷售人員與售前人員接到定單後屁事都沒有,整個項目基本上就是我一我的的成果。這種心態是最要不得的。其實你的領導並不會這麼想,不少事情是你不知道的,如客戶關係就可能不是你一我的搞定的。還有最重要的一點,若是這個項目沒有你參加怎麼樣?項目可能換成另一我的作,也許他也能作得也不錯,這就說明你的價值或重要性並不像你想象的那麼重要。舉個例子:
就比如你買一臺聯想電腦4000塊,賣給一個沒看過電腦的火星人20000塊,這臺電腦是最後的成果,可是否表示聯想這臺電腦是最重要的,可能你買一臺戴爾的電腦還賺的錢更多,也可能你只要給對方一臺雜牌電腦就能夠拿到20000塊。在這個例子裏更重要的也許是客戶關係與抓住商機,而買什麼樣的電腦影響不大(你在項目裏的地位可能就是這臺電腦的做用,沒有你確定不完整,可是很容易找到你的替代品,因此你的價值並非最重要的)。
計算機編程語言是初學者最喜歡對比的話題,有的大師也常常對比各類語言的優缺點。我並不反對的評論那種語言的優劣,但咱們不能去鄙視某種語言的及其使用者,由於流行的語言都有它生存的環境,多是咱們對技術的見識太窄,也多是咱們對人類的思惟習慣瞭解的不全面,不要老是拿本身的習慣去評價。有不少系統管理員喜歡用命令行,喜歡用shell,perl等腳本語言,這些東西在我看來簡直是低效且易讀性差的東西,可是當你常常在沒有圖形界面下工做時,腳本語言可能真是更高效的選擇。
最後寫上一句浮躁的根源:
不要把祖國當母親,應該把祖國當本身的孩子。
本不想講這句話的,可是現實就是如此,浮躁的人羣老是對社會充滿了意見。我認爲全部的這些浮躁都有一個共同點,就是認爲本身沒法改變這個社會,改變這個社會是國家的事,是其餘人的事。
小時候老師老是講祖國是母親,咱們是花朵,可是實際上咱們也不是什麼花朵,咱們就是鄭智化歌裏的那根「小小的草,風吹雨打後依然不倒」。現實的社會老是充滿着種種不平衡,可是浮躁並不能解決問題。有時總在想祖國並不像個人母親,她更像是個人孩子,她還很小,經歷過不少坎坷,咱們常常感受自家的孩子比不上別人的孩子的某個方面,因而對孩子多加責罵,也可能會讓她花一個暑假的時間去補習。小孩子有一些成績後也會驕傲,有時還會欺騙,咱們不能容忍的是她的惡意謊話,可是她尚未到無藥可救的程度,她依然還在成長。咱們常常拿孩子與別人的孩子對比,並且老是發現別人孩子更好的一面,可是你是否但願與別人交換孩子呢,除了感情外你是否瞭解別人孩子的所有,咱們須要更多的面對現實,應該在孩子成長的時候及時指出她的缺點,她不可能什麼都是優秀的,因此咱們應該盡本身的能力讓她更好一些。你不太可能改變母親,可是你的行動會影響孩子,你拋棄孩子,你真正的孩子未來可能也會拋棄你,因此說祖國可能並不像母親,更像孩子,若是你把祖國當孩子,也許是另外一種人生價值。