知乎热议:算法被吹上天了吗?步骤员刷题只为口试?
算法只是口试拍门砖?
俗话说,“言语只是东西,算法才是步骤的灵魂”。关于步骤员来说,算法一直是一个绕不开的门槛。近两年,越来越多的互联网公司在招聘环节注意算法的察看。但关于步骤员来说,真的有必要死磕算法吗?
克日,知乎上一条关于步骤员对否要死磕算法的讨论热度颇高。题主自称本人在刚入门编程前以为算法很紧张,但在入门之后却发觉算法用处不大,由于题主在实践业务中碰到的成绩和以前处理的成绩都跟算法不沾边。那么成绩来了,假如只是做编程的话,是不是没必要死磕算法?
不同岗亭对算法的把握水平不同
关于这个成绩,有网友以为,假如只是想做好眼前的编程事情,好比只是完成一些简便的业务逻辑,不思索功能(听从、内存、功耗等)的话,那么学习算法的确“没用”,也有网友称,“95% 的公司并不必要算法,在必要算法的那 5% 的公司里写代码,写的代码 95% 是业务代码,和算法没啥干系”。
网友轩辕之风以为,算法固然紧张,但不同岗亭必要把握的水平不一样。假如做前端、客户端开发,或是做后端只写 API、对接口、做 CRUD,把握一些算法基本就充足了。但假如做的是离开接口层的后端,常常为了功能,要与 CPU、缓存、内存、I/O 等东西死磕,就必要多刷 LeetCode,把算法学精学透。这些体系功能每提升 0.1 个百分点,都约莫会对业务带来宏大的提升。
谷歌 AI 研讨员沈卓然以为:
实践事情中绝大大多内容都完全用不到算法,更多是增删查改、对接 API、调停数据格式之类的。更进一步的事情,通常也是和体系计划干系更大,而不是算法。仅有在做比力底层、比力尖端、大概十分功能敏感的场景下才约莫触及本人完成算法,但这些场景所需求的也远远不仅是算法。实践上,在事情中反而必要注意不要过分使用算法。软件工程的目标是写出易懂、易互助、易维护的代码,而不是看上去很“智慧”的,大概是听从高一点却繁复很多的代码。
不外这并不是说算法不紧张。我以为在实践事情中算法知识最紧张的作用是晓得某些算法是存在的,如此才干够了剖解系的底层原理,大概在必要的时分找到切合的算法完成并引用。
算法在口试中承当“智力题”的作用
固然各位关于算法的紧张性看法不一,但一个共鸣是:越来越多的互联网公司,尤其是大厂,在口试中注意算法才能的稽核。
此前有脉脉用户表现,硅谷大厂,无论是应届生照旧事情几年的步骤员,只需是一个写代码的岗亭,都特别器重手撕代码(数据布局与算法,LeetCode 典范标题)这个环节,这个环节体现不佳,口试官约莫就没有兴致去了解其他的才能,他们很忙。
取得高赞回复的答主 Xinyu Chen 以为:口试里的算法题是美国大科技公司(主要是从前的 Google)带起来的一股歪风,厥后其他公司徐徐效仿。同时求职者为了在口试中取得竞争上风,就开头经过刷题来练习本人处理口试算法题的才能。LeetCode 这类网站也是在这种情势下产生并渐渐盛行起来的。
谷歌 AI 研讨员沈卓但是以为,算法题在如今的步骤员招聘中基本上承当着智力题的作用,由于盘算机封建的知识深度比力浅,培养起来不难,以是大公司招低级员工的时分更看重聪不智慧、潜力怎样样,而不是如今会不会某种武艺。
至于互联网大厂为什么喜好稽核求职者算法才能,答主华中科技大学盘算机使用武艺硕士炎天总结了以下三点缘故:
- 算法才能可以准确区分一个步骤员的武艺功底对否踏实。
- 算法才能是发掘步骤员的学习才能与发展潜力的紧张伎俩。
- 算法才能可以帮助推断步骤员在面临新成绩时,分析并处理成绩的才能。
也有网友以为,算法只是一种高听从的挑选人才办法,评价体系比力单一,只必要看对方有没有写出准确的(乃至最优的)解法。别的,算法才能的稽核比拟力较公平,求职者也难以作弊。
固然,并不是一切的公司都合适在口试环节偏重察看求职者的算法才能。答主 Xinyu Chen 以为,算法题作为口试题本身的功效,更合适大公司。公司招人,尤其是低级的开发者,并不必要他们具有特定的武艺,以是口试考算法题普适性更高,反之,口试官必要破费多量的精力去准备特定范畴的口试,本钱更高。而小公司更多的时分必要把握特定武艺的人,假如只面算法题的话,偏差会很高。
学算法,真正学到的是算法头脑
关于另一局部步骤员来说,学习算法不但是为了经过大厂口试,而是为了提升本人的算法头脑。有看法以为,算法中最有代价的就是“算法头脑”。
所谓算法头脑,指的是用算法去处理成绩的头脑办法,算法在被计划出来之前,计划者毕竟在想什么?
至于算法头脑对否“有效”,原百度高等算法研发工程师、极客时间专栏作者胡光以为:算法头脑不是为了我们传统意义上的“有效”而办事的,而是为了提升你的地步,提升你处理成绩的才能。就拿刷题来说,标题总是刷不完的,天天都市有多数的新题产生,那你能找到切合的教师去学习一切新题的解法和本事吗?固然是找不到的。这个时分,算法头脑就能确保在碰到了新成绩时,你可以有办法去处理它。