C語言還是很基礎(chǔ)的編程語言,還是值得去學(xué),那么怎么去學(xué)?什么人才能學(xué)好?為什么學(xué)到一半就早早繳械投降了?眾多迷霧,眾多的困難,怎么破局?
很多對編程感興趣的小伙伴,找個(gè)所謂的高手,問了幾個(gè)編程入門需要的書,也是拼了,呼呼的買了一堆C語言,C++,java等等,本著多多益善的原理,然后從C開始看,最初幾天看的熱火朝天,把如何編譯C代碼,如何打印基本的字符串看的很是仔細(xì),隨著難度的增加,越來越覺得吃力,有點(diǎn)寸步難行的趕腳,怎么辦啊,網(wǎng)上找點(diǎn)資料看看,看的似懂非懂。然后再堅(jiān)持看了幾節(jié),迷糊的越來越厲害,這個(gè)時(shí)候開始懷疑自己的學(xué)習(xí)方法或者書買錯(cuò)了,開始自我否定,在網(wǎng)上搜搜覺得C語言是不是太難了,很多是從java開始學(xué)的。于是先放棄C開始主攻java,開始學(xué)習(xí)java,最初幾章明顯學(xué)的比C語言快點(diǎn),畢竟有點(diǎn)基礎(chǔ)了,結(jié)果一遇到思維意識形態(tài)之外的又開始迷糊,又掉到學(xué)習(xí)C語言時(shí)候的困頓中,于是自我否定。編程太難,不是每個(gè)人都能學(xué)會的,徹底放棄。
這是小白常見的放棄之路的復(fù)盤,有這種類似情況的,或者有類似經(jīng)歷的對位思考下。
那么如何破掉這些困局?
一. 懷揣極大興趣
客觀評價(jià)寫代碼是一件,很枯燥乏味的腦力勞動,需要極大的驅(qū)動力,一般驅(qū)動人去做一件事,興趣是其一,強(qiáng)大的精神力其二。興趣是第一老師,有了興趣就可以克服一些困難,遇到問題或者需要攻堅(jiān)的時(shí)候能夠挺得住。編程相對來說知識點(diǎn)很分散,難易程度不統(tǒng)一,細(xì)節(jié)極多,持續(xù)不斷的克服問題,需要有一定的精神力。
二.適宜的學(xué)習(xí)方法
編程學(xué)習(xí)存在一定的技巧性,原則上先要把一門語言入門之后再切入到別的語言,語言本身極具靈活性,學(xué)好一樣平移到另外層次是切實(shí)可行。入門一種語言基本上意味著熟悉了一種語言的特性。切忌一種還沒學(xué)好就中間換來換去,這是以犧牲自身興趣點(diǎn)為代價(jià)的。
選擇一本合適的入門書籍,建議選擇老外的,c primer plus 以及c程序設(shè)計(jì)語言都是很經(jīng)典的入門書籍,很多人都提到了用視頻學(xué)習(xí),零基礎(chǔ)前幾節(jié)的學(xué)習(xí)可以采用視頻入門的方式,有了感覺建議還是回歸到書本上。在書本上遇到難點(diǎn),可以找對應(yīng)的視頻去學(xué)習(xí)。明白了理解了再回歸書本,為啥建議采用書本,從效率上講書本的學(xué)習(xí)速度遠(yuǎn)快于視頻,還有些人提到了書本上的東西看的頭發(fā)麻,如果真是這種狀態(tài),需要靠視頻才能激發(fā)自己學(xué)習(xí)的動力,那么可以問下自己,是不是進(jìn)入學(xué)習(xí)狀態(tài)了。
無論覺得多難,還是要嘗試建立自己的知識體系,對于初學(xué)者來說這可能是一個(gè)極大的挑戰(zhàn),編程就是一個(gè)思維認(rèn)知過程,認(rèn)知清楚了框架也就清晰了,那么嘗試著勾勒知識框架也是加速引導(dǎo)思維認(rèn)知的一種途徑。
三, 不要鉆過多的牛角尖
很多初學(xué)在學(xué)習(xí)C語言時(shí)候,開始恨不得把內(nèi)存的工作原理以及printf底層實(shí)現(xiàn)挖個(gè)底朝天,這些從長遠(yuǎn)看都需要做,但是作為入門級別的,還是繞開,先做到會用,然后理解到了一定層次再去深入理解,很多初學(xué)者開始學(xué)的特別痛苦,覺得自己什么都不會,什么都搞不懂,但什么都還想搞明白。不否認(rèn)有一次性搞定的天才,但大多數(shù)人還是凡人,還是需要先理解表面的含義,再去深挖底層含義。
四 堅(jiān)強(qiáng)的毅力
編程百分九十以上的東西,都需要自學(xué),自學(xué)依賴很強(qiáng)的毅力。說的通俗點(diǎn)就是堅(jiān)持。面對如此枯燥無味的代碼,需要保持長時(shí)間的專注度和忍耐力。沒點(diǎn)骨氣,做不到。淺嘗輒止基本上做任何事情都是失敗者。
以上四點(diǎn)不是,任何一點(diǎn)做不到都能成為放棄學(xué)習(xí)的理由,都是一個(gè)從開始學(xué)習(xí)到放棄的經(jīng)典案例。真要想學(xué)好C語言,不兼具點(diǎn)拼搏因子基本上和入門漸行漸遠(yuǎn)。