由于你是非程序員,相關基礎知識少,如果從c語言入手,會很枯燥無味,加上c語言偏向于底層硬件,內存分配需要自己寫,就是有一定編程基礎的學好c語言都不那么容易。
這就好比一個人還沒有摸過手機,甚至不知道手機長什么樣,決定要學造手機,沒有相關基礎,一上來就學單片機,學cpu底層一樣,很多專業知識點你根本搞不懂,更無從下手,每個字都認識,但是卻完全看不懂,這樣的感覺肯定會使你喪失信心失去耐心,知難而退,放棄學習。
如果一開始就借來一部手機,先學習如何安裝手機軟件,如何使用手機的各種功能,拆解手機,學會換手機零件,而不是先從主板、cpu、供電底層研究,先簡單后容易。
c語言偏向于底層造輪子,python,各種輪子,各種零件都已經給你準備好了,你拿來組裝就是了,不需要深入底層,你用python組裝了很多有趣的東西,比如爬蟲,人工智能等,信心大增,培養了濃厚的興趣,也知道了軟件運行的大體流程,這個時候你再學習c語言,更加深入的研究底層運作,你已經具備了相關的基礎知識,學c語言也就得心應手了。
吐糟一下現在的大學教育,一上來就學c語言,充斥著各個大學課本,尤其是那個什么譚xx的,不符合人類認識事物的客觀邏輯,好多人都會覺得這玩意真的好枯燥,c語言一堆代碼,藍底白字,各種命令,抽象枯燥,不少人學了半天c語言,還搞不清這玩意能干啥,一臉蒙蔽,多少人因此打退堂鼓,譚xx的c語言教程應該改名為《c語言從入門到放棄》勸退系列叢書
程序員的核心問題是什么?控制復雜度。
萬事萬物都是復雜無序的,程序員能掌控這些事物,靠的是能掌控復雜度。把復雜的事物去除葉子,切割,只留下主干,只關注核心簡單的小問題,解決了小問題,把這些小問題串起來就解決了大問題,要學會分割問題,抽象問題,學東西也是要以程序員的邏輯去學,c語言牽扯很多細節問題,python準備了各種零件,等著你來裝配,這是一種高度抽象,屏蔽了很多細節,學東西由淺入深,你沒有基礎的話,那就先從python學起