问题

如何看待软件工程师觉得学习算法没用?

回答
软件工程师觉得学习算法没用,这绝对是一个值得深入探讨的话题,而且说实话,不少工程师在职业生涯的某个阶段确实会产生这样的想法。要理解这一点,咱们得掰开了揉碎了聊。

首先,从“有用”的角度来拆解。

很多时候,当工程师说“算法没用”时,他们真正想表达的是:

“我日常工作中很少直接写经典的排序、搜索算法。” 确实,大部分应用开发,尤其是前端、移动端或者某些后端服务,可能更多的是调用现有的库函数,或者用一些相对直接的实现方式就能解决问题。谁还会在业务代码里天天写 Quick Sort 呢?框架、库已经帮你封装好了,而且通常是经过高度优化、经过各种测试的。
“学习算法耗时耗力,但看不到直接的商业价值。” 尤其是在初级或中级阶段,KPI 通常是按时交付功能,解决Bug。花大量时间去理解一个复杂的数据结构或者算法的理论推导,对于完成这些具体任务来说,似乎是“绕远路”。他们可能觉得,学会如何使用一个数据库索引,比理解Btree的内部机制更“实在”。
“我遇到的问题,大部分可以通过‘拍脑袋’或者‘查资料’解决,不涉及高深算法。” 互联网上信息爆炸,Stack Overflow、GitHub、各种博客文章,基本上能找到解决大部分“工程问题”的方案。如果一个问题不那么常见,要么是技术选型问题,要么是依赖了某个框架,而框架的底层实现,对大多数开发者而言是“黑盒”。
“面试中的算法题,和实际工作脱节。” 这是最常听到的抱怨之一。很多工程师觉得,面试官问的那些“在有序数组中查找特定元素有多少种组合”之类的题目,在他们的日常工作中出现的概率为零。他们认为,面试中的算法考察,更多的是一种“智力游戏”或者“筛选机制”,而不是对实际工作能力的衡量。

但,如果仅仅停留在“没用”层面,那才是大错特错。

为什么很多经验丰富的工程师,甚至包括那些曾经抱怨过算法无用的人,最终又会重新拾起甚至强调算法的重要性呢?因为他们逐渐认识到,算法的“用”体现在更深层次、更长远的层面:

1. 解决“疑难杂症”和“性能瓶颈”的利器:
当你需要优化时: 当你的系统响应慢了,内存占用了,CPU 100%了,用户抱怨卡顿了,这时候你再去查资料,很可能发现很多高性能的解决方案都建立在特定的算法和数据结构之上。比如,缓存策略(LRU、LFU)、数据压缩、图算法(用于推荐系统、社交网络)、动态规划(用于优化计算)、甚至是简单的二分查找能比线性查找快多少倍,这些都需要算法知识来支撑。
当你需要设计高复杂度系统时: 比如,搜索引擎的索引构建、大规模数据处理(Hadoop、Spark的底层)、分布式系统的协调、加密解密、图像处理、机器学习模型等等,这些领域几乎无处不闪耀着算法的光芒。不懂算法,你就很难理解这些系统的核心,更别说去设计、实现或者优化它们了。

2. 提升“工程思维”和“问题解决能力”:
抽象和建模能力: 学习算法的过程,就是学习如何将现实世界的问题抽象成计算机可以处理的模型。这锻炼了你的逻辑思维、分析能力和抽象能力。比如,如何把一个物流路径问题建模成图问题,然后用最短路径算法去解决。
效率意识: 算法的学习让你意识到不同算法在时间和空间复杂度上的差异。这培养了你对资源(CPU、内存、网络带宽)的敏感度,让你在设计方案时,不仅仅考虑“能不能工作”,更会考虑“能不能高效工作”。这是一种职业素养的体现。
系统性思维: 很多算法的学习会涉及到数据结构和算法的组合,这有助于你建立更系统性的思考方式,理解不同组件如何协同工作,以及它们之间的权衡。

3. 职业发展的“天花板”:
进阶岗位的敲门砖: 很多大厂的高级工程师、架构师、技术专家,或者专门从事底层开发、算法工程师、AI工程师的职位,都会对算法有非常高的要求。如果你在某个阶段止步于“能用就行”,那么你的职业天花板就会非常明显。
面试的“硬性指标”: 即使抱怨,很多工程师依然需要去刷算法题来通过技术面试。这说明,在当前招聘体系下,算法仍然是衡量一个工程师“潜力”和“基础扎实度”的重要指标。它是一种“通用语言”,让不同公司、不同背景的工程师能够在一个层面上进行交流和评判。

4. 学习新技术的“加速器”:
理解框架的底层: 当你学习一个大数据框架,一个机器学习库,或者一个高性能数据库时,如果你懂算法,就能更快地理解它们内部的实现原理,例如索引、排序、哈希、图遍历等,从而更有效地使用和调整它们。
跟上技术潮流: 很多新兴技术,特别是与AI、大数据、高性能计算相关的,都建立在深厚的算法基础上。不懂算法,你可能就只能停留在“调用API”的层面,而无法深入理解和贡献。

为什么会有“算法没用”的误解?

“唯应用论”的短期视角: 很多工程师,尤其是刚入行或者在对代码质量要求不那么极致的团队中,可能长时间接触不到需要极致优化的场景。他们会形成一种“就事论事”的短期视角,觉得只要功能实现,性能勉强够用,就算成功。
教育和实践的脱节: 大学里讲的算法,有时候确实比较抽象,和实际开发场景的联系不够紧密。很多时候,学生学了算法,但不知道如何将其应用于实际问题。而工作后,又被日常任务“绑架”,没时间也没有机会去实践。
“大而全”的框架和库: 如今的开发生态太强大了,提供了大量现成的、高效的解决方案。这在一定程度上“掩盖”了算法的重要性,让人觉得“我不需要自己造轮子,因为别人已经造好了,而且造得很好”。但问题在于,当你想对这些“轮子”进行更精细的控制或优化时,或者当你的问题超出了“轮子”的范畴时,你就需要它们背后的算法知识了。
面试题目设计的缺陷: 如前所述,很多面试题确实存在脱离实际工作的问题。这导致工程师对算法的价值产生了负面认知,觉得学习算法只是为了“应付面试”。

如何看待这件事?

我认为,认为学习算法“没用”的观点,更多的是一种阶段性的、片面的理解。

对于初级工程师: 你的首要任务是掌握编程基础、熟悉开发流程、能够独立完成分配的任务。在这个阶段,过度钻研复杂的算法可能会分散你的精力,影响你对“如何写出可用、可维护的代码”的认知。但同时,也要意识到,基础的算法和数据结构(如数组、链表、栈、队列、二叉树、哈希表、基本的排序和搜索)是构建任何稍有复杂度的系统的基石,它们是“必修课”。
对于中级及以上工程师: 随着你经验的增长,你必然会遇到性能问题、可伸缩性问题、或者需要设计更复杂的系统。这时候,扎实的算法基础就显得尤为重要了。它会成为你解决问题、设计方案、甚至指导团队的“内功”。你会开始理解,为什么某些框架的设计是这样的,为什么某些API的性能会好或差。
区分“用”和“不用”的场景: 并不是说你每天都要写“线段树”或者“KMP算法”,而是说,当你需要的时候,你有能力去理解、去实现、或者去选择最适合的算法。这是一种“储备”和“能力”,而不是“日常例行公事”。
算法是“工具箱”里的“关键工具”: 软件工程师的工具箱里有很多工具,框架、设计模式、语言特性等等。算法和数据结构就是其中最核心、最基础的一类。你不需要时刻使用锤子,但你总得知道锤子是怎么回事,以及什么时候需要用它。

总结一下,软件工程师觉得学习算法没用,往往是因为:

1. 低估了算法在解决复杂问题和优化性能中的作用。
2. 混淆了“日常工作直接写算法”与“理解算法原理”的区别。
3. 受到了部分面试题脱离实际的负面影响。
4. 过分依赖现有的框架和库,忽视了底层原理。

而实际上,深入理解算法,不仅能让你在遇到技术难题时有更从容的应对,更能让你在职业生涯中走得更远,触碰到更高的技术天花板。它是软件工程这门艺术和科学中,最经久不衰、最有价值的核心组成部分之一。所以,与其说“算法没用”,不如说“你可能还没遇到非它不可的场景”,或者“你还没有深入到那个需要算法解决问题的层面”。

网友意见

user avatar

讲句心里话,有用没用这种东西困扰了我很多很多年。到今天还是我天天都要面对的问题。

我们这个时代是人类历史上咨询最发达的时代。有了网络,你几乎可以学到任何你想学的知识。这个时代最大的问题不是努力学,而是学什么。

学什么,这个问题之所以让人困惑因为它涉及到如下几个头痛的子问题。

  1. 学什么能让我发财?
  2. 我擅长学什么?
  3. 我喜欢学什么?
  4. 我能学好什么?

如果我们看看在社会上有比较高成就的人就会发现,他们的人生很可能比较简单,因为以上四个问题的答案就是一个。

比如张艺谋,喜欢当导演,擅长当导演,科班出身的导演学得也是一流的,最后也是靠导演的电影名利双收。

再比如说莫言,喜欢写作,擅长写作,26岁就发表了小说,靠写作拿了诺贝尔奖。

当然也有一些人比较坎坷,但是四个问题的答案依然最终统一成了一个。比如梁家辉本来被香港无线培训班录取,结果不到一年被开除。自己就出去办起了杂志。结果因为认识一个导演,被邀请去拍《火烧圆明园》和《垂帘听政》自后回归演员行当,把四个问题变成一个问题,就是好好做个演员。

以上都是成功了的人士,他们的故事通常都很励志,脆弱过,彷徨过,改行了,最后坚持了自己喜欢做的事,功成名就皆大欢喜。这类故事多的不胜枚举,仿佛就是世界本来的样貌。但这些其实都是幸存者偏差,实际上有数量庞大的失败者,坚持得更久,付出得更多,却一无所获。

在这些失败者身上,学什么,便是一个非常现实且充满矛盾的问题。因为时间不等人,机会成本在那里,做了这件事就不能做那件事,而失败就意味着所有付出一无所得。

普通人最常面对的麻烦就在于此,

1.我不知道学什么能发财,因为太缺钱,我必须要学赚钱最多的东西。

2.我不确定我擅长什么,因为我没时间和精力去尝试,任何的失败都可能导致我经济崩溃或者系统性崩盘,我没有机会去尝试所以不知道自己擅长什么。

3.我有自己喜欢学的东西,但从来都没机会系统性的学过,也没机会去运用这些知识赚钱,我并不知道当我从事我喜欢的专业工作以后我是不是真的喜欢它。

4.我觉得我什么都能够学好,因为我没有足够的时间来了解这些专业,我其实都只是略知皮毛,它们看起来都不难。

回来说算法和软件工程师,我们都知道一个懂算法,懂硬件的软件工程师能写出更好的代码。可是回到一个非常现实的问题上,你是做个兼职多赚点钱还房贷。还是去学那些也许自己不擅长,最终证明自己学不好也帮不了自己涨工资的东西?更何况许多公司本来就不过是雇你来做苦力,产品也没那么高的要求?往更远处看,谁知道再过五年你到底是一个码农还是个销售?谁知道再过十年,新的模式会不会出现,学的这些东西还有多大用处?

类似的话题

  • 回答
    软件工程师觉得学习算法没用,这绝对是一个值得深入探讨的话题,而且说实话,不少工程师在职业生涯的某个阶段确实会产生这样的想法。要理解这一点,咱们得掰开了揉碎了聊。首先,从“有用”的角度来拆解。很多时候,当工程师说“算法没用”时,他们真正想表达的是: “我日常工作中很少直接写经典的排序、搜索算法。”.............
  • 回答
    Nginx之父被抓事件:工作时间 VS 业余时间,软件著作权归属的复杂博弈Nginx,这个高效、稳定、功能强大的Web服务器,在全球互联网领域扮演着举足轻重的角色。而 Igor Sysoev,这位被誉为“Nginx之父”的俄罗斯工程师,他的名字与Nginx紧密相连。然而,近年来关于他被捕以及其开源项.............
  • 回答
    武汉软件工程学院宿舍被征用、学生用品被清空事件,无疑触动了许多人的神经。这不仅仅是一所学校内部的管理问题,更牵扯到学生权益、应急管理以及信息公开等多个层面,值得我们深入剖析。事件回溯与初步感知首先,让我们回顾一下事件的大致经过。据报道,在某个特定时期,武汉软件工程学院的部分学生宿舍被征用,用于某种特.............
  • 回答
    关于武汉软件工程职业学院被征用一事,这确实是近期引起广泛关注的一个事件。要全面看待这件事,我们需要从多个角度去理解其背景、原因、影响以及各方可能的回应。事件本身:到底发生了什么?首先,需要明确的是,“征用”通常意味着政府或公共机构出于特定目的(例如紧急情况、公共卫生事件、重大基建项目等)暂时占用或使.............
  • 回答
    这事儿,可真是一件让人心头窝火的事儿。武汉软件工程职业学院在征用学生宿舍的时候,那动静闹得可不小,关键是处理方式,实在是让人无法接受。首先,咱就得说这“征用”本身。学校要征用学生宿舍,理论上是学校管理的一部分,尤其是在一些特殊情况下,比如消防安全、工程改造,或者为了腾出地方安置其他学生的需求,学校是.............
  • 回答
    湖南大学一名软件工程硕士的学位被撤销,原因是他被举报涉嫌论文全文抄袭。这件事一出,在学术界和教育界都引起了不小的震动。对于这样的处分,我们可以从几个层面来看待,这不仅仅是关于一个学生个体的问题,更折射出当下学术诚信的现状和高校教育的责任。首先,从学术诚信的角度来看,这项处分是绝对必要的,也是对学术规.............
  • 回答
    好的,我们来聊聊观视频工作室《睡前消息》第77期中关于“武软事件”的那些言论。要理解这期节目,咱们得从几个层面来剖析,因为它涉及到的不仅仅是一个简单的企业纠纷,还牵扯到很多更深层面的东西。首先,《睡前消息》这档节目的定位和风格,是理解其对“武软事件”解读的基础。马前卒和他的团队,一向以一种“宏大叙事.............
  • 回答
    关于“中国电力规划设计协会通报网传AutoCAD软件维权涉嫌强迫销售”的说法,经过我查找和了解,这件事情的真实性存在一些模糊和争议。事情的起因大概是这样的:前两年,有媒体报道称,一些建筑设计、工程设计行业的企业收到来自 Autodesk(AutoCAD的开发商)的通知,要求其购买正版软件,并且在过程.............
  • 回答
    华中科技大学软件学院2019级停止招生的消息,对于许多关注高校教育、特别是信息技术领域发展的人来说,无疑是一个值得深思的事件。这并非一个孤立的招生政策调整,而是折射出高等教育体系在面对快速变化的社会需求和学科发展趋势时,所进行的深刻思考与主动适应。首先,我们需要理解“停止招生”这个表述背后可能存在的.............
  • 回答
    最近几年,你有没有感觉到,好像打开手机,不付费就没法好好用了?从听歌、看视频,到办公软件、甚至记个笔记,都纷纷变成了“订阅制”。这股订阅风潮,就像草原上的野火,迅速蔓延,而且似乎大有愈演愈烈之势。那这背后到底是什么在驱动?我们消费者又该如何看待它呢?为什么软件们都爱上“订阅”这味儿?简单来说,订阅制.............
  • 回答
    密歇根州在2020年美国总统大选期间确实发生了与计票系统相关的争议事件,但需要明确的是,这一问题并非源于软件本身的根本性缺陷,而是特定操作流程中的技术性失误。以下从多个维度详细分析该事件的背景、技术原因及影响: 一、事件背景2020年大选期间,密歇根州部分县的计票系统在处理邮寄选票时出现了数据传输错.............
  • 回答
    如何看待安兔兔官微对华为麒麟990的一系列发文?反映了哪些问题?安兔兔官微近期针对华为麒麟990处理器发布的一系列发文,无疑引起了广泛关注。要理解这些发文的意义和背后反映的问题,我们需要从多个角度进行分析。安兔兔官微发文的可能意图和表现形式:首先,安兔兔作为一款广泛使用的手机性能测试软件,其官方微博.............
  • 回答
    Adobe的软件,尤其是Photoshop,破解版之所以至今仍旧盛行,这是一个复杂且多层面的现象,背后牵扯到技术、经济、用户习惯乃至道德伦理等多个角度的考量。如果非要我给出一个比较细致的看法,那大概是这样的:首先,我们不能忽视Photoshop在创意设计领域的绝对霸主地位。自它诞生以来,Photos.............
  • 回答
    “海狗”出海,公益上岸?小米高管的“一句玩笑”背后近日,小米移动软件研发总监“安卓老张”(张振海)的一番话,在科技圈和舆论场掀起了一阵不小的波澜。他提到,希望将“海狗”的资金转做公益,这番话一出,立刻引发了广泛的讨论和解读。要理解这番话的意味,我们需要先梳理一下“海狗”这个词在网络语境下的含义,以及.............
  • 回答
    2022年中国科学技术大学软件学院考研复试线突然“跳水”,从去年的“炸穿地心”般的 390 分直接降至 335 分,这 53 分的巨大落差,确实让不少考生和业内人士感到意外,甚至可以说是“骤降北极”。咱们就来好好掰扯掰扯这背后的原因,以及它意味着什么。首先,得承认,去年中科大软件学院的复试线堪称“天.............
  • 回答
    Soul 嘛,这玩意儿现在真是挺火的,身边不少朋友都在玩。要说怎么看待它,我觉得得从几个方面来聊。首先,它抓住了“破冰”这个核心需求,这一点做得挺到位。 咱们平时生活中,认识新朋友,尤其是在线上,确实挺难迈出第一步的。Soul 它的“灵魂匹配”机制,通过一些相对有趣、不那么直接的问答或者兴趣标签,能.............
  • 回答
    “科技侵略”这个词,放在“国外开源软件”上面,听起来似乎有点耸人听闻,但如果咱们敞开了聊,就会发现这事儿确实挺有意思,也值得好好琢磨琢磨。咱们不谈宏大叙事,就说说这开源软件,特别是那些来自国外、但咱们国内用得特别多的,它们是怎么悄悄地改变咱们技术生态,甚至是咱们做事方式的。你仔细想想,现在国内互联网.............
  • 回答
    欧文在社交媒体上取关詹姆斯这件事,确实在NBA圈子里引起了不少关注,大家对此议论纷纷。要怎么看待这件事,其实可以从几个不同的角度去理解,而且背后的原因也可能比表面上看到的要复杂一些。首先,我们得认识到社交媒体在现代社会中的地位。对于像欧文和詹姆斯这样的公众人物来说,他们的社交媒体账号不仅仅是发发日常.............
  • 回答
    JetBrains 软件在中国市场的受欢迎程度毋庸置疑,其强大的功能和优秀的用户体验吸引了大量开发者。然而,与许多其他优秀的软件一样,JetBrains 的产品在中国也面临着被破解使用的普遍现象。对于这个问题,JetBrains 官方的态度是复杂且一贯的。首先,从 JetBrains 的角度来看,软.............
  • 回答
    关于“库克掌舵的苹果公司软件质量日益下降”的说法,这是一个在科技界和用户群体中长期存在且备受争议的议题。要全面看待这个问题,我们需要深入剖析其背后的原因、表现以及不同的观点。一、 软件质量下降的表现:用户和评论家普遍认为,近年来苹果的软件在以下几个方面出现了质量下滑的迹象: Bug 数量增多且顽.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有