V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
haikuo93
V2EX  ›  程序员

工作中基本不接触算法, 跳槽时复习算法很痛苦

  •  
  •   haikuo93 · 2018-10-10 16:41:30 +08:00 · 5762 次点击
    这是一个创建于 2265 天前的主题,其中的信息可能已经有所发展或是发生改变。

    工作三年,基本用不到面试中看到的所有算法, 连排序都没怎么用到过, 现在一看算法就头大, 你们平时会用到很多算法吗, 各种数据结构? 面试前怎么准备呢?

    第 1 条附言  ·  2018-10-10 18:23:06 +08:00
    我说的不使用算法的意思是指,那些面试中比较复杂的算法, 比如最近看到的字典树,kmp, 还有一些位操作什么的, 你们懂我的意思
    27 条回复    2018-10-14 19:11:23 +08:00
    gowk
        1
    gowk  
       2018-10-10 17:25:43 +08:00
    强迫自己看进去,有滋有味的学起来,不会数据结构和算法的程序员不是好程序员~
    harde
        2
    harde  
       2018-10-10 17:29:10 +08:00
    不是吐槽,但的确想问问楼主,算法和数据结构都没用到你这三年都干什么了。。。。
    qq976739120
        3
    qq976739120  
       2018-10-10 17:32:17 +08:00
    我觉得原题那样的使用的确是没有的,但是思想是经常用到的,我最常用到的是 动态规划
    qiyuey
        4
    qiyuey  
       2018-10-10 17:33:21 +08:00
    @harde 高并发、大流量、复杂业务设计,都用不上吧
    kljsandjb
        5
    kljsandjb  
       2018-10-10 17:53:39 +08:00 via iPhone
    多刷刷题其实感觉会不一样,你会觉得有所收获,哪怕做不出来你能看答案理解了也比不看好,当然最好还是自己先做出来,哪怕用最笨的方法
    Raisu
        6
    Raisu  
       2018-10-10 17:56:36 +08:00 via Android
    看算法导论,一本解决
    guolaopi
        7
    guolaopi  
       2018-10-10 17:56:48 +08:00   ❤️ 1
    @harde 三年的增删改查你让我怎么用。。。。都扔给框架处理了
    takato
        8
    takato  
       2018-10-10 18:00:58 +08:00
    我很难理解“不接触算法”这个概念。
    毕竟做很多事情的时候其实都用得到的诶。
    haikuo93
        9
    haikuo93  
    OP
       2018-10-10 18:04:42 +08:00
    @harde 开发的工作基本都是在别人的基础上进行的, 没有从 0 到 1 开发过, 不管是新功能还是改 bug, 都不会有太多涉及算法的地方(我说的是相对复杂一点的算法或数据结构), 或者即使用到一些也是使用现有的库
    Gea
        10
    Gea  
       2018-10-10 18:05:18 +08:00
    @guolaopi 太真实了
    woodensail
        11
    woodensail  
       2018-10-10 18:07:09 +08:00
    社招一般都不问算法了吧,除非是相关工作的或者去 google 之类的。
    zhangZMZ
        12
    zhangZMZ  
       2018-10-10 18:12:44 +08:00
    不知道各位品论区大佬工作中如何使用红黑树和排序算法的?随机举个例子?
    paparika
        13
    paparika  
       2018-10-10 18:22:02 +08:00
    头疼+1,主要是记不住算法的演绎过程。当然我知道又有人要说是我没真正理解。。。
    haikuo93
        14
    haikuo93  
    OP
       2018-10-10 18:24:27 +08:00
    @woodensail 一般的互联网公司基本都会问吧, 不然问什么
    haikuo93
        15
    haikuo93  
    OP
       2018-10-10 18:28:36 +08:00
    @Raisu 好的, 回去啃
    shm7
        16
    shm7  
       2018-10-10 18:30:40 +08:00 via iPhone
    @Raisu 算法导论里面有些没有的好吧

    lz 多看看面试题吧,这个最快。

    长久之计是多刷题,练练脑子,也会有机会接触
    haikuo93
        17
    haikuo93  
    OP
       2018-10-10 18:37:48 +08:00
    @kljsandjb 感觉一道题就能看一下午,甚至一天都不太能理解。。
    woodensail
        18
    woodensail  
       2018-10-10 18:40:38 +08:00
    @haikuo93 问项目,还有一些实际工程难点,比如 tps 优化,前端优化,fail safe 之类的。以及有没有为团队做出过组件之类的贡献。
    fatelovely
        19
    fatelovely  
       2018-10-10 18:41:14 +08:00   ❤️ 1
    我也一直不能理解某些不需要对算法深入理解的岗位问算法问题的意义在哪儿,估计纯粹是不知道问什么好。

    大部分开发岗位,对算法停留在「了解」就行了,也就是,我知道有这么个算法解决这么个问题,也知道它的利弊,但是具体实现我不清楚。工作中就算要用,肯定是用现成的库,有多少程序员会遇到非常特别的问题,需要自己动手写算法的?

    我基本上每次面试都会事先声明:我是个工程人员,不是研究人员,算法细节我不清楚,也不感兴趣,但是我知道有哪些算法,可以解决哪些问题。
    woodensail
        20
    woodensail  
       2018-10-10 18:51:19 +08:00   ❤️ 2
    fail safe 这块能问的可多了,比如后端的最终一致性实现,前端的自动重试。
    其中前端的自动重试还有个坑,必须要加乐观锁。举个例子,有 3 个请求,其中请求 2 和 3 在请求 1 完成后并行执行。执行请求 2 时发生异常需要从请求 1 开始从头重试,当重试进行过程中,之前的请求 3 完成了并进行了后续处理,就会导致数据错误。
    所以这种异步任务链重试机制需要上乐观锁,在重新发起新流程后,之前所有的请求全部会因为版本过期而被废弃。
    kljsandjb
        21
    kljsandjb  
       2018-10-10 18:53:55 +08:00 via iPhone
    @haikuo93 #17 正常哈哈,量积累上去就好点应该,虽然算法可能真的用得不多,但是企业筛人就是这样,除却问项目,那就是算法了,所以还是硬着头皮上吧
    vivoapex
        22
    vivoapex  
       2018-10-10 18:58:57 +08:00
    @harde 普通工程师如果代码中自己实现了复杂算法,表明你写的代码有问题
    changwei
        23
    changwei  
       2018-10-10 22:13:03 +08:00
    可以在面试的时候反问面试官:您问我的这个算法,在您们公司的产品中的哪个功能模块有用到?
    xxx749
        24
    xxx749  
       2018-10-10 22:32:48 +08:00 via Android
    双指针是我算法造诣的巅峰
    iyangyuan
        25
    iyangyuan  
       2018-10-11 07:54:18 +08:00 via iPhone
    用现成的,自己写能保证没有 bug ?能保证效率比 sdk 高?
    guolaopi
        26
    guolaopi  
       2018-10-11 09:13:41 +08:00
    @Gea 确实啊,能用到高大上牛逼的东西我也想用啊,人都往高处走,奈何用不到。。一般的语言数组 List 排序都有提供的,我还没见过有几个扩展一个自己写的排序算法在业务里调用的。。。。。。排序都用不到就别说别的了。。。不过 LeetCode 上面的有些题做做挺好玩的,当脑筋急转弯或者数学游戏做吧。。。
    agagega
        27
    agagega  
       2018-10-14 19:11:23 +08:00 via iPhone
    社招又不是要求特别高的岗位问很多算法就像校招强行问项目经理一样奇怪。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2917 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:59 · PVG 20:59 · LAX 04:59 · JFK 07:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.