fever105

下午面试出来,有种生无可恋的感觉

  •  
  •   fever105 · Jun 7, 2016 · 18547 views
    This topic created in 3677 days ago, the information mentioned may be changed or developed.

    楼主年后入职一家中型创业公司,上周某一天突然找我们项目组的人一个个谈话,说由于资金问题这个项目被砍掉了,团队当天解散。。。

    于是才有了楼主今天下午到一家做 app 的创业公司面试的故事,上来就是一道算法题,楼主不出意料的不会做(不过后来我问过算法比较牛逼的哥们,说这题不难)。嗯,就这样,技术总监根本懒得见我,人事打发了我几句就走了。

    肯定有人会说,你个搞开发的连个简单的算法题都不会,不见你也是应该的。完全同意,只是说下楼主的背景:

    • 楼主英语专业出身,搞 iOS 开发的时间不长,完全自学(之前一直做口译)
    • 看过大部分苹果的 programming guide
    • 最喜欢的书是 k&r 的那本 c 语言教程
    • 楼主自知非科班出身,努力学过设计模式,上家公司的 app 架构就是我做的
    • 个人认为,对于 oo 来说,用好设计模式可以极大的增强代码的可维护可扩展性,至于算法 /数据结构,已经都被封装在各种 lib 的实现里了

    楼主热爱编程,也认同算法的重要性,只是觉得心里不爽,不会算法就意味着:我只要还在干这一行一天,就必须面面对今天这种人,随时可能拿算法甩我一脸,我心里好气,但又无可奈何。

    请问算法如何学起,楼主文科生,数学不好,阶乘的概念都是最近才知道的,找了几本算法书,涉及大量数学公式,许多符号我都看不懂,有种无从下手的感觉,看哪本书好呢?需要复习下高中数学吗?我想过先看 可汗学院的视频,但是又不知道看哪些最有用,唉

    131 replies    2016-06-10 12:41:48 +08:00
    1  2  
    Growingio
        101
    Growingio  
       Jun 8, 2016
    默默推荐一下左老师的《程序员代码面试指南》>w<
    inmyfree
        102
    inmyfree  
       Jun 8, 2016
    @murmur 我还真的认为 VR 能炒出点什么来,如更新中国传统课本教育为虚拟现实,游戏由平面体验改为沉浸式体验,和几年前功能机转为智能机的跨越都差不多
    murmur
        103
    murmur  
       Jun 8, 2016
    @inmyfree 那用卡片盒子就差不多了。。如果想做真实场景体验还要布景
    allce231
        104
    allce231  
       Jun 8, 2016
    我想知道你们解散公司有钱补吗?
    IAmAnonymous
        105
    IAmAnonymous  
       Jun 8, 2016
    其实看楼主面试的职位的定位。
    初级:算法不用面。
    中级:基本查找排序。
    高级:我不行。。。
    UnitTest
        106
    UnitTest  
       Jun 8, 2016
    如果该公司没有保密协议 , 楼主最好把题目说出来 , 大家来看看是否是属于刁难面试者 , 还是测试基础知识的.
    中级和初级职位要求较低 , 面试人数较多 , 出个简单的算法题 , 对于筛选还是有用的 .
    高级的就另当别论.
    qianleilei
        107
    qianleilei  
       Jun 8, 2016
    不就是没 offer 么,生无可恋?有这么夸张?
    KgM4gLtF0shViDH3
        108
    KgM4gLtF0shViDH3  
       Jun 8, 2016
    @menc 确定这不是后台做的嘛。。。
    menc
        109
    menc  
       Jun 8, 2016
    @bestkayle
    这个就厉害了,这个简单的功能也要推锅。
    instant search 变得太快,是不适合联网的。
    你一个请求 300ms ,这 300ms 用户的输入都不一定变了多少次了

    所以都是缓存过来,在自己这里做 instant search
    Wangxf
        110
    Wangxf  
       Jun 8, 2016
    基本的几个频率较高的比较简单的要信手拈来,比如排序算法,去重算法,其他的多刷刷 leetcode 就好了,算法导论可以看,但是我认为你还没到那一步
    Wangxf
        111
    Wangxf  
       Jun 8, 2016
    其实你可以看看这个网站 http://www.jisuanke.com/course
    Cloudee
        112
    Cloudee  
       Jun 8, 2016 via iPhone
    @menc 哈哈这个我印象深刻,我在我之前公司 im 产品的 webclient 上实现过,搜索通讯录的
    SmiteChow
        113
    SmiteChow  
       Jun 8, 2016
    不是这样的,算法讲的是思维。
    wangxn
        114
    wangxn  
       Jun 8, 2016 via Android
    @rubytek 不就是编辑距离么? DP 入门用的例子。
    qwlhappy
        115
    qwlhappy  
       Jun 8, 2016
    我觉得算法训练很多时候都锻炼了把自己的想法转换为代码的能力。其实很多算法看一遍就懂了,但是写还是有困难。
    youxiachai
        116
    youxiachai  
       Jun 8, 2016
    面试的算法..

    看 july 那本面试算法..基本能够横扫了吧..
    crabRunning
        117
    crabRunning  
       Jun 8, 2016
    我想说我是海洋工程的,算法一点都不懂咧,好忧桑。
    KgM4gLtF0shViDH3
        118
    KgM4gLtF0shViDH3  
       Jun 8, 2016 via iPhone
    @menc 所以百度的匹配是前台的?
    wjfz
        119
    wjfz  
       Jun 8, 2016
    LZ 和我是一家公司嘛?
    menc
        120
    menc  
       Jun 8, 2016
    @bestkayle 百度是搜索引擎,没有办法做本地的。
    yxzblue
        121
    yxzblue  
       Jun 8, 2016
    不就是技术总监没见你么,你和他有一腿?生无可恋都来了
    raincious
        122
    raincious  
       Jun 8, 2016
    @Cloudee
    感觉不是一回事,通讯录这种东西始终是有限的集合,数据内容是可以控制的,比如至多 500 人吧,这样哪怕一个个 Levenshtein 算好速度也不赖。更何况你可以把数据下回来用多个 Trie 树来索引,之后每个树就是 O(n)搜索。

    但是 Instant Search 是不一样的,我猜测应该是用户输入前几个字符的时候,后端先返回一个大批量的数据(比如 50 个),然后前端先显示几个(比如 5 个),之后用户再进行输入的时候前端根据用户的输入过滤和排序(比如用 Levenshtein 算),当前端的可用数据不足的时候(比如少于 15 个),前端再提交数据请求给后端下载另一批数据。

    后端那边需要再用户输入的时候就转换好,先将中文转换成拼音,然后拆分了存进数据库,比如
    北京 => bei,jing
    储存的数据 Key 是:[北, 京, 北京, bj, b, be, bei, beij, beiji, beijing, j, ji, jin, jing]
    值是:[北京, beijing]

    用户搜索 `bejng` 的时候,数据库(比如 Redis )从 `b` 开始匹配,如果发现匹配到 `be` 之后就没有结果了(可能得有个权重阈值,过滤到一些不常用的结果),然后根据 `be`,得到[bei, beij, beiji, beijing](这个结果应该是用关键字权重来排序的,热门关键词优先),之后用 Levenshtein 得到最相似的关键字`beijing`,最后得到结果:[北京, beijing]。

    当然,如果用户搜索 `bjing`,程序应该从尾部开始搜索,比如[g, ng, ing, jing, bjing],这样也可以通过`bjing`这个关键词得到`beijing`。

    当然,我上面的猜测只能在用户输入了足够多正确样本的情况下才可用,面对`bjng`这样的关键词应该还是无效的。
    Stupitch
        123
    Stupitch  
       Jun 8, 2016
    @murmur 互联网有阶段性,移动互联网这个阶段开始往尾巴走了,除了大公司外,很难成功了(除了一些小型的个人开发者,不过也只能红极一时而已)
    zhuangzhuang1988
        124
    zhuangzhuang1988  
       Jun 9, 2016
    @woshinidie 认同你的观点, 蛤..
    laravel
        125
    laravel  
       Jun 9, 2016
    我是材料化学专业,同样存在这个困扰,都推荐《大话数据结构》、《大话设计模式》,数学的相关知识可以查 wikipedia
    x9498
        126
    x9498  
       Jun 9, 2016
    真的差好多,你以为科班四年是白过的?
    Jerry5850022
        127
    Jerry5850022  
       Jun 9, 2016
    文科生自然在技术上有些劣势,但是你会做口译这个就是优势啊。

    可以做对外的一些项目协作,没必要去做开发啊。
    wxm
        128
    wxm  
       Jun 9, 2016 via iPhone
    @zhleonix tootoo youngyoung
    3A93EifxUzhBjhu6
        129
    3A93EifxUzhBjhu6  
       Jun 10, 2016 via Android
    推荐一本书,计算机科学的基础。直接图灵下载,免费的书。自己愿意留打印出来。此书中文版无纸质书
    H4cK
        130
    H4cK  
       Jun 10, 2016
    够文艺的话建议转下产品经理。
    FrankD
        131
    FrankD  
       Jun 10, 2016
    @zhleonix 然而马云不用写代码。。。
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   989 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 19:54 · PVG 03:54 · LAX 12:54 · JFK 15:54
    ♥ Do have faith in what you're doing.