程序員是怎麼記住許許多多的語法的?

周智琛


這問題和編程語言的發展很有關係,和IT行業對程序員的要求越來越多樣性也是離不開的。

最早的程序員只需要在一個系統上用一種編程語言開發程序,比如工程類用FORTRAN,金融機構用COBOL,科學的用PASCAL,人工智能的用LISP。這些語言的差異化很大,所針對的領域不同,也不要求程序員跨領域的開發,那就簡單了:通過學習語法和參考手冊,然後在工作中不斷的練習來加深記憶,記住語法完全沒問題。

後來更加通用的C和C++,以及面向對象的JAVA,雖然增加了很多新的概念,但從語法上來說還是比較有限的,並不難記。基本的語法無非就那幾個:變量的聲明、函數或者方法的聲明、變量的操作、數組操作、字符串的操作、條件判斷、循環的操作與中斷等。

當編程語言引入了庫的概念後,例如C和C++的lib,JAVA的jar等,難點就不是語法了,而是變成了如何記住各種庫裡提供的接口及屬性。隨著開源運動的發展,各種第三方庫豐富多彩,可以說很難找到一個程序員聲稱對某個語言的所有接口都滾瓜爛熟的了吧?

拋開庫不說,記住語法是不難,更難的還在於一個程序員能記住許許多多的算法,比如各種排序算法、搜索算法等。這就好比一箇中國人能記住許多的中文字並不算太有文化,但要是能記住很多的經典文章並且能運用自如,那就比較有文化了。不信可以挑戰一下去讀大神高德納Donald Knuth的《計算機程序設計藝術》,目前出了四卷,老先生據說要寫七卷。這書有多難呢?當年我們大學算法課只學了第一卷即基本算法的一點皮毛,據說比爾蓋茨放話說:如果誰能看懂這套書的全部內容,歡迎給我發簡歷。呃,不多說了,我要重溫書去了~



江南漁夫


程序員得會形形色色的編程語言語法,但是編程無窮無盡,語法更是浩瀚無邊,程序員們是如何記得住這麼多的語法呢?我也做過程序員,結合自身體會說一些吧,請繼續往下看!

我是數字視聽科普達人,關注我,早上 8、9點和您聊聊有趣、好玩的家庭視聽類科技!


死記硬背

剛畢業那幾年學習編程語言的時候,覺得把語法都記住就行了,於是拼命地背語法沒日沒夜地背語法。像C語言還好,語法就那些,背完了、熟練了就可以了,後來又接觸到C++,在C語言的基礎上又增加了很多的東西,於是又去背C++的語法,好傢伙,這C++的語法跟C語言可不是一個檔次的,簡直不要太多,感覺學習C++明顯比C語言要難很多。

死記硬背不行了

再後來又學習Java、學習C#,我了個去,語法真的是浩瀚無邊。雖然編程語言的語法都是相似的,但是還是要掌握好它們之間的差異。學到後來發現死記硬背行不通了,乾脆也就不背了,開始做語法推理了。比如用到字符串時,根據以往學C和C++的經驗,就猜測字符串是不是這麼寫的,是不是這麼用的。如果猜的不對就直接百度了。對了,傳說中的賦值粘貼大法確實存在的!


其實啊,作為程序員,要學習那麼多的東西,哪有時間去記住那麼多的語法,真的是憑藉經驗在推理。你說呢?


數字視聽科普


感覺其他答案沒幾個靠譜的。。。

首先,編程語言的關鍵字如if while等也就二三十個,常用的也不超過十個。很好記。

然後就是各種庫的調用了,簡單說就是別人寫好的代碼,你集成到你的項目裡,有系統的、開源的等等。這些用的時候查文檔,查熟了就直接碼代碼了。


000風滿樓000


你說的許許多多的語法,是指()在什麼時候用,{}在什麼時候用,.在什麼時候用,->在什麼時候用,;在什麼時候用,for的格式,while的格式,switch的格式,函數怎麼定義,類怎麼定義,模板怎麼定義,繼承怎麼寫...

好吧,說實話我也不知道我是怎麼記住的....反正就是記住了......


Ninsun


1. 畢竟靠這個吃飯,在進入這行之前,肯定有對語法知識的學習

2. 程序員都是靠編程工具來編寫代碼,不會是手擼代碼。編程工具,一般會有語法提示。語法不對,也都會告訴你

3. 就算有些生僻的語法不太瞭解,也可以在網上查詢

4. 程序員天天和代碼打交道,熟能生巧。就算第一次不記得,重複100次,10000次,肯定就記得了


java和小熊


本人java開發,軟件編程有多種語言,其實你會其中一種,其他語言也是大同小異。剛開始入手可能需要去了解,記下語法,更多熟練過程是在真正使用項目開發中,用得多了,自然就記住了。

在軟件開發中,我想說的是每門語言的語法不是難點,更重要的一種編程思想,遇到問題的解決思路才是最重要的。


碼農三哥


計算機語言只是註記符而已,最終都要編譯成機器看得懂的二進制。只要把一門語言搞懂。一門語言也沒有必要死記硬背。主要掌握語言結構。從現有的程序入手,改編就行,注意積累程序。時間久了就掌握了。別的語言主要注意他的特點和不同點。一樣可以融會貫通。


llcheng_anshan


這個問題跟問一個醫生是如何記住繁多的藥名是一樣的。

1.孰能生巧。每個程序員都有自己工作的領域,而且編程工作有很大的重複性活動,時間長了,這些語法自然深深刻在腦子裡。

2.主動學習。面對一個又一個在編程中出現的問題,學習是每個程序員必不可少的活動,不斷的去學習去接觸新的知識,掌握的語法自然越來越多。

3.語法之間的相通性。語法跟語法之間,所有的編程語言之間,都有一定的規律可循,一法通,萬法通。所以看似很多的語法,在記憶的時候並沒有那麼困難。

總之,程序員要記住繁多的語法的途徑沒有捷徑可走,多手打代碼加深記憶,多閱讀源碼開闊視野,多聯想思考發現代碼中潛在的知識。


木子與哞哞


我個人感覺程序員是最辛苦的,其他技術行業是越老越吃香,經驗越豐富越值錢。程序員不一樣,一直在不停地學習新的編程技術。。


寧靜致遠50947733


編程工具是死的,人腦是活的,靈活應用,工多手熟。

同一種功能可以有幾十種實現的方法,所謂的最優方案,都是有前提的。

當一個工作經年累月的幹了10年20年以後,很多東西已經變成條件反射了。


分享到:


相關文章: