中國的信息技術發展迅速,由它所帶來的浪潮已經滲入到了人們生活的每一個角落,而程序員們成為了這場信息化浪潮的見證者之一,更是其中的主要參與者,這是時代賦予每個程序員的機會和責任。
信息技術的更新速度是驚人的,程序員的職業生涯則是一個要求不斷學習的過程,如何才能成為一名優秀的程序員,一名優秀的程序員需要掌握哪些技能呢?
1. 編程語言能力
不用多說,作為合格的計算機程序員,精通一門語言是必須的。這種精通,不是說看了一本編程寶典,抄了幾個程序就能說精通的,要靠長時間的積累。
2.編碼能力
我曾經看很多程序員寫的代碼,在同一個jsp或者java源文件裡,出現了三種以上的對方法的命名方式,有下劃線間隔的,有全大寫的,有拼音首字母的。就像一個菜市場,雜亂無比,估計10天后,他自己都無法看的懂。遵守編碼規範,是一個程序員最基本的要求,可悲的是,很多程序員根本沒有意識到這個問題的嚴重性。另外一個就是註釋,要注意不是為了註釋而註釋。對類,以說明職責為主;對方法,以說明意圖為主;對方法體,以說明實現思路為主。對於大段大段的代碼,要分段,使用空行隔開,並使用行內註釋進行說明
3.快速學習能力
這裡不是說一定要去快速去學習各種各樣的新技術,而是說當有需要時,能夠快速的學習。很多人開始學新的技術和技能時,一開始就一頭扎進去寫樣例、寫Demo、看源碼,我認為這不是好的方法,而且比較耗費時間,收效也不明顯。
4.快速學習能力
我們在學習新的技術的時候,都應該是按照這樣的步驟去了解的:
1)這個技術能解決什麼問題(why)
2)比較適合在哪些場景應用(where + when)
3)這個技術跟我已經掌握的哪個知識或技能類似,有什麼差別、有什麼特點、 有什麼優點和缺點(what)
4)瞭解前面的問題後,我才會開始去嘗試寫寫Demo,或者更進一步去應用(How to use)
5)覺得有興趣或者其實現很牛逼的情況下,我就去研究一下原理機制,看看源碼等 (How it implements)
![成為一名優秀的程序猿,需要掌握的幾點技能!](http://p2.ttnews.xyz/loading.gif)
5.良好的理解能力
程序員需要將產品人員或者用戶用自然語言表述的需求翻譯成程序語言。自然語言有一個特點就是通俗但不嚴謹,而程序語言必須是非常嚴謹的。如果對產品人員或者用戶提出的需求沒有很好的理解,即使程序語言寫的再漂亮,技巧再高,最後做出來也是一個不符合要求的產品。
6.持續不斷的學習
軟件開發領域設計的知識和技能太多了。從廣度上來說,有操作系統、數據庫、編程語言、網絡、設計等,編程語言又有幾十種;從深度上來說,操作系統、數據庫、編程語言等都是可以不斷深入去學習的。無論你是從事對技能廣度要求更高的業務開發,還是從事對技能深度要求更高開發專項系統,都需要不斷的學習,這樣才能不斷的提升自己的能力。
7.文檔能力
也許有人會質疑,程序員跟寫文檔有什麼關係。大家開源軟件也用過不少,看看Spring,hibernate,Struts等最流行的開源軟件的文檔就知道,他麼的tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。其實寫代碼也相當於寫文檔,只不過用的是編程語言。同樣,寫文檔,用自然語言,也相當於寫程序,簡單明瞭,清晰易懂,這樣的“程序”誰看誰舒服。同樣,對於想進階到設計師或者需求分析員角色的程序員,文檔能力更是非常重要。
![成為一名優秀的程序猿,需要掌握的幾點技能!](http://p2.ttnews.xyz/loading.gif)
8.勇於分享
如果單純從個人完成工作的能力來看,可能確實也有很多程序員不愛分享但確實很厲害。但我認為真正優秀的程序員一定是除了自己優秀外,還能讓其他人也變得優秀,或者能夠貢獻優秀的開源項目以降低別人的重複工作。分享的途徑有很多種,可以給公司人員做培訓,可以寫博客,可以貢獻開源項目等。
結束語
好了,今天的知識就分享到這裡,歡迎關注“懷念感覺12”,私信關鍵詞:學習資料,獲取更多學習資源,如果文章對你有有幫助,請收藏關注,在今後與你分享更多學習c/c++的文章。同時歡迎在下面評論區留言如何學習c/c++。
閱讀更多 懷念感覺12 的文章