前言
语言只是工具,算法才是程序的灵魂。”这句话相信每一个程序员都听过无数次。
然而在实际的工作中,一个产品从开发到上线,似乎哪一步都用不到数据结构与算法。
于是很多程序员都有这样一种错觉:就算我不懂算法,只要语言写得溜、开发框架用得熟练、封装好的各种接口、库调用得熟练,照样能实现老板“天马行空”(傻逼)的需求,照样可以混到高薪。
但是作为一名开发工程师,你真的愿意做一辈子的 crud boy 吗?
1.三流才比招式,高手只拼内功
如果把一个程序比作一辆车,那么语言就是启动这辆车的钥匙,而算法则是这辆车的发动机。
你可以在不懂发动机的运作原理的情况下依然把车开到飞起来,但等车出现了问题,你只能干瞪眼。
而写程序这件事情,就像开车一样,经验能帮你很多,但如果你对数据结构与算法完全不了解,那么你永远只能当一个代码搬运工。
举个例子,如果你不知道列表,堆,栈,树,图等算法原理,不懂得时间、空间复杂度分析,在存储某个数据时,你是用 ArrayList 还是 LinkedList呢?要知道在不同的情况下选择Ar