数据结构与算法:轻松应对技术面试的秘诀

发表时间: 2020-07-06 17:01

近期致力于写出最简洁、最能清晰体现思路的算法题解法并分享出去,希望帮更多人意识到算法在工作和求职中的重要性

为什么面试官都喜欢问算法和数据结构?

因为算法和数据结构最能体现一个人的基本功。基本功扎实的人,无论是做工程还是去做算法,都不会差到哪里去。招人的时候都有一个标准:招进来的这个人至少要排到团队里面前 50%。只有这样招进来的人才能够让团队更加强大。不可能招一个很差的人来拉低平均水平……怎么评判这个人能够在团队里面排到前 50% 呢?其实是有很多标准的,包括逻辑思维能力、系统设计能力、职业素养,等等,而算法数据结构是里面最基础最重要的一个。


数据结构与算法能力的考核在以 BAT 为代表的国内大厂,乃至硅谷高科技公司的面试里占了相当大的比重。总结起来,考察的原因有四:

算法能力能够准确辨别一个程序员的技术功底是否扎实;

算法能力是发掘程序员的学习能力与成长潜力的关键手段;

算法能力能够协助判断程序员在面对新问题时,分析并解决问题的能力;

算法能力是设计一个高性能系统的必备基础。


如果你问,不会数据结构和算法,对工作有没有什么影响吗?我觉得肯定是有的。

首先,要知道程序员这个群体也是有金字塔结构的。如果连基本的算法和数据结构都不会,你基本上就属于比较底层的程序员。底层就意味着低薪酬。付出同样时长的脑力劳动,你赚得就比别人少。

其次,作为团队里的一员,很多时候你不光要做好自己的本职工作,也要和其他团队进行技术问题上的沟通,如果你没有扎实的算法和数据结构知识,很难在技术方面及时地发现问题所在并提出独到的见解。

另外,技术栈本身每天都在变化,同时也会随着不同行业不同公司变化。这种情况下,能否快速适应新技术和环境就显得尤为重要。这就要求你学好以不变应万变的的算法思维、逻辑思维能力。