精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
程序員最重要的能力是什么?

作為一個將來注定要在it行業混的菜鳥,想請各位大牛能一解心中的疑惑:在程序員這條路上發展是否要精通多種語言?還是專一學一種?寫代碼能力要到達什么程度才算得上優秀?一個優秀程序員(指工資比一般程序員高的那種)最重要的能力是什么?寫代碼的最高境界是什么樣的?

1. 編程語言能力

不用多說,作為合格的程序員,精通一門語言是必須的。這種精通,不是說看了一本《24小時精通XXX》,抄了幾個程序就能說精通的,要靠長時間的積累和浸淫。


2.編碼能力

我曾經看多很多程序員寫的代碼,在同一個jsp或者java源文件里,出現了三種以上的對方法的命名方式,有下劃線間隔的,有全大寫的,有拼音首 字母的。就像一個菜市場,雜亂無比,估計10天后,他自己都無法看的懂。遵守編碼規范,是一個程序員最基本的要求,可悲的是,很多程序員根本沒有意識到這 個問題的嚴重性。隨意堆砌網上搜來的代碼,根本不管可讀性和可維護性,只要能實現功能就行了,心想做完這個項目,就拍拍屁股走人了,缺少最基本的職責素 養。我經常把代碼必須成程序員的孩子,你就是是孩子他爹,孩子他媽,是有感情的。對你自己的孩子,你能不仔細呵護嗎?你是稱職的父母嗎?

另外一個就是注釋,要注意不是為了注釋而注釋。對類,以說明職責為主;對方法,以說明意圖為主;對方法體,以說明實現思路為主。對于大段大段的代碼,要分段,使用空行隔開,并使用行內注釋進行說明。

思維的條理性,寫代碼之前,先簡單計劃一下,用自然語言把流程寫下來,用于整理實現思路。不要看了需求或設計之后,馬上就敲代碼了,敲完代碼馬上 就debug?;c時間思考,敲代碼只是最后一個很簡單的工作,不要把自己變成一個代碼打字員,編寫邊想,寫了刪,刪了寫。安安靜靜把實現過程想清楚,在 腦子里先實現一遍。再去敲代碼,水到渠成。


3.面向對象思維能力

如今,多數編程語言都是面向對象的編程語言。而這些面向對象的編程語言的共同的精髓就是面向對象的思想。掌握這些比面向對象語言本身更重要,比如 對繼承,多態,重載的理解。對面向對象基本原則的理解,比如開閉原則,接口隔離原則,單一職責原則等。在此基礎上,應該掌握常用的設計模式,比如工廠模 式,策略模式,觀察者模式,模板方法模式,命令模式等等。


4.利用工具能力

工欲善其事,必先利其器。有了趁手的家伙,工作效率可以提升數倍。你編程序,有沒有選擇一個很好的IDE,以前聽說編程高手都用記事本寫程序,我 覺得那是一種自虐。就像以前看到的一篇文章,說一幫戶外旅行愛好者,出去旅游,背了重重的旅行包,里面裝著什么壓縮餅干等快速食品。他們寧可就著礦泉水啃 壓縮餅干,也不肯去1里路都不到的快餐店,農家菜館吃飯。工具是為目的服務的,好用,提高效率就行,形式無所謂。

另外一個常用的工具就是日記本,好聽點可以稱為知識管理工具,我用的是myBase,感覺非常好用,在之前,我的所有的片段內容都是記錄的單獨的文本文件里的,非常不好找,管理也很混亂。

經常上互聯網,看到好多好的資料想保存下來,作為日后查看之用.一開始,我用的是firefox自帶的書簽,但是自己分類太累,多了之后不便于查找,很麻煩。后來用了得樂書簽(del.icio.us)的firefox插件,非常方便,現在成為了我必備的一個工具。

還有一個最重要的工具就是搜索引擎了,我裝了google for firefox插件,感覺不錯,還有英文翻譯功能。按照我同事的說法,內事用baidu,外事用google。很多技術資料都是英文的,用google搜 索效率高一些。搜索引擎用好了,就等于打開了一扇通向知識寶庫的門,使用搜索引擎,關鍵字選擇很重要。

經常去瀏覽大牛的blog,逐個網站訪問很麻煩,去看了又可能沒有更新,可以借助于RSS訂閱工具,我是用iGoogle桌面工具,每天早上花半個小時掃一下,大牛的最新文章盡收眼底了。

5. 英語能力

新的技術資料都是英文的,英語國家的IT技術走在我們前面至少10年(這是我自己估計的數字,可能正在縮?。?。就連印度,一個連基礎設施建設都不 太完善的國家,因為其英語基礎較好,其在軟件外包領域的發展也非常迅猛,遠遠超過了我們。學英語,首先是有信心,其次就是花時間。多閱讀英文資料,使用金 山詞霸,google的firefox插件等工具配合,貴在堅持。

6.學習能力

在IT也混飯吃不容易,整個環境進化的太快,你不學習,就等于落后了。學習要有針對性,別今天學ruby,明天學python,后天php的。首 先要認清自己的目標,自己短期目標是什么,1年后,3年后,5年后的目標是什么。結合這些目標,確定自己的學習計劃,人的精力畢竟是有限的。當然,多掌握 幾門編程語言也是好的,可以擴充自己的知識面,重要的是為自己的目標服務。

要想系統的學習一門技術或工具,看書是最好的方法??赐旰?,然后上網找相關資料,進行深入學習。學習要抓緊一切可以利用的時間,比如電腦啟動要花1分多鐘,旁邊放一本書,可以看上幾頁了。公交車上,地鐵上也可以看。

當然,不能只學習技術,要經常練習自己的軟技能,比如溝通能力,表達能力。你可以把自己學到的東西,解釋給自己的同事聽,既加深了理解,又增進了同事之間的交流。學習的最高境界就是你能夠把學到的東西解釋給別人聽,這才說明你理解了。在學習心理學上,稱之為構成主義。

我學一樣東西,總是先上網了解有沒有相關書籍,如果想學,就買一本或者去圖書館找相關的書來讀。我買的書,家里快放不下了(到目前位置,我買了1 萬多塊的書)。我多半是把目錄看完,了解這本書講解的主要內容,然后需要的時候,我就可以立即補充它進入到我的知識結構。每個人可能都有自己的學習方法, 意識到學習的重要,并能夠根據需要補充自己的知識,這種能力更重要。


7.創造能力

普遍認為,東方人模仿能力很強,但創造能力差。我見過很多這樣的程序員,經常說,“這個只能這么解決了,我想不出有什么別的方法?!笨赡芩径?沒想過別的方法,或者懶得去想。對任何一個問題,找出兩種以上的解決辦法都是非常容易的,簡單的google一下,可能就是數十種。悲哀的是,有些程序員 經常止步于自己構建的狹小領地之內。對待客戶也是這種態度,不是積極的幫助客戶解決問題,而是推脫這只是唯一解決方案。

打破這一思維定勢的首先的一個辦法就是在面臨一個問題時,首先想到的是“沒有不可能”,或是“一切皆有可能”,前面那個是阿迪的廣告語,后面是李 寧的。只有這樣去想,才能尋找解決問題的別的出路,即使最后我們試了很多種辦法,還是只有著一種解決方案,但我們在這種尋找解決方案的過程中,常常會產生 很多好的想法,這樣才會使我們真正深刻思考一個問題。建議大家看一看《水平思考》這本書,他提供了一些進行創造性思考的方法和工具。

但我認為,堅持認為存在另一種解決方案的信念是第一位的,方法和工具都是其次。


8.文檔能力

也許有人會質疑,程序員跟寫文檔有什么關系。大家開源軟件也用過不少,看看Spring,hibernate,Struts等最流行的開源軟件的 文檔 就知道,他么的tutorial,他們的getstarted,他們的reference文檔寫的多么的易懂。其實寫代碼也相當于寫文檔,只不過用的 是編程語言。同樣,寫文檔,用自然語言,也相當于寫程序,簡單明了,清晰易懂,這樣的“程序”誰看誰舒服。同樣,對于想進階到設計師或者需求分析員角色的 程序員,文檔能力更是非常重要。

word是一個最實用的工具,很多程序員,多級編號都不會用,索引目錄也不知道如何生成,更別靈活應用樣式了。很多排版都是所謂的dirty work。垃圾樣式一大堆。其實,靜下心來,稍微學習一下,就能寫出一篇格式漂亮的文檔。

9.抽象能力

抽象能力是認識事物從現象到本質的能力。如果你只是停留在“見山是山,見水是水”的層次,客戶說什么,你就做什么,設計怎么做,你就怎么實現,從 來不過問為什么,也不去想他是滿足了用戶哪些方面的需求呢。這樣可能只解決了表面的問題,可能會引起返工。認識到本質,才能讓你的程序具備更大的靈活性和 可擴展性。在做企業應用軟件開發中,抽象能力體現為對問題域的理解能力,對領域模型的抽象。合理的抽象也是代碼重構的前提,每一次重構,都是向更好的抽象 邁進了一步。

10.代碼評審能力

代碼評審和單元測試是保證代碼質量的兩種常用手段之一。代碼評審能力,說明了你的審美標準,知道什么是好的,什么是不好的,什么是優雅的代碼,什么是糟糕的代碼,你才能讓自己做的更好。


11.單元測試能力

沒有單元測試的代碼,只能說是半成品。因為沒有什么能證明你的代碼是可以運行的。測試驅動開發是一個非常好的敏捷過程的最佳實踐。單元測試還可以 作為回歸測試,在修改代碼時,起到警戒線標志的作用。是否具有單元測試的意識是區分程序員是否合格的重要標準。寫不寫單元測試是區分平庸程序員和優秀程序 員的重要標桿。

12.DRY

DRY是一種原則,就是Don't Repeat Yourself.出自《程序員修煉之道-從小工到專家》。這條原則可以用到很多地方,比如你經常要編譯,打包,部署應用程序,供集成測試用。每次你都在 重復你自己,寫一個自動化腳本(比如用ant,批處理命令)來將這些工作自動化,以提高效率。

還有一個就是我們經常在不同的地方切換IP,如果每次手工做,也非常浪費時間,寫一個bat命令可以解決,找一個小工具也可以解決。

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
這款“程序員人工智能助手”,會成為下一個 GitHub 嗎?
總結了一些值得堅持的編程習慣
一個軟件有幾千萬甚至上億字節,程序員是怎么記住的?
好的編程習慣有多么重要
程序員自我學習自我培訓指南
程序員Python編程必備5大工具,你用過幾個?
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 扶绥县| 莱阳市| 文山县| 庆安县| 塘沽区| 金塔县| 安西县| 东丰县| 巫山县| 台安县| 武汉市| 博湖县| 肇源县| 揭阳市| 台北县| 赣榆县| 郯城县| 东海县| 长乐市| 南川市| 周至县| 黄大仙区| 全椒县| 浠水县| 保靖县| 六枝特区| 陆川县| 雅江县| 镇巴县| 通渭县| 乌鲁木齐县| 太谷县| 辽中县| 辽源市| 保定市| 多伦县| 汉沽区| 三原县| 贵定县| 北流市| 扎兰屯市|