程序員的內功築基計劃

 

 

  近來在爲公司封裝一個IOS平臺庫,很多東西都是現學現賣。事實上,對於框架的使用方面,我從來都不放在心上,總感覺就那麼一堆API放在那裏,我們要做的只不過是看着文檔說明,實現自己需要的功能罷了。在做到網絡傳輸方面的模塊時(尤其是斷點續傳),我便清醒的認識到,網絡這塊素來被稱爲一塊深不可測的泥潭,切不能就這樣實現功能就算完事,真的需要靜下心去鑽個透了。。其實我這兩個月都很懶散,每天上班做完該做的任務後,餘下的時間或者到各大論壇去泡水,或者打開微博看看有什麼新鮮的話題,甚至有時候想盡辦法打發時間直到下班。回到家裏的生活更是堪稱安逸,散散步,看看電影,網上聊聊天就睡覺,久而久之,而今一旦想起那些曾經的理想和抱負一種罪惡感便油然而生——我要做的事情不僅僅是這麼簡單!於是突然想給自己一個內功築基計劃。。

 

  說到內功築基,這都是武俠小說中的說法,一旦一個資質好的武學之人練習內功百日築基便可百病不侵,各種武功絕學一練就會。而對於數程序員的我們來說,所謂的內功就是:數據結構,算法,OS原理,C/C++,TCP/IP,組成原理,設計思想(我不想稱其爲設計模式)和重構能力。相較於各種流行新出的技術而言,這些技術都有一個顯著特徵:幾乎一成不變,不管高層框架如何的變,平臺如何轉換,只要這些方面底子好,餘下的便自然是看起來對於一堆API的調用了。在這裏我把C/C++也列進去了,只是覺得一個真正對C/C++掌握的好的程序員來說,學其它高級語言有着一種一覽衆山小的感覺(至少對我自己來說是這樣的)。另外縱觀各位業界內大牛的觀點,貌似也印證了這種原理(看 這裏 後面內容提到各位好的程序員當讀的書籍)。

 

  我寫博客一直有一種在別人看來多少有些怪異的習慣:那便是從來不會在博客裏面記錄一種開發技術該怎樣去實現一些特定的功能,如同(這裏)的這位大牛一樣,反而會去更多的琢磨一種內在思想或原理然後發表在自己的博客裏,從而表觀上看起來全是些基礎的語法糖或算法果之類的東西,或許這也是我緣何還不是位大牛的緣由吧^_^。事實上從我自己本身來說,很長時間以來都是重道而不重術,我會花很多時間去研究一些原理性的東西,而至於一些框架的使用我情願等到工作中用到的時候再去查文檔來實現。。而至於我把設計思想而非設計模式列到內功裏面,因爲自己有時候會覺得設計模式只是一些侷限思想的東西,對於新手來說肯定如此,而對於有着相當豐富經驗的人來說看懂它並真正領悟它不會是很爲難的事情。。對於設計本身而言,我很贊同一種看法:一個寫了多年代碼而沒研讀過設計模式的人,其實他的代碼裏很多內容都無形中符合了某種模式,只是GOF這些人把它總結出來成看起來形似定律性的東西反倒把很多新人都侷限在裏面了,稱得上是適得其反了。其中的各種緣由,唯有以不嚴而喻之。

 

  至於自己的內功築基計劃,目前來說想研讀下TCP/IP捲一捲二(重在卷二),這可是塊很深的泥潭,不知道會花多長時間才能搞定。另外讓我總是感到心虛的便是算法這塊了,以前總感覺掌握了各種基本的數據結構在項目中夠用就行了,或許也該是時候拿起一本代碼大全來讀讀了。至於框架的使用而言,也該儘可能塊的掌握IOS客戶端的開發技能了(即便只是單純的SDK調用)。

 

  最後想說說程序員的高效狀態:很早以前我便將這種狀態視爲一種入魔狀態而非入靜狀態,好的程序員都有一種特質:在腦子裏裝問題的時候不喜歡任何人打擾,哪怕是非得離開自己工作的地方而出去溜達一圈,腦子裏一直裝的是之前那個問題,此時人實際是被問題牽住的,短期內不解決問題絕對會被它一直牽絆住而無心再做其它事情。其實在佛家來看:入境正好相反,這是種主動狀態,靜觀其變而自身不做任何動作以達通曉一切於自身的境界。。 跑題嚴重了,種種外話都是源自於今天在CNBLOGS看到的一篇文章 《入靜與入世》 所感。。

 

閉關,修行!

 

 

 

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