为什么要单独说是否懂“算法”,程序中算法不是无时无刻都存在吗?

2020-04-14 13:41:16 +08:00
 zictos

·经常在网上看到“算法”这个词,有些招聘要求或者描述某个人的能力的时候甚至说“懂算法”之类的话。

·可是算法不就是程序中的一些计算方法吗?程序中算法无时无刻都在,大部分程序也都是在计算,在进行一些套路来达到目的,如果没有算法又怎么写程序呢?

·既然算法无时无刻都在,就应该代表每个程序员都是懂算法的,不然又怎么能写程序?那为什么又会有“懂算法”一说。去网上查“算法是什么”,很多人也说不清楚,也只是说是程序中的计算方法。

·当然我也知道可能有难易程度的区别,但也不是每个程序员都擅长任何算法吧?即便某个程序员水平低,但有些算法复杂的程序也不代表就写不出来吧?具体能否写出来应该是看情况的,不能一概而论,所以真正的判断标准不应该是是否能写出来吗?扯“算法”干什么?

5268 次点击
所在节点    程序员
54 条回复
wutiantong
2020-04-14 16:19:26 +08:00
@zhybzc

“网上有人说算法就是程序中的套路”
——算法不是套路,有这种误解的程序员我们称为调包侠。

你引用的百度百科的描述倒是没什么问题。

“比如一个函数,提供几个参考,函数中间有一些计算来达到自己需要的功能,这个函数不算一个算法吗?”
——考察它的功能,其中副作用的部分不属于算法,剩下的是算法。

“难道算法只能指二叉树遍历,快速排序,动态规划这些吗?”
——不是

“经常说某某 app 的推荐算法,这种不都是 app 自己根据实际需要写的吗?根据用户的特性来推荐一些东西。这种算不算复杂的业务逻辑代码?”
——这种是算法和业务的结合体,区分主要还是看副作用

“比如 while 循环或者 for 循环,每轮循环后加 1 或者减 1,这种算不算一种套路或者一种算法呢?”
——不算,因为没有定义输入输出
EPr2hh6LADQWqRVH
2020-04-14 16:20:53 +08:00
在国内这个语境下,算法和数学一样,都是被神化的符号。

奥数有多重要,算法就有多重要。
奥数天才有多屌,算法天才就有多屌。

上大学主要考数学,进公司主要考算法,没毛病。
ConradG
2020-04-14 16:30:10 +08:00
@avastms 这个偏激了,外企应聘对于算法的要求比我们有之过无不及。
不过我同意国内对于“算法工程师”的职责、定位和印象确实比较怪异。
deplives
2020-04-14 17:12:06 +08:00
会 1+1=2 的不一定会解三重积分
manshisan
2020-04-14 17:32:41 +08:00
算法本质是帮助编程人员更好的解决问题,给公司节省更多的成本。至于懂算法,本质的意义是考察你对于一个问题的解决方法知道多少种,有哪些适合这种场景,哪些适合那种场景,实质是经验积累的考察。但是面试都问这种问题就有问题了
ulosggs
2020-04-14 18:57:25 +08:00
不懂算法,那就拧一辈子的螺丝吧
ulosggs
2020-04-14 18:59:49 +08:00
还有人闲得蛋疼争论算法的定义。人家面试的时候是考你 for while 之类的“算法”还是算法导论书上的算法?
nightwitch
2020-04-14 19:07:09 +08:00
算法工程师所说的算法,主要是指数值计算和数学分析有关的方法,常见的如快速傅里叶变换,牛顿迭代法,龙哥库塔法,梯度下降法,蒙特卡罗积分等算法,和程序员招聘所涉及的 翻转二叉树,反转链表等算法基本扯不上关系。
lewinlan
2020-04-14 19:13:35 +08:00
经历过大量算法(题)的训练,人的思维会变得更有逻辑性
CoderGeek
2020-04-14 19:57:15 +08:00
数学 统计学 离散 图形学
CoderGeek
2020-04-14 19:57:32 +08:00
线代 方向不一样
CoderGeek
2020-04-14 19:58:39 +08:00
虽然干的可能是调参调包侠 但确实方向不一样 术业有专攻
vitoliu
2020-04-14 20:32:07 +08:00
公司文化而已,世界上有很多公司都不考算法的
goodboy95
2020-04-15 09:46:53 +08:00
把“算法”改成“数学”大概能更加理解吧,一般说某人懂数学,肯定不会说那人懂小学加减乘除

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/662269

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX