大一新生先学C语言编程还是先学C语言的数据结构和算法?

****
image

这是一位粉丝朋友给我的私信,今天就他这个问题好好聊聊。

先学C语言在学数据结构和算法

先说答案建议先学C语言,掌握基本的语法基础后,再学数据结构与算法,C语言编程与数据结构和算法这两个完全是两个东西了。

学习数据结构和算法有一个很重要的前提,就是至少熟练掌握一门编程语言,编程语言掌握肯定越多越好,但是至少要掌握以下几点,因为数据结构实现,链表、图、等都会用到指针、结构体、指针函数等,堆栈、队列等需要掌握内存知识。

C语言和数据结构与算法的关系

C语言编程只是一种编程语言,同样的还有java、golang、python、php....等都是编程语言,它只是你实现功能的一种工具。

数据结构与算法不单单是C语言会有的,很多开发语言都会用到数据结构与算法,数据结构与算法不会和任何一种语言绑定死,它更像是一种抽象的方法、设计、思路。用来帮助你更好、更快、更轻松的使用“工具”。

image

两者重要性

编程语言

先说说C语言,首先编程语言至少要会一门,因为毕竟他是工具,是你用来实现功能的基础,所以基础知识就非常重要了,一定要好好理解、掌握基础知识,后面所学的扩展知识基本上都是在基础之上的一层封装实现。

就好比学完java基础后,我们还会学习spring框架,但是你只要查看spring框架的源码,你会发现它底层就是用java基础来封装的,如果你基础都不扎实,那还怎么看得懂框架源码呢?

数据结构与算法

数据结构与算法我认为是开发人员的核心竞争力了,这个更是重中之重了,优秀的研发人员实现功能往往不是简单的功能能运行就行了,而是怎么做到能更快、成本更低、更稳定的实现一个功能,这时数据结构与算法就体现了它的强大之处!通过学习并理解数据结构与算法,你会发现一个功能的实现可以采用多种实现方案,通过分析时间成本、空间成本选择一个贴切业务的方案。

学习路线图

image
image

学习书籍

C语言

  • 《C程序设计语言》

  • 《 C Primer Plus》

  • 《C与指针》

  • 《征服C指针》

  • 《C专家编程》

  • 《C陷阱与缺陷》

C++

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

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

  • 《STL源码剖析》

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

  • 《提高 C++ 性能的编程技术》

  • 《C++语言设计与演化》

  • 《C++沉思录》

  • 《C++标准程序库》

  • 《C++模板元编程》

数据结构与算法

  • 《大话数据结构》

  • 《啊哈!算法》

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

  • 《剑指Offer》

  • 《程序员代码面试指南》

  • 《编程珠玑》

  • 《编程之美》

  • 《挑战程序设计竞赛》

  • 《算法(第四版)》

  • 《算法导论》

数据库

  • 《 MySQL必知必会》

  • 《MySQL是怎样运行的》

  • 《 高性能MySQL》

  • 《 MySQL技术内幕: InnoDB存储引擎 》

  • 《 Redis设计与实现 》

  • 《Redis实战》

  • 《 数据库系统实现》

学习视频

****《郝斌C语言自学教程》****

比较老的视频,但是讲的很详细,适合小白。

image

【C语言】《带你学C带你飞》

小甲鱼的C语言教学,B站编程语言最能打的教学视频之一。

image

郝斌数据结构

虽然比较老,但是讲的比较详细,容易理解,对初学者非常友好。

image

数据结构-浙江大学

课程是由陈越与何钦铭共同录制,b站与慕课网都有,慕课网比较清晰一些

image

数据结构与算法基础

课程由青岛大学王卓老师录制,非常适合考研,讲的题比较多。

image

你可能感兴趣的:(大一新生先学C语言编程还是先学C语言的数据结构和算法?)