V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jdz
V2EX  ›  程序员

你们面试前或平常会刷面试题吗

  •  
  •   jdz · 2020-02-29 08:29:00 +08:00 via Android · 7030 次点击
    这是一个创建于 1728 天前的主题,其中的信息可能已经有所发展或是发生改变。
    感觉不刷面试题好吃亏啊
    第 1 条附言  ·  2020-02-29 10:04:44 +08:00
    这里的面试题不局限算法啊。还有 jvm,tcp 等乱七八糟的
    39 条回复    2020-03-04 22:11:57 +08:00
    junho
        1
    junho  
       2020-02-29 08:42:33 +08:00
    平时会刷算法题
    AslanFong
        2
    AslanFong  
       2020-02-29 08:47:19 +08:00   ❤️ 2
    你以前考试都不复习吗?
    jdz
        3
    jdz  
    OP
       2020-02-29 08:59:32 +08:00 via Android
    @AslanFong 有道理,还是刷刷题再面了
    20015jjw
        4
    20015jjw  
       2020-02-29 09:07:06 +08:00 via Android
    在意就刷
    随便过不过练手就不刷
    siriussilen
        5
    siriussilen  
       2020-02-29 09:17:54 +08:00
    已经刷了三个月,可是依旧对面试很焦虑

    siriussilen
        6
    siriussilen  
       2020-02-29 09:20:06 +08:00   ❤️ 3
    我是信管相关专业的,leetcode 全站排名从 40000+刷到了 800+,有些刷过的题还是会忘掉,得二刷 三刷才能真正融会贯通,可是最近就要实习生招聘了,真的很慌。
    AngryMagikarp
        7
    AngryMagikarp  
       2020-02-29 09:26:35 +08:00
    从来不刷,还不如把在之前公司做的项目再仔细回想一遍。
    NoString
        8
    NoString  
       2020-02-29 09:58:34 +08:00
    周五在上班 周六早面试 别说复习 连自己项目的 bug 没改完就去面试,然后挂的非常和谐,不忍心再伤害面试官(菜字当头还不复习的后果)
    lqw3030
        9
    lqw3030  
       2020-02-29 10:01:20 +08:00
    保持危机感,上班期间坚持学习
    hyy1995
        10
    hyy1995  
       2020-02-29 10:04:25 +08:00
    必然会刷面试题的,但刷面试题之前,你得充分理解自己做的项目,这个比刷面试题重要。现在的面试真的跟入职做的东西是两码事,为了筛人,面试越来越像考试了…
    cxshun
        11
    cxshun  
       2020-02-29 10:04:26 +08:00
    之前不刷,也不复习,后面去面了几次,被一些基础题啥的虐了之后,我现在坚信面试前一定要复习一下,包括你项目中用到的所有技术,遇到过的所有问题,都要回顾一遍。
    这样胸有成竹在谈价的时候也有底气
    haosamax
        12
    haosamax  
       2020-02-29 10:13:18 +08:00
    感觉 算法好难啊!别的基础知识可以背一背,算法真的就不会,就会背个二分查找、冒泡排序
    jdz
        13
    jdz  
    OP
       2020-02-29 10:21:40 +08:00 via Android
    @haosamax 我感觉相反..算法题就那么点,而基础知识太广了
    jackchao7432
        14
    jackchao7432  
       2020-02-29 10:31:43 +08:00
    @AngryMagikarp 可能你没有去比较大的互联网公司面试过吧,哈哈
    watzds
        15
    watzds  
       2020-02-29 10:33:04 +08:00 via Android
    太懒了,真没动力刷题,上学时也是,但是又吃亏
    charlie21
        16
    charlie21  
       2020-02-29 10:40:19 +08:00 via iPhone
    拳不离手 曲不离口
    lee015
        17
    lee015  
       2020-02-29 10:41:29 +08:00 via Android
    非算法技术岗而言,基础肯定是要复习的,基础答不好一面容易挂。工作年限多项目经验丰富的话算法要求低一些,二分、冒泡、快排、链表 /二叉树遍历理解透彻基本就够了,总结项目相关技术。工作年限少的尤其应届生,那是要更高的算法要求,可以刷刷 leetcode 这些
    hxtheone
        18
    hxtheone  
       2020-02-29 10:58:29 +08:00
    每周一次 leetcode contest 就当练手了
    qiushaox
        19
    qiushaox  
       2020-02-29 11:08:04 +08:00 via iPhone
    算法基础知识要刷,同时也要加深设计模式,软件架构设计的理解。只知算法,没有架构设计思想的人,往往只见树木,不见森林。
    Sniper416
        20
    Sniper416  
       2020-02-29 11:09:16 +08:00
    那是肯定的,谁没事会在工作中手写 vue、promise。
    alphatoad
        21
    alphatoad  
       2020-02-29 11:25:41 +08:00
    字节跳动的题还是有意思的,没 Google 那么恶心( 60 分钟三道 bugfree 真的没时间),也没 IBM 那么没水平( 180 分钟三道 lc easy 难度,没劲)
    PanJiaChen
        22
    PanJiaChen  
       2020-02-29 11:31:04 +08:00
    面试前不刷题,这不是对面试官的不尊重么。。。。
    裸造航母还是挺难的。
    zzzzzzggggggg
        23
    zzzzzzggggggg  
       2020-02-29 11:59:09 +08:00
    打篮球正式上场前两天不也需要打个热身赛么?上场前还得做好热身,不然容易崴脚
    glumess
        24
    glumess  
       2020-02-29 13:56:41 +08:00
    当然刷啦,除了准备项目经历,程序员必备的基础题目都还得准备一下。看面试题就好比高考前那以前做过的题目在复习看一看
    GrayXu
        25
    GrayXu  
       2020-02-29 14:24:44 +08:00
    \刷…权当抱佛脚
    aguesuka
        26
    aguesuka  
       2020-02-29 14:25:31 +08:00
    写过需要算法的项目后,发现刷算法题是一个性价比非常低的事情。
    比如我需要一个数据结构,操作只有 3 种,就是增加,删除和无序遍历。刷算法题的经验告诉我这种东西最适合用双向链表做,增加时返回 node,删除时移除 node,遍历写个 for 循环就行。增加删除的复杂度是 O ( 1 ),遍历的复杂度是 O ( n ).可再我使用的实际场景种还不如一个数组,时间复杂度是 O ( n )的根据下标增加和删除,因为在我这个量级创建对象的时间更慢(论坛里曾有人说绝对不要使用 LinkedList 时,我曾经很不屑)。而实际上,有个《数据结构》里没有的数据结构可以用 Array 来完成 O(1),O(1)的按下标删除和增加。
    最后我选择了用 HashSet,不是应为它最快,而是因为它不需要保存下标或者 node 等待删除时使用,避免让程序变得复杂。
    tilv37
        27
    tilv37  
       2020-02-29 15:11:57 +08:00
    我的话肯定得刷题的。
    先刷基础知识,JVM、数据结构、常规算法、设计模式、网络之类的。然后结合自己的项目吧这些点都套进去,尽量做到言之有物。
    然后就是看投的岗位有啥需求了,再针对性的开口平时不怎么掌握和使用的,做到基本了解就行了
    jellybool
        28
    jellybool  
       2020-02-29 16:55:54 +08:00 via Android
    @siriussilen 竟然看到信管专业的人!世界真小
    20015jjw
        29
    20015jjw  
       2020-02-29 17:35:18 +08:00 via Android
    @aguesuka
    算法题目的只是为了面试考察而已 不是为了让你在实际 project 里用的 重点在于考察解题能力 沟通能力 和 写码能力
    helloworld000
        30
    helloworld000  
       2020-02-29 20:43:14 +08:00
    刷题这些东西就跟健身跑步一样,没事都可以搞一搞

    @aguesuka
    比如我需要一个数据结构,操作只有 3 种,就是增加,删除和无序遍历。刷算法题的经验告诉我这种东西最适合用双向链表做,增加时返回 node,删除时移除 node,遍历写个 for 循环就行。增加删除的复杂度是 O ( 1 ),遍历的复杂度是 O ( n ).


    我觉得你肯定刷的不够好,因为你这个需求是个很典型的 LRU cache,需要 doubly-linked list + hashmap,就能实现 O(1) 的增加和删除还有搜索

    ```
    可再我使用的实际场景种还不如一个数组,时间复杂度是 O ( n )的根据下标增加和删除,因为在我这个量级创建对象的时间更慢`
    ``

    因为你的场景 scalablity 还不够大,如果大的话就是会有影响
    onfuns
        31
    onfuns  
       2020-02-29 21:03:33 +08:00
    知识都是碎片化的,面试问题大部分都是理论,实际项目中基本不用或者用的不多,就是背的知识,不刷怎么过。
    tinyhill
        32
    tinyhill  
       2020-02-29 21:15:05 +08:00
    作为面试官的人告诉你,刷题,是很容易被面出来的。一般答题如背书的,都会谨慎考虑。刷题可以,内化是关键。
    anonymousUser123
        33
    anonymousUser123  
       2020-02-29 21:27:56 +08:00   ❤️ 2
    怎么楼上大部分都只说刷算法题,是太多人没有经历过现在的面试吗。。。。
    现在面试除了算法题还会问其他这些啊 https://www.bilibili.com/video/av48988279
    volatile 不保证原子性,指令重排
    CAS 底层原理
    原子引用
    锁的底层
    JVM 底层
    等等
    这些平常写业务很难接触到啊,
    即使业余有学习,学完以后也容易忘啊
    面试当然要前做个重点回顾啦。
    windliang
        34
    windliang  
       2020-02-29 21:32:03 +08:00
    现在每天也都刷刷 leetcode,顺序刷题目前到 239 了,每道题都记录了详细思路,分享一下
    https://leetcode.wang/
    kevincai100
        35
    kevincai100  
       2020-02-29 22:07:27 +08:00
    现在面试真的像造火箭,挺难的
    aguesuka
        36
    aguesuka  
       2020-02-29 23:13:41 +08:00
    @helloworld000 leetcode 这么靠前的题。

    不过你想复杂了。首先我不需要排序,其次我的接口可以这么写 T add(E elment); boolean remove(E element, T token);类似 js 的 setTimeout 和 clearTimeout 函数。还有个隐藏条件是一个 elenment 只会 add 一次,容器只会被遍历一次。

    最快的方法是使用一个 Array 和一个 Stack,Array 在没有元素被删除的时候正常增加,有元素被删除的时候把被删除元素下标保存到 Stack 里面,如果 Stack 不为空,则增加时优先使用 Stack 里的下标。不过在使用时要考虑的比这个多,要不要实现 Collection 接口,token 保存在哪,遍历时要不要快速失败,如果要改成并发容器需要多大工作量。最关键的是不做基准测试很难知道到底那个实现快,比如你猜同样是 O(1),用链表快还是散列表快。

    跑题了,我觉得刷算法题性价比的原因是要花很大精力去写很脏的代码,去实现不灵活的接口,当然学到的经验很宝贵,但是在写代码时只是最基本的素质,而在面试时,手写的代码面试官也不会看,说出原理就行了。
    tt67wq
        37
    tt67wq  
       2020-03-01 09:29:20 +08:00
    肯定得刷
    haosamax
        38
    haosamax  
       2020-03-03 17:19:36 +08:00
    @jdz 我打内心恐惧算法。感觉没什么套路可言。请大佬指教!
    jdz
        39
    jdz  
    OP
       2020-03-04 22:11:57 +08:00 via Android
    @haosamax 熟读唐诗三百首,不会作诗也会偷
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:47 · PVG 03:47 · LAX 11:47 · JFK 14:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.