大一新生先學(xué)C語言編程還是先學(xué)C語言的數(shù)據(jù)結(jié)構(gòu)和算法?

****
image

這是一位粉絲朋友給我的私信,今天就他這個問題好好聊聊。

先學(xué)C語言在學(xué)數(shù)據(jù)結(jié)構(gòu)和算法

先說答案建議先學(xué)C語言,掌握基本的語法基礎(chǔ)后,再學(xué)數(shù)據(jù)結(jié)構(gòu)與算法,C語言編程與數(shù)據(jù)結(jié)構(gòu)和算法這兩個完全是兩個東西了。

學(xué)習數(shù)據(jù)結(jié)構(gòu)和算法有一個很重要的前提,就是至少熟練掌握一門編程語言,編程語言掌握肯定越多越好,但是至少要掌握以下幾點,因為數(shù)據(jù)結(jié)構(gòu)實現(xiàn),鏈表、圖、等都會用到指針、結(jié)構(gòu)體、指針函數(shù)等,堆棧、隊列等需要掌握內(nèi)存知識。

C語言和數(shù)據(jù)結(jié)構(gòu)與算法的關(guān)系

C語言編程只是一種編程語言,同樣的還有java、golang、python、php....等都是編程語言,它只是你實現(xiàn)功能的一種工具。

數(shù)據(jù)結(jié)構(gòu)與算法不單單是C語言會有的,很多開發(fā)語言都會用到數(shù)據(jù)結(jié)構(gòu)與算法,數(shù)據(jù)結(jié)構(gòu)與算法不會和任何一種語言綁定死,它更像是一種抽象的方法、設(shè)計、思路。用來幫助你更好、更快、更輕松的使用“工具”。

image

兩者重要性

編程語言

先說說C語言,首先編程語言至少要會一門,因為畢竟他是工具,是你用來實現(xiàn)功能的基礎(chǔ),所以基礎(chǔ)知識就非常重要了,一定要好好理解、掌握基礎(chǔ)知識,后面所學(xué)的擴展知識基本上都是在基礎(chǔ)之上的一層封裝實現(xiàn)。

就好比學(xué)完java基礎(chǔ)后,我們還會學(xué)習spring框架,但是你只要查看spring框架的源碼,你會發(fā)現(xiàn)它底層就是用java基礎(chǔ)來封裝的,如果你基礎(chǔ)都不扎實,那還怎么看得懂框架源碼呢?

數(shù)據(jù)結(jié)構(gòu)與算法

數(shù)據(jù)結(jié)構(gòu)與算法我認為是開發(fā)人員的核心競爭力了,這個更是重中之重了,優(yōu)秀的研發(fā)人員實現(xiàn)功能往往不是簡單的功能能運行就行了,而是怎么做到能更快、成本更低、更穩(wěn)定的實現(xiàn)一個功能,這時數(shù)據(jù)結(jié)構(gòu)與算法就體現(xiàn)了它的強大之處!通過學(xué)習并理解數(shù)據(jù)結(jié)構(gòu)與算法,你會發(fā)現(xiàn)一個功能的實現(xiàn)可以采用多種實現(xiàn)方案,通過分析時間成本、空間成本選擇一個貼切業(yè)務(wù)的方案。

學(xué)習路線圖

image
image

學(xué)習書籍

C語言

  • 《C程序設(shè)計語言》

  • 《 C Primer Plus》

  • 《C與指針》

  • 《征服C指針》

  • 《C專家編程》

  • 《C陷阱與缺陷》

C++

  • 《 C++ Primer 中文版 第五版 》

  • Effective 三部曲:《Effective C++》、《More Effective C++》、《Effective STL》

  • 《STL源碼剖析》

  • 《 深入探索C++對象模型 》

  • 《提高 C++ 性能的編程技術(shù)》

  • 《C++語言設(shè)計與演化》

  • 《C++沉思錄》

  • 《C++標準程序庫》

  • 《C++模板元編程》

數(shù)據(jù)結(jié)構(gòu)與算法

  • 《大話數(shù)據(jù)結(jié)構(gòu)》

  • 《啊哈!算法》

  • 《漫畫算法:小灰的算法之旅》

  • 《劍指Offer》

  • 《程序員代碼面試指南》

  • 《編程珠璣》

  • 《編程之美》

  • 《挑戰(zhàn)程序設(shè)計競賽》

  • 《算法(第四版)》

  • 《算法導(dǎo)論》

數(shù)據(jù)庫

  • 《 MySQL必知必會》

  • 《MySQL是怎樣運行的》

  • 《 高性能MySQL》

  • 《 MySQL技術(shù)內(nèi)幕: InnoDB存儲引擎 》

  • 《 Redis設(shè)計與實現(xiàn) 》

  • 《Redis實戰(zhàn)》

  • 《 數(shù)據(jù)庫系統(tǒng)實現(xiàn)》

學(xué)習視頻

****《郝斌C語言自學(xué)教程》****

比較老的視頻,但是講的很詳細,適合小白。

image

【C語言】《帶你學(xué)C帶你飛》

小甲魚的C語言教學(xué),B站編程語言最能打的教學(xué)視頻之一。

image

郝斌數(shù)據(jù)結(jié)構(gòu)

雖然比較老,但是講的比較詳細,容易理解,對初學(xué)者非常友好。

image

數(shù)據(jù)結(jié)構(gòu)-浙江大學(xué)

課程是由陳越與何欽銘共同錄制,b站與慕課網(wǎng)都有,慕課網(wǎng)比較清晰一些

image

數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)

課程由青島大學(xué)王卓老師錄制,非常適合考研,講的題比較多。

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容