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

如果我去面试 iOS 和 android,别人考我算法题

  •  3
     
  •   zongren · 2016-09-24 10:36:40 +08:00 · 10045 次点击
    这是一个创建于 2764 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如排序什么的,我该怎么说才能说服他,平时用不到排序

    第 1 条附言  ·  2016-09-24 11:20:16 +08:00
    标题改为"如果我被面试 iOS 和 android ,别人考我算法题"
    第 2 条附言  ·  2016-09-24 13:52:53 +08:00
    我目前在一家公司做 iOS 和 Android ,时不时会面世一些程序员,一般也就问一些基础的问题,从来没考过他们的算法什么的。
    77 条回复    2016-10-06 19:41:31 +08:00
    holyghost
        1
    holyghost  
       2016-09-24 10:40:21 +08:00   ❤️ 2
    考你算法可能不是为了问解决方案,只是为了看你解决问题的思路。
    eightqueen
        2
    eightqueen  
       2016-09-24 10:48:56 +08:00
    到底是谁面谁啊?不会就不会,但是可以告诉对方自己擅长什么,引导对方问自己的强项。
    DingSoung
        3
    DingSoung  
       2016-09-24 11:03:51 +08:00   ❤️ 3
    这种不服的我碰到过,各种小问题不屑于回答,后来让他把最擅长的拿出来靠靠,也就那样。
    zhicheng
        4
    zhicheng  
       2016-09-24 11:08:09 +08:00 via Android   ❤️ 3
    等会儿问你有什么问题的时候考他一个。
    scnace
        5
    scnace  
       2016-09-24 11:09:32 +08:00 via Android
    不是很正常?
    h4x3rotab
        6
    h4x3rotab  
       2016-09-24 11:13:25 +08:00 via iPhone   ❤️ 1
    招程序员不可能只考察已经掌握的技术,真正需要的是来什么需求程序员就能冲上去学会技术再解决问题,算法反映了程序员的潜力,所以问算法非常正常
    YvesX
        7
    YvesX  
       2016-09-24 11:30:46 +08:00 via iPhone
    “例如排序什么的”还是可以会一下的。
    lsmgeb89
        8
    lsmgeb89  
       2016-09-24 11:31:28 +08:00 via Android
    这个很正常吧
    Yc1992
        9
    Yc1992  
       2016-09-24 11:41:25 +08:00 via Android
    有发帖的功夫可以背下来三种最常考的排序,排序常见的一共也就七八种
    jianzong
        10
    jianzong  
       2016-09-24 11:43:58 +08:00
    高考的时候试试说服教育部怎样不考数学才让你上大学吧
    tvallday
        11
    tvallday  
       2016-09-24 11:46:03 +08:00 via Android
    面试还是准备一下吧。他们也没啥好问的,都是套路。除非你做的东西跟他们要解决的问题几乎一样,不然问的肯定都是大路货。
    jianzong
        12
    jianzong  
       2016-09-24 11:46:15 +08:00
    说白了面试就是一个筛选的过程的,并不是说面试的东西,就是工作上要用的东西。

    对于好公司来说,排着队有人想进去做这个工作,为什么不选那个既会 iOS ,又愿意 / 能够 学会排序的呢?

    何况常用的排序又不难。
    yhxx
        13
    yhxx  
       2016-09-24 12:29:38 +08:00
    难点的算法也就算了,排个序你花个 5 分钟背都背下来了。。。
    还有你真的不是 youdaji 的小号?
    Mistwave
        14
    Mistwave  
       2016-09-24 12:31:53 +08:00 via iPhone   ❤️ 3
    钩太直
    reus
        15
    reus  
       2016-09-24 12:32:51 +08:00
    排序你都不会写,技术能力肯定有限,要你干嘛?
    你是在展示自己有多无能吗?
    wizardforcel
        16
    wizardforcel  
       2016-09-24 12:34:54 +08:00   ❤️ 1
    大公司的面试都是筛选,并不是反映你的真实水平。互联网时代稀缺的不是能力,而是位置。
    ihuotui
        17
    ihuotui  
       2016-09-24 12:41:28 +08:00 via Android
    那么问你设计模式吧,你回答一下
    wizardoz
        18
    wizardoz  
       2016-09-24 12:44:06 +08:00
    有些东西就像骑单车一样,一次学会了,一辈子也记得。
    moonweilan
        19
    moonweilan  
       2016-09-24 12:50:19 +08:00 via iPhone
    我们要的是工程师,不是码农
    waruqi
        20
    waruqi  
       2016-09-24 12:57:32 +08:00
    我昨天就面了个工作了 4 年的 ios 的,各种奇葩回答。。

    1. 问他你平常使用和熟悉哪些数据结构 ,随便说一个。。

    他居然回我:数据结构?是 MVVC 什么的吗?

    2. 继续问他,就是数组,链表这些,单链和双链有什么区别

    他回我:连?表? 哪个连? 我说 是 链表,金字旁的链。 = =

    3. 问:你简历上说熟悉 xml 和 json ,那简单讲讲 xml 和 json 的区别吧,有什么优缺点

    答:。。。。一分钟过去了。。没答上来。

    4. 问:你数据库用过么, sqlite 用过没?

    答:没有, sqlite 是什么?

    。。。

    问了 20 几个问题,居然没一个答上来的。。= =
    GentleSadness
        21
    GentleSadness  
       2016-09-24 12:58:31 +08:00
    问个问题,你面试 Android 或 IOS ,如果是刚出来的,能问什么,也没什么好问,那就问别的东西咯

    如果是资深工程师,那就真看你多资深了
    wadahana
        22
    wadahana  
       2016-09-24 12:59:18 +08:00
    做为一个程序员,如果简单的排序算法原理、复杂度都讲不出来,是完全不合格的
    sun1993
        23
    sun1993  
       2016-09-24 13:05:54 +08:00 via Android
    @waruqi 你确定你不是在讲段子?
    marvinwilliam
        24
    marvinwilliam  
       2016-09-24 13:09:40 +08:00
    基础很重要,前期可能都差不多,看不出有什么区别,但是到后面,这些基础的东西会影响到你处理某些问题时候的思路.
    mind3x
        25
    mind3x  
       2016-09-24 13:09:45 +08:00 via Android
    @waruqi 恐怕是假简历
    ihuotui
        26
    ihuotui  
       2016-09-24 13:12:42 +08:00 via Android
    社会上有这种人,毕竟不是互联网出身
    oa414
        27
    oa414  
       2016-09-24 13:26:38 +08:00   ❤️ 1
    我觉得面算法题好在,方便地刷掉大部分基础薄弱的人;考察也很方便,都是有答案、有不同解法的小问题。

    如果证明自己应用层很厉害的话,即使不会写反转二叉树,进不了 Google 也可以去 Apple...

    问题是大部分人工程能力没有那么厉害,其他人好好学一段时间很容易就能达到。而排序这些基础的算法更多的是作为一个常识,应用开发确实能用到啊。
    tmackan
        28
    tmackan  
       2016-09-24 13:34:55 +08:00
    @waruqi 你连 sqlite 都不知道,你是来搞笑的吗?还开发 ios = =
    zhuangzhuang1988
        29
    zhuangzhuang1988  
       2016-09-24 13:40:58 +08:00
    正常, 应该是删选培训机构的吧。。
    kkzxak47
        30
    kkzxak47  
       2016-09-24 13:51:58 +08:00 via Android   ❤️ 1
    你可以把这个面试题看成在考察你的工作态度,类似于面对无理傻逼需求时你的反应是不是专业,沟通能力如何,而算法本身只是一个介质,让你有主题可以说而已。
    otakustay
        31
    otakustay  
       2016-09-24 14:39:17 +08:00   ❤️ 3
    不要真以为排序没用,基础的积累是在真正遇到问题的时候暴发出优势的,看这个案例: http://efe.baidu.com/blog/talk-about-sort-in-front-end/

    这个事情当时在我们的系统中出现,一个排序用 JS 自带的速度快但不稳定,用自己写的要好几秒才排得完,他们搞了 1 个多小时没搞定准备去和 PM 谈砍需求,正好路过看到就给了他们个简单的解决方案
    其实这事还没怎么涉及算法,最后都没自己写实现,无非了解排序有稳定和不稳定,不稳定的时候怎么搞能搞成稳定的,但是连这些都不知道最后也只能在那边傻着
    nicevar
        32
    nicevar  
       2016-09-24 15:01:49 +08:00
    招聘也要按照基本法来的,一些基础的算法是要会的,否则日后会发现这些对算法不熟悉的人会写出非常令人吃惊的代码
    raysonx
        33
    raysonx  
       2016-09-24 15:09:32 +08:00
    算法是基础。我面试人的时候也会问一些简单的算法问题。
    wizardforcel
        34
    wizardforcel  
       2016-09-24 15:51:57 +08:00 via Android
    @otakustay 不稳定的算法可以通过增加一个属性并重写比较函数来改成稳定的。
    psklf
        35
    psklf  
       2016-09-24 16:00:24 +08:00
    @waruqi

    >金字旁的链

    这里基本上面试可以结束了
    hronro
        36
    hronro  
       2016-09-24 16:06:14 +08:00
    你见过面试 UI ,考算法的吗
    waruqi
        37
    waruqi  
       2016-09-24 16:19:01 +08:00 via iPhone
    @sun1993 真不是段子 昨天的事 还问了些其他的基础知识 都没答上来 还跟我说自己理论不行 实际开发 ok
    RedeemDx
        38
    RedeemDx  
       2016-09-24 16:43:19 +08:00
    @waruqi 这也假的太明显了啊....也亏你听得下去
    不如你来面面我~~
    zongren
        39
    zongren  
    OP
       2016-09-24 17:02:46 +08:00
    @hronro 这个就真的没必要了
    t0byxdd
        40
    t0byxdd  
       2016-09-24 17:24:38 +08:00
    你说 ios android 用不到机器学习就算了 说排序都用不到我非常不服
    huntzhan
        41
    huntzhan  
       2016-09-24 17:27:39 +08:00   ❤️ 1
    尊重游戏规则,自己菜就不要找理由。
    twogoods
        42
    twogoods  
       2016-09-24 17:36:57 +08:00
    以前有跟楼主有一样的想法,面试被虐了,就回去乖乖看,哪怕我还是觉得有些高级的算法和数据结构我以后用不到~
    lawlietxxl
        43
    lawlietxxl  
       2016-09-24 18:02:00 +08:00
    不做一件事情 大概不会知道这件事情对你的影响
    TaoQAQ
        44
    TaoQAQ  
       2016-09-24 18:08:32 +08:00 via Android
    @waruqi 啊为什么都问这么简单的,我应届生校招问的问题都涉及到热更新了?!
    iyaozhen
        45
    iyaozhen  
       2016-09-24 18:50:56 +08:00 via Android
    之前以为买菜用不着数学。现在有时做一点数据统计的事情,唉,书到用时方恨少啊

    算法本身可能用不着(其实还是用得着),但其解决问题的思路是值得学习的。不然会写出很多不忍直视的代码
    SourceMan
        46
    SourceMan  
       2016-09-24 18:54:56 +08:00 via iPhone
    看评论放心系列
    zkd8907
        47
    zkd8907  
       2016-09-24 19:26:37 +08:00
    害怕。。
    Ouyangan
        48
    Ouyangan  
       2016-09-24 20:46:14 +08:00
    @sun1993 是真有这种...上次面试一个土木培训过来的,http 状态码 200 都不知道.....
    holmesabc
        49
    holmesabc  
       2016-09-24 21:19:12 +08:00 via Android
    你说你是他老板儿子。如果是真的话,说服面试官应该没问题
    zongren
        50
    zongren  
    OP
       2016-09-24 21:23:12 +08:00 via Android
    @holmesabc 手动滑稽
    shijingshijing
        51
    shijingshijing  
       2016-09-24 21:31:18 +08:00
    额。。。 连算法都不考了还考啥?
    一般上来都是算法 + 操作系统 + 编译原理三板斧啊。楼主还是自己抓紧时间多看看吧,这些东西等你写 web 或者 app 到一定程度之后肯定会涉及的,直接影响性能。
    tinyproxy
        52
    tinyproxy  
       2016-09-24 21:34:05 +08:00
    @sun1993 那个真不算段子,我给你来个我前公司同事的面试经历。他出了一份题目,也没多难,就全英文写的而已,可以用中文回答。然而。。。。几个 iOS 求职者看了题招呼都不打直接走了,我们 HR 懵逼了
    pandachow
        53
    pandachow  
       2016-09-24 22:08:22 +08:00
    这里有个误区,就是你觉得「问我的面试题应该是我工作中会用到的」。

    工作中用到的用来做面试题必然是可行的,但是面试题的根本目的其实是用来筛选,只要能起到面试官或者岗位需求的筛选作用,其实就可以了。
    zongren
        54
    zongren  
    OP
       2016-09-24 22:47:02 +08:00 via Android
    @tinyproxy 其实我也比较看中英文,不过好像小公司不是很在意
    littleshy
        55
    littleshy  
       2016-09-24 23:44:02 +08:00 via iPad   ❤️ 1
    作为一个程序员不学算法,就像那些喊着把数学踢出高考的人。
    XadillaX
        56
    XadillaX  
       2016-09-25 00:33:57 +08:00
    考你算法可能不是为了问解决方案,只是为了看你解决问题的思路。
    wohenyingyu01
        57
    wohenyingyu01  
       2016-09-25 05:20:14 +08:00 via iPhone
    @waruqi 如果不是有完整学习交流经历,很多东西用的很熟也不知道叫啥,比如链表这个词我用了一年才知道, sql 别人念成涩括我就听不懂, cache 一直念成 cancer ……
    exch4nge
        58
    exch4nge  
       2016-09-25 07:48:31 +08:00
    劝 LZ 仔细想想为啥楼里大部分人都觉得面试考算法是正常的。对于初级到中级程序员一般工作中确实很少涉及到这些,但如果你想在这条路上走的更远,你早晚会发现这些基础很必要。
    doubleflower
        59
    doubleflower  
       2016-09-25 09:55:50 +08:00
    @shijingshijing 涉及个啥啊,工作这么多年算法 + 操作系统 + 编译原理一次也没用到过,除非你本身做这方面。这种东西知道个原理就行了,细节无需再抠,即使万一到用到再查也不迟。
    tabris17
        60
    tabris17  
       2016-09-25 11:19:08 +08:00
    @waruqi 然而这种人薪水也能到 15k ,简直可怕
    gason406
        61
    gason406  
       2016-09-25 11:55:21 +08:00
    翻转二叉树会吗?手动滑稽
    20015jjw
        62
    20015jjw  
       2016-09-26 02:31:04 +08:00
    锅内程序员居然不考算法题???????????????????????????????
    zongren
        63
    zongren  
    OP
       2016-09-26 08:23:21 +08:00
    @20015jjw 楼上没有这么说的,一般都要考
    miki6180
        64
    miki6180  
       2016-09-26 10:30:51 +08:00
    至少说服不了我,不是因为用不到而不去学,而是为了专业而去学。
    noif
        65
    noif  
       2016-09-26 11:19:20 +08:00
    @waruqi
    链表??不好意思,面试结束,我不想应聘了。。。
    zongren
        66
    zongren  
    OP
       2016-09-26 14:46:40 +08:00
    @noif 有钱任性。。
    zongren
        67
    zongren  
    OP
       2016-09-26 14:47:06 +08:00
    @miki6180 你是正经的技术人员
    ma125125t
        68
    ma125125t  
       2016-09-27 09:37:51 +08:00
    面试 iOS 为什么要问链表,也是滑稽
    sangmong
        69
    sangmong  
       2016-09-27 09:44:54 +08:00
    @waruqi 那是你们 hr 筛选了一批培训班刚毕业的来面试,666
    yongSir
        70
    yongSir  
       2016-09-27 11:12:45 +08:00
    我靠
    什么时候程序员考个算法
    都大不违了

    要知道
    就算是公务员考试
    还有逻辑推理题呢
    sampeng
        71
    sampeng  
       2016-09-27 11:41:53 +08:00
    算法我觉得可有可无,看面试官的想法。有和没有都是对的。

    但数据结构要是不懂就有点说不过去了。。懂数据结构和不懂数据结构代码写出来两个样

    @noif
    我去年面试过一个伙计,就是我问了几个链表和队列的问题。。还准备问点其他的,这伙计直接说,对不起,我答不上来,我走了。不面了。。。关键是一脸的嫌弃样。我真是瞬间感到生无可恋啊。。。
    sampeng
        72
    sampeng  
       2016-09-27 11:42:57 +08:00
    排序还是有点用的,尤其在比较复杂的数据结构嵌套时。自己写排序,比各种装箱拆箱后得到结果要快很多很多。
    noif
        73
    noif  
       2016-09-29 13:51:38 +08:00
    @sampeng
    哈哈,看来你是做后端比较多啊,如果我是面试官,我会考一些 CoreAnimation 、 uiview 动画之类的;哈哈,毕竟 cocoa 框架太牛逼,只有你没想到的,没有他没做好的。所以术业有专攻,直接走人就可以理解了。
    noif
        74
    noif  
       2016-09-29 13:53:43 +08:00
    @shijingshijing
    能考的东西多了去了。。。。
    zongren
        75
    zongren  
    OP
       2016-09-29 14:39:26 +08:00 via Android
    @noif CoreAmination 和 CoreData ,我都不怎么熟练,平时不怎么用
    noif
        76
    noif  
       2016-09-30 09:43:52 +08:00
    @zongren
    CoreAnimation 的话,需要深度定制动画的时候,可操作度更高;至于 CoreData ,有点类似于 java 里地 hibratis (好像是这么拼的么),不用也罢,有更好的操作数据库的,大名鼎鼎的 FMDB ,哈哈,这个足够了。。。
    acumen
        77
    acumen  
       2016-10-06 19:41:31 +08:00 via iPhone
    移动端笔试题目出现 ml 也出现过
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2797 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 13:08 · PVG 21:08 · LAX 06:08 · JFK 09:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.