每天學習八小時C語言,大概多久能完全掌握?

紅頭鳥


從事軟件行業十幾年,中間經歷過很多C語言的項目,想要掌握一門編程語言只是拿出多少時間來學習是不夠的,主要還是要項目實戰,沒有參與真正的實戰不要輕易說出掌握了什麼編程語言,編程屬於一種技術積累性的工作,理論很重要,實踐更加重要。任何一種編程語言的學習在具備理論的基礎上,然後用項目實戰來鞏固理論知識,起碼做上幾個大項目才能真正說掌握一種編程語言。

C語言的學習之前需要把計算機組成原理要弄清楚,知道計算機是如何運轉的,內存和cpu是如何運轉學習的,進制之間是如何轉化的,畢竟C語言屬於非常靠近底層的編程語言,所以計算機基礎知識要必備。

如何學習C語言?

1.C語言是一種面向過程的編程語言,非常靠近底層的編程語言,相對來說來講語法細節不是很多,但是這種自由組合的力度,靈活性非常強,真要組合起來代碼也是比較難看懂的,所以linux內核源碼真正內核機制方面的代碼基本很難看懂,關鍵在與靈活運用,所以要想掌握的徹底就需要把基礎概念徹底搞明白,C語言難易理解的概念也就是那麼幾個,指針,指針函數,回調,遞歸等概念。

2.C語言的學習要選擇一本經典的書籍為切入點,很多初學者開始弄上一堆書,無形之中給自己增加了很多壓力,配合上網絡上視頻,編程的學習是一個建立知識體系的過程,知識體系的建立需要一個折騰以及思考的過程,不建議全部以視頻為主項的學習,視頻會把每個知識點都講得非常透徹,畢竟這些都是告訴濃縮的經過精細加工的東西,直接給你和你自己靠努力去獲取完全兩種不同的感覺,做過實際項目的都應該明白,解決一個自己不懂的問題,過程很痛苦但留給自己的印象最深刻,反而對於建立知識體系有好處,在看書的過程中可以讓思維不停的跳動,即使是錯誤的思維方向也是拓展的一種。建議學習C語言以一本書為基準設置一個計劃,然後按照這個計劃推進,遇到不懂的找對應的視頻去解決,解決完了再次回到書本之中,在這推薦一本C語言入門書籍(c primer plus)

3.無論理論學到什麼程度,總要找到實踐平臺去練手,可能這對於初學者而言比較難,如果是在學校裡面,途徑相對少點,有些學校裡面老師本身會接一些項目,正好需要一些基礎還不錯的人一塊幫著去做,這都是不錯的機會,前提基礎要弄好。當然最直接的是研究開源社區的代碼,代碼可以直接拿到,先從看懂代碼開始,能看懂代碼也是一種巨大的進步,畢竟代碼都不是孤立的,需要連串著去看,需要從代碼裡面抽象出中心思想,然後嘗試著去修改,雖然看起來距離實際的項目有距離了,但這是做項目之前必經之路,先從修改簡單的功能入手,然後再慢慢切入,做任何事情都需要有個過程。

學習編程要保持足夠的耐心,起碼讓自己在大染缸裡面,呆上一段時間,不要輕易下結論自己不適合這個行業,沒有什麼做不成的事情,關鍵看堅持的力度。

希望能能幫到你。


大學生編程指南


首先肯定你的選擇,學習C語言一定不會讓你後悔!這門語言號稱神一樣的語言,在程序設計界流傳著這樣一句話:真正的程序員使用C語言!

學習程序設計要遵循一定的科學規律,並不是突擊就能學得好,這裡面涉及到你是否有語言基礎,是否有人指導,準備的材料是否充足,學習路線是否合理等等。

每天學習8個小時,如果你有語言基礎,那麼一週左右就能把語法基本掌握了,再用一個月左右的時間做幾個綜合性實驗,基本上就可以使用C進行開發了,在工作中在一邊使用一邊學習就可以了。

如果沒有語言基礎,學習C語言是頗有難度的,因為語言涉及到很多抽象概念,有很多概念如果不能建立有效的畫面,是比較難於理解的,比如內存空間申請和釋放是C語言中最常見的操作,如果沒有語言基礎理解起來還是頗有難度。

建議如果要有效利用時間,最好有專業人士進行指導,這絕對會縮短自己摸索的時間,而且會得到一些開發和調試程序的經驗。

如果身邊沒有這樣的資源,那麼一定要看一看網絡上的視頻材料,看視頻對專業程序員來說比較浪費時間,但是對沒有基礎的初學者來說,是一個好選擇,雖然節奏慢,但是有充足的理解時間,在初期可以跟著視頻一起做實驗,慢慢自己給自己加大練習量。

一天學習8個小時C語言,時間上有點稍微長了一點,可以穿插一個數據庫內容,一方面可以換換思維,一方面數據庫也是程序設計中必須要使用的工具。

學習C語言是一個漫長且痛苦的過程,C語言是先難後易的語言,在初期會比較困難,度過了這個階段會好一些,要慢慢培養自己的編程思維,解決問題要從問題的根源考慮,不要過多考慮形式。

最後,祝你早日掌握這門神一樣的語言!


IT人劉俊明


凡是非工科學生,不要學C語言,這個語言搞的層次很低的,你很難取得真正的工作經驗以證明你懂。你每天學幾個小時都沒用。

C語言是我見過的最簡單的計算機語言,我是30年前當研究生時接了一個大專生沒做完的項目自己學的,c語言沒有自己本身的庫,大多自己寫,或者第三方的,所以你很難找到和招人公司一樣的。我上世紀80年代學c,90年代搞了8年c++,本世紀初又搞了10年java c# perl,最近5年搞javascript,python. 我的結論是,只要不是最底層,不要用c.

根據自己的特長,找一個基本的工作,在工作中學習。我最近吃多了在幫深圳一家小公司幹活,他們招了一個深圳大學生物醫學工程的碩士,我問她,你會啥語言,我好根據你懂的來講解,她說只搞過matlab. 這是我見過的最小白的一個了,我說沒關係,我給她一個python 程序的框架,她邊學邊幹,不到一個月,她就乾得很好了。

根據自己的特性,自學一些和自己相關的知識,從底層找到一個職位,在工作中學習,和公司一起成長。


石頭2115913219159


完全掌握有點異想天開了

先講個故事,主人公小明,在剛畢業求職的簡歷技能上他寫著C語言精通,在找到工作並幹了一年後他考慮跳槽,這時他的簡歷上C語言一欄變成了熟練掌握,又經過一兩年工作之後,簡歷上的C語言變成了熟悉。

講這個故事的道理很簡單

1.C語言想要完全掌握幾乎不可能,語法,語句並不能代表完全掌握。越深入瞭解越會覺得這東西很龐大。

2.自學想要完全掌握就更扯淡了,幾乎沒有人能夠不經過各種各樣的項目洗禮,僅僅靠書上那些東西掌握一門語言,大多數情況是看完書覺得自己掌握的差不多,遇到正真的商業項目就兩眼一抹黑了。


熱情的大神


不請自來,實在是有話要說,因為我曾經自學過C語言,可惜我所學的只能叫做皮毛,僅僅是基礎知識,我就學了兩個多月,學完基礎才發現自己什麼都不會。有些東西是需要靠天分的,沒有人指點,沒有一個好的學習環境,學這個枯燥的很,至於題主所說的完全掌握,我搞不清完全掌握是個什麼概念,不過我只知道語言是死的,人是活的,C語言緊緊是一門語言,就像學習英語一樣,至於怎麼去說去寫就取決於你自己了。



當你學完C語言的課程,你會發現什麼都不會做,只能和一些黑框框打交道,不像學習其他的一些東西可以讓你很有成就感,C只是入門,後面還有一大堆東西要學習的,想要從事開發工作可以說是任重而道遠。

有志者事竟成,只要努力就會有收穫!


電子維修


我學的那本《C語言程序設計現代方法》全書接近800頁,是國外大神級別的教授寫的,內容很全面也很詳細,建議題主看看。

具體說到完全掌握要多長時間的話,我應該是腦子笨的那種人,完全掌握沒個幾年是做不到了,原因很簡單,書裡的習題基本沒有答案,你就是上stackoverflow搜也沒有,有時候一個習題我能想兩三天。我在做習題的時候深深地體會到學好數學的重要性,數學好算法就好,一個程序如果有好的算法可以極大的節省內存,縮短程序運行時間,提高效率的同時還要預防內存溢出,這就需要合理的使用數據定義類型,比如int,short int,long int等。還有就是for循環和while循環應該是能相互替代的,可問題是有的題只能用for,用while打死也做不出來,也就說邏輯思維能力很重要。

重要的事情要說三遍:數學!數學!數學!


森淼文化傳播


首先問自己一個問題,你是想學會編程?還是想學會C本身。

學會C本身不需要很長時間,30-50小時就夠了。

如果是要學會編程,時間會很長,尤其網上一些不正確的觀點會影響你。—因為你沒有判斷能力。

通過C語言學習編程,是一條比較難的路,無論什麼語言從初級水平到中級水平,大概要1萬行代碼。寫一萬行C比較枯燥。

不要著急學一些高級的東西,不要害怕那些你聽不懂的概念。可以試試寫一個小程序,輸入一個四則運算表達式,算出結果。或者算數獨。

如果是想學編程,最好用一個好一點大學的課本。不是譚浩強那種。如果會編程譚浩強的書倒不錯。


qinzhang1


C語言可以說是目前最博大精深、使用最廣泛的語言了,基本上所有的應用都可以用C語言實現。從底層的嵌入式系統,到高端的操作系統都可以使用C語言。

所以你提的這個問題有點業餘,現在全世界估計也沒幾個人敢說自己完全掌握了C語言。並且完全掌握的標準是要經過實戰檢驗的,而我們不大可能有一個項目能把C語言的方方面面都囊括了。

一、長時間、大容量的學習會增加對這些知識的厭惡程度

至於需要多久學習,這個沒有標準,並且每天學習8小時,相當於每天都在做同一樣事情,用不了幾天就會煩躁的,學習不同於實戰,學習是純理論的,反覆、大量的短時間學習一樣東西,很塊會把一個人的興趣都搞沒了,就像再好吃的東西,每天都吃,那過一段時間也會吃煩的。這樣本來可能還對C語言懷有極大興趣的人,用不了幾天就會讓他再也不喜歡C語言了。我想學校裡面的課程表安排也不是單純只根據老師的教課時間是否衝突來安排的,而是多少會根據一門課的學習規律來安排的。

二、學習結果要有實戰檢驗

學習需要實戰檢驗,就像學校教了理論知識,往往還會佈置相應的作業來鞏固加深。而對於C語言來說,學習的時間應當只佔實戰時間的三分之一甚至更少。

就像我們常說的,一個項目,項目規劃和方案設計所要花費的時間如果是一個月的話,那麼編程的時間可能只需要10天,剩下的時間就是調試和查找、解決問題。

所以,C語言的學習一定要多多練習,開始階段可以多練練語法、表達式,程序結構、算法等基礎練習,中期階段就要找一些小型的項目來練習,比如編寫一個學習成績統計系統、寫一個簡單的計算器程序,在高級階段就要練習綜合性的大型項目了,例如做一個掃雷遊戲,編寫一個公司賬務管理系統,結合數據庫編寫大數據處理的項目等等。

三、學習要有目的性

前面已經說過,C語言是適用非常廣泛,我們不可能把每一部分都全部掌握,所以我們的目標開始不能定得太高,要先確定一個小目標,然後在小目標的基礎上不斷進步,不斷擴大目標,正確get到C語言的更多技能。

學習目的明確,動力就會更足,慾望會更強烈,例如,我們先定一個目標:我要在一週內能夠用C語言編寫一個簡單的實現加減乘除的計算器;2周內能夠製作一個五子棋遊戲。。。。

這樣不斷有目標,並且目標不斷提升難度,那麼能力自然就會快速上升。

四、學而時習之

除非是工作中要經常用到的知識,否則經過一段高強度的學習後,當時看著能力是沒問題了,當時經過1個月,半年,1年甚至更長時間後,有一些知識點就會忘記了,所以要是不是的拿出來看一看,不定時的找個小項目做一下,這樣才能讓這方面的能力歷久彌新。


老馬識途單片機


完全掌握,我就理解為成為C語言的專家,畢竟阿里P6可能也不敢用完全掌握這四個字。

「一萬小時定律」這個說法來自K. Anders Ericsson的論文《The Role of Deliberate Practice in the Acquisition of Expert Performance》。簡單的說就是要成為某個領域的專家,需要10000小時。

根據題主說每天8小時,假設8小時是有效時間,那麼:

10000/8/365,也就三年半的時間吧,祝順利。


坐不住的程序狗


不好意思,但我臆想樓主應該沒有系統的學過一門學科。這問題問的挺不現實的。

自學任何東西,最重要的是興趣,一天強迫八小時任何興趣都會被磨滅。而且完全掌握是個什麼概念?熟用任何庫的任何函數?那世界上應該沒人完全掌握任何一門編程語言。如果只是對syntax熟悉,和一些常用算法和數據結構那隻需一本入門書就可以了。 具體可以做做項目,做書裡的題之類的。有答案可以寫完了在看。給自己挑戰並且去完成能讓自己有成就感,而成就感能讓自己對這件事更有興趣。祝你好運


分享到:


相關文章: