你想成为一个优秀的技术人么?我相信我可以,但我现在还不是
为什么要学习数据结构与算法
所谓的“新技术”,其核心和本质的东西都还是与基础知识离不开。基础知识就像是一座大楼的地基,它决定的我们的技术高度,想快速掌握一门技术,基础能力一定要过硬,“内功”一定要深厚。
而所谓的“基础内功”恰恰正是大学里的基础课程,如操作系统、计算机网络、编译原理、数据结构算法等,然而很少人能在大学期间真正的熟练掌握这些课程。
1、拒绝一辈子CRUD
在公司中大部分时间都是在写业务代码,用的是别人封装好的接口或者库,基本不用自己实现数据结构和算法,但是不需要自己实现,不代表不需要了解,不知道这个调用接口或者库背后的原理,也不知道时间和空间复杂度分析,如何知道业务开发中调用哪种数据结构性能最优资源消耗最少呢。
当我们使用一些开源框架的时候,掌握了数据结构和算法也更有利于我们阅读源码和定位问题。
2、写出高质量高性能代码
如果想要进步,就不能写出一些只能凑合的代码,只完成基本功能从来不考虑非功能的需求,要多关注性能效率、资源使用。
3、提升思维逻辑,训练大脑的思考能力,从而增加自己解决问题的思路和方法。
学习目标
1、都有哪些数据结构和算法
2、每种数据结构和算法背后的设计思想
3、如何选择使用哪种数据结构和算法
4、在实际的编码开发中,如何应用这些数据结构和算法
5、熟悉一些经典的数据结构和算法
6、能够顺利通过面试中的数据结构与算法
7、建立时间、空间复杂度意识
8、写出高质量代码,能够设计基础架构,提升编程技能,训练逻辑思维
学习方法
核心:一定要动手写
1、学习“数据结构与算法之美”并做笔记
2、刷LeetCode
我个人喜欢先巩固一遍理论知识,然后再进行刷题实践。后面开始刷题的时候再补充如何刷leetCode。