写点什么

架构感悟 8- 为什么喜欢面试算法

用户头像
旭东(Frank)
关注
发布于: 2020 年 07 月 29 日



进一线互联网公司,或者不满足于一辈子干纯业务应用开发,希望在后端做点事情的同学来说,备战面试时,算法是必不可少的。



算法是你努力的样子



天赋决定上限,努力决定下限



毕业生刚毕业,工作经验较少,这样能体现自己与别人的差距。就只有基础知识是否扎实,思维是否严谨,理解是否透彻,知识是否“私有化”(是否变成自己的理解记忆的)。



有些同学刷leecode,的确很好,但不能为了刷题而刷题,应该去思考每个题背后解决问题的能力考核点,即建模思想和解题思路。思路有了,解题总是很轻松,长进也很大。



算法体现了思维能力



“写一个函数将 ipv4 地址字符串 (仅包含数字,点,空格) 转化成 32 位整数,另外,数字和点之间的空格是合法的,其他情况均为非法地址,要求输出合法地址的 32 位整型结果。”



这个题目不需要任何的算法背景和技巧,纯粹考察候选人的基本编程素质:逻辑思维是否清晰,细节是否考虑全面,是否能写出 bug free 的代码,是否有计算机思维能关注时间空间复杂度等。而且在候选人完成代码之后,还会要求候选人将代码讲给我听,当然不是因为面试官看不懂,而是这样还能顺带考察候选人的表达能力,沟通能力,毕竟讲给别人听让别人理解要比单纯自己理解难很多。



除此之外,不建议编程题目涉及需要记忆的算法,比如被很多人诟病的面试题:写个快排,没有人会天天背诵快排算法,写不出来也理所应当,如果换个问法,比如给候选人讲一下快排的思想,然后让候选人代码实现,测试候选人是否能写出 bug free 的代码,这反倒是一个比较好的编程题目。



还有,不建议面试需要特殊解题方法或技巧的编程题目,比如需要用到动态规划,线段树,Trie 树等高级一点的解题思路,毕竟大家工作中不常用到。



发布于: 2020 年 07 月 29 日阅读数: 54
用户头像

旭东(Frank)

关注

世事洞明皆学问,日思一刻,日拱一卒。 2011.04.01 加入

微信公众号:ThinkingInDev,记录工作过程中点滴思考。这里有坑,有料,有思,有想的开发工作日记

评论

发布
暂无评论
架构感悟 8- 为什么喜欢面试算法