為什麼這麼多人學不會C語言?

小松語錄


C語言入門較難,對於初學者來說覺得很難是理所當然的。但是至於學不會我覺得是自身的原因了,一般主要大家稍微用點心,還是可以學會的。我也是過來人,根據我的瞭解,大部分C語言學不好的人是因為開始接觸C語言時,覺得很難,完全不理解,自己都放棄了,上課不聽課,專門玩手機,課後也不復習,得過且過,對C語言產生了厭學的心裡,長期下來就完全沒心思學習了,看到C語言就心煩,當然學不好了。

C語言的學習是比較枯燥的,而且比較“虛”,前期多下點功夫,慢慢入門之後,學習起來就相對容易多了。學習C語言要耐得住寂寞,不要一回到寢室就玩手機、聊天、打遊戲,最好準備一臺電腦,一邊學習,一邊敲代碼。

如果上課時聽不懂也不要慌,網上有很多免費的教學視頻,還有很多知名的C語言論壇,在上面可以學到很多東西,至於教學視頻,可以自己網上下載,若找不到可以聯繫本人,本人保留了好幾個版本的教學視頻,講得還挺不錯的。大家也可以到網上在線課堂學習,大部分都是免費的,比如有騰訊課堂、網易雲課堂、百度傳課、自學網等都是挺不錯的學習網站。

有空多去圖書館借一些C語言的參考書,多看,多做一些練習,多做習題對學習很有幫助,特別是一些易錯題,做得多了就會知道這些題考察的重點和難點在哪。後期有機會的話自己動手編程設計一個完整的項目,學習編程一定要多動手,對於新手來說,看得懂,不一定會編程。

時間關係,就不多說了,關鍵還是要靠自己!自己不努力別人也幫不了你,我相信只要你努力過,肯定能學得好!


雄哥談科技


一招鮮吃遍天。學好C語言基本就可以在軟件行業中領工資了。

常見的C語言教本,好多重在語法規則,脫離硬件基礎只講怎麼用,不說不清為什麼這麼用。C語言是一門面向過程的語言,JAVA、C++等是面向對象的語言,C語言對硬件的要求相對比較低,能夠很好的發揮硬件的性能,能夠做到儘可能的少佔用硬件的資源,目前常見的語言中只有彙編語言有這優勢,這就是C最大的優勢。另外,C語言不是為了專門為某個單獨的應用開發的語言,他可以實現多平臺的應用。

為什麼學習C語言比較慢,比較難?究其原因,你對內存的工作原理不懂。要學好C語言必須要明白C程序的代碼是怎麼存放在內存中的,這樣就可以明白全局量和局部量,也會明白函數調用,也有利於明白指針。

我的建議是,把C語言和單片機兩者放在一起學習會比較好。

建議:可以看看嗨翻C語言這本書,可以聽聽翁凱老師的公開課,也可以聽聽C君帶你學編程。

建議:選擇一個順手的編譯器,我喜歡用devc++。

建議:剛開始寫代碼,可以先畫流程圖,再用代碼實現。或者,讀別人的代碼,畫流程圖,再用自己理解後的思維寫代碼實現,反覆練習就可以。

建議:習慣美國人的習慣,C語言書中的指針等名詞再翻譯時,沒有很好的吻合我國的習慣,指針函數和函數指針就是典型的例子。



秦人在行動


主要是一般情況下用不上!

做web,有web開發的環境和語言

做app,有app開發的環境和語言

做winform,有開發winform的環境和語言

等等等

C在任何地方都能用上,既能寫框架,也能寫業務。但是,對於寫業務而言,C就弱雞了。比如說,用php寫個鏈接數據庫的例子,很快,很好理解。換成C來寫的話,就蛋疼許多,而且坑很多,不方便調試。

C做高性能計算開發,做底層框架開發,是它的優勢,也是它的主要應用場景,從這點上看,就註定了,使用它的人,必定不是新手菜鳥,而是底子不錯的人。


陳陳陳chenchen


我本人是一名創業者,同時也是一名編程愛好者,在初創公司有著豐富的工作經驗,歡迎關注我,和我一起分享職場,科技,互聯網創業等方面的知識。

對於你的問題,我的答案是:C語言學起來不難,花點精力學習要入門也容易,但是要真正的用明白就會特別的困難。

筆者接觸和使用C語言編程已經有6,7年的時間了。你可能會問,學了6,7年應該很厲害了吧?如果說到精通或者厲害我真的不敢說,雖然經驗豐富,那也只是達到熟練使用的程度而已,現在在編程的過程中還是會時不時的踩到雷,掉進坑。

為什麼這麼多人學不會C語言,或者是隻懂點皮毛。小編把這些年遇到的一些人和事情與你分享一下便知一二。

學不好C語言大概有這幾類:

一、愛面子,特別喜歡吹牛皮的人

之前公司有一個做市場運營的同事,以前是做技術的後來轉做運營崗。每當公司有做技術的新同事入職的時候,都會問一下新同事技術水平如何,如果遇到畢業生,他就開始吹牛了,吹牛的大概意思就是:之前他幹過幾年編程,然後說編程很簡單,C語言更簡單,如果給他學,兩三天就搞定之類的話。剛入職的新同事當然是一臉懵逼。當你實際和這種人聊的時候,你問他做過什麼項目,一些技術的內幕,他是基本答不上來的。

二、不喜歡專研,沒有耐心,只是為了應付考試和工作的人

有很多畢業生,你問他C語言難嗎,學得怎麼樣?很多人會說:以前學校老師講C語言,我學得很好。老師講的都能聽懂,考試很好。可是當你告訴他們C語言要學會使用很困難的時候,大部分人都是疑惑的。項目中真正遇到問題,他們大部分人選擇的都是逃避問題,沒有去深究出現問題的原因。

C語言從誕生到現在已經很長的時間了,中間經過不斷的優化,最後確定了自己的標準。可是它本身還是存在很多的缺陷的。特別是數組、指針、內存管理這些,在實際運用的時候很容易出現問題。要非常謹慎。

要想少遇到這些問題,最好的辦法就是多多實踐,多寫代碼,經常使用調試工具進行調試。在最初做項目的時候,我曾經為了一個數組越界的BUG無休無眠的調試,直到最後找到了問題為止。

後來我轉做嵌入式底層驅動的開發,開始大量接觸指針。最開始的時候,指針有很多莫名其妙的問題,一不小心指針使用錯誤,指向不該指向的地方,整個系統就會崩潰,那個時候真的不知道痛苦了多少個日月,市場有想放棄的念頭,最後還是堅持了下來。

另外,還有涉及到變量的使用,內存管理,在調用內存塊後還要記得釋放空間,如果忘記就會導致內存空間不足,直至系統崩潰。

以上談的這些只是冰山一角。我不是技術專家,不過我要告訴你的是:聽明白、看明白不代表你懂了,你懂了不代表你會用了,你會用了也不代表你能夠用明白。最關鍵還是要多多去實踐。

不管你要深入任何一門語言,其實都不是那麼簡單的事情,最後以王國維的《人生三境界》與大家共勉。

古今之成大事業、大學問者,必經過三種之境界:“昨夜西風凋敝樹。獨上高樓,望盡天涯路。”此第一境也。“衣帶漸寬終不悔,為伊消得人憔悴。”此第二境也。“眾裡尋他千百度,驀然回首,那人卻在燈火闌珊處。”此第三境也。

喜歡我的回答請關注我,希望我的回答對你有所幫助。請記得在下方留言,我們一起探討。我可以給你更多的參考意見。


社會關注聚焦


應該準確來講,是為什麼這麼多人學不會編程,C語言本身來講有一定的難度,但畢竟不是最難的語言,所以學不好的主要還是自身的問題。作為用了十幾年C語言的程序員在這嘗試分析下為何這麼多人學不好C語言?

C語言本身存在一定難度

C語言相比現在比較流行的java,php,python等語言在入門的方面顯得稍微難點,特別是裡面的C語言,很多人放棄就是在學到C語言之後就可以慢慢放棄了,覺得這個東西太難了,理解起來太抽象,而且使用起來變化莫測。指針是學習C語言的一個檻,跨過去了也就一馬平川了。有多少人是倒在指針上。

當然除了指針C語言裡面的一些函數指針,指針函數,回調,遞歸都是善茬,總體來講和一些高級語言還是存在一定的難度。

意志力不夠,一直沒等到開竅

學習編程的前兩年是最難熬的,挺過去了後面的其實都好說,有些人就是進入技術崗位了,還是迷迷糊糊的,不知道到底做的是什麼,會有一天發現自己突然明白過來很多的事情,以前有些不明白的事情,突然覺得啥都明白了,看似是一件很神奇的事情,本質上來講都是日積月累構造成的。

很多人覺得自己學了這麼長時間還是很多不明白,就會對自己產生懷疑覺得根本不適合學編程,寫不了代碼,冰凍三尺非一日之寒,何況是寫代碼做程序,對於基本功的要求更甚。有時候傻傻的堅持不一定是壞事。

C語言沒有別的語言好就業

這涉及一個很現實的問題,學習了編程語言就得找工作,如果學了不好找工作,肯定學習起來的動力就不足,畢竟C語言的工作崗位絕對數量並不少,但是相比java,php,python等語言還是沒法比,而且對入門者的要求相對更高點,薪資上也不一定有多大的優勢,所以對於初學者沒有多大的吸引力。目前這也是當前的市場實際情況。

C語言是不是就不值得學習了?這種說法也是不對的,現在php,python底層語言的實現都是C語言,重要性不言而喻。不要聽信C語言已經過時之類的鬼話,出頭露面的事情少,踏踏實實做著底層的事情。有志於在軟件行業長期立足發展的話,還是值得好好學習一番。

有編程方面的疑惑可以關注大學上編程指南一起玩編程,覺得有道理就點個贊。


大學生編程指南


這麼多人學不會C語言你覺得是什麼原因?

是智商原因嗎?那我們來看看,不說全世界了,就全中國而言學好C語言的人那麼多,裡面還有中學學歷的人,你覺得是智商的原因嗎?

是C語言本身的原因嗎?你會說C語言數組、指針、鏈表太抽象,發明者C語言的人太壞了!C語言及其發明人雙手一攤:怪我咯?

很多人學不會C語言的原因,依我看不是智商的問題也不是C語言本身的問題,而是學習者的情商出了問題!你沒看錯,情商!學習C語言需要用到的情商包括:毅力、定力、心理抗壓力和自控力。

這個說來也很簡單,別說學C語言了,你就看看平時在上課時你周圍的人在幹嘛?逃課的就不說了,有睡覺的、看小說的、竊竊私語的、看手機的,別說C語言了,恐怕這種態度連最基本的課程也學不完吧!

你可能會說:“哎,沒辦法啊,現在主流環境就是這樣啊,我如果認真學習會被當成異類的”。可是你想過沒有,畢業後大家就像叢林裡的鳥兒各自飛,誰還管誰?你當時的不好意思的學習,畢業就就是到處被用人單位鄙視到處碰壁。那麼你算一下,是被你周圍的主流環境嘲笑合算還是被決定你飯碗的用人單位嘲笑合算?

學好C語言最主要的因素是情商,其次才是智商,最後才是C語言本身的難度。所以為了你的將來、為了你的家人,你要練好自己的毅力、定力、心理抗壓力和自控力,不光對你的學習有幫助,對你走上社會也是有很大的幫助的。

另外,我在“C語言編程技術分享”這個公眾號裡分享了一些C語言的教學文章,希望對各位有幫助!


數碼視聽娛樂


C語言學習還是有一定的難度的,嚴格來說C不能算是一門高級語言,C語言介於彙編語言和高級語言之間,C語言和計算機硬件聯繫的比較緊密,因此學習C語言不僅要學習基本的語法,同時還需要學習計算機硬件以及計算機體系結構的相關課程,比如你需要了解寄存器 內存 緩存 存儲器等相關的概念。

在瞭解了相關計算機硬件的基礎上你需要了解一些編譯器方面的知識,因為編譯器和硬件是息息相關的。比如你寫的C代碼的函數參數是如何傳遞的 局部變量 全局變量等又是如何進行分配的(一般的編譯器編譯的原則是參數傳遞優先使用寄存器 其次是棧(內存),全局或靜態變量使用堆或者靜態分配(內存) 可能還有些變量分配在flash中(視硬件情況))。

少量的彙編基礎必不可少(主流平臺 x86 arm mips),有時候我們在寫代碼時,有的功能有可能是無法用C代碼來完成的,這時候就要用到彙編語言,我們需要將部分彙編代碼嵌入到C代碼中。

學習好C語言,不管你是從事上層應用開發還是低層驅動開發,可以幫助你加深對任何計算機語言的理解。


GkGavin


對初學者來說,C語言確實有一定的難點,但是C語言是基礎的語言,並不是最難的所以學不好的主要還是自身的問題。依據本人這麼多年的經驗,這嘗試分析下為何這麼多人學不好C語言?

C語言本身存在一定難度

C語言主要應用於操作系統、嵌入式底層開發等,在這些領域C語言一直都咱局主導位置,但是在入門上現在比較熱門的php、python、java等語言比C語言稍微容易一些。所以很多人學習到C語言的時候,理解起來很抽象,使用時變化莫測,覺得很難,自己就失去了興趣,慢慢地放棄了。特別是在指針的學習上,是一個檻,很多人就是倒在指針上的。

當然除了指針,C語言裡面還有一些回調、遞歸、函數指針、指針函數也有一定的難點,所以總的來講C語言還是有一定的難度 的,學習C語言一定要多練,不能光看書,多做一些項目慢慢地就好了。

意志力不夠沒有耐心,倒在黎明前夕

學習編程主要挺過去前兩年的積累經驗階段,後面就好多了,有些人就是迷迷糊糊的進入技術崗位了不知道到底做的是什麼,會有一天發現自己突然明白過來很多的事情,以前有些不明白的事情,突然覺得啥都明白了,看似是一件很神奇的事情,本質上來講都是日積月累構造成的。

很多人覺得自己學了這麼長時間還是很多不明白,就會產生厭倦心裡,自己都想要放棄,沒有了激情,慢慢地自己就放棄了,其實有時候默默地再堅持一會自己就會慢慢地掌握C語言的精髓,對C語言產生興趣。

C語言沒有別的語言好就業

這涉及一個很現實的問題,學習了編程語言就得找工作,如果學了不好找工作,肯定學習起來的動力就不足,畢竟C語言的工作崗位絕對數量並不少,但是相比java,php,python等語言還是沒法比,而且對入門者的要求相對更高點,薪資上也不一定有多大的優勢,所以對於初學者沒有多大的吸引力。目前這也是當前的市場實際情況。

C語言是不是就不值得學習了?其實這種說法是不對的,其實php,python等底層語言還不是一樣用C語言來實現,所以C語言的重要性不言而喻。不要聽信C語言已經過時之類的謠言,C語言一直都在默默無聞、踏踏實實地做著底層很重要的事情,經久不衰。想要在軟件行業立足發展,C語言還是很值得學習的。


擼車匯


我不清楚你說的學會是什麼深度。如果說學會那我是學會了的。我的學習路線C C++ Fortran pascal delphi C# Vb 。我主要搞工程計算,不是碼農。平常根據工作自己編寫專業軟件。用於科學計算推薦:fortran pascal ,最近在嘗試用c++ 將來我也打算總c++去嘗試有限元計算。我之前是總用Mfc或C#做界面,fortran寫核心。最近接觸了Qt,決定用C++搞下軟件。我覺得這幾個語言沒有難度,觸類旁通。關鍵字 語法 各個語言的特點 掌握了我覺得已經滿足我的需求。最近也在根據C++11深入一下。


Fish2149


沒有練手機會

學不會C語言的主要原因還是C語言的練手機會太少了。

做web或者是桌面應用的練手機會遠遠高於C語言的。

以前桌面應用主要是採用C++進行開發的,現在不要說是否還是C++為主進行桌面程序開發,就連桌面程序都已經進入被淘汰的趨勢,連手機上的應用都是使用Java或者swift等語言進行開發,以後也許我們只能在嵌入開發中才能看到C語言的身影了。

一門語言連練手的機會都沒有,沒有練習的機會就等於沒有精通的可能。

請不要被各種語言排行榜中C語言的高居不下給欺騙了,這是依靠搜索活躍度排名的,因此沒有現實意義。

不過從另一個角度也可以看到這種諷刺,C語言無可取代,工作機會卻那麼少。




一門越來越邊緣化的語言

我說C語言越來越邊緣化,不是說C語言的地位不重要,現在很多的操作系統、數據庫等軟件都是使用C++語言進行開發的,可以說C語言或者C++語言支撐起了當今計算機界,但是令人諷刺的是這個支柱是由少數人構築的。



令人吃驚的是Java這麼流行,而Java這門語音竟然是使用C或者C++開發的,開發Java語言的開發者連使用Java語言的千分之一都沒有。

支撐這個社會運行的根基是由少數人創造的,而讓這個世界更加美好卻需要上千萬人採用最簡單的工具進行打造。

C語言難嗎?



難不難不在於這個語言本身,而在於這個語言本身的環境,C語言的環境是所有語言中最尷尬的,本身的改良和後續的發展遠遠比不上其他語言。

如果你看看其他語言幾年就更新一個版本就知道C語言多麼因循守舊了。

指針也許很難,但是也沒有難到不可逾越,難到不可精通,難到不可克服,既然是人類發明的語言,那麼人類就有可能會學會,一直強調語言的困難,卻不去想想工作不靠它你讓普通開發者怎麼精通?

假如可以依靠C語言養活一大批開發者,我可以保證現在什麼三大框架、微服務肯定是C語言架構的,可惜C不是這樣的語言,它養不活視它為神物的一大批普通開發者。


分享到:


相關文章: