V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wanderingaround
V2EX  ›  问与答

有友友真能做到数据结构和算法达到行云流水庖丁解牛的地步了吗?

  •  
  •   wanderingaround · 2023-08-26 05:22:12 +08:00 via Android · 2071 次点击
    这是一个创建于 462 天前的主题,其中的信息可能已经有所发展或是发生改变。
    都说数据结构与算法不依赖与某种语言与具体实现?如果真正掌握连都不能实现就算掌握了我打个问号? github 上有数种语言的实现也不必存在了,直接放个概念就行了。

    我们都知道程序是数据结构和算法,数据结构(内存逻辑划分)不过是一块内存连续或者非连续内存单元的集合以及对其的相关的操作,对数据结构的一些操作也可以说为算法,或者对某一问题有输入输出,同一问题有不同的解法或者范式。

    CPU 指行相关的指令,操作内存当中的数据以及指令。一切语言实现的程序都是这样。那问题来了,现实当中,切换语言为啥成本这么大,按道理你掌握一门语言学习其他语言应该要不了一上午吧,但为啥你一碰到相关业务(在业务搞清楚下)不是 Google 都是其他方式,不就是你硬编码能力不太行吗,最本质的不就是数据结构与算法不太行嘛,那问题来了,你说你会数据结构与算法,但为啥反复重复学习,不是调 API 就是调 API ,你把标准库常用的数据结构用熟悉了但是不能用语言实现出来,这叫会数据结构吗?

    我的意思是有真正会数据结构与算法不,给你一篇算法相关论文没有伪代码的情况下你能用语言实现不,leetcode 或者给你任何一个问题你能很快用语言实现出来不,用数组或者链表可以实现各种数据结构不,不是知道个概念不能实现的假的会数据结构与算法。
    第 1 条附言  ·  2023-08-26 05:53:10 +08:00
    欢迎友友们解惑,谢谢。
    第 2 条附言  ·  2023-08-26 14:24:45 +08:00
    那问题来了,你们数据结构与算法真的功力不错,那按道理你们创造产出应该特别高啊,随便写个东西不是分分钟的事情,现实中一个二个都说真会,真要写个 mini (编译器、操作系统、框架、数据库各种部件之一,比如优化器)又不行了。如果不能写出一点像模像样的东西,算会吗?
    17 条回复    2023-08-26 19:55:17 +08:00
    wanderingaround
        1
    wanderingaround  
    OP
       2023-08-26 05:25:43 +08:00 via Android
    多线程不同语言实现可能要花点时间了解下
    cassyfar
        2
    cassyfar  
       2023-08-26 05:37:22 +08:00
    你不会实现是怎么过的面试?现在面试不就是卷这些吗
    wanderingaround
        3
    wanderingaround  
    OP
       2023-08-26 05:45:30 +08:00 via Android
    @cassyfar 我有个认识的人一说到数据结构与算法就侃侃而谈,感觉特别会,但是一叫他用代码实现数据结构与算法就不知道咋写,这叫会吗?
    hello2090
        4
    hello2090  
       2023-08-26 08:06:29 +08:00 via iPhone
    @wanderingaround 你觉得他会吗?会不会他的所谓侃侃而谈也就能忽悠你。。
    vtemp249
        5
    vtemp249  
       2023-08-26 08:14:31 +08:00 via Android
    现在有 copilot 和 ChatGPT 辅助写代码,关键在于思想
    NonClockworkChen
        6
    NonClockworkChen  
       2023-08-26 09:44:32 +08:00
    本质是人与人之间的智力差距大到无法想象的地步。
    举个游戏的例子,炉石传说 朝神,我记得中美对抗的时候,老外好像都是数学爱好者或者从业人员类似这样的职业了,所以国内的顶尖主播前 3 个出场的根本打不过,全输了。然后朝神一穿三。
    xmumiffy
        7
    xmumiffy  
       2023-08-26 09:55:19 +08:00 via Android
    不考虑框架之类的东西,给个函数签名写代码,那确实一两天就能转换语言
    shakoon
        8
    shakoon  
       2023-08-26 10:30:00 +08:00 via Android
    用自然语言描述算法那可太简单了(画 ppt )。但要转化成能运行的代码(做出能用的产品),那就是真正的技术能力了,大部分人确实是不具备的
    roycestevie6761
        9
    roycestevie6761  
       2023-08-26 10:36:31 +08:00
    能侃侃而谈也不错了
    yinmin
        10
    yinmin  
       2023-08-26 10:40:47 +08:00 via iPhone
    现在大都是打螺丝的岗位,不需要算法。真正卷算法的,都是初中/高中卷 noip 和 noi 的大牛。如果初中没卷过算法,工作了就背八股文面试用,工作中不要去和这群人卷算法。

    前几年有一群高中疯子,全脱产 1 年,跟着名师卷算法,为了竞赛得奖能自招/直升大学。

    如何识别算法大牛,就聊聊初中/高中的信奥,如果入集训队直升大学的,就是大牛中的大牛。
    sylxjtu
        11
    sylxjtu  
       2023-08-26 10:51:27 +08:00 via Android
    楼主见识还是有待提升,不说 oi 和 acm 之类的,你写 leetcode 一些 hard 题也得用数组实现 finwick tree 和 segment tree
    yinmin
        12
    yinmin  
       2023-08-26 10:56:12 +08:00 via iPhone   ❤️ 1
    卷算法的高中疯子,大都初中开始学信奥,高中全脱产 1 年只攻信奥,跟着名师卷算法,为了省一、入冬令营、进国集、直升北大清华,如果没卷进国集,也能自招入大学。

    这群人都是科班学算法的,可惜 2020 取消大学自招改强基,就没这么疯狂了。
    20015jjw
        13
    20015jjw  
       2023-08-26 11:06:28 +08:00 via iPhone
    正经科班出来的 不是基操吗……
    起码 leetcode medium 学点套路肯定能举一反三吧….
    cassyfar
        14
    cassyfar  
       2023-08-26 11:19:43 +08:00
    @wanderingaround 不叫,这种面试就挂了。现在面试一般至少 leetcode 一道 medium 写出来没 bug ,medium 难度就是 dfs ,bfs ,tree 这些。
    gpt5
        15
    gpt5  
       2023-08-26 13:37:58 +08:00 via iPhone
    准备竞赛时,各种算法题都能在白板上直接手写,报错算我输。
    geelaw
        16
    geelaw  
       2023-08-26 13:59:31 +08:00   ❤️ 1
    楼主应该巩固一下现代汉语,0 楼的内容读起来很不连贯。

    另外我觉得“掌握”“懂”是很虚的概念,即使考虑这个概念,“掌握”“懂”也可以分不同的等级。就我个人经验来说,“懂”和“可以用各种语言实现”数据结构和算法,可以是完全不相关的两码事儿,前者是计算机科学问题,后者是计算机技术/工程问题。

    我小时候并不“理解”快速排序和并查集,但是了解任何语言的基础知识之后都可以很容易写出快速排序和并查集。我写快速排序至少两年之后才理解快速排序,而且我至今也不能算是理解了并查集——没有内化它的复杂度证明就不算是理解。
    Ocean810975
        17
    Ocean810975  
       2023-08-26 19:55:17 +08:00 via Android
    @wanderingaround 某些大学教授现状,好多计算机方面的教授其实是不写代码的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2743 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 10:01 · PVG 18:01 · LAX 02:01 · JFK 05:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.