什麼是編程的基本功?

做者:caoglish
原文連接:http://t.cn/RKcyGX3
來源:知乎算法

查詢和閱讀文檔能力

緣由:你使用編程來解決問題的時候,基本上最終的東西是代碼,可是編程的知識太廣,總有你不會的,總有你不瞭解的,總有你記不住的。這個時候,有文檔做爲資料參考,就能夠快速把別人的經驗知識轉化爲本身的生產力和本身的代碼。編程

查詢閱讀文檔是能夠分紅不少部分。主要是如下幾個部分:微信

  • 教程文檔數據結構

  • 技術參考文檔函數式編程

  • 第一手的英語文檔函數

  • 代碼例子工具

教程文檔,是手把手教會你如何使用這個編程技術的重要文檔之一,是入門技術的重要教學資料,若是這個都不會看,那麼就已經喪失了自學編程技術的能力了。學習

技術參考文檔,通常來講 API 的技術文檔咱們說的比較多,不少 API 都沒有教程給出,要靠本身查詢文檔,再根據需求特色來使用 API 。這個相對教程文檔更加枯燥。並且這個水平我認爲還分幾種狀況(固然有能力本身編寫一個,不靠文檔的狀況不在這裏的考慮範圍以內):優化

  • 知道哪一個 API 符合需求ui

  • 知道哪一個 API 接近本身需求,但須要進行數據轉換

  • 不知道有沒有 API 符合本身需求的,但能找到一個API 接近本身需求的

  • 不知道有沒有 API 符合本身需求的,也不知道怎麼找的

英語能力

這裏有另一個基本功,就是英語能力。若是英語能力好,再結合英語版的教程文檔和英語版技術參考文檔,那麼這項基本功會對你的編程水平提供很大的幫助。

讀第一手英語資料也是很重要的。我最願意讀的文檔資料是 PHP 的官網和 jQuery 的官網。PHP 的官網的文檔很是有意思,不但本身寫詳細的 API 說明,有例子,底下還有不少用戶在提供不少相關的信息和使用 API 的技巧。英語資料的好處是細緻,理解簡單,並且更新快,甚至你能夠和寫文檔的人進行交流。

數學

緣由:編程處處都是數學的表現形式。就算你不懂數學,但當你編碼了,就是在作數學作的事情。
電腦其實就是數學的現實產物,方方面面都有着數學的元素在裏面,有人說了,數學是藍瓶的最大值,這點我很認同。正是前人的努力,咱們如今的編程纔會如此的容易。但不表明數學如今不重要,編程就不要數學了。在編程中,到處能夠看到數學的東西在裏面。若是有了數學基礎,這些東西理解起來就會更加容易。先說說,編程基礎中的數學:

  • 函數 / 方法,數學就有函數概念 y=f(x) ,f 就是函數,x 就是輸入,y 就是輸出

  • 邏輯布爾值,if 和 while 都須要有必定的邏輯斷定,而數學的邏輯學在這裏就頗有用了

  • 數學運算,這個和數學就同樣了

  • 遞歸,也有一套本身的數學法則

而數學應用的地方就更多了:

  • 2d / 3d 矢量製圖繪畫

  • 加密解密算法

  • 視頻圖片壓縮算法

  • 文件壓縮算法

  • 物理引擎

那麼學好數學有什麼好處呢:

  • 理解
    好比如今流行的函數式編程,就是數學中的函數積分的概念,若是數學學好的話,函數式裏面的調用,運算,組合等概念就會很是容易理解了。

  • 轉化
    把一些算法轉化成代碼,像 RSA 的數學加密解密算法,都是先有理論,而後有人用代碼實現的。把數學算法看懂,轉化成能夠應用的代碼或是 API 。

  • 優化
    一些算法其實用數學公式就能夠完成,而不須要邏輯流程。最近的有一個例子就很明顯了,我編寫了兩個比特單位轉化程序,第一次是用 while 和 if 寫成的,第二次是用數學公式寫成的,數學的優化特性就在裏面顯示出來了。

  • 邏輯
    編程中充滿了邏輯,邏輯很差就沒法編程。正是因爲編程中邏輯不少很重要,因此好好學習數學的邏輯運算,會對編程特別有幫助。由於能夠經過運算,簡化你的邏輯條件,使得程序更高效,也可能更加容易讀懂,邏輯更加清晰。

  • 分析
    有了數學工具,能夠進行數據分析,進行數據挖掘。固然也能夠對代碼自己進行分析,分析其時間複雜度和空間複雜度,做爲參考,進行更好的代碼優化。

讀代碼

緣由:讀代碼不產生任何代碼,若是不能很好的理解現有代碼,又如何改進代碼,修正錯誤呢?

讀代碼是一件很是困難的事情,甚至可能比寫代碼還困難。不少人更喜歡本身重寫,也不肯意去讀別人的代碼。可是實際工做中,可能更多的是維護舊代碼,公司也沒有時間和資源去支持你編寫新的代碼。而學習編程,更多的是在讀別人代碼過程當中去學習。

因此在編程過程當中讀懂代碼卻真的是一項很是重要,卻容易忽視的能力。

  • 讀懂本身過去的代碼

是否是有這樣的經歷,代碼放6個月後本身去讀,可能都不知道當時爲啥這樣寫。最好本身慢慢調試,最終明白本身當年寫這段代碼的思路是啥了。先讀懂本身過去的代碼,試着優化重構,提升過去代碼質量,就是提升了本身代碼能力了。

讀他人代碼思路
本身寫的均可能不記得思路了,那麼從頭開始看別人寫的代碼就更加困難了。

讀別人代碼,更多的是瞭解思考,爲何別人那麼寫,爲何這樣寫的好處。理清思路,畫出流程圖,可能會更好的理解他人的代碼。

  • 學習他人的優秀代碼結構

學習別人的代碼結構,看看別人如何使用數據結構,數據模式的。這樣能夠轉化成本身的知識。

  • 讀懂他人代碼算法

若是別人是大牛,數學學得很好,不少數學公式,不少遞歸,若是本身沒有必定的數學基礎,可能就暈了,這個時候,數學的基本功可能就會在這裏發揮做用了。

  • 破解糾錯

若是讀懂了別人的代碼,發現代碼有問題,有漏洞,能夠破解,能夠糾錯,而後把漏洞通知做者,也是提升本身能力的方法之一。固然在對付本身過去的代碼時候,也會發現破綻,只有讀懂了代碼,才能進行修復或者改進。

更多內容歡迎關注 LeanCloud通信微信號

相關文章
相關標籤/搜索