zoukankan      html  css  js  c++  java
  • 什么是全栈呢(转)

    背景

    自从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

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

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

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

    1. 算法课程,在大学和在培训机构的课程,有什么不同。
      对方leader表示算法虽然没什么用,学起来没有干货的感觉,但是可以帮助一些学员就业,比如一些公司会考算法。
    2. Hadoop和Spark。
    3. 项目经历。
    4. 上班时间,课程开发的一些过程,等等。

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

    民XX商

    这个机会,接触了来回有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的公司做,所以经验很丰富,理论素养也很高,因为聊得东西很广泛,所以我更多是在听,表达的比较少一点。

    结语

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

    http://www.cnblogs.com/foreach-break/p/interviews_in_last_3_months.html

  • 相关阅读:
    ubuntu下安装maven
    159.Longest Substring with At Most Two Distinct Characters
    156.Binary Tree Upside Down
    155.Min Stack
    154.Find Minimum in Rotated Sorted Array II
    153.Find Minimum in Rotated Sorted Array
    152.Maximum Product Subarray
    151.Reverse Words in a String
    150.Evaluate Reverse Polish Notation
    149.Max Points on a Line
  • 原文地址:https://www.cnblogs.com/softidea/p/4726996.html
Copyright © 2011-2022 走看看