在不少程序员看来,数据结构,算法这一类的东西感受没用,在实践中都不经常使用,因此都会很忽视这类内容,可是在不少公司看来,尤为是大公司看来数据结构和算法这种东西确实最有用,并且常常在笔试和面试中出现。为何会这样呢?程序员
一、看似最枯燥、最基础的东西每每具备最长久的生命力面试
像数据结构,算法这类东西,还有有一些计算机原理之类的知识,这些东西都是编程和实践的根本。他们看似枯燥和基础,可是具备最长久的生命力。算法
我知道,你可能熟悉各类框架,各类开源库的使用,可是那又怎样?看着各类框架和开源库的文档,只要有编程基础,谁不会照着葫芦画瓢呢?spring
不要每天谈什么框架,什么库,框架每一年层出不穷,但是扒下框架那层炫酷漂亮的外衣,里面仍是那些最基础的知识和原理。就是这些算法,数据结构,计算机网络,计算机原理这些看似基础的东西。若是这些掌握扎实了,你才有更加深一步的可能。编程
编程语言和编程框架等这些表面的东西,对于一个基础扎实的程序员来讲,学习起来很快,成长也很快,若是这些基础和原理都懂,你就可能会写出这样的框架来。技术更新迭代快,语言层出不穷,可是数据结构,算法,计算机原理这类的东西确实没有变。性能优化
二、数据结构和算法在面试的时候最容易量化和体现能力微信
什么意思呢?在面试或者笔试的时候,面试数据结构和算法,能够面出你的思惟能力,思考能力,这个能力对于编程来讲很重要。好比:若是面试你使用过什么框架吗?你说:会,使用过,而后你谈了谈使用这些框架的一些知识和遇到的坑,以及怎么解决的?经过这样的问题,不能看出的思惟能力和编程能力,只能看出你确实会用这个东西。网络
而面试算法和数据结构不同了,觉得面试这种东西可让你写出来,或者写伪代码,并且这些能力若是你有,你的成长空间也高。面试你编程的实践能力,不可能让你上机去敲一个模块的实现吧?而让你写个算法和数据结构却很方便,也能够量化。欢迎你们关注个人微信公众号:非著名程序员数据结构
因此,不少人平时不用算法和数据结构,在跳槽的时候,也会提早去复习算法和数据结构的知识,由于这是面试中很常见的问题。可是我仍是建议你们可以一直有这种能力。不要由于不经常使用而忽视这些基本的东西,这些东西才是精华。架构
目前大部分程序员是不重视这类东西的。而优秀的程序员是很是重视这些东西的,因此他们才优秀。要想优秀的话,你懂得。
注:关注做者微信公众号,了解更多分布式架构、微服务、netty、MySQL、spring、、性能优化、等知识点。
公众号:《 Java大蜗牛 》