当前位置: 首页 > news >正文

什么是全栈呢(转)

背景

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

 

相关文章:

  • MongoDB基于GridFS管理文件
  • js eval()方法处理json字符串
  • 邮件原理你真的造吗
  • hdu 4841 圆桌问题(STL vector)
  • WPF获取窗口句柄
  • PHP面向对象static和const的两段代码示例
  • 安卓飞机大战(二) SurfaceView实现自制背景
  • PHP基础知识
  • JLOI 2013 卡牌游戏
  • Andriod下载源码导入后AndroidManifest.xml小红叉的解决办法
  • IE浏览器下ajax缓存导致数据不更新的解决方法
  • coredata
  • 一个java实现的简单的4则运算器
  • Opengl中矩阵和perspective/ortho的相互转换
  • 学习日志---pyhon入门必备
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【Amaple教程】5. 插件
  • Angular6错误 Service: No provider for Renderer2
  • Apache Pulsar 2.1 重磅发布
  • create-react-app项目添加less配置
  • ECS应用管理最佳实践
  • GitUp, 你不可错过的秀外慧中的git工具
  • go语言学习初探(一)
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Java应用性能调优
  • java中具有继承关系的类及其对象初始化顺序
  • Mac转Windows的拯救指南
  • Python3爬取英雄联盟英雄皮肤大图
  • spark本地环境的搭建到运行第一个spark程序
  • webpack+react项目初体验——记录我的webpack环境配置
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 将 Measurements 和 Units 应用到物理学
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 说说动画卡顿的解决方案
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 智能合约开发环境搭建及Hello World合约
  • hi-nginx-1.3.4编译安装
  • NLPIR智能语义技术让大数据挖掘更简单
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • # 飞书APP集成平台-数字化落地
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (10)ATF MMU转换表
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三) diretfbrc详解
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (一)Dubbo快速入门、介绍、使用
  • (转)视频码率,帧率和分辨率的联系与区别