面试大厂
- 无论是校招还是社招,大厂都喜欢让人手撕算法代码。
业务开发工程师
- 虽然整天都是使用CRUD,但是想要用好,用对类库,就需要了解它们的设计原理(数据结构),时间、空间复杂度分析等。
- 我们还会使用到各种框架,中间件和底层系统,譬如Spring、RPC框架、消息中间件、Redis等,里面有很多基础的数据结构和算法的设计思想。
- 掌握数据结构和算法,对于阅读源码,理解背后的设计原理都非常有用。
基础架构开发工程师
- 比如设计RPC框架,想达到开源水平,必须在算法优化,数据存取效率,内存节省等方面比别人更胜一筹。
编程能力
- 性能好坏是该能力的一个非常重要的评判标准,如果连程序的时间、空间复杂度都不会分析,很难写出性能较优的代码。