隨筆-199  評(píng)論-203  文章-11  trackbacks-0

          在這個(gè)世界上,有數(shù)百萬(wàn)的人熱衷于軟件開發(fā),他們有很多名字,如:軟件工程師(Software Engineer),程序員(Programmer),編碼人(Coder),開發(fā)人員(Developer)。經(jīng)過(guò)一段時(shí)間后,這些人能夠成為一個(gè)優(yōu)秀的編碼人員,他們非常熟悉如何用計(jì)算機(jī)語(yǔ)言來(lái)完成自己的工作。但是,如果你要成為一個(gè)優(yōu)秀的程序員,你還可以需要有幾件事你需要注意,如果你能讓下面十個(gè)條目成為你的習(xí)慣,那么你才能真正算得上是優(yōu)秀程序員。

              1. 學(xué)無(wú)止境。就算是你有了10年以上的程序員經(jīng)歷,你也得要使勁地學(xué)習(xí),因?yàn)槟阍谟?jì)算機(jī)這個(gè)充滿一創(chuàng)造力的領(lǐng)域,每天都會(huì)有很多很多的新事物出現(xiàn)。你需要跟上時(shí)代的步伐。你需要去了解新的程序語(yǔ)言,以及了解正在發(fā)展中的程序語(yǔ)言,以及一些編程框架。還需要去閱讀一些業(yè)內(nèi)的新聞,并到一些熱門的社區(qū)去參與在線的討論,這樣你才能明白和了解整個(gè)軟件開發(fā)的趨勢(shì)。在國(guó)內(nèi),一些著名的社區(qū)例如:CSDN,ITPUB,CHINAUINX等等,在國(guó)外,建議你經(jīng)常上一上digg.com去看看各種BLOG的聚合。

              2. 掌握多種語(yǔ)言。程序語(yǔ)言總是有其最適合的領(lǐng)域。當(dāng)你面對(duì)需要解決的問(wèn)題時(shí),你需要找到一個(gè)最適合的語(yǔ)言來(lái)解決這些問(wèn)題。比如,如果你需要性能,可能C/C++是首選,如果你需要跨平臺(tái),可能Java是首選,如果你要寫一個(gè)Web上的開發(fā)程序,那么PHP,ASP,Ajax,JSP可能會(huì)是你的選擇,如果你要處理一些文本并和別的應(yīng)用交互,可能Perl, Python會(huì)是最好的。所以,花一些時(shí)間去探索一下其它你并熟悉的程序語(yǔ)言,能讓你的眼界變寬,因?yàn)槟惚晃溲b得更好,你思考問(wèn)題也就更為全面,這對(duì)于自己和項(xiàng)目都會(huì)有好的幫助。

              3. 理性面對(duì)不同的操作系統(tǒng)或技術(shù)。程序員們總是有自己心目中無(wú)可比擬的技術(shù)和操作系統(tǒng),有的人喜歡Ubuntu,有的人喜歡Debian,還有的人喜歡Windows,以及FreeBSD,MacOSX或Solaris等等。只有一部分優(yōu)秀的程序員明白不同操作系統(tǒng)的優(yōu)勢(shì)和長(zhǎng)處和短處,這樣,在系統(tǒng)選型的時(shí)候,才能做到真正的客觀和公正,而不會(huì)讓情緒影響到自己。同樣,語(yǔ)言也是一樣,有太多的程序員總是喜歡糾纏于語(yǔ)言的對(duì)比,如:Java和Perl。哪個(gè)剛剛出道的程序員沒(méi)有爭(zhēng)論去類似的話題呢?比如VC++和Delphi等等。爭(zhēng)論這些東西只能表明自己的膚淺和浮燥。優(yōu)秀的程序并不會(huì)執(zhí)著于這些,而是能夠理性的分析和理心地面對(duì),從而才能客觀地做出正確的選擇。

              4. 別把自己框在單一的開發(fā)環(huán)境中。 再一次,正如上面所述,每個(gè)程序員都有自己忠愛(ài)的工具和技術(shù),有的喜歡老的(比如我就喜歡Vi編輯程序),而有的喜歡新的比如gedit或是Emacs等。有的喜歡使用像VC++一樣的調(diào)試器,而我更喜歡GDB命令行方面的調(diào)式器。等等等等。程序員在使用什么樣的工具上的爭(zhēng)論還少嗎?到處都是啊。使用什么樣的工具本來(lái)無(wú)所謂,只要你能更好更快地達(dá)到你的目的。但是有一點(diǎn)是優(yōu)秀程序員都應(yīng)該了解的——那就是應(yīng)該去嘗試一下別的工作環(huán)境。沒(méi)有比較,你永遠(yuǎn)不知道誰(shuí)好誰(shuí)不好,你也永遠(yuǎn)不知道你所不知道的。

              5. 使用版本管理工具管理你的代碼。千萬(wàn)不要告訴我你不知道源碼的版本管理,如果你的團(tuán)隊(duì)開發(fā)的源代碼并沒(méi)有版本管理系統(tǒng),那么我要告訴你,你的軟件開發(fā)還處于石器時(shí)代。趕快使用一個(gè)版式本管理工具吧。CVS 是一個(gè)看上去平淡無(wú)奇的版本工具,但它是被使用最廣的版本管理系統(tǒng),Subversion 是CVS的一個(gè)升級(jí)版,其正在開始接管CVS的領(lǐng)地。Git 又是一個(gè)不同的版本管理工具。還有Visual SourceSafe等。使用什么樣的版本管理工具依賴于你的團(tuán)隊(duì)的大小和地理分布,你也許正在使用最有效率或最沒(méi)有效率的工具來(lái)管理你的源代碼。但一個(gè)優(yōu)秀的程序員總是會(huì)使用一款源碼版本管理工具來(lái)管理自己的代碼。如果你要我推薦一個(gè),我推薦你使用開源的Subversion。

           6. 是一個(gè)優(yōu)秀的團(tuán)隊(duì)成員。 除非你喜歡獨(dú)奏,除非你是孤膽英雄。但我想告訴你,今天,可能沒(méi)有一個(gè)成熟的軟件是你一個(gè)人能做的到的,你可能是你團(tuán)隊(duì)中最牛的大拿,但這并不意味著你就是好的團(tuán)隊(duì)成員。你的能力只有放到一個(gè)團(tuán)隊(duì)中才能施展開來(lái)。你在和你的團(tuán)隊(duì)成員交流中有禮貌嗎?你是否經(jīng)常和他們溝通,并且大家都喜歡和你在一起討論問(wèn)題?想一想一個(gè)足球隊(duì)吧,你是這個(gè)隊(duì)中好的成員嗎?當(dāng)別人看到你在場(chǎng)上的跑動(dòng),當(dāng)別人看到你的傳球和接球和搶斷,能受到鼓舞嗎?

              7. 把你的工作變成文檔。 這一條目當(dāng)然包括了在代碼中寫注釋,但那還僅僅不夠,你還需要做得更多。有良好的注釋風(fēng)格的代碼是一個(gè)文檔的基礎(chǔ),他能夠讓你和你的團(tuán)隊(duì)容易的明白你的意圖和想法。寫下文檔,并不僅僅是怕我們忘了當(dāng)時(shí)的想法,而且還是一種團(tuán)隊(duì)的離線交流的方法,更是一種知識(shí)傳遞的方法。記錄下你所知道的一切會(huì)是一個(gè)好的習(xí)慣。因?yàn)椋蚁嘈拍悴幌M麆e人總是在你最忙的時(shí)候來(lái)打斷你問(wèn)問(wèn)題,或是你在休假的時(shí)候接到公司的電話來(lái)詢問(wèn)你問(wèn)題。而你自己如果老是守著自己的東西,其結(jié)果只可能是讓你自己長(zhǎng)時(shí)間地深陷在這塊東西內(nèi),而你就更本不可以去做更多的事情。包括向上的晉升。你可能以為“教會(huì)徒弟能餓死師父”,但我告訴你,你的保守會(huì)讓你失去更多更好的東西,請(qǐng)你相信我,我絕不是在這里聳人聽聞。

              8. 注意備份和安全。 可能你覺(jué)得這是一個(gè)“廢話”,你已明白了備份的重要性。但是,我還是要在這里提出,丟失東西是我們?nèi)松械囊徊糠荩憧偸菚?huì)丟東西,這點(diǎn)你永遠(yuǎn)無(wú)法避免。比如:你的筆記本電腦被人偷了,你的硬盤損壞了,你的電腦中病毒了,你的系統(tǒng)被人入侵了,甚至整個(gè)大樓被燒了,等等,等等。所以,做好備份工作是非常非常重要的事情,硬盤是不可信的,所以定期的刻錄光盤或是磁帶可能會(huì)是一個(gè)好的方法,網(wǎng)絡(luò)也是不可信的,所以小心病毒和黑客,不但使用軟件方面的安全策略,你更需要一個(gè)健全的管理制度。此外,盡量的讓你的數(shù)據(jù)放在不同的地方,并做好定期(每日,每周,每月)的備份策略。

              9. 設(shè)計(jì)要足夠靈活。 可能你的需求只會(huì)要求你實(shí)現(xiàn)一個(gè)死的東西,但是,你作為一個(gè)優(yōu)秀的程序,你應(yīng)該隨時(shí)在思考這個(gè)死的東西是否可以有靈活的一面,比如把一些參數(shù)變成可以配置的,把一些公用的東西形成你的函數(shù)庫(kù)以便以后重用,是否提供插件方面的功能?你的模塊是否要以像積木一樣隨意組合?如果要有修改的話,你的設(shè)計(jì)是否能夠馬上應(yīng)付?當(dāng)然,靈活的設(shè)計(jì)可能并不是要你去重新發(fā)明輪子,你應(yīng)該盡可能是使用標(biāo)準(zhǔn)化的東西。所謂靈話的設(shè)計(jì)就是要讓讓考慮更多需求之外的東西,把需求中這一類的問(wèn)題都考慮到,而不是只處理需求中所說(shuō)的那一特定的東西。比如說(shuō),需要需要的屏幕分辨率是800×600,那么你的設(shè)計(jì)能否靈活于其他的分辨率?程序設(shè)計(jì)總是需要我們?nèi)ヌ幚聿煌沫h(huán)境,以及未來(lái)的趨勢(shì)。我們需要用動(dòng)態(tài)的眼光去思考問(wèn)題,而不是刻舟求劍。也許有一天,你今天寫的程序就要移植到別的環(huán)境中去,那個(gè)時(shí)候你就能真正明白什么是靈活的設(shè)計(jì)了。

              10. 不要搬起石頭砸自己的腳。程序員總是有一種不好的習(xí)慣,那就是總是想趕快地完成自己手上的工作。但情況卻往往事已愿違。越是想做得快,就越是容易出問(wèn)題,越是想做得快,就越是容易遺漏問(wèn)題,最終,程序改過(guò)來(lái)改過(guò)去,按下葫蘆起了瓢,最后花費(fèi)的時(shí)間和精力反而更多。欲速而不達(dá)。優(yōu)秀程序員的習(xí)慣是前面多花一些時(shí)間多作一些調(diào)查,試驗(yàn)一下不網(wǎng)的解決方案,如果時(shí)間允許,一個(gè)好的習(xí)慣是,每4個(gè)小時(shí)的編程,需要一個(gè)小時(shí)的休息,然后又是4個(gè)小時(shí)的編碼。當(dāng)然,這因人而異,但其目的就是讓你時(shí)常回頭看看,讓你想一想這樣三個(gè)問(wèn)題:1)是否這么做是對(duì)的?2)是否這么做考慮到了所有的情況?3)是否有更好的方法?想好了再說(shuō),時(shí)常回頭看看走過(guò)的路,時(shí)常總結(jié)一下過(guò)去事,會(huì)對(duì)你有很大的幫助。

              以上是十條優(yōu)秀程序員的習(xí)慣或行為規(guī)范,希望其可以對(duì)你有所幫助。

              本文來(lái)源于網(wǎng)上phil的BLOG,但我在寫作過(guò)程中使用了自己的語(yǔ)言和方法重新描述了一下這十條,所以,我希望你在轉(zhuǎn)載的時(shí)候能夠注明作者和出處以表示對(duì)我的尊重。謝謝!
          文章:來(lái)源

          posted on 2009-04-30 17:30 Werther 閱讀(246) 評(píng)論(0)  編輯  收藏 所屬分類: 18.Other

          I'm reading...

          Java 60

          Head  First SQL

          寶貝連接


          If you need these books,pls send me emails.
          Email:kunpeng.niu@163.com
          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          留言簿(10)

          隨筆分類(178)

          隨筆檔案(208)

          文章檔案(1)

          新聞檔案(6)

          相冊(cè)

          1.Java Official Website

          2.Java Study Website

          3.Java Technic Website

          4.Java Video Website

          5.Database Website

          6.Bookshop Website

          7.English Website

          8.Friends Link

          9.Other Web

          積分與排名

          • 積分 - 685397
          • 排名 - 67

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 将乐县| 崇明县| 桃源县| 迁安市| 微博| 阳朔县| 姜堰市| 财经| 肇东市| 津市市| 普定县| 抚宁县| 岳普湖县| 晴隆县| 阿拉善盟| 宿州市| 弋阳县| 禹城市| 瑞安市| 博客| 新津县| 诸城市| 车致| 从化市| 尚义县| 松潘县| 清流县| 襄汾县| 来宾市| 仪征市| 师宗县| 岫岩| 舞阳县| 高台县| 武陟县| 西畴县| 沾益县| 资阳市| 边坝县| 桐梓县| 渭南市|