V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
syhily
V2EX  ›  职场话题

今日在南京面试人感想

  •  
  •   syhily · 2018-04-21 21:19:01 +08:00 · 16380 次点击
    这是一个创建于 1748 天前的主题,其中的信息可能已经有所发展或是发生改变。

    面试了一个人,工作时间很长,5 年多。主要是给华为做外包,工作上多以运维数据迁移为主,在 17 年之后有过类似大数据开发的工作经验。

    简单问了一下项目,了解大概涉及技术栈,告知其我准备问一些 Java 基础(我司主要开发语言为 Java )。被立刻打断告知我不要问其 StringBuilder、StringBuffer 区别,HashMap 知识点这种没有意思的问题。

    我说我不会问这种问题,但也不会上来问一道很难题目。要其写一 List 去重,基于这个准备扩展,发散一些有意思的问题。其面有难色,问能否只说思路,我说,此题既然有思路,必然能写出来。其尝试写了一下,把笔一丢,表示不愿意书面写代码。

    我说要不要我拿电脑让你写,其说可以。电脑拿来,其开始批斗我,云云感觉其被鄙视,像其这样的水平和工作经验的人应该重点考察项目经验,而不是笔试代码这么 Low B 的事情。期间列举其在阿里被面试经历,从 Tomcat 启动开始问,由浅到深。

    我言,可以按照你的方式,通过问一些有意思的问题让你来解答的方式面试,笔试写代码只是我个人的习惯。其言内心受到伤害。遂将简历交还,其拂袖而去。

    PS,电话面试和现场面试的结论,其为简历侠。

    第 1 条附言  ·  2018-04-22 14:11:19 +08:00

    个人不是刻意通过编码去刁难面试者,而是习惯通过编码来方便进行不反感的提问。我设想的某种提问过程已经写于 46楼。

    繁体字是我的疏忽,不喜欢可以不看。但是繁体字也是中华文体,私认为使用繁体字绝无任何问题。

    第 2 条附言  ·  2018-04-23 03:55:23 +08:00
    84 楼,给部分才毕业的人的个人建议,只是我个人一直在践行的一些东西,而非什么大道理。我个人不是什么大牛,不懂的东西超级多,可以说什么都不会,还请各位前辈多多包涵。
    121 条回复    2018-05-06 14:45:19 +08:00
    1  2  
    lhx2008
        1
    lhx2008  
       2018-04-21 21:22:44 +08:00
    你就从 Tomcat 从启动开始问呗,足够问倒他了。这么多内容,鬼记得住。
    sunwei0325
        2
    sunwei0325  
       2018-04-21 21:25:28 +08:00   ❤️ 8
    我觉得面试更重要的是人的性格, 以及学习的能力, 如果这两点都不符合的话, 即使履历与岗位匹配, 将来也是一颗雷.
    syhily
        3
    syhily  
    OP
       2018-04-21 21:26:03 +08:00   ❤️ 1
    因為工程性質,編碼面試不會在演算法與資料結構上刻意刁難,多為基本程式設計能力考察。

    核心其實是想考察為什麼這麼寫、怎麼測試、怎麼優化,通過這麼來看其是否有與簡歷上相符的工作能力。並一步步基於當前問題延伸以期能詳細考察其對於程式設計的敏感度。
    syhily
        4
    syhily  
    OP
       2018-04-21 21:40:56 +08:00
    @sunwei0325 對於正式員工和外包人員性質要求略有不同,我們在面試時,正式員工的標準其實其有所降低的。因為我們自信有環境專案和人力能帶著員工成長,所以自然就會考察面試者的性格和學習能力。

    然而這裡面試的是一位工作五年以上的程式設計師,其要價也會比較高,面試崗位為大資料開發,自然要求就會不一樣。南京這邊多為中興華為外包,這類人員空有一堆專案經歷,但無基本編碼能力。簡歷寫的一個比一個屌,什麼名詞都往上丟。

    面試者學習能力很重要,然而短短的 1 個多小時並不一定能感知。其次,5 年以上的人如果連那種簡單到培訓班 1 個月人都能寫出來的程式碼都寫不出來。那麼他可能不該去做開發,而是專案經理,或者管理。
    learnshare
        5
    learnshare  
       2018-04-21 21:47:21 +08:00   ❤️ 1
    手写代码?这绝对不写的,上机写还可以考虑一下
    面试的时候务必不要引起对方反感,这也是要注意的

    最后,互相留个面子吧,相亲一场,没必要弄到很难堪
    carlclone
        6
    carlclone  
       2018-04-21 21:50:15 +08:00
    项目经验 专案经历? 到底哪里人
    syhily
        7
    syhily  
    OP
       2018-04-21 21:53:28 +08:00
    @learnshare 隱去各種私人資訊,只是個人感慨。

    務必不讓人反感倒是我的疏忽,但是我拿電腦也是為了讓其能方便編碼,也不是刻意地針對他。
    syhily
        8
    syhily  
    OP
       2018-04-21 21:53:55 +08:00
    @carlclone 大陸人,習慣使用臺灣用語罷了。
    towser
        9
    towser  
       2018-04-21 21:57:57 +08:00
    不管能力如何,此人性格成问题。
    murmur
        10
    murmur  
       2018-04-21 21:58:52 +08:00
    catalina.bat/catalina.sh 里的每一行如果都能搞明白真的也是牛逼的不行
    不妨就按他的说法打开文件就开艹
    carlclone
        11
    carlclone  
       2018-04-21 22:01:19 +08:00
    @syhily 有意思....
    alienx717
        12
    alienx717  
       2018-04-21 22:03:07 +08:00
    我觉得问个 list 驱虫还是很有意思的,他这个反应有点过激了吧,绝对简历侠。
    syhily
        13
    syhily  
    OP
       2018-04-21 22:06:15 +08:00
    @murmur 感謝你的建議,面試不是欺負人,也不是懟人。而是在衡定時間內要達到相互瞭解的過程。不管是面試官問倒面試者,還是面試者反問倒面試官,都是輸。

    我只是想在某種程度上來瞭解其 Java 基礎。但是他覺得 HashMap 之類的考察沒必要,所以才換用編碼的方式。也不是什麼難題。

    Tomcat 其實也有很有意地方可以問,第一個是 Tomcat 自己的執行緒池模型,第二個是 Tomcat 自己為了實現 Hot Reload 的執行緒過載機制。一味地問啟動指令碼,各人覺得不是很妥當。
    kuro1
        14
    kuro1  
       2018-04-21 22:10:00 +08:00
    li=list(set(li))
    cs923
        15
    cs923  
       2018-04-21 22:13:48 +08:00 via Android
    文章用简体 回复用繁体 看着蛋疼啊啊
    orangeade
        16
    orangeade  
       2018-04-21 22:15:12 +08:00 via Android
    @kuro1 接下来就问 set 原理 🐶
    alamaya
        17
    alamaya  
       2018-04-21 23:40:01 +08:00   ❤️ 12
    这里还是大陆人居多吧,用繁体就算了,一堆名词完全看不懂啊,我觉得跟你交流就挺累的
    WinterWu
        18
    WinterWu  
       2018-04-22 00:04:14 +08:00   ❤️ 1
    1. 阿里面试多数岗位会手写代码
    2. Java 里 list 去重,一般情况下大家都会直接用 set 吧,不过自己写的类需要实现 hashCode\equals 方法
    不过,针对大数据量情况下,不同数据类型和分布可以选择不同的优化方式,这样这个问题就可以往下深入多个场景下,更进一步可以扩展到集群 /分布式场景下;楼主的问题蛮好的
    3. 个人不太喜欢让人手写代码,主要是觉得时间太久,直接讲一下思路和问题-大体正确即可,然后扩展开来逐步问
    4. 面试很多人,也被面试过蛮多,其实很多时候是缘分,吐槽具体某个人不是特别合适,毕竟面试官是在优势地位的
    HuHui
        19
    HuHui  
       2018-04-22 00:20:16 +08:00 via Android   ❤️ 29
    大陆人,喜欢使用台湾用语。
    以前也见过一个,精日。
    yanjinbin
        20
    yanjinbin  
       2018-04-22 01:52:39 +08:00 via iPhone   ❤️ 1
    就你这繁体,怼你很正常,你水平也不行,
    sagaxu
        21
    sagaxu  
       2018-04-22 01:54:58 +08:00 via Android   ❤️ 6
    坦白讲,离了 ide 我也写不了 java 代码。很多面试宝典里的老生常谈我也答不上来,tomcat 我也不熟,spring 也只是会用。我可能是假的程序员吧。面试别人时我也不会问这类知识点,这些细节在工作中真的用得到吗?

    我倾向于问一些比较常用的东西,比如多线程的并发问题,gc 的基本工作流程,db 索引的原理和调优。tomcat 线程模型如何应对大量依赖延迟很长的第三方 api 的场景。再比如服务怎么做熔断或者限流,假设完全自己实现。
    wengjin456123
        22
    wengjin456123  
       2018-04-22 03:05:28 +08:00 via Android
    看到这用语和繁体…
    current
        23
    current  
       2018-04-22 03:06:30 +08:00
    这态度明显就不想面应付事儿的。。LZ 淡定就好,没必要挂出来怼,给人直接打个标签也不太好。
    swulling
        24
    swulling  
       2018-04-22 03:27:19 +08:00   ❤️ 4
    手写代码是不可能手写的,这辈子不可能手写的。上机写又不会做,就是吹这种东西,才能维持得了面试这样子。
    goophy
        25
    goophy  
       2018-04-22 03:28:23 +08:00 via iPhone   ❤️ 4
    遇到这样说话怪怪的大陆面试官,拂袖而去还是比较明智的
    WildCat
        26
    WildCat  
       2018-04-22 04:43:42 +08:00
    为什么不能手写? Google 面试一样也得手写代码啊
    yidinghe
        27
    yidinghe  
       2018-04-22 08:25:18 +08:00 via Android
    这个根据你面试岗位是开发人员还是开发经理。如果是前者,机试是最合适的;如果是后者,稍微问几个技术问题确认其技术能力外,再问一些管理方面的问题。
    designer
        28
    designer  
       2018-04-22 08:42:04 +08:00 via iPhone   ❤️ 1
    这种类似文言文的表述挺有意思。挺你
    lonenol
        29
    lonenol  
       2018-04-22 10:47:29 +08:00
    阿里有不手写代码的部门吗。。
    realfreesky
        30
    realfreesky  
       2018-04-22 10:50:57 +08:00 via iPhone
    默默问一句,简历侠是啥意思…
    flowerdance
        31
    flowerdance  
       2018-04-22 11:06:12 +08:00 via Android   ❤️ 1
    突然想起大家的口头禅:面试造______,入职拧_______
    shuizhengqi
        32
    shuizhengqi  
       2018-04-22 11:11:30 +08:00   ❤️ 1
    精台
    aristotll
        33
    aristotll  
       2018-04-22 11:27:32 +08:00
    有些人发的言论和 op 讲的东西一点关系也没有 何必呢 为啥不直接关贴 何必冷嘲热讽
    wangding85
        34
    wangding85  
       2018-04-22 11:36:49 +08:00 via iPhone
    手写伪代码问题不大,不过人家不愿意也可以理解,面试就跟相亲一样,不合适就拉倒
    Thoxvi
        35
    Thoxvi  
       2018-04-22 11:38:05 +08:00 via Android   ❤️ 16
    打个繁体就被喷来喷去?
    v2 什么戾气时候这么大了?
    jyjsjd
        36
    jyjsjd  
       2018-04-22 11:41:24 +08:00
    楼主是哪家单位,还招人吗
    fwee
        37
    fwee  
       2018-04-22 11:48:08 +08:00   ❤️ 1
    多年观察,一般在小团队工作 0 ~ 1 年经验的最喜欢讨论面试个 5 年经验的 XXX ...blah, blah

    年轻人寻找优越感...
    q397064399
        38
    q397064399  
       2018-04-22 12:27:41 +08:00
    @Thoxvi #35 不是被喷,你在大街上说你是 gay,然后跟 gay 友 勾肩搭背 轻吻,,人家也会反感
    bookit
        39
    bookit  
       2018-04-22 12:48:13 +08:00
    楼主赶紧把语言习惯切换回来吧
    fange01
        40
    fange01  
       2018-04-22 12:54:22 +08:00   ❤️ 1
    @Thoxvi v2 的日常,我以前发个帖子说外包价格时候被喷的不行。晚上都没心情吃饭。后来就习惯了。
    我感觉楼主出来分享这么个事情,站在面试官角度是无可非议的,对这字体怼实在没意思了。给楼主搞的很尴尬啊。。
    oszlso
        41
    oszlso  
       2018-04-22 13:15:43 +08:00 via Android
    挺能装的
    ZengLeiPro
        42
    ZengLeiPro  
       2018-04-22 13:20:53 +08:00
    两种语言习惯无缝切换?
    syhily
        43
    syhily  
    OP
       2018-04-22 13:25:48 +08:00 via iPhone
    @fange01 V2EX 社区的诸位都有自己的想法,必然存在不同观点,被喷正常。
    只是不喜欢主观意识的判断,一般很少发帖。萌新瑟瑟发抖。
    gouchaoer
        44
    gouchaoer  
       2018-04-22 13:34:18 +08:00
    @syhily 繁体看着累。。。另外我觉得考察代码真的很重要,很多时候问一个东西也许答得好,但是代码基本功没问题的大概率更优秀
    gouchaoer
        45
    gouchaoer  
       2018-04-22 13:35:41 +08:00
    写代码代表一个人的基础“码力”,不管你用啥语言,你要把这个逻辑表达出来,否则说啥都是扯淡
    syhily
        46
    syhily  
    OP
       2018-04-22 14:08:06 +08:00   ❤️ 17
    @sagaxu 这类细节还是能用到的,比如我说说这里问的 List 去重和接下来要问的内容。

    List 去重原题是 List("a", "a", "b", "c", "c", "c", "d", "d") => List("a", "b", "c", "d") (这里用的是类 Scala 语法定义)

    1. 如果其上来写的是:

    public void distintList(List<String> rawList) {
    List<String> list = new ArrayList<>();
    for (int i = 0; i < rawList.size(), i++) {
    String item = rawList.get(i);
    if (!list.contains(item)) {
    list.add(item);
    }
    }
    }

    那么可以问的点可能就有:
    Q. 这里循环 List 还有什么别的方式?
    A. foreach 的方式。
    Q. foreach 和这里的 fori 的方式有何区别。对 ArrayList 等不同 List 什么情况下该用哪个?
    A. foreach 的语法糖实现,不同数据量迭代器的创建开销。
    Q. 这里定义 ArrayList 未给定大小,那么如果去重后的元素数量很大,这里会有什么可能?
    A. ArrayList 的实现原理,默认大小,超出后的数组拷贝。
    Q. 这个实现最极端的算法时长大概多少,如何优化?
    A. 大概是 O(N^2),可以用 HashSet 优化。
    Q. 那么 HashSet 的去重实现原理你是否知道?
    A. HashSet 内部定义一个 HashMap,使用其 Key 去重。
    Q. HashMap 的默认大小是多少,如果超出会怎么样?
    ...演变到了集合的提问。
    Q. 我看你的简历上写会 Java 8,这里能不能用 Java 8 来实现?

    2. 如果其比较熟悉 Java 8,写出来这样的代码:

    public void distintList(List<String> rawList) {
    rawList.stream().distinct().collect(toList());
    }

    那么可以新的提问啦:

    Q. List .stream() 之外 还有什么 stream ?
    A. 还有 parallelStream。
    Q. 这里可以用 parallelStream 么,有无区别?
    A. 可以用,结果一样。parallelStream 在某些场景下可以并行执行,效率高。
    Q. 那能否说一下,这里 stream 和 parallelStream 的去重原理?
    A. Stream 里面定义了 DistinctOps 用于去重操作,对于一般的 stream,使用 LinkedHashSet 去重,对于 parallelStream,使用 ConcurrentHashMap 去重。
    Q. 为何用 ConcurrentHashMap,ConcurrentHashMap Java 7、8 的区别...演变到了集合的提问。
    Q. 扩展提问:collect 后如果不想结束流该怎么办?

    3. 这一通后,开始改原问题,进行第二问:如果这里 List 里面不是一个 String,而是一个自定义类型,该怎么办?

    需要说重载 equals 和 hashCode 方法,为何重载,默认实现。hashCode 该如何生成,如何减少 hash 碰撞,有哪些常见 hash 算法。

    4. 再将问题改到大数据范畴。Spark 和 Flink 之类的流式处理框架内都有类似 keyBy 的操作,将数据做分组,请问这里他们的实现方法。
    Q. 希望说道二者自定义的 Tuple 集合和内部的 hash 算法。

    6. 将原题改为 List("a", "a", "b", "c", "c", "c", "d", "d") => List(("a", 2), ("b", 1), ("c", 3), ("d", 2))

    7. 再将问题扩展到常见的大数据去重统计。如何在数据量高达几个亿,QPS 上万的系统上,去做去重计数?
    Q. 希望说道类似:布隆过滤,HyperLogLog,HyperLogLog++,等。

    @WinterWu 这大概是我的面试思路,会按照面试者的情况随机调整。
    syhily
        47
    syhily  
    OP
       2018-04-22 14:19:57 +08:00   ❤️ 1
    所以,最后真正想问的问题其实是最后一问:如何在数据量高达几个亿,QPS 上万的系统上,用 Spark 或者 Flink 去做实时去重计数,计算每 5 分钟内某种微度下的数量。

    但是,通过前面的引导,如果能到这个提问,基本上答案呼之欲出。但如果没有到这一步,也是能知道他大概懂什么,不懂什么。如果上来就问这个问题,怕是要被人打死吧。
    ctro15547
        48
    ctro15547  
       2018-04-22 14:27:09 +08:00   ❤️ 1
    作为被面试者我喜欢直接了当,直说公司要用什么技术,做些什么事情,后续产品大概怎么发展。开场我都是直接这么问面试官的,确定好总体方向后再谈,免得听他天马行空乱问问题,关于工作能力都在简历上,要怎么问怎么考随你来,技术这东西做没做过懂行的一问就立马明白。手写代码可以但别搞烦人又偏门的,非要弄出 print 有几种写法,抱歉真没心思想这个
    AntiGameZ
        49
    AntiGameZ  
       2018-04-22 14:27:16 +08:00   ❤️ 1
    题外话,好奇苏宁的代码质量如何,整体的项目管理能力怎样。
    yanjinbin
        50
    yanjinbin  
       2018-04-22 14:33:25 +08:00 via iPhone
    年轻人有什么优越感好秀的,你知道的别人也不一定知道,考这种细节,你过来,我可以问倒你,面试不是面那种考偏门细节技术。。。
    winglight2016
        51
    winglight2016  
       2018-04-22 14:39:52 +08:00
    面试这种事情,是有相性一说的,有没有戏聊两句就知道了,不喜欢你的套路也未必就是不合格——符合你的套路才能入职,这真的只是个人爱好,成不成和技术实力谈不上因果关系
    Cbdy
        52
    Cbdy  
       2018-04-22 14:41:12 +08:00 via Android
    List 去重,没毛病,什么时候这种基础知识也变成偏门细节了
    syhily
        53
    syhily  
    OP
       2018-04-22 14:41:25 +08:00
    @winglight2016 所以面試裡面一直有笨蛋傳染的說法,我也一直拿這個作為對自己的警示。
    winglight2016
        54
    winglight2016  
       2018-04-22 14:44:10 +08:00
    @syhily 是啊,只是实际情况中,team 成员只是对于 TL 的工作量补充,你要是找来弥补短板也不行,毕竟不熟悉的东西无法把控,那还不如继续用套路
    sagaxu
        55
    sagaxu  
       2018-04-22 14:58:45 +08:00 via Android
    @syhily 写明 list 数据量规模,list 去重能写出高于 n*logn 来的,可以直接拒掉,不用再问下去了。拿三到五道笔试题做个初筛,能筛掉很多傻子。对于五年以上的人,你还是直接从最后想问的问题开始吧,再一步步深入下去,前面那些铺垫,跟问变量怎么定义区别不大。
    skyler13
        56
    skyler13  
       2018-04-22 15:45:45 +08:00   ❤️ 1
    为什么那么多人在喷繁体字,繁体字应该是中华文化的根源吧。
    winterbells
        57
    winterbells  
       2018-04-22 15:56:51 +08:00 via Android
    @skyler13 当真??
    em70
        58
    em70  
       2018-04-22 16:25:37 +08:00   ❤️ 6
    @skyler13 这事和微信发语音一样,是发的人爽,看的人不爽, 强迫别人牺牲沟通效率满足自己的情怀,真的好吗?
    dbow
        59
    dbow  
       2018-04-22 17:11:06 +08:00
    我也碰见过种,一见算法题, 直接发脾气, 答不出来其实没有关系, 这题目出发点就是检测思考能力, 不答的直接拒绝, 性格坏。
    Servo
        60
    Servo  
       2018-04-22 17:24:05 +08:00   ❤️ 2
    非常赞赏楼主的做法,提个建议,这类文章应该使用文言文书写,再排版为直书就更佳了。另外,爱看看六字真言,别人用什么“文体”轮得到您管吗 ?

    像楼主这么喜爱、维护并实践中华文化的人实在不多了,楼上某些人有何资格批评,是刺痛你们这些{ , }的丑恶的心了吗?
    ebony0319
        61
    ebony0319  
       2018-04-22 17:24:40 +08:00 via Android
    ide 就像输入法。比如上面第一句话:"因為工程性質",'質'字我认识,只是在纸上写不出来,或许是我对繁体接触少吧。
    AltairT
        62
    AltairT  
       2018-04-22 17:32:44 +08:00
    @sagaxu
    @syhily
    @Cbdy
    作为一个毕业三年才自学转行做码农的, [非常认真] 地想问:如何像你们这么优秀? 有没有切实可行的路线?感觉只是了解基本的数据结构达不到这个水平,目前在小公司也只是写 crud,没机会接触到这些的应用场景,但是不想做个只会增删改查的混子混到三十几还在小公司兜兜转转。
    yanjinbin
        63
    yanjinbin  
       2018-04-22 17:42:46 +08:00 via iPhone
    @Cbdy 聊两句就知道了。面试相互的,拿算法来面试 5 年的,那还真的是面试官水平 low,。。给不起 flag 的价格,还真当自己是?
    Kongtou
        64
    Kongtou  
       2018-04-22 18:04:16 +08:00
    @swulling #24 2333333333
    ftdejo
        65
    ftdejo  
       2018-04-22 19:10:57 +08:00
    @AltairT 这些难道不算是基本的数据结构么··算法书随便刷完一本,leetcode 什么的每天刷几道,刷个几个月还怕手写不出代码来?
    dbow
        66
    dbow  
       2018-04-22 19:18:32 +08:00
    宁可不招人, 也不要让渣渣进来, 渣不渣跟年限无关, 去年我招了个人, 这人坚持每天只工作两个小时, 其它时间划水, 一给他提要求就推三推四, 最后只好开除了。
    poorcai
        67
    poorcai  
       2018-04-22 19:21:04 +08:00
    哈哈希望作为面试官的大佬们,能多发一下楼主在 46 楼的回帖,也好给我们新人一个参考。或者有没有人告诉我一下这样的记录的很详细的面经哪里有呢?
    dbow
        68
    dbow  
       2018-04-22 19:21:54 +08:00
    招人的时候应该坚持一条, 就是你请托侯选人办事, 他的态度跟能力怎么样, 如果跟自己不搭, 拒掉没商量, 免得招到公司给自己找麻烦。
    macha
        69
    macha  
       2018-04-22 19:25:43 +08:00
    最直接的思路难道不是 hashmap 么。其他大数据的方法作为一个 Windows 程序员来说太远了。。。。
    Antidictator
        70
    Antidictator  
       2018-04-22 19:45:56 +08:00
    是绝无任何问题。。只是会少很多人跟你交流而已。。
    AltairT
        71
    AltairT  
       2018-04-22 20:55:53 +08:00
    @ftdejo 他讲的不只是算法和数据结构了,还涉及到集合框架和语言特性,这个感觉除了看源码不太好补,我是希望有除了看源码之外比较系统的途径去学习这些,虽然初级码农和身边很多所谓程序员都不懂这些
    shihty5
        72
    shihty5  
       2018-04-22 21:15:45 +08:00
    这个“其”能换成“他”吗?口语点会显得亲近些
    sgissb1
        73
    sgissb1  
       2018-04-22 21:23:43 +08:00
    写代码没必要了,嘴上说说思维就够了,有时候工作 20 年的大神,也代码一样的烂,就连 string 的内存分配模式都不知道的大有人在。
    但人家确实在架构上有一套
    ftdejo
        74
    ftdejo  
       2018-04-22 22:05:49 +08:00
    @AltairT 他刚刚讲的集合框架不也建立在了解 DS 基础上么,至于语言特性么,自己维护个自己的项目,多写多迭代多踩坑,自然就会懂了,最好的方式依然是推荐看源码,有注释的情况下看起来也没那么费劲,如果实在吃力就自己去搜相关书籍咯,只不过大部分好的书籍翻译以后少了很多味道。还有就是,如果你把"基本的数据结构"掌握了,换个大公司感觉没问题。
    metrue
        75
    metrue  
       2018-04-22 22:40:01 +08:00
    上次面试一个工程师也是,本来打算问一道简单的算法题目水水过了就行,可是问了算法复杂度概念,他就不耐烦了,那只好沉简历了,面试本来就是双向选择的过程,你不喜欢我或者我不喜欢你,那就只好不合作了。
    AltairT
        76
    AltairT  
       2018-04-22 22:42:50 +08:00
    @ftdejo 感谢回复。即使是“基础的数据结构”对于非科班转行的也有点费劲的。道阻且长,毕竟小公司只看重业务,只能每天挤时间多学多看了。至于你说的翻译书籍原版不知道是哪些?我可以看懂部分英文书籍的,但是目前思路还是囿于中文互联网。打算抽空往外转转。 今天找了点系统些的讲集合框架的博客打算下下周开始看吧,下周先学点基础的数据结构(大话数据结构)
    Jhonson
        77
    Jhonson  
       2018-04-22 22:57:56 +08:00
    @Kongtou 梦幻西游哈哈哈哈
    liudanking
        78
    liudanking  
       2018-04-22 23:09:26 +08:00 via iPhone
    @WinterWu 深以为然
    l00t
        79
    l00t  
       2018-04-23 00:48:22 +08:00
    @poorcai #67 46 楼的纯属脑补的“理想面试过程”而已,哪里是真实的记录。这种过程只在楼主自己面试自己时才会发生。真实面试中,双方互相领会对方的意图都要好久,面试官会觉得应试者没回答到点,应试者会在想你到底想问什么。
    l00t
        80
    l00t  
       2018-04-23 00:49:38 +08:00
    @skyler13 #56 繁体字无所谓啊,一堆台湾的术语就很膈应了啊。
    param
        81
    param  
       2018-04-23 01:30:06 +08:00 via Android
    楼主习惯台湾用语,很多人不是尊重楼主的习惯,反而开喷?
    DeWhite
        82
    DeWhite  
       2018-04-23 02:26:46 +08:00 via Android
    我觉得你让他列思路就可以了,让他详细点。
    你这边让他手写代码确实有些过分,要不然 sub 这类软件就不会有需求干脆直接 txt。
    你们两个这种面试,不然直接一句回去等通知来的好。
    syhily
        83
    syhily  
    OP
       2018-04-23 03:45:21 +08:00
    @AltairT 嗯想法很好,科班和非科班最大的差別其實是基礎。然而這這只是開始,決定你們差別成長快慢的更多的是好奇與疑惑。

    即使是簡單的 CRUD,也不見得你真的完全都會。Java 的 ORM 常見的有 Hibernate 系、MyBatis 系、JOOQ 系、JPA 系(算)、JDBC Template 系、Slick 系、SimpleFlatMapper 系。你又知道幾個用過幾個?

    也許你用過 Hibernate,能列舉所有的註解和大致說明快取的設計於實現。然而,你是否看過原始碼裡面如何實現實體與 SQL 的對映? SQL 方言的適配方法?

    也許你用過 MyBatis,知道怎麼定義介面,然後用註解或者 XML 去定義 SQL。甚至你用過 MyBatisPlus 之類的簡化工具。然而你是否看過 MyBatis 二級快取的實現,介面的代理方法實現,如何對 Java 8 default method 的支援實現?

    程式開發,不要滿足於使用,不要滿足於從某些 Paper 或者 CSDN 獲取的知識。對於任何東西,都要報有質疑和疑惑。從原始碼中定位問題,從每一次堆疊報錯資訊中自行定位原因。多去思考,才有進步的可能。

    通過這種方式,自然會發現某種不足,然後去學習。不要認為死扣細節很無語,這可能是你一次自我學習的機會。從工作中學習,不分工作內容。
    syhily
        84
    syhily  
    OP
       2018-04-23 03:49:41 +08:00   ❤️ 1
    @AltairT 忘记切换输入法,我用简体中文说一下:

    嗯,想法很好,科班和非科班最大的差别其实是基础。然而这这只是开始,决定你们差别成长快慢的更多的是好奇与疑惑。

    即使是简单的 CRUD,也不见得你真的完全都会。Java 的 ORM 常见的有 Hibernate 系、MyBatis 系、JOOQ 系、JPA 系(算)、JDBC Template 系、Slick 系、SimpleFlatMapper 系。你又知道几个用过几个?

    也许你用过 Hibernate,能列举所有的注解和大致说明缓存的设计与实现。然而,你是否看过源码里面如何实现实体与 SQL 的映射? SQL 方言的适配实现?

    也许你用过 MyBatis,知道怎么定义接口,然后用注解或者 XML 去定义 SQL。甚至你用过 MyBatisPlus 之类的简化工具。然而你是否看过 MyBatis 二级缓存的实现,接口的代理方法实现,如何对 Java 8 default method 的支持实现?

    程序开发,不要满足于使用,不要满足于从某些文档或者 CSDN 中获取的知识。对于任何东西,都要抱有质疑和疑惑。从源码中定位问题,从每一次堆栈报错内容中自行定位原因。多去思考,才有进步的可能。

    通过这种方式,自然会发现某种不足,然后去学习。不要认为死扣细节很无语,这可能是你一次自我学习的机会。从工作中学习,不分工作内容。
    goophy
        85
    goophy  
       2018-04-23 05:28:01 +08:00 via iPhone
    感觉在讨论“回”有几种写法 -_-!
    goophy
        86
    goophy  
       2018-04-23 05:33:48 +08:00 via iPhone
    面试时不会用我擅长的知识技术领域去考察候选人,让候选人用自己擅长的技术活着知识技能去说服我。仅此而已。能把我不曾涉及到的给讲明白了,也很好。
    allan888
        87
    allan888  
       2018-04-23 06:29:04 +08:00
    感觉有的人就是生怕别人不知道自己会啥,面试的时候恨不得把所有自己会的东西拿出来问别人。
    面试是看别人都懂什么,不是去秀自己懂什么。
    iceheart
        88
    iceheart  
       2018-04-23 07:16:05 +08:00 via Android
    我是认同笔试的。楼主遇到的那个也确定是水货无疑。
    可是看到 46 楼忍不住要问一下,先不说去重,几个亿的数据是怎么放到 list 里的? list 去重跟使用 spark 去重数据,有相似的地方?
    我觉得问算法问题要先把需求说完整,规模不一样,解法也会完全不同
    chenyu0532
        89
    chenyu0532  
       2018-04-23 09:21:40 +08:00
    麻烦楼上各位认真读楼主的文章,人家是"我说要不要我拿电脑让你写,其说可以",这再写不出来怪谁。工作全靠嘴皮子讲原理么?写代码全靠 google 么?
    willvvvvv1
        90
    willvvvvv1  
       2018-04-23 09:27:28 +08:00
    楼主问的没毛病,从浅入深层层递进
    zcljy
        91
    zcljy  
       2018-04-23 10:25:36 +08:00
    南京互联网氛围这么好?
    RangerWolf
        92
    RangerWolf  
       2018-04-23 10:28:24 +08:00
    楼主为啥要强调一下南京~ 汗...

    不过个人习惯也是喜欢让面试的人手写代码. 经常写代码的人, 写起来很自然, 完全靠 IDE 或者从 Googlecopy-paste 的写起来能脸冒虚汗手脚发抖...

    个人习惯, 不喜勿喷
    cominghome
        93
    cominghome  
       2018-04-23 10:28:49 +08:00
    我觉得楼主没问题,事实上我反而挺喜欢这类方式,由浅入深,能答到第几层可以侧面反应知识面,也可以过滤不少简历侠。
    我个人而言则是特别讨厌深问概念理论的,因为没看过几本书(- -),上来一堆名词丢上来头都大了。还不如你给我布置个场景任务,给我时间撸码
    RRRoger
        94
    RRRoger  
       2018-04-23 10:41:10 +08:00   ❤️ 1
    想知道楼主是怎么习惯用这种表达方式的
    saximoer
        95
    saximoer  
       2018-04-23 10:55:16 +08:00
    苏宁啊。。。。。。。
    timwei
        96
    timwei  
       2018-04-23 11:22:10 +08:00   ❤️ 1
    用社区主流言语是尊重社区的表现,在繁体社区用简体发帖讨论一样会失焦

    跟楼主同届,共勉之

    #台湾没有「大资料」一说
    AltairT
        97
    AltairT  
       2018-04-23 12:57:10 +08:00 via iPhone
    @syhily 用繁体大丈夫的,只不过想了一下才明白快取是 cache。说实话我已经比周围的人更好奇了,遇到问题总是会想着底层是怎么实现的。奈何我周围大多是没有技术热情的人,这让他们觉得我很烦,老是问问题(摊手),所以我基本只能靠自己去学去看了

    另外就是你说的这些不看源码是不行的,看源码如果只是 ctrl 点进去对于新手容易摸不到头脑,也不容易形成体系,这方面的书也不多,所以我才想着参照博客来看(实际之前做安卓有时候就会 ctrl 点进去看看)

    我看了你博客里年度总结和败家那几篇,感觉你比我拼多了,我只是站在鸡群里稍微异类点的鸡。最近尝试从大话数据结构入手学算法和数据结构,但是目前只打算看看数据结构,因为我发现算法花时间且短期内收益很小(目前业务用不上)反馈极差导致我挫败感很大没法沉下心去研究
    kongkongyzt
        98
    kongkongyzt  
       2018-04-23 13:06:00 +08:00
    @sagaxu #21 比较喜欢你的这种面试方式
    alexnevsky
        99
    alexnevsky  
       2018-04-23 13:14:01 +08:00
    华为外包了不起?要是十年还不上天啊?
    current
        100
    current  
       2018-04-23 13:47:48 +08:00
    @alexnevsky 华为的外包员工咋样不知道。。华为外包的 hr 是蛮了不起的。。。遇过一个给华为招外包的 hr,要我降薪 50%过去,我表示没兴趣以后她还说我学历他们和华为都看不上,给机会就不错了。。。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   422 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 18:58 · PVG 02:58 · LAX 10:58 · JFK 13:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.