碼農是如何煉成的 Vol.4

logo

常常有人在後臺問爲何只有php的教程,有沒有java的,有沒有.net的,對於這類問題我實在不知道怎麼回答。php

一是我確實不會這些語言,寫不了這類語言的教程;java

二是在我看來若是你是會java或者.net的,徹底能夠經過我教程提供的源碼以及註解,用本身熟悉的語言來實現功能。程序員

但事實上他們依然寫不出來,這是爲何呢?編程

之前的公司裏有個程序員工做大概四五年了,可是開發水平一直不好,曾經有一次我讓他作一個新功能,事先還特意很詳細的給他講了整個業務邏輯,給了他兩天的時間,結果這哥們通宵不睡覺仍是沒搗鼓出來,要知道我本身作最多幾個小時就完事了……segmentfault

緣由很簡單,這哥們只會重複機械的寫代碼,沒有用心去理解裏面的業務和邏輯,一旦讓他作新的東西就傻眼了。數組

在第一章裏我就說過,對於應用軟件程序員來講,基本上只會跟高級編程語言打交道,因此不管是java,仍是.net,或者是php,都沒有太大區別,甚至你學兩年java,再轉去php也是很快的。微信

由於咱們須要學習和掌握的是編程思想,但實際上不少人只關注語言和工具,忘記了核心。思想這東西有點抽象,如何在實際中去掌握呢?具體一點說能夠這樣劃分:編程語言

  1. 片段代碼的實現能力,這是基礎。好比說對於一張表的查詢新增更新刪除,對於一個數組的遍歷排序等,都屬於一個片段代碼,這部分跟之前讀書背公式同樣是死的,很容易掌握的,正常人寫上十次八次的過程,應該沒有不熟練的。函數

  2. 複雜問題的分解能力。這個是基於1的基礎上的,任何一個複雜問題都是由若干個簡單問題組合而成,當你掌握了這其中全部簡單問題的處理方式後,所須要的就是去體會如何把這些簡單問題串聯起來解決一個複雜問題。工具

  3. 場景的複製能力。當你掌握了一個複雜問題的解決方案後,能夠嘗試將其往類似的場景複製。這個過程可能開頭比較艱難,但只要你有這個意識,而且不斷去嘗試,可能通過三個月才勉強成功了三次,我相信從第四次開始你就會感到輕鬆隨意了。簡單一點說,這實際上是個觸類旁通的過程。

有了上面三個能力後,用什麼語言對你來講就徹底不是問題了。全部語言的基本邏輯必定是同樣的,區別無非在語法與函數的調用上,而這些東西均可以經過搜索引擎解決。

像我本身開始學php代碼時,第一天就寫了不到10行代碼,其他時間全花在了百度上,然後三天就完成了Discuz整個模板和後臺的個性改造。

事實上我寫的微信教程也一直是遵循這個路線在給你們指導的,從簡單的文字回覆、圖文消息回覆,到後面通信錄、播放器等完整產品的開發,就是讓你們體會從片段代碼、簡單問題到複雜問題的過程。

至於在我教程基礎上開發出相似校訊通這類產品的朋友,恭喜你已經到了第三個境界,你是真心在學習,也真的掌握了編程的核心思想。

跳出編程來看咱們平時的生活和工做,這樣的過程和方法也是通用的,再複雜的東西也是由一個個細小的部件組成,從瞭解到理解再到分解最後解決,這個過程是很是有趣的,當你完成這個過程,你會發現。

真正有價值的是你的思想,這部分任何工具都幫不上忙的。

相關文章
相關標籤/搜索