版权所有@foreach_break】 【博客地址 http://www.cnblogs.com/foreach-break】 可以转载,但必须注明出处并保持博客超链接

背景

自从2013年离开北京后,就没有在固定单位上班了。
期间捣鼓过一些东西,也挣了点小钱,日子也没有到过不下去非要找工作的地步。

只是觉得自身仍有不足,作为技术,还是想再开阔一点,再深刻一点,再专业一点。

也没有去刻意地投递简历,本来老婆怀孕,自己在家,时间比较多,所以就写写博客,所以会有一些来自私信的机会。

既然有机会,那就愉快地去追一下,本篇,就记录一下最近几个月的一些经历。

云XX

这个公司招聘全栈,要求精通编译、操作系统、计算机网络,要精通一门底层语言,比如汇编或者C,要精通一门高级语言,比如C++或者Java,没有.Net方面的要求。

因为不是自己投的,一般看到诸如要求精通的,我就呵呵一下,然后就扫其他的了,但是机缘巧合,可能HR妹妹比较具有亲和力,所以也就答应应试。

约的两周后聊,不过由于老总临时有事,就和CTO哥哥先聊下,主要聊的一些内容是:

  1. 操作系统的进/线程区别,Linux Kernel进线程调度的机制,以及操作系统原理概念上的调度算法。
  2. 分布式存储的一些问题,比如分布式锁、锁性能、Master-Master多主架构和Master-Slave架构的各自优劣,等等。
  3. 作为第2个问题的延续,会聊到CouchBase和HBase的一些实现原理,但并不深入,还会聊到性能上的东西,比如为什么不选择HBase。
  4. 自己的一些项目经历,一些比较泛的知识点,看似随意,但应该是在考察知识结构,是否全面。
  5. 知道哪些开源软件或者框架,看没看过源码,有没有自己的理解等等。
  6. Java多态的实现和体现,接口和抽象类的关系,我从java和vm层面大概做了叙述。

第二天,和老总聊,这个比较有趣,因为老总的技术很厉害,而且也很坚持己见的,这次聊的很久,大概有3个小时,主要还是争论,其实到这一步基本就没打算要这个offer了:

  1. 硕士为什么没有毕业。
  2. 天文科学家为何要选择Python来处理数据,而不选择其他的语言。我说这是历史原因,然后老总说这个设计方向不是用来处理这个的。这里也有点小争议,略过吧。
  3. 为什么要在Python虚拟机上做核间并行,在kernel里做会不会更舒服。
  4. 聊到老总面过的一些人,包括985出来的,和BAT出来的一些T,能把编译、装载、链接,说清楚的人不超过5个。我说你们公司要求挺严格的,老总说不是他们要求严格,是行业整体水平太低。很多做WEB开发的,后面的东西一点不懂,但也能做,你说能做好吗。这一点,各自有不同的看法,但分歧到没有大到要争论的地步。
  5. 中途我问到了一个问题,为什么选择Erlang作为开发语言。因为这家公司目前主要做云通讯(之前CTO自己的定位),而这个问题也是本次面试最大的争议所在。

    老总说你应该自己做做homework,当时我是觉得吧,通过这个点让人家介绍下业务,毕竟没业务聊啥都是比较泛,自己想有点针对性,但被这么当头一棒,觉得自己是在浪费人家的时间,而且“做做homework”如果你听了也会有点火吧,呵呵。

    从这里开始,基本各种争论的东西也就出来了,比如,聊到ZooKeeper

    老总:ZooKeeper太重,在他们的架构中是臃肿的或者累赘。
    我:可以不用zk,但一致性和同步也得自己实现吧。
    老总:他们自己基于paxos算法实现了。同时列举了一些行业内的反例,说其实用zk等开源框架拼出来的系统,都存在逻辑上的问题。
    我:提到了twitter。
    老总:如果你有机会可以去twitter看看,我们现在做的是取代他们的老框架。
    我:虽然我没在twitter工作过,不过各种Con,各种Summit,各种SlideShare,还是有看过的。

    后来又聊到多主结构,和主从结构

    我:我之前有了解到,类似p2p这种,捕获网络拓补变化的速度会比较慢,随着节点数的上升,可能时间复杂度过高。
    老总:我们从不空谈问题。很多业内观点,认为这种架构不好,但事实上我们有一套老系统性能特别高,目前的通讯也是基于这个,30-40个节点没有什么问题。
    我:那心跳是怎么维护的?
    老总:是由每个节点互相维护心跳。
    我:好的。但好像这样也是将同步和协调机制耦合进去了,我觉得Hadoop和HBase那种Master-Slave的,抽象出NameNode或者MasterNode,然后维护一些metadata在zk上,也是已经被成功证明的一种架构呀?
    老总:我问你,如果状态节点和数据节点之间发生网络割裂怎么办?
    我:发现网络拓补这块不通后,肯定要进行节点间复制,并等待网络恢复,比如阿里那次光纤切断事件。而且,您为什么一定觉得状态节点一定是单个节点呢?
    老总:所以,它们之间并没有解耦。
    我:哦,我说的解耦不是说彻底不协作了,只是从设计上按照独立角色原则分离开来,这样清晰一些。
    老总:那还是耦合的。

    期间,老总还觉得Java不是一门比较好的语言,当然,这一点我也有同感,但我觉得生态可能更重要一些。

    最后,还是回到了那个Homework问题:

    我:X总,您应该是一直受西化文化的影响,所以觉得问这个问题会没有什么价值?因为您的homework回答,让我感觉有点过于直接和难以接受。
    老总:公司需要以效率为重。
    我:其实,我个人听HR说您的技术很厉害,我也搜过一些新闻和对您的采访,我觉得我个人是作为一个follower来取经的,不过这么干脆的拒绝,的确我是第一次见。
    老总:讲了很多公司开会的方式,比如先做好准备再开会,否则要一直给某个不懂的人讲,会算白开了。
    我:这个我同意,但我是面试,所以不清楚你们公司的业务,只是想听听作为创始人,对这个技术选型的看法,而且很多大牛,如果你邮件给他,他也会很谦虚,很详实地回答你的问题。

    期间又聊到StackOverflow,我提到,记得以前有个人对于回答问题的人,表示了感谢,站务觉得这是废话,后来有很高reputation的人站出来发声:至少在我们的国度,如果有人帮了你,说声谢谢,是有教养的体现。如果觉得表示感谢这样的话,过于社交向,那不如去掉reputation和回答者的个人链接好了。

    后面的很多问答,其实也是在互相表达团队沟通的一些原则,我只是觉得,公司不是招聘机器人,大家都是专家独当一面,开会高效,无可厚非,但人与人之间普遍存在差距,一个好的leader,如果这么冷面,那团队氛围会利于激发创新么?

    的确,老总说的很多都是有道理的,比如美团,就有要么牛逼,要么滚蛋之类的宣言,但我个人觉得任何事,得3-7开,不能那么绝对。

觉得像云XX这样的公司,走Geek路线,全招的是专家或者有潜力成为专家的全栈牛,而且对智能硬件、云通讯、实时系统有自己的一套理念和实现,还是很有前途的,祝福一下吧。

极客XX

教育类公司,职位好像是大数据就业班主管布道师,就是研发管理大数据方向的课程。

这个是从猎聘上来的机会。

HR要了简历后,觉得太简单了,我又大概补充了下,3天后,跟数据中心负责研发的leader聊,主要内容是:

  1. 算法课程,在大学和在培训机构的课程,有什么不同。
    对方leader表示算法虽然没什么用,学起来没有干货的感觉,但是可以帮助一些学员就业,比如一些公司会考算法。
  2. Hadoop和Spark。
  3. 项目经历。
  4. 上班时间,课程开发的一些过程,等等。
  5. 有个槽点就是,对方leader把C#念作"C井",我当时有点慌,如果纠正说C-Sharp,会不会留下不好的印象,如果说C井,好像又很别扭. : ]

本来觉得聊得还行,结果HR后来说,可能此方面直接项目经验少了些。

民XXX

这个机会,接触了来回有2个多月的感觉,对方的总监是个很好的人,上海交大的硕士,素质很高。

因为接触的时间挺长,所以对我的一些擅长和不足都有较深的了解,去上海时,和总监聊的少一些。

去上海终面,先和负责数据中心研发的leader聊,人非常不错,平易近人,聊的内容也挺广泛。

  1. 项目经历.
  2. Hadoop.
  3. HBase是否适合作为行为分析的后端storage,二级索引等。
  4. 淘宝dubbo.
  5. Phoenix.
  6. Storm的混合拓补问题,比如同时支持最少一次和仅一次的数据处理语义。
  7. SOA,异步,原子服务。
  8. Spark.
  9. 流式处理。
  10. 实时系统构建,主要问下有没有一个完整的设计和想法。
  11. Kafka,全局序的一些限制和问题。
  12. 目前数据中心的研发状态和产品。

这个leader哥,人真的很好,哈哈,中午请我吃了一餐。

下午和CIO聊,主要是听人家的看法,因为他之前以为我是应聘数据科学家,后来发现是想聘基础平台的搭建,倾向于工程师,所以数据挖掘和数据仓库没有问太多。

  1. 大概介绍了互联网金融行业内的一些生态,对数据仓库和ODS的异同表达了一些见解。
  2. 对数据中心期待的数据仓库,有什么,应该是什么,做了一些设计上的表述,让我更明白一些已经实现的,和没有实现的,从整体上有个把握。
  3. 数据挖掘的一些东西,比如分类、聚类、关联规则、有监督和无监督学习等等。
  4. 音频和视频数据的处理和知识发现。
  5. 结构化数据和非结构化数据,在生产环境的一些强制要求。
  6. 北京、成都、上海,各个研发中心的一些情况,看更倾向于在哪里,从事何种工作,大数据方向的还是在上海。
  7. 敏捷,自我驱动,等等内容。
  8. 基础平台的重要性,以及领域专家发现知识的价值,等等关系。
  9. 工程师文化。

CIO感觉深不可测哈,因为他之前在国外一些挺著名的搞DW的公司做,所以经验很丰富,理论素养也很高,因为聊得东西很广泛,所以我更多是在听,表达的比较少一点。

结语

仅作流水记录,感谢每个给机会的人和公司,呵呵。

【版权所有@foreach_break】 【博客地址 http://www.cnblogs.com/foreach-break】 可以转载,但必须注明出处并保持博客超链接

foreach_break 面试记录的更多相关文章

  1. cvte春招测试面试记录

    cvte春招测试面试记录,挂在了综合面试(hr面)...尽量回忆面试的问题(可能不完全). 技术面一面: 1.自我介绍 2.根据实习项目问,智能客服怎么测正确率之类的. 3.测试人脸解锁 4.测试微信 ...

  2. 补充Java面试记录

    补充Java面试记录 背景:这两天面试遇到的部分问题都分散在了前面两篇文摘中,这里再做一些其他的记录,以备不时之需! 一.谈谈你对SpringBoot的理解? SpringBoot简介:SpringB ...

  3. 普华永道高级JAVA面试记录

    最近在考虑换个工作 原因?咱能不逗吗? 一面感觉发挥不错  二面之后累觉不爱  基本上浪费了半天的工资(好多钱啊~~~) PWD上海地址在浦东软件园  工作环境说实话没我现在工作的环境好,不过里面的人 ...

  4. 阿里、百度等多家公司Java面试记录与总结

    算算自己大概面试了近十家公司,也拿到了几个Offer,现在面试告一段落,简单总结下面试经验. 我现在主要的方向是Java服务端开发,把遇到的问题和大家分享一下,也谈谈关于技术人员如何有方向的提高自己, ...

  5. 2019上海爱奇艺大数据Java实习生-面试记录

    目录 一轮 电话面试 二轮 代码笔试 三轮 技术面试 总结 附:电话面试问题点解惑 补充:面试未通过 一轮 电话面试 2019.04.28 16:21 [w]:面试官,[m]:我,下面的内容来自电话录 ...

  6. Java后台面试记录

    腾讯一面: 总结:考基础和代码(网址A是不是网址B的子域) + SQL(选出重复邮箱)(以下是没回答上来的) 逻辑回归公式(简历上写了协同过滤) 详见:https://blog.csdn.net/ma ...

  7. 腾讯測试project师笔试面试记录

        从3月29日參加腾讯笔试開始,開始了为期1周的腾讯之旅,尽管最后还是跪在了二面上,可是感觉收获非常多,至少明确了自己与向往的BAT公司的差距,明确了自己还是路漫漫其修远兮.     腾讯非常注 ...

  8. dwd面试记录与最近面试的一些感想。

    因为自己简历有些问题,额,面试官以为我有三年的工作经验. (吐槽一些智联的简历系统,)16年工作,一到18年自动变三年.这也忒坑人了. 工作年限一定要真实,避免出现问题,这会让面试官觉得你很不真诚. ...

  9. 前端面试记录NO.1

    后端转前端,离职后第一次面试,技术面试的时候还是比较虚的,因为基础不是很扎实.主要问了工作中用过哪些技术,主流框架的区别,jQuery的掌握情况,Ajax的掌握情况,cookie的基本内容,还有浏览器 ...

随机推荐

  1. Python学习-day15-JavaScript

    JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1.J ...

  2. Selenium - WebDriver: Locating Elements

    Selenium provides the following methods to locate elements in a page: find_element_by_id find_elemen ...

  3. c++面试须知

    这些都是从zhihu上看到的. 指针,多态(虚函数表.内存layout),作用域,内存的管理 算法与数据结构,数据结构上由掌握哈希.优先级队列,算法上有字符串处理,简单的DFS.BFS.动态规划 系统 ...

  4. IO Streams:数据流

    数据流支持原始数据类型值(布尔型,字符型,字节型,短型,长整型,浮点型和双倍型)的二进制I / O以及字符串值.所有数据流都实现了DataInput接口或DataOutput接口.本节重点介绍这些接口 ...

  5. AngularJs之HelloWorld

    <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...

  6. BZOJ 1787: [Ahoi2008]Meet 紧急集合(lca+贪心)

    [Ahoi2008]Meet 紧急集合 Description Input Output Sample Input 6 4 1 2 2 3 2 4 4 5 5 6 4 5 6 6 3 1 2 4 4 ...

  7. 多线程(实现Runnable接口)

    /** * 创建一个子线程, 完成1-100之间自然数的输出,同样的主线程执行同样的操作 *创建多线程的第二种方式,通过实现的方式 * 继承和实现的方式对比 * 一,联系: *  public cla ...

  8. Bolzano-Weierstrass 定理

    这个定理是从吴崇试老师的数学物理方法课里看到的,表述如下: 有界的无穷(复数)序列至少有一个聚点. 序列的聚点定义为 给定序列 $\{z_n\}$,若存在复数 $z$,对于任意给定的 $\vareps ...

  9. [CQOI2015][bzoj3930] 选数 [杜教筛+莫比乌斯反演]

    题面: 传送门 思路: 首先我们把区间缩小到$\left[\lfloor\frac{L-1}{K}\rfloor,\lfloor\frac{R}{K}\rfloor\right]$ 这道题的最特殊的点 ...

  10. 15个变态的Google面试题以及答案

    在当前经济形势不景气的情况下,谷歌招聘新员工是一件令人振奋的事,特别是对那些在当前金融风暴中渴望找到安全港的年轻经理们和软件开发商们来说是个好消息. 不过,也不要高兴太早,谷歌在招聘新员工时,更加青睐 ...