-
1 # 快樂的老碼農
-
2 # 經緯科技談
作為一個資深的嵌入式C程式設計師來回答一下:
我覺得對於新手直接學習C確實不太友好,C的語法邏輯並不直觀,它是一種抽象的高階機器語言,它的邏輯更像同機器對話,而不是一般人的正常思維。
我們看一下C主要用在哪裡?
linux操作系,各種嵌入式裝置序,這種開發環境本身就是一個偏底層偏硬體的環境,它需要考慮各種效能,資源,相容性等等。作為一個初學者,一上來就要面對最複雜的計算機體系結構,這樣很容易就會陷入畏難情緒,將剛學習的積極性給消磨掉。
程式設計是為了學習邏輯思維
程式設計主要是為了鍛鍊邏輯思維,其實在生活就有很多的場景,需要用到程式設計的思維,程式語言就是一種來描述這種思維的載體。
我本身是做C開發的,也是按照目前的大學培養體系一步步走過來的,我也在後面工作中接觸到更多的其它的開發語言。現在如果我想實現一個想法,基本不會直接用到C語言去寫了,用python寫個程式,只用寥寥10幾行程式碼還有圖形介面,它不香麼? linux下面的shell語句,用的溜的話,大部分需求都能搞定吧。什麼情況下非得用C? 那就是嵌入式系統,就是它條件太簡陋了,什麼都沒有,只能寫C。
新手建議學習JAVA或Python,C/C++再考慮考慮總的來說,我覺得面向物件的語言,無論是JAVA還是python,都更貼近一般人類的思維方式,也更容易理解,適合初學者。如果你立志於改造並研究計算機系統,你可以繼續學習C或者彙編這種更底層的語言,來實現你的抱負。
-
3 # JerryLiuLiu
從大學開始學數電,微控制器都是從基礎原理講起。從計算機原理馮諾依曼慢慢到計算機記憶體到彙編再到C語言,是一個很自然的學習過程。只是後來的有些語言將指標,記憶體分配等幫你處理。沒有學過C的大概只是為了使用而使用。
-
4 # AioT智慧家居
初學用什麼不是關鍵,關鍵是教程要編寫好。主次本末別搞混了,別到時候學演算法的課程都變成了C語言的課程。對了演算法現在應該是偽C程式碼吧。那玩意不是C語言。
-
5 # 金一風雷
外語針對的西方程式設計工具外語也是針對西方,其中概念中中國人的傳承就有,但是因為該死的外語轉換不過來使得外語一程式設計家獨大讓中國程式設計工具自己用的不流暢
-
6 # Huoyo
初學者學習程式語言,從語言中獲得成就感很重要,也會奠定對於程式語言的心理狀態,而c語言太靠近計算機底層原理,很容易就被其暴揍而散失對於程式語言的信心!
-
7 # 千里課堂
C的語法太苛刻了,一點點不正確就儲存了,C語言學生不是在寫程式碼,而是在排查錯誤。
C語言的方法庫也太少了,做點事情都必須自己寫程式碼去實現,總感覺在做數學題而不是寫程式碼。
-
8 # 大道餘韻
C語言非常經典的語言,基本各大高校都是以c語言作為教材,之所以現在有人建議初學者不要學c語言,主要是現在現在有很多自動管理記憶體的語言,比如go,Java 等,這種面嚮物件語言,基本都是各大公司現在在用的,c語言因為自己管理記憶體,指標操作等,初學者學起來比較難理解。
-
9 # 南海灣華仔
在現代的計算機語言中,C語言都是用在底層開發的比較多了,導致它現在只適合於底層的開發。
1.底層涉及的內容就比較多了,涉及的計算機原理,晶片內部工作原理,還有編譯等比較多專業的知識。這一步很枯燥,還沒開始程式設計就磨滅很多人的熱情了。
2.使用其他的語言,不用太去管記憶體的分配和回收。很大程度上可以做到所見即所得。不怕程式碼會奔潰。
3.特別是python,更加靠近人的習慣。可以做到語法簡單,入門快。幾句話就能去執行,容易會給人帶來成就感的。
4.c語言是過程的程式設計,實現面向物件也是有點麻煩,導致它的庫很少,不像其他語言那樣,可以呼叫api來完成一些介面就可以了。
5.其他語言可以幾句話實現了功能,c語言需要寫更多的程式碼,這樣導致出錯率很高。
-
10 # 老趙助人為樂
其實c語言是一門簡單高效的語言, 貼近硬體,執行高效。
而對於初學者來說, 學習一門語言最好是圖形並茂, 並且有效果展示, 但是對c語言來說, 有圖形的開發環境操作很複雜,
而且做一個圖形介面也很複雜,不是幾行語句可以做到的。
第二個原因是,如果你想看到c語言操作硬體的效果,需要一套開發板,需要懂一些硬體知識,這又是個門檻。
所以很多初學者選擇了學習Python,Java等,這些語言很容易看到執行效果,甚至很多小學也開設了這些計算機語言的興趣課,事實證明小學生都可以很快學會的。
回覆列表
作為一個程式設計多年的老碼農,聊一聊我對這個問題的看法。
在過去很長一段時間,受程式設計技術和程式設計工具的限制,寫程式基本上是計算機相關專業的專利。但是近些年來,隨著計算機應用的廣泛普及,人們對計算機技能的需求也越來越高,特別是一些圖形化程式設計工具的出現,使得非計算機相關專業的人員學習程式設計變為可能,程式設計大有一種“昔日王謝堂前燕,飛入尋常百姓家”的情形。
這樣,學習程式設計的人員就可分為兩大類,一類是計算機相關專業,一類是非計算機相關專業,因為他們對程式設計技能的需求層次不一樣,所以學習要求也各不相同。
一般來說,對於計算機相關專業的人學程式設計,還是建議從C語言開始,雖然C預言的指標是一把雙刃劍,讓很多初學者望而卻步,然而一旦掌握就會發現它功能強大,所向披靡。而計算機相關專業,往往需要學習多門程式語言,此外還要涉及到作業系統、資料結構與演算法、編譯原理等等專業知識,這些偏底層的技術都需要C語言來做支撐。此外,很多語言都是從C語言演化而來,一旦掌握C語言,學習其它語言就會如有神助。
然而對於非計算機相關專業的人員來說,因為C語言更偏向於底層,學習的難度相對於其它一些語言要大很多,會讓很多人望而卻步。而像Python、JavaScript等指令碼語言,上手容易,執行結果及時可見,所以很適合非專業人士學習,這也是很多人不推薦C語言的一個關鍵原因。不過這也有一個缺點,那就是先學這些容易上手的語言,後面想要學習C/C++等偏向底層的語言依然會有很多困難,而先學C語言再學別的語言,就會容易很多。
最後,以一個簡單的例子結束,就如同我們經常爭吵的吃葡萄問題一樣,有些人就是喜歡先吃甜的,後吃酸的;而有些人則恰恰相反,它們喜歡先吃酸的,後吃甜的。而對於學習程式設計來說,C語言就是一顆酸葡萄!