关于面试考算法题
Posted Small leaf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于面试考算法题相关的知识,希望对你有一定的参考价值。
关于程序员面试考算法的意义,我至今都没有想明白意义何在。我在网上看了很多这方面的文章,无非就是以下两个观点。
- 说的直白点的就是,你不刷题别人面试不让你过。
- 说的委婉点,刷题多了你的思维就会更加好,我们写的代码不就是算法吗,我们在思考最优解的时候方案就越多。
对于第一点,如果不大量刷题,很多解题的方案,在很短的时间根本想不到很好的解题方案。对与非算法工作的,我相信大家如果遇到很复杂的问题,第一时间不是傻傻的自己思考。而是百度,Google,找到合适的方案,然后根据自己的经验去找到合适的解决方案。
我是认为,多去经历,项目经验,解决问题的能力,沟通能力远比刷题重要多,刷题多解题能力强不代表你的工作能力强。就好比你考试能力强,并不代表你处理问题的能力强。
对于第二点,我不太好反驳,但是我写了5年的代码,算法真没有用到几次,反而是设计模式,设计思维,如何设计程序扩展性好,更加重要。
对于设计思维为什么说远比算法重要呢?
算法可能是解决问题的最优解,设计思维是能够高效的解决问题,我设计的程序扩展高,稳定,新需求来了不用大动代码。现实工作当中,大部分人的用户量没到大到说要用最少时间负载度解决问题,如果面试的岗位是这样的岗位自然而然需要。
但是呢?现在的大厂就是这么卷,就要面试算法。用算法来考察你的能力。为什么今天我要这么愤愤不平呢?
我就是这样一个人,在工作我能很出色的完成做的很好,沟通协作能力,不必那些只知道死敲代码差,设计的功能也尽量往着最优的方面走。
但是最近面试的几家公司,又要面试算法,又要面试算法,每当这个时候我就很反感,反感到炸。
因为事实上工作中,有多少地方需要用到这些算法的?一个人沟通协作,解决问题的能力更加重要,而不是应试能力。
好吧,我承认我工作后确实没有怎么深入了解算法,但是我大学数据结构,算法基本是满分。工作后发现没什么卵用,我现在在一个二线大场,没有去过一线大厂,不知道一线大厂拧螺丝是否也需要算法最优解。
为什么我这么愤愤不平呢?其实我只要拿出2个月,慢慢刷一遍算法题,基本上面试都能解决,但是自己不会去做,就是觉得对自己没有帮助。
事实上,你要去更好的公司,你要跨过门槛,就需要去刷算法,去理解。
其次我刚刚说的设计思维,如何更好的设计这个功能,其实也是算法寻求最优解的一个过程。
你想要更高的公司,去更好的平台,你不得不去刷算法,而且不能是无脑的刷,要去理解。
其实以前跟朋友交流,如果小孩学习编程,学什么对小孩最好呢?我以前的回答也是算法,必须要培养这个思维。
所以说算法还是很重要的,不能去反抗。
接下来自己该如何去学习呢?
我觉得如果是leetcode一题题去刷,没有什么意义,我觉得归纳去刷,哪一块不熟悉重点去刷,比如说二叉树,然后结合工作上,有哪些用到的框架使用了这个,然后对比,一步步把基本的全部刷完。
然后常见的解决问题的方案都得掌握。
能达到常见的题目,能够想出方案+编码成功。
我今年接下来好好的解决算法这个问题,还有半年时间,我不需要太急,慢慢的刷。刷题,理解,对比,归纳。
我期待半年之后的自己有所成长。
我期待网上那些人说的,只要你刷会有帮助的,只要你坚持下去,我现在就开始,我要看看到时候进步有多大。
我要进入一线大厂,看看在这些公司里面拧螺丝,到底需要多么牛逼的算法。
以上是关于关于面试考算法题的主要内容,如果未能解决你的问题,请参考以下文章