當我們在學習一門編程語言的時候,我們究竟在學習什麼?
什麼是學會了一門編程語言?
正常人按順序學會下面的編程語言的感覺:什麼都不會:我讀CS地同學工資都那麼高(偽),我也要轉IT!學會C#:接受編程的新思想學會C++:拓展了一下記憶力,這些語法糖真爽
學會Haskell:卧槽原來還能這麼寫
學會Prolog:卧槽原來還能這麼寫學會F#、Scala、TypeScript、C++/CX、Erlang、Go、Rust、Ruby、Lisp……:人類真蛋疼,同樣的事情做了那麼多遍後來自己做了個語言:犯法啊?我也是人類!編程語言是一座橋,連接著計算機和人類的思想。
當我們學編程語言的時候,學的其實是三部分:
1. 編程語言本身
2. 計算機3. 人類的思想編程語言本身:該門語言的語法、設計哲學、編程範式、使用技巧、最佳實踐等。
計算機: 主要核心是編程語言是如何操作計算機,以及計算機如何工作,計算機之間如何形成網路並通信,計算機結構對編程語言的影響,計算機的未來如何發展等
人類的思想:
1. 數學和編程的聯繫(比如,編程語言理論)
2. 編程語言的發展史,為什麼不直接寫彙編呢?為什麼會出現那麼多的編程語言?以及編程語言背後有著什麼樣的哲學思想?(從編程語言中學習「抽象」的能力,「抽象」對於人類來說多麼重要)3. 編程語言的出現和當代社會技術水平的關係 (比如,為什麼現在函數式編程流行了)4. 人類如何設計計算機?人類如何設計網路來讓計算機之間互聯?5. 人類如何利用計算機解決領域問題題主可以試著從這三方面反思下自己。
謝邀。簡單回答一下吧,這個話題能寫好長的篇幅了。學習一門編程語言的時候,我們在學習如何調教電腦這種萌寵。
學習兩門編程語言的時候,我們在學習如何人格分裂的調教萌寵。
學習三門+編程語言的時候,我們在學習如何被萌寵調教。
所以你看那些老程序員,一個個整天目光獃滯,盯著電腦發獃,基本上都是語言學多了,被調教成這樣的。
學習一門編程語言實際上包括三部分:
學習基本語法學習核心類庫學習開發特定領域應用所需要的第三方類庫
第二條中的核心類庫指的是作為語言標準的一部分的那些類庫,比如c++中的stl,java中的各種數據結構、線程、文件、IO兩個問題。
1. 當學習一門語言,我們在學習什麼?以我的切身體會,在學完數據結構和演算法的基礎上,學習OO為主的語言時是在學架構,抽象能力;學習函數式為主的語言時是在學習切片能力;學習面相過程的語言時是在鍛煉邏輯能力;學習以協議為主的語言時是在學習業務,鍛煉生產力。2. 什麼是學會了一門語言?當能用語言滿足你生產需求的時候,就是你學會了一門語言。你會不斷產生新的需求,再學習便是提高語言技能。其實吧,現在的C++、C#、甚至http://VB.Net,寫起程序來都差不多。 你的思維習慣也差不多。 各種語法特性,如匿名函數、template編程,大家都有了。
但是, 轉到SQL編程上,把大量的數據操作、數據查詢用SQL語句實現。你會發現:艹,竟然連循環語句都不必寫,會寫Select語句幾乎包辦一切。據說,SQL是一種描述式語言。學怎麼和機器對話
就好像你學英語法語德語日語,你的目的是什麼,其實是相通的。學習如何使用語言表達自己的思想
分人
一種人學習編程是在學習如何賺錢;
一種人學習編程是在學習如何裝嗶;
----
其實第二種情況挺好的, 包括: 庫歐, 因吹斯汀....
當你在問這個問題的時候,你究竟在問什麼?
方法,方法,編程的方法
--------------------------------------------
從高二那年拿起那本C語言,已經過去了8年,這期間按時間順序先後學習了C, VB, Python, assembly language, Java, HTML, R, JavaScript
語言沒有好壞,甚至沒有優劣, it depends on conditions. 區別只在使用者
你可以用Java輕而易舉的寫出一個類(或者函數),但是你有想過用彙編寫嗎?當你用彙編寫的時候,你就會想這種語言這麼低級有什麼存在的必要嗎?
反之,你可以用彙編逆向一個已經寫好的程序,找到程序的workflow, 可是別的語言能做到嗎?
編程語言之間只是表達事物的方式不同,而對於事物本身,內部的運作機理都是一樣的
舉個栗子,做糖醋排骨這道菜
配料是一樣的,烹飪方法是固定的
那麼Java用一個類及它自己的語法表達如何做這道菜
Python用一個方法及他自己的語法表達如何做這道菜
當我們談論學習一門編程語言的時候,我們談論的是方法,談論用一門編程語言表達事物的方式
推薦閱讀:
※寫一個具有model based design功能的Simulink需要哪些技術?難度如何?
※內聯函數可以是虛函數嗎?
※請問mono unity Xamarin 這三者之間是什麼關係?
※初學者學編程,是看項目源碼學習,還是看著書一步步敲代碼見效?
※詳細介紹一下python和matplotlib,ipython的安裝使用方法?
TAG:編程語言 |