Get Mystery Box with random crypto!

最近去投了某些企业的基础架构岗位,进行了一些面试,也有幸获得了 | Phonograph

最近去投了某些企业的基础架构岗位,进行了一些面试,也有幸获得了一些技术面试的通过。其中就包括被大家公认的 对算法要求比较高的企业。
我不认为我有资格指导大家;但我还是想多多少少分享一些自己的经历,给参与校招、实习、或者对前途迷茫的朋友们 作一些参考。毕竟,我也曾是、并且现在依然是这样的人。

1. 面试前需要刷很多算法题吗?
建议大家还是要做一些,但如何操作完全是见仁见智。对于我个人来说,作为一个 0 算法竞赛经验,从大学开始学计算机的人,我做了某个网站上面的 一百道题左右,就参加了面试。我认为学习的规律在于,不仅要付出努力,还要把努力付出在正确的方向。无论大家选择了哪个刷题网站,我推荐做这个网站上最热门的 100 道题目(很多网站都有这个榜单);或者如果时间确实不够充裕,那只做一部分也行。我一如既往的观点是,做题在精不在多。比如拿到一道算法题,先尝试自行实现一个能 AC 的代码出来;无论最终能否实现成功,都要去看题解,去看最优复杂度的算法,思考自己与他们之间的差异。我个人认为,学而不思是不可靠的;去思考别人代码的精妙处也是学习的过程,而去不断反思自己的代码 确实能使我们在生产中实现的算法更有竞争力。总而言之,我认为做题要精,重在反思。

2. 算法题的 bar 是什么?做不出来是不是就会被刷掉了?
这并不绝对。算法题目是面试中的重要参考指标,但它必然不是唯一的。我在面试中多次经历审题错误,十几分钟的代码白写了;我实现的算法时间复杂度大多远远不是最优的,甚至有的有正确性问题;有些特别基础的算法实现,我也花费了相当长的时间。即使如此,我也有幸通过了不少技术面试。

以后可能还会写一些类似主题的短文。希望我的经历能帮到大家。