編程該如何入門
很多人對編程感興趣,但又不能耐性子學正規(guī)枯燥的編程教材。 有沒簡單的編程入門方法?其實學習概念比學具體的編程語法要重要。 編程語言無所謂,哪個容易使用學哪個。比如js就比c++容易。因為語法細節(jié)和概念相對少。第二,容易搭建環(huán)境。第三,容易查看效果。 然后編程本質上說什么?是建立邏輯。如何建立邏輯?就類似讓你用中文組織一段話,讓別人聽得明白,好像是那么回事。 第一點 就是描述,你需要干什么。這是框架。 第二點 概念。為什么事情能做到,能解決,那是因為概念上是對的。概念不對,或者不清晰,那自然就毫無邏輯可能。 第三點,替換。上述替換成符合編程語言語法的語言要素。 然后驗證,調試,查看是否符合預期。 因此本質上,編程就是使用中文描述事情,找準定義的概念,然后使用語法知識替代的過程。 有一些編程語言的語法模式和中文相去甚遠,但大多數(shù)語言和中文的表述方式很接近。學習過程中可以用中文復述一下編程做的事情,建議兩種表述方式的聯(lián)系,這樣就容易轉換了。 其中,最重要的就是第二點:概念。因為我們日常說話對概念沒那么嚴格,說話不需要那么有邏輯,但編程語言你概念不清,沒邏輯感,代碼就寫不出來,或者寫出來就錯,隱藏很多bug。 要從表述性語言,進化到概念性語言。比如有個算法要求你枚舉一個數(shù)組,這是表述性的,而概念性是兩樣東西,一個是數(shù)組,一個是下標。你有數(shù)組,還有下標才能枚舉數(shù)組,這在很多編程語言是需要這兩個概念得。然后下標的概念是從 0 到總長度-1。如果你沒這個概念,隨意替代一個數(shù)字,能不錯么?然后是考慮邊界范圍,最容易出錯的點就是使用長度做下標,長度和下標的關系是-1,這才是兩個概念的聯(lián)系。 只要你留意,就會發(fā)現(xiàn)這些看似簡單的東西,背后的聯(lián)系是相當復雜的。但無所謂,首先你得有下標這個準確的概念,然后你才能意識到我這里需要的是下標,而不是長度。這就是概念起到的作用。我們就是需要用概念替換掉表述性語言。 如果你做到這步,基本過程很清晰了,替換成符合語法的編程代碼,就是水到渠成的事情。 當然實際步驟還是要驗證和調試,是否有遺漏的情況沒考慮到。 很多時候,我們說中文是不準確的,是因為中文語言環(huán)境不太尊重概念,或者說術語到準確性,和精確性。而我們看外國文檔,甚至都會嚴格定義術語表,這個詞準確意思是什么,就固定是這個詞,不會有多重說法和多重定義。 這是一個好習慣。編程就是建立我們自己的術語表,學會使用術語去描述事情,這樣就搭起自然思維和編程語言之間的聯(lián)系。說到底,編程就是自然思維轉換成編程代碼。 當然,自然思維想不明白怎么解決的問題,編程也就不可能了。但是當你建立起概念并表述出來后,很多東西都會自然而然的解決掉。精準的表述,他本身就能構成解決問題的方法,這就是很神奇的地方。 很多時候,我們只要能夠把事情說清楚,說細致了,那自然就能解決了。至此,就是編程的簡要入門方法。 當你入門一種語言,那么你要學習另一種是很簡單的事情。當你入門了,能用常識性思維去解決大多數(shù)編程任務,那么你就可以進階的學習各種算法思路,加強自己的解決能力。