天天看點

在這個和平年代,有不少浮躁與抱怨的程式員

我承認社會有點浮躁了,但是這不是我們浮躁的理由。優秀的程式員成長過程中總會有一些優秀的實踐。

多做項目,多思考

不要害怕做事和犯錯,剛畢業的同學最缺的就是工作經驗,亂七八糟的項目能讓你很快就了解了一個公司的業務與使用的技術,并且可以多接觸同僚與客戶。當你畢業後剛進一家公司時,如果主管沒有把你安排到項目組工作,那真的很杯具,因為他認為你還不能勝任工作或者你的加入會讓項目組更糟。還有人說,我剛進公司,公司就把我當成了苦工,工資又低,項目組加入好幾個,也做了很多事情,每天都要加班。我估計有很多人感覺是這種狀态,為什麼會是這樣,因為全國人民(不隻是程式員)裡有90%可能都和你一樣的感覺,這說明你現在狀況是很普遍的,也說明你現在的能力并沒有很多出衆的地方。也許是逆境才能讓人成長,如果有一天你讓你的團隊從這些苦力工作中解脫出來或者能給你的團隊前進的動力,那你就升華了,你就比他們出衆。你沒有能力去改變現狀,是以隻能接受,而不要認為是自己生不逢時,或者說公司環境太差。創業也一樣,不要認為公司沒發展的主要原因是環境太差,那你不要去當老闆算了,投資環境都非常好還能輪到你嗎。還有很多同學感覺自己付出了很多,回報太少,這個問題很難平衡,首先一點,公司在聘你進來後不會因為你沒有成績就先給你回報,公司也不可能會在你有了成績後就立即給你回報,但是長時間付出沒有回報,那這個公司就不值得你付出。我不贊成頻繁換公司,這麼做至少可以說明你是一個隻求回報不求付出的人。至于薪資的問題,這個很難去評估,因為每個企業的收益相差太遠。但是剛畢業的同學工作需要關注薪資+成長環境,當薪資可以滿足普通生活需求後,成長環境更為重要,就好比,給你一月5000元,或者6000元,真的不那麼重要,因為這些收入在你以後的人生中基本沒有影響。當然,如果你現在在大城市幾年裡每個月隻拿着1000元,那還是需要選擇一下收入更好的公司,因為這麼低的收入會嚴重影響你的工作學習計劃,也說明你的公司不重視員工,沒有能力給員工好生活的公司,将來的發展也是有限的。特别說明一點,網際網路公司與傳統資訊化企業不一樣,網際網路一直是風險比較高的行業,也許你選擇了一個看好的企業,也佩服老闆的眼光,可能你現在需要的是與公司同甘共苦。不要指望在剛創業的團隊裡拿到非常好的待遇,因為你現在就是在投資,也許幾年後公司成功了,你就是功臣,不怎麼出色的你也可以當上總監或副總裁。

自己開發架構與工具來提高工作效率

當你參與了很多項目,當你發現自己經常做一些COPY,PASTE的操作時,你可以考慮花時間去提取問題的共性,做一些自動化工具去擺平問題,或者是寫一些基礎架構來屏蔽這些無聊并且累贅的代碼。自己開發架構與工具,可以讓你快速的從一個初級程式員轉變成更進階的程式員或分析師或架構師,因為這個過程中給你提供了為其他程式員服務的機會,你有動力去了解其它程式員的工作需求,你可以把你的架構或工具寫得很好,接口簡單靈活并且性能好,分析師和架構師就經常要幹這種讓人力成本降低的事。但要記住一點,不要以為自己開發架構與工具就認為很NB了,因為這種工作并不會展現多少技術含量,而隻是提高個人抽象問題的能力,這個活很多程式員都能幹,但是很少人去幹好。

參與開源項目

參與開源項目可以讓你領略到不同程式員的溝通方法,開發習慣,技術思維,可以認識更多的朋友,如果你足夠強,也可能一舉成名哦。可以讓你更深入了解這個開源東西,是以最好是感興趣或者是與工作有關的,不要說什麼流行就參與什麼。開源項目可以自己貢獻一個新的項目,或者參與一個感興趣的項目。不要指望開源項目會給你帶來直接的金錢,如果你想拿着開源項目封裝一下去發财,那我真不知道如何做,可以去問問什麼什麼芯,什麼什麼國産作業系統的人,他們更有經驗。

英語

在這個全球資訊時代,英語真的是一個很重要的工具,我真的很羨慕那些學校裡英語就很好的同學,好的英語能力可以更快速的了解到更多知識。目前,新的技術與知識大部份語言都是英語或翻譯成英語,如果能把英語學好,可以讓你人生少奮鬥x年。

寫技術部落格

寫技術部落格是一種可以快速提高的方法,但是一個人能堅持每周寫技術部落格,那是需要付出很多代價,寫部落格并不是要我們寫出高品質的文章才發表,我們可以分享自己的一些小經驗,也可以分享自己的體會。一樣東西在你大腦裡,并不表示你已經掌握了,如果你能說給别人聽,或者用文字表達出來,那首先你要将這些知識點整理清楚才好表達。我經常認為自己已經對某個問題了解了,但是在整理技術部落格時發現自己的知識盲點,然後再去查找知識來補充自己的盲點,直到最後搞清楚了才算告一段落。有些人不喜歡分享或者害怕分享,但是在這個世界,隻要不是公司機密或商業秘密,拿出來分享可以讓你得到更多同行的回報,網絡上的人會給你相對真實的回報,因為大部份人與你沒有利益關系。

新人不要害怕自己分享的知識是否有技術含量,隻要你認為有價值,都可以拿出來,這不僅可以給别人提供知識,也可以自己整理思路,還可以得到網友的回報。如果你的知識沒有價值,分享出來也沒有關系,如果你的文章技術含量低,怕被人鄙視,那是你這個人不敢承認現實,因為同僚與朋友可能不會說你的文章很菜,就算被鄙視了又如何,有時被人鄙視也是一種前進的動力。有人說如果幾年後我進步了很多,但還讓人看到我這些初學時弱智的文檔,誤人子弟,不好意思,Ok,那個時候有可以完全把文檔删除,其實我更喜歡放在那裡品味自己成長的過程,把有誤導的地方更正。我也堅持每天寫點東西,或者是工作總結,或者是感觸,或者是技術等等。釋出在我的微信号(不是公衆号) aitilaowang

加入感興趣的技術論壇

每個公司使用的技術與産品及環境都不太一樣,也許你在公司裡感覺什麼東西都是别人做好了,我隻是個流水線勞工,我們的系統由于有嚴格的規範也不太出問題,自己的實踐提高機會太少,那建議你加入感興趣的技術論壇。技術論壇上你可以看到很多人各種各樣的問題與分享讨論,你也可以試着去幫别人解決問題。技術論壇可以讓你進一步成長,但不要告訴我你隻是會沙發、頂或接分的那種。國内CSDN、ITPUB、JAVAEYE都是人氣很旺,裡面也不缺技術大牛與無敵大菜鳥。

常看參考手冊

很多程式員,遇到問題喜歡直接去請教别人,或是搜尋找結果,通過别人或搜尋也許問題可以解決,但是隻能形成知識點,不能形成知識體系。要全面掌握一個東西最快的方法是看産品的官方參考手冊,參考手冊一般是代表正規的用法或者是推薦的用法,對于小産品最好是先将參考手冊全部看一遍。如果是比較大的産品如(ORACLE、Java、.NET)那可以選擇看經常使用到的部分。隻有當你在看完參考手冊還不懂的時候再去baidu或與别人探讨,這樣的方式會讓你的知識更體系化。

深入分析問題原因

程式員一定要具備對技術問題刨根問底的想法,很多程式員能解決問題,但是不想去了解問題的根源。我們經常遇到問題,而且很多問題重新開機程式或者重新開機機器就好了,有多少程式員會去挖掘重新開機就解決問題的原因。我以前做資料庫開發3年,也經常看到很多人遇到資料庫有問題,重裝一下搞定,而沒有深入分析問題産生的原因。也許在生産環境我們沒有時間去分析,但是在開發環境、測試環境你是不是也經常重新開機解決問題。如果能在開發環境與測試環境遇到問題,這是技術人員成長的最好機會,我們在自己的領域一定不能放過這種成長的機會,因為大部份專家都是在這種曆練中出來的。

不要害怕複雜

很多程式員習慣了利用各種架構及工具解決問題,自己隻是寫一些簡單邏輯,當有一天遇到一個問題,沒有對應的架構或工具時就放棄需求。我們不要害怕困難,如果你每天的代碼都沒有挑戰,那何來提高,我們應該在适當的時候給自己一些壓力,這樣可以讓自己提高得更快一些。比如你的系統需要一個輕量級的工作流引擎、編譯器、解析器、界面設計器、螢幕控制器,或者一個http伺服器之類的東東,但是現有的東西都感覺不太滿意,你可以自己去搞一個試試,不要害怕不成功,不要害怕自己做不好。這些東西看起來有點複雜,但是當你深入去做時,你會發現裡面有很多有意思的東西,你需要去逐漸改進你的小系統,直到它能很好的運作為止,這是個很好的成長過程,可以讓你對程式有更深的了解,也可打開思路。

關心産品市場與商業動态

程式員是否需要關心産品市場與商業動态,我認為是有必要的,除非你真是技術天才,能閉關十年後橫掃江湖。計算機技術發展太快,每年都有新的流行産品與技術,大公司也經常改變戰略或易主。如果你想引領技術潮流,想創業,那一定要關心産品市場與商業動态。

不要去輕視任何一種職位、語言、工具

在IT崗位裡,沒有高低之分,不要去輕視任何一種崗位,有些程式員認為自己的成果最有價值,美工、測試隻是邊緣崗位,項目經理就隻會瞎指揮,不幹活,銷售人員與售前人員接到定單後屁事都沒有,整個項目基本上就是我一個人的成果。這種心态是最要不得的。其實你的上司并不會這麼想,很多事情是你不知道的,如客戶關系就可能不是你一個人搞定的。還有最重要的一點,如果這個項目沒有你參加怎麼樣?項目可能換成另外一個人做,也許他也能做得也不錯,這就說明你的價值或重要性并不像你想象的那麼重要。

計算機程式設計語言是初學者最喜歡對比的話題,有的大師也經常對比各種語言的優缺點。我并不反對的評論那種語言的優劣,但我們不能去鄙視某種語言的及其使用者,因為流行的語言都有它生存的環境,可能是我們對技術的見識太窄,也可能是我們對人類的思維習慣了解的不全面,不要總是拿自己的習慣去評價。有很多系統管理者喜歡用指令行,喜歡用shell,perl等腳本語言,這些東西在我看來簡直是低效且易讀性差的東西,但是當你經常在沒有圖形界面下工作時,腳本語言可能真是更高效的選擇。

重視辦公室上司、同僚的關系

我們是技術人,技術是根本,但是軟體系統的設計、開發、測試、上線等等不隻是有技術就行的,前邊也說了還有我們和同僚的合作、有銷售人員、有設計人員、有客戶、有上司等形形色色的角色和人,我們要靈活和他們溝通,技術和溝通都是我們成為合格IT人的基礎條件,掌握和不同角色人員的基本溝通方法也可以擴大視野及拓寬就業管道和适應不同的崗位,也許有一天你發現你除了寫程式還可以做資料庫設計、需求分析、項目經理、産品設計等等,你的發展前景也許會更廣闊。

繼續閱讀