对于一个具体的工程设计问题,没有受过专业训练的人很容易忽略复杂的细节,将问题想简单。盖一个房子不过是建四面墙,上面加个屋顶而已,这里面包含了诸多复杂的工程问题。所以外行看来很简单的问题,实际上是很复杂的。
比如:
排行榜不就是排个序吗?
但能否达到性能标准?
搜索引擎不就是把互联网上相关的信息展现出来吗?
但是怎么定义“相关信息”?
微信支付不就是扫码然后付款吗?
但是怎么避免网络波动带来的支付失败问题?
Kruskal 最小生成树算法,思想非常简单:对所有边排序,之后从小到大选边,只要和已有的边没有形成环,就选择,否则抛弃。
落实到具体代码中,怎么判断“是否和已有的边形成环”?
在历史上,Kruskal 算法的思想很早就出现了,直到人们意识到可以用并查集进行环检测之后,它才成为了一个实用的算法。
所以,程序员的核心价值,是具体用代码实现出功能,而不是侃侃而谈思想或者概念。
05
当然如果遇到真才实学的面试官,面试者随便吹几个概念,其实也不可能蒙混过关。有经验的面试官一定能深入问出面试者的水平。但这对面试官的要求太高了。
高水平的程序员,他的主要时间应该用来完成工作,而不是去面试。
这样一来,算法面试的另一个优势自然而然就出来了:面试官好准备。
对于系统设计问题来说,面试官的水平要远远高于面试者才能真实地鉴别出面试者的能力。算法就不一样了,即使面试官的算法水平低于面试者,也可以进行考核。因为面试官可以直接看答案,理解清楚解题思路和代码就行。
正因为如此才会出现:
一个算法面试官问你一个算法问题,你没做出来问题不大,这并不代表他比你强。因为你们处于信息不对等的位置。
06
当然算法面试还有更多优点。
-
和语言无关:不管是编译型语言,还是解释型语言;不管是前端还是后端语言,都能用来解决算法问题;
-
对硬件条件要求低:并不需要非常特定的环境或者配置;在公司的会议室可以完成,走在路上能完成,面对面可以完成,远程也可以完成。拿张纸都可以开始;
-
使用算法问题,可以很容易地比较面试者的水平差异。其他领域的问题,很难像算法问题一样,在不同难度级别上,产生这么多看似完全不重复的问题。不管是深度还是广度,不管是简单的还是难的,总会有合适的算法问题让面试官选择,以测试出你的水平上限;
-
正因为算法问题的选择很多,所以使用算法面试,非常容易成规模地进行招聘。在一段时间里进行几百场面试,题目不会重样。这样,避免了泄题的问题。
但是算法题最大的缺点,就是容易漏过人才。不擅长算法的人不意味着不胜任计算机专业的工作。
那大厂错过了人才怎么办?
他们可能并不在乎
反正有简历源源不断地涌进来,他们只要招聘到足够数量满足自己需要的人就可以了。
通常来讲,擅长算法的人,近乎都能够很好地胜任软件工程师的工作。反之,不擅长算法的人,虽然有可能是人才,但更加可能不是人才。
07
很多小公司面试不考算法的原因,是因为他们不需要考察通用问题解决能力。小公司更注重专业能力的考察。能干活最重要。他们并不会接触到那么多创造性的问题。
招聘领域专家时虽然也有算法,但难度明显降档,最典型的就是 Google 在面试 Homebrew 的作者 Max Howell 的时候,给出的算法面试题“翻转二叉树”。这个问题在 Leetcode 上就是一个 easy ,然而他并没有写出来
08
所以就要揭晓我们究竟要怎么样才能不考算法就进入大厂,当然就是成为领域专家。让企业不能把你当做是一个普通的求职者。
之前有一个清华一个学霸,在自己写的CPU上运行自己写的操作系统,这样的人才,大厂这不分分钟给抢了,谁还在乎你算法题写得好不好啊。
不过话又说回来了,成为领域专家还是比掌握那些基本的算法面试问题要难的。但很多时候我们对现实不满,苦苦追求其他捷径。
再但是,其他的路其实是更艰苦的路。而我们总容易忽略摆在眼前的,其实已经是捷径了。
(不说了,我去练习算法了)
这里是小王,几段文字,分享生活。
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
《MySql面试专题》
《MySql性能优化的21个最佳实践》
《MySQL高级知识笔记》
文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图
关注我,点赞本文给更多有需要的人
g-zCLNDiF8-1711151129902)]
[外链图片转存中…(img-GG6Z7u3h-1711151129903)]
文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图
[外链图片转存中…(img-KPnUEWDX-1711151129903)]
关注我,点赞本文给更多有需要的人