文章連結:http://com-xpp.iteye.com/blog/1486693
找工作的這幾天,收獲頗多。思考得最多的問題可能就是對未來的一個規劃。無意中看到下面幾條經驗,發現和自己想的也差不多,就分享出來。我要求自己做到這些,同時也希望對您也有所幫助。
1、保持學習
一個非常重要的觀點是:如果你停留在一個地方不前,并不代表你能一直呆在那裡,而是代表你正在落後(不進則退)。往前進并不意味着你是就能進步 - 這至少你不會淪落到最後(付出就會有收獲) 。程式員為了保持向前發展,就需要不斷學習 ,我們需要的不是慢慢的往前走,而是我們要奔跑起來!下面列出這方面的幾個觀點:
1)、讀書
2)、訂閱RSS和閱讀一些雜志(我覺得msdn的雜志不錯)
3)、參加一些研讨會,自己準備一些簡報(社群精英、部落格園每月的活動等都不錯)
4)、學習一切可以幫助你的東西
5)、教其他人其實也是教自己
2、給自己确定目标
如果不知道向什麼方向發展,是很難有成就的。這一點關鍵是自己要有一個清晰地目标。這個應該是個長期的目标,然後要有一個目标的願景。首先要把這個目标分成一些小的任務,建立實作這些目标的路線圖。你可以建立每月或每年你必須完成的一個任務清單,然後根據這個任務清單去實作。
3、生活中的每一個挑戰都是一個機遇
在日常工作時,總是會遇到各種各樣的問題。你可能會遇到一些程式的bug;項目經理配置設定的新任務;你同僚請你幫助;你請别人幫助。這些都是一個一個的挑戰。問題是:你如何去解決這些挑戰?我的一個答案是:你必要調動你所有的激情去應對這些挑戰,因為每個挑戰就是一個機遇。
4、抱有積極态度
對待每一件事情都應抱着積極的态度。如果發現你犯了一個錯誤,請不要在意,因為沒有人是不會犯錯誤的。你可以想象一下,有誰喜歡那種一遇到問題就抱怨的人呢?如果你說“好吧,夥計們,我能做到的,請給我一分鐘,我就會解決這個問題。”,然後笑着轉過身就修改自己的錯誤,這樣在别人眼裡又是如何看待你呢?當您解決這個問題之後,你會感覺到異常的高興。
相信自己的方法是正确的,自己正在快速進步。千萬不要老是認為自己無法達到自己的目标。
5、給自己尋找一個導師
這并不是說你需要一個人來幫助你來完成你的工作。導師可能就是比你職别高的職員。而且他的職位是你想要去争取的。如果他的職位你争取到了,你可以再選擇另外一個更高的。但是你必要一直都需要有這麼一個人。也可以能督促你和支援你的朋友、親人、戀人等等。
6、讓自己公衆化
如何讓别人知道你呢?一個最簡單的辦法是寫部落格、提問題、幫别人解決問題。起碼要google知道你吧。學會在團隊和項目中分享自己的知識。如果你學了新的知識,就把它分享出來!如果你沒有分享,下次再用的時候,你可能就忘記了。
7、時不時的審查一下自己,確定自己的方式正确
時不時的,你需要檢查你做的方法是否全正确。檢查一下是否完成即将完成的目标。如果沒有,趕快找原因,加緊去完成。尋找你的薄弱環節,加強它們。這聽起來很滑稽:我認識一個技術很強的開發人員,但他的打字速度卻是很慢。為什麼?因為他對鍵盤不熟悉,又不想花10-20小時進行鍵盤訓練。兄弟,如果你會讀到此,請務必要求自己克服此類的問題。
8、保持健康身體
我寫這篇文章之前,算是“集思廣益”的。我是一個年輕男子,跟我的筆記本電腦和另一台計算機工作了太長時間,我不能強迫自己做健身運動了。這個有點像磨刀不誤砍柴工。有一個故事,兩個樵夫打賭砍樹,一個比較強壯,另外一個比較瘦弱。強壯的人相信他會赢得,因為他沒有休息,持續砍了8小時。瘦小的那位,每隔一個小時就休息15分鐘。最後瘦小的那位樵夫卻赢了。他赢的秘密在于休息的時候将刀磨鋒利了。你的健康就像是斧頭,如果斧頭鈍了,你将無法為自己人生道路披荊斬刺。
優秀程式員的十個習慣
在這個世界上,有數百萬的人熱衷于軟體開發,他們有很多名字,如:軟體工程師(Software Engineer),程式員(Programmer),編碼人(Coder),開發人員(Developer)。經過一段時間後,這些人能夠成為一個優秀的編碼人員,他們非常熟悉如何用計算機語言來完成自己的工作。但是,如果你要成為一個優秀的程式員,你還可以需要有幾件事你需要注意,如果你能讓下面十個條目成為你的習慣,那麼你才能真正算得上是優秀程式員。
1. 學無止境。就算是你有了10年以上的程式員經曆,你也得要使勁地學習,因為你在計算機這個充滿一創造力的領域,每天都會有很多很多的新事物出現。你需要跟上時代的步伐。你需要去了解新的程式語言,以及了解正在發展中的程式語言,以及一些程式設計架構。還需要去閱讀一些業内的新聞,并到一些熱門的社群去參與線上的讨論,這樣你才能明白和了解整個軟體開發的趨勢。在國内,一些著名的社群例如:CSDN,ITPUB,CHINAUINX等等,在國外,建議你經常上一上digg.com去看看各種BLOG的聚合。
2. 掌握多種語言。程式語言總是有其最适合的領域。當你面對需要解決的問題時,你需要找到一個最适合的語言來解決這些問題。比如,如果你需要性能,可能C/C++是首選,如果你需要跨平台,可能Java是首選,如果你要寫一個Web上的開發程式,那麼PHP,ASP,Ajax,JSP可能會是你的選擇,如果你要處理一些文本并和别的應用互動,可能Perl, Python會是最好的。是以,花一些時間去探索一下其它你并熟悉的程式語言,能讓你的眼界變寬,因為你被武裝得更好,你思考問題也就更為全面,這對于自己和項目都會有好的幫助。
3. 理性面對不同的作業系統或技術。程式員們總是有自己心目中無可比拟的技術和作業系統,有的人喜歡Ubuntu,有的人喜歡Debian,還有的人喜歡Windows,以及FreeBSD,MacOSX或Solaris等等。看看我的BLOG(http://blog.csdn.net/haoel)中的那篇《其實Unix很簡單》後的回複你就知道程式員們在維護起自己的忠愛時的那份執着了。隻有一部分優秀的程式員明白不同作業系統的優勢和長處和短處,這樣,在系統選型的時候,才能做到真正的客觀和公正,而不會讓情緒影響到自己。同樣,語言也是一樣,有太多的程式員總是喜歡糾纏于語言的對比,如:Java和Perl。哪個剛剛出道的程式員沒有争論去類似的話題呢?比如VC++和Delphi等等。争論這些東西隻能表明自己的膚淺和浮燥。優秀的程式并不會執着于這些,而是能夠理性的分析和理心地面對,進而才能客觀地做出正确的選擇。
4. 别把自己框在單一的開發環境中。 再一次,正如上面所述,每個程式員都有自己忠愛的工具和技術,有的喜歡老的(比如我就喜歡Vi編輯程式),而有的喜歡新的比如gedit或是Emacs等。有的喜歡使用像VC++一樣的調試器,而我更喜歡GDB指令行方面的調式器。等等等等。程式員在使用什麼樣的工具上的争論還少嗎?到處都是啊。使用什麼樣的工具本來無所謂,隻要你能更好更快地達到你的目的。但是有一點是優秀程式員都應該了解的——那就是應該去嘗試一下别的工作環境。沒有比較,你永遠不知道誰好誰不好,你也永遠不知道你所不知道的。
5. 使用版本管理工具管理你的代碼。千萬不要告訴我你不知道源碼的版本管理,如果你的團隊開發的源代碼并沒有版本管理系統,那麼我要告訴你,你的軟體開發還處于石器時代。趕快使用一個版式本管理工具吧。CVS 是一個看上去平淡無奇的版本工具,但它是被使用最廣的版本管理系統,Subversion 是CVS的一個更新版,其正在開始接管CVS的領地。Git 又是一個不同的版本管理工具。還有Visual SourceSafe等。使用什麼樣的版本管理工具依賴于你的團隊的大小和地理分布,你也許正在使用最有效率或最沒有效率的工具來管理你的源代碼。但一個優秀的程式員總是會使用一款源碼版本管理工具來管理自己的代碼。如果你要我推薦一個,我推薦你使用開源的Subversion。
6. 是一個優秀的團隊成員。 除非你喜歡獨奏,除非你是孤膽英雄。但我想告訴你,今天,可能沒有一個成熟的軟體是你一個人能做的到的,你可能是你團隊中最牛的大拿,但這并不意味着你就是好的團隊成員。你的能力隻有放到一個團隊中才能施展開來。你在和你的團隊成員交流中有禮貌嗎?你是否經常和他們溝通,并且大家都喜歡和你在一起讨論問題?想一想一個足球隊吧,你是這個隊中好的成員嗎?當别人看到你在場上的跑動,當别人看到你的傳球和接球和搶斷,能受到鼓舞嗎?
7. 把你的工作變成文檔。 這一條目當然包括了在代碼中寫注釋,但那還僅僅不夠,你還需要做得更多。有良好的注釋風格的代碼是一個文檔的基礎,他能夠讓你和你的團隊容易的明白你的意圖和想法。寫下文檔,并不僅僅是怕我們忘了當時的想法,而且還是一種團隊的離線交流的方法,更是一種知識傳遞的方法。記錄下你所知道的一切會是一個好的習慣。因為,我相信你不希望别人總是在你最忙的時候來打斷你問問題,或是你在休假的時候接到公司的電話來詢問你問題。而你自己如果老是守着自己的東西,其結果隻可能是讓你自己長時間地深陷在這塊東西内,而你就更本不可以去做更多的事情。包括向上的晉升。你可能以為“教會徒弟能餓死師父”,但我告訴你,你的保守會讓你失去更多更好的東西,請你相信我,我絕不是在這裡聳人聽聞。
8. 注意備份和安全。 可能你覺得這是一個“廢話”,你已明白了備份的重要性。但是,我還是要在這裡提出,丢失東西是我們人生中的一部份,你總是會丢東西,這點你永遠無法避免。比如:你的筆記本電腦被人偷了,你的硬碟損壞了,你的電腦中病毒了,你的系統被人入侵了,甚至整個大樓被燒了,等等,等等。是以,做好備份工作是非常非常重要的事情,硬碟是不可信的,是以定期的刻錄CD光牒或是錄音帶可能會是一個好的方法,網絡也是不可信的,是以小心病毒和黑客,不但使用軟體方面的安全政策,你更需要一個健全的管理制度。此外,盡量的讓你的資料放在不同的地方,并做好定期(每日,每周,每月)的備份政策。
9. 設計要足夠靈活。 可能你的需求隻會要求你實作一個死的東西,但是,你作為一個優秀的程式,你應該随時在思考這個死的東西是否可以有靈活的一面,比如把一些參數變成可以配置的,把一些公用的東西形成你的函數庫以便以後重用,是否提供插件方面的功能?你的子產品是否要以像積木一樣随意組合?如果要有修改的話,你的設計是否能夠馬上應付?當然,靈活的設計可能并不是要你去重新發明輪子,你應該盡可能是使用标準化的東西。所謂靈話的設計就是要讓讓考慮更多需求之外的東西,把需求中這一類的問題都考慮到,而不是隻處理需求中所說的那一特定的東西。比如說,需要需要的螢幕分辨率是800×600,那麼你的設計能否靈活于其他的分辨率?程式設計總是需要我們去處理不同的環境,以及未來的趨勢。我們需要用動态的眼光去思考問題,而不是刻舟求劍。也許有一天,你今天寫的程式就要移植到别的環境中去,那個時候你就能真正明白什麼是靈活的設計了。
10. 不要搬起石頭砸自己的腳。程式員總是有一種不好的習慣,那就是總是想趕快地完成自己手上的工作。但情況卻往往事已願違。越是想做得快,就越是容易出問題,越是想做得快,就越是容易遺漏問題,最終,程式改過來改過去,按下葫蘆起了瓢,最後花費的時間和精力反而更多。欲速而不達。優秀程式員的習慣是前面多花一些時間多作一些調查,試驗一下不同的解決方案,如果時間允許,一個好的習慣是,每4個小時的程式設計,需要一個小時的休息,然後又是4個小時的編碼。當然,這因人而異,但其目的就是讓你時常回頭看看,讓你想一想這樣三個問題:1)是否這麼做是對的?2)是否這麼做考慮到了所有的情況?3)是否有更好的方法?想好了再說,時常回頭看看走過的路,時常總結一下過去事,會對你有很大的幫助。
以上是十條優秀程式員的習慣或行為規範,希望其可以對你有所幫助。
本文來源于網上phil的BLOG,轉載自學長:譚秋華
[我是一朵雲]本文出處:http://blog.csdn.net/hereweare2009/archive/2009/04/05/4050444.aspx
每個技術開發人員基本都經曆過這樣的經曆,初期對開發技術的熱衷,不斷鑽研,買書,做項目、向前輩學習,基本頭3年是技術人員成長最快的,工資不斷漲,承擔的工作不斷多,職位從初級到項目經理。但做的具體開發也逐漸少了,更多的人員管理、任務配置設定、系統和資料庫設計。3、5年後大量的時間都子溝通上,忽然某一天,感覺自己不會開發了,技術跟進少了。
在國内,這種現象很普遍,這是整個市場的影響,我們的項目太多了,可是實際作出一直沿用的就少了。造成了開發人員的技術開發周期很短,很多開發人員3、5年後開始轉崗,做項目經理的、售前的、部門經理的有的是。
但這到底對個人好不好呢?
首先,如果你自己又很多的職業規劃,那最好。千萬不能随波逐流。
技術開發人員一般兩條路,技術專家或技術管理,其他的如銷售、服務就屬于換行了。
我也是這樣走過來的,期間很少有很好的規劃,我詳細大多數人也這樣,做開發做的累了,就找個不做開發的崗,可是,現在我發現技術這個東西,無論你做什麼崗位隻要沒有離開技術圈,一定要跟進學習,跟你開發不開發沒有關系,單純的技術管理崗位很少,至少團隊在百人上,這是需要很強的管理能力,但大多數公司,基本達不到這樣的規模。
是以建議如下:
1 技術堅持學,能寫就一直寫,這跟年齡無關,國外30、40歲得開發人員非常多;
2 如果做管理,一定要提升理論,MBA、項目管理該學、該考的還要,這是門票,跟年齡也無關。
3 爬的快跟做的久是兩回事,不要看到很對人很快到什麼位置了,自己喪失資訊,要看誰笑道最後,我們工作不是5年8年,而是要20多年,要對自己又信心,每個人能力差不多,就像打牌,誰都能胡。
4 學會忍耐、培養毅力,建議練長跑或培養一個長期的好習慣. 心要平和,要靜。
5 除工作之外,人生還有很多值得真心和追求的,工作在成功不代表你的人生是精彩的,成功的。