程序員的職業素養——成長之路,如何成長?

程序員的職業素養

  • 承擔責任、不行損害之事、不破壞軟件功能、職業道德
    做我一個負責人的程序員,我們需要對程序負責,也是相應的對自己負責。編寫程序時,認真謹慎;測試代碼時,小心細緻;自己的部分出現問題時,勇於承擔責任,不推卸,不隱瞞(代碼之道,版本控制,想來隱瞞也是無處說起),此爲承擔責任,對代碼負責。有可能你是在做外包,也有可能你在一家小公司,鬱郁不得志,憤恨上天不公,人生之不平等,但是細細想想,你是否做到了對代碼負責?不因外包,公司大小,個人喜愛與否而對待代碼不認真,不謹慎;或是混喫等死,不學習,不用功,從不從自身找原因?如何對自己負責?程序員職業素養——對代碼負責,其實也是對自己負責!代碼因你而完整,而獲得生命。你因代碼而成長,而更強。程序員,本就該與代碼同在。
  • 確信代碼可以正常運行(一定要測試並保證測試通過) 大量單元化測試(自動化)
    爲何說一定要測試並保證測試通過?(其實測試不通過代碼貌似也沒意義啦~哈哈哈哈) 言歸正傳,從前都一樣,認爲代碼在頁面上功能跑幾遍,通過了便沒問題了。嗯,確實如此。(神經病啊~)但是,肯定不止如此,懂代碼肯定懂計算機,所以大家其實都懂計算機,那麼肯定都知道機箱與機箱之間也是不同的,有的更是天壤之別。差走線
    再看下圖
    好走線
    並不是爲了跑題去說機箱走線,只是用一個明顯的例子來爲大家展示糟糕的代碼與完好的代碼之間的區別。雖然代碼就像走線一樣,呆在機箱裏,能用不就行了。
    這樣就又說回第一點了,對代碼負責,對自己負責。什麼樣的代碼,跑起來都是好代碼。但是有的代碼能活100歲,還能不斷拓展新能力,而你的只能活到17歲半,成年都不行,更不要提新能力。
    所以其實測試很重要,這個測試並不是前文所說的功能測試,而是單元測試,對每一個功能進行系統的完整的測試,(並非說跑功能便會出現功能錯誤的情況)而是通過單元測試,對每一個功能做到系統的拆分和了解,那麼對於代碼的完整及架構設計能起到無法想象的作用。好比機箱內的線,你對每一條線都進行了系統的測試,那麼你自然瞭解它應該放在哪裏,如何用最便捷,更好看,更易於以後的二次,三次開發及維護。
    對於單元測試相關,其實我十分推崇TDD測試驅動開發(Test-Driven Development),上述也是借鑑TDD的思想,所以如果你想更進一步,其實我推薦你去看看,甚至只是瞭解(《程序員的職業素養》中其實也有不斷的提到TDD及它的理念)。或許你並不會真用TDD,但是我想它的理念一定會讓你有所得。
  • 瞭解學習相關知識

    引自《程序員的職業素養》
    這裏寫圖片描述
    ①.GOF——《設計模式》
    ②.S.O.L.I.D是面向對象設計和編程(OOD&OOP)中幾個重要編碼原則(Programming Priciple)的首字母縮寫。
    | 簡寫 |全稱 | 翻譯 |
    | ————- |:————:| —– |
    | SRP | The Single Responsibility Principle | 單一責任原則 |
    | OCP | The Open Closed Principle | 開放封閉原則 |
    | LSP | The Liskov Substitution Principle | 里氏替換原則 |
    | ISP | The Interface Segregation Principle | 接口分離原則 |
    | DIP | The Dependency Inversion Principle | 依賴倒置原則 |
    ③.Scrum 迭代式增量軟件開發過程,通常用於敏捷軟件開發

  • 堅持學習

    摘自《程序員的職業素養》
    讀書,看相關文章,關注博客和微博,參加技術大會,訪問用戶羣,多參與讀書與學習小組。不懂就學,不要畏難。如果你是.NET程序員,就去學學Java;如果你是Java程序員,就去學學Ruby;如果你是C語言程序員,就去學學Lisp;如果你真想練練腦子,就去學學Prolog和Forth吧!

    讀書,爲什麼放在開頭第一個?因爲讀書是最重要的一件事情,書本上的東西都是死的,不如視頻生動,不如提問解答來的更細緻,但是書籍帶來的卻是視頻和提問所無法能及的。視頻和提問當然不能說不好,但是卻不能讓人記憶深刻,一本筆記,終究只是筆記,缺少相關的東西(情景,實例,甚至問題)書上寫寫畫畫,寫的畫的都是自己的,時而回頭溫習,再無不通之處。書更是讓你學會思考,學會自己去尋求答案,而不是聽別人說出來的(說的不錯,但是肯定沒自己得來的深刻)。

    看相關文章,關注博客和微博。其實現在來說,應該還要加上一點:創建一個屬於自己的GitHub賬號,那裏的資源你無法想象。書籍帶來的是學習能力以及紮實的基礎。文章,博客,微博,源碼等等帶來的就是讓你避開實際編程中無數個大大小小的坑,並交給你老一輩程序員的老練經驗。

    訪問用戶羣。大大小小的程序羣我加過的也不少,所以這裏有幾點就必須要說下,

    • 如果你想加入一個優質的程序羣,那麼先看下羣主或者管理是否有名字是 XX培訓機構—X老師這樣的暱稱,有的話請記住千萬別點(培訓機構拉皮條的).
    • 當你加入一個好的羣之後,應該怎樣呢?該閒聊閒聊,但記住永遠不要把問題解答的希望寄託在羣裏,不是說羣不專業,而是首先羣裏真正願意回答問題的人很少(一部分爲了學習,大部分水裏潛着等着問問題),有也不一定能夠第一時間回答你。這裏就要說另外一點:
      善於使用搜索工具,就說百度,發現很多新手其實並不是真的會用百度,這個其實是個很重要的學問,會大大影響到你解決問題的效率。
      這裏有一篇對百度應用的專題博文(並不是我寫的)

      http://blog.csdn.net/xiaohai798/article/details/47660173

      大家可以一看,個人感覺很不錯
      所以看到這裏,大家會很疑惑,既然如此,爲什麼還要加羣呢?每天看看博客文章什麼的不是美滋滋。那麼重點來了,加羣不是爲了提問,而是爲了解決他人的提問。每天看看博客文章確實沒錯,也能學到很多東西,但是博客太多太多,質量也是參差不齊。但是羣裏面的提問不同,都是碰到的實際開發中遇到的問題,或者哪裏發現的奇怪問題,當你看到問題,並開始着手去解決它(或許你並不會,也是第一次遇到這個問題,但是如上所說其實很多人不會用百度,那麼只要你真的用心去百度找相關,百分之九十九的問題都是可以解決的,畢竟這麼多年真能有程序上的問題再被第一次碰到也是很神奇了。),那麼我想你肯定能學到東西,嗯,很多很多東西。

    • 程序員,最好是不要侷限於一種語言,其實這麼多語言,很多東西都是想通的,當你學會了Java你再去學習其他語言,肯定不會是十分艱難的事情,但是你學習的過程中感受肯定是不同並且是有所收穫的。(當然,前提是你的老本行已經可以撐着你去做其他很多事情)。
  • 重複練習
    以一個簡單的算法main做熱身練習(ex:排序、素數篩查)。(我去這有什麼難的喲,50道經典Java題。我一道不落,全都會做。)嗯,那你真的厲害。其實都是些簡單的基礎題目,所做也只是爲了練手而已。並不是說爲了湊代碼量什麼的,而是真的讓自己時時刻刻保持一種在編程中的感覺。讓自己習慣於編程,甚至讓編程成爲一種生理反應。

通讀《程序員的職業素養》有以上所想所感,如對你有用,萬分榮幸;如有何不當之處,歡迎交流指正。
郵箱:[email protected]
——Fance Tsui

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章