• LEARN
      Mastery
    • Big Data Engineer
    • Full Stack Engineer
    • Backend Engineer
    • Artificial Intellige…
    • Data Scientist
    • UI/UX Designer
    • Product Manager
    • Business Analyst
    • Entry
    • Career Express
    • CS Fundamentals
    • Project Class
    • Interview Prep
    • Open Class
    • All Classes
  • RESOURCES
    • Events
    • Videos
    • Blog
  • PARTNERS
    • Partner With Us
    • Mastery Programs
    • Discover Talent
  • ABOUT
    • Overview
    • FAQ
商业分析数据科学求职北美求职故事科技趋势程序员面试访谈录计算机科学 All Blog
  • 商业分析
  • 数据科学
  • 求职北美
  • 求职故事
  • 科技趋势
  • 程序员面试访谈录
  • 计算机科学
  • All Blog

Tag: 面试

面试必考:如何设计承载千万用户的Uber实时架构

2018.11.27
作者:Yifan

今天我们解读的是Uber的首席架构师Matt Ranney所分享的Uber实时架构的从1到万。 首先,Uber是什么?Uber是连接乘客和司机的交通平台,它专注的是运输业。当我们输入自己的位置,然后请求一辆车,Uber可以马上满足我们的需求。 Uber面临的挑战是什么? 最核心的有两点:动态的供给,和动态的需求。 顾客不断地从各个地方出现,所以需求的位置都是不一样的,并且需求也会随着时间而变化。此外,供给也是各不相同的,因为司机来自各个不同的位置,并且每个司机的车也是不一样的。 Uber的架构 那么Uber的架构是怎样的呢?首先必然有司机和乘客,他们分别代表着供给和需求。对他们提供服务的过程,我们称为派遣服务。派遣服务会用到一些模块,最基本的是地图和时间预估,因为有了这两者后,我们就能知道对于一个用户的请求,一辆车大概什么时间能到达用户身边,以及距用户不同距离的车辆分别都需要多长时间。这是基于地图和交通的历史信息进行评估的。而在Uber内部,它的派遣服务是用Node.js实现的。 除此之外,还有很多复杂的逻辑,我们称之为业务服务,其采用的是微服务的方式(微服务的架构参见:技术丨解读Microservices) 再往后就是数据库,微服务里会有各种各样的数据库,因为历史原因Uber有大量各种各样的数据。 在传统的服务之后,还有服务后流程,比如用户给出点评、付费、收到一些邮件通知等。 支付的过程也很复杂,因为需要和各个银行合作,而银行之间的各种延迟、不同的协议等也会造成很多困难。 因此在这个架构中存在很多挑战: 能否支持顺风车。因为在Uber的传统架构设计里,他们假设的是一名司机载一名乘客,这是一个简化的模型。但如果出现多个乘客乘一辆车,或者搭顺风车的情况,传统架构就无法满足了。 Uber想做任何东西的运输者,所以送餐就出现了,随之而来也有一些问题。Uber之前假设传输的都是人,所以当司机送的不是人而是货物、食物或其他东西时,该怎么办?这个架构该怎么改? 跨城市运输。以前Uber一直是按照城市来切分数据。但有的城市大,有的城市小,如果这样切分数据,结果就会很不均匀,也会造成流量不均衡,那怎么处理这个问题呢? 最后是多点失败,即系统中有多个单点失败。 应该如何重构架构呢? 我们要重新理解司机和乘客,司机是供给方,乘客是需求方。所谓供给,不仅是指提供车,还包括车上是不是有儿童座椅、剩余座位的数量、车型是什么,这些都属于供给的一部分,所以要建立更强大的Profile。 那需求方的具体需求有哪些呢?乘客是否带着孩子,同行人数或是否愿意和别人共享一辆车,这些都是需求。供给与需求凑到一起成为一个舞会,在舞会上男女会搭配着跳舞。同理,Uber也想把一个供给和一个需求搭配到一起,在Uber里这被称为舞会服务。 之前舞会服务往往是基于当前服务状态来匹配,只用考虑当前情况。但在面向未来时,会出现很多情况,怎么考虑到未来的需求呢?这就是面向未来的匹配。我们之后会讲到这是如何实现的。 当然还有一些特殊的场景,比如在机场要模拟出一个队列的方式来提供服务,这都是由舞会服务来提供的。舞会服务也会调用底层的供给位置信息、地图和时间估计,以及需求方的位置信息,并把它们结合到一起,构成了整个派遣服务。所以派遣服务拆解开来,完成更细粒度的操作。 Uber当前的目标是什么? 2015年8月,他们的目标是写操作1M/s,即每秒100万。如果面向未来设计,实际当前的写操作是每秒10万左右,再结合每4秒一次的写GPS位置信息,那么同时运营的车辆大概在3万左右,这只是一个估算。 如何唯一标识一块空间? 为了实现这些服务,要解决一些基本的问题,其中一个是:如何能够唯一地标志一块空间? 一个地图,如果不按城市切分,那按什么方式切分呢?答案是用Google S2。它是一个基于地理的图数据库。它将地理上的每个空间用一个四边形切分出来,切分时按照从大到小的规则,0级表示全部的空间,而切到最小是1平方厘米的空间。所以它可以标识出任何一个位置,并且形成一个唯一的二进制串,用一个id表示出来。通过这种方式,它能标识出任何一个位置。 标识出地图上的每一块空间后,要选择粒度,在Uber里选择了12这个公里级别的粒度。 如何表示一个区间? 有了这些以后,我们如何表示这个圆形的空间呢?比如用户现在在这个圆形空间中发送需求,我们怎样找到他附近的所有可以满足请求的司机呢? 答案就是切分开来。按照上文我们讲到的地理空间方块的覆盖,把它切分开,只要能覆盖到这个蓝色的空间就算一个,所以它会在这五个红色区域里寻找满足的汽车。 如何匹配供需? 我们再来看第二个基本问题:如何匹配供需?首先我们要想我们的目标是什么。 我们的目标是: 减少乘客的等待时间。 减少司机的空驾,这样司机才能赚更多的钱。 减少乘客在路上的通勤时间。 当满足了这三个目标时,我们就会发现一个场景:尽量将司机连成串,尽量走最近的路径就行了。这其中还有很多细节值得大家去思考。 什么是最优策略? 在最优策略里,除了有面向当前的设计,还有面向未来的设计,二者有什么区别呢? 举一个例子,乘客1发送了请求,我们发现离他最近的司机是1号,距离八分钟,我们也许就会让司机1去接他。但是,也许还有一个司机2,他的当前任务还剩两分钟就完成了,他与顾客的距离是一分钟,如果让司机2先完成当前的派送,然后再接这一单,耗时会比司机1更少,这就是面向未来的策略。如果把这种情况考虑进去,也许就能设计出一些更好的策略,这是我们经常碰到的NP问题。 如何保存供给? 接下来我们具体来看系统上的实现。如何才能把供给保存起来呢?在Uber里,它的难题是,全球有几万或几十万辆汽车,这是一个很大的数据。我们刚才讲过,我们已经通过Google的地图实现了任何区间的切割,不需要单独按照城市保存,那我们怎么进一步来计算呢? 在存储上,他们提出了一个概念叫Ringpop,它的本质类似于Cassandra的分布式平台,里面所有的节点都分布在这里,这些节点之间是完全等价的,每个节点负责某一个区域范围内的位置信息。 当一个供给司机将他的供给位置告诉舞会服务之后,舞会服务会算出他具体的位置区间,然后通知环上的任何一个点,这样就能把位置存放起来了,这就是保存。 另外一个问题是,如何匹配需求? 匹配就是搜索,比如乘客有一个需求,想查他周围五公里之内的汽车。把这个请求发给舞会服务后,舞会服务发现影响到了三个位置。所以它会把这三个位置信息发给环上任何一个节点。节点会把这些信息路由到具体的位置2、5、7,然后这些节点会返回匹配结果,最终返回给这个用户。 所以我们可以看出,任何节点都是等价的,它们能接收任何服务,并且路由到相应的位置上,得到具体的信息,这是一个非常好的Ringpop架构。 如何远程通讯? 有了存储,我们还要解决通讯问题。通讯需要有哪些特点呢? 首先,它需要性能优秀。之所以要重新做一个通讯,就是因为当前的HTTP太慢了,他们希望能有20倍以上的优化。 要能提供消息转发。我们可以看到,Ringpop里每一个节点都能转发消息。 跨语言支持,因为底层用了很多种不同的语言。 希望能有一些消息调度优化,不要因为某些消息就卡死在那里。 […]

简历
简历书写
面试
Read more

面试总挂的Business Case题到底应该怎么答?

2018.11.20
作者:Yifan

在Business Analyst的onsite面试中, 很多同学常常感觉不知该如何准备business case这类面试题,面试挂了也经常分析不出失败的原因。 Business Analyst的面试不像Software Engineering那样,刷题非常重要。真正的BA面试非常random,面试官也不见得会提前准备面试内容。他们往往是直接带着工作中的问题来问你。 这些问题看似都是情境题,甚至看起来像是聊天,但其实面试官是想根据你的表现判断出你在工作中会做出的真实反应,例如你解决问题的速度,同时处理不同项目的能力,是否符合公司的文化等。 接下来我们就来还原一个真实面试过程,按顺序一步步地来看这些问题。 理解情境 问题:If we are to use the internal HR system (which exists in every company), how does the UI look like? 这个问题看似是Product Manager, Front-end Engineer的面试题,但如果你是要申请一个focus on product的BA职位,工作中肯定也会接触到这一领域,因此这一类题型也是面试中的会出现的。具体的问题可能非常多样,比如让你设计一个网站,看似与所申的职位无关,但其实面试官是想看你能不能真正地从用户的角度来思考问题。 无论我们面对什么产品,首先要想的是它要解决什么问题。具体到这道题我们就要想,当我登陆这个界面的时候,我要做什么事情?一般我们的做法是先想出几个不同的情景,比如“作为第一个使用系统的用户”或 “我用这个系统来核对员工信息”,然后表述出来即可。 如图可以看到一个HR系统的界面,它的左边一栏用于选择HR可导入的员工信息,右边则可以搜索信息、查看已导入的信息及移除离职员工信息。为什么要重点提一下离职员工信息呢?因为员工离职的时候,如果不及时把hardware legal hold的问题解决掉,那么员工离职后就还能进入公司系统。这些都是非常具体的、在现实中要考虑的因素,也照应了我们所说的真正从一个HR的角度考虑问题。这个面试题背后我们需要从以下三个方面去思考:   你能想到哪些use case呢? Input new employee information 导入新员工信息 Update employee information: floor number, legal […]

Business Analyst
商业分析
简历
面试
Read more
2018.11.20
作者:Yifan

本文会围绕全栈和大数据讲解三个问题:两个方向的就业情况、如何选择方向以及面试准备。 全栈与大数据的就业情况 关于就业情况,我们先第一个大维度:从市场需求来说。 维度一:搜索热度 这是在Google Trend上找到的资源,红色是Big Data,蓝色是Full Stack。所以,从整个搜索热度上来看,两者基本不相上下。我们先关注一下红色的线条:17年下半年基本都是在50左右浮动,一直有一定的热度。根据美国劳工部门最新的统计,从2016到2026年,CS方向职位的增长是在13%左右,相比其他所有职位的增长率都要高。同时,在这些职位增长中,Cloud Computing,Big Data以及Information Security等占有比较大的比重。 接着来看全栈,蓝色线条也是有一个Ups and Downs。最近,蓝色有一条虚线,有一个缓缓上升的趋势。其实全栈本身相对比较全能,对于一些资源有限制的公司会非常受欢迎。从产品开发的角度来看,有些情况下工程师未必越多越好,有时候少数人更容易Iterate through,有更好的Product或者Project Development的效果。这是先从搜索热度的角度来看的。 维度二:职位数目 我们查询了北美职位开放的总数据,汇集成下表: 我们目前收集的是Full Stack Engineer和Big Data Engineer。仅从这两个职位上来看,数字已经比较可观了。 然后,我们再看一下国内的情况,观察了以下几个网站: 大家可以看到,数字上有一些变化,但是这个维度是正在招聘的职位数据,所以可以看出这两个方向相对而言数字还是比较庞大。 第三个维度:技术需求 上边的图是Stackoverflow统计的自2015年起200家企业使用的技术迭代的情况。根据Stack Overflow在17年底的数据统计,目前增长快速的技术包括了React, Docker, Apache Spark这些,跟全栈和大数据都是有关联的。 下图呈现的是一个供需对比: 条形柱越长,表示求越大于供。所以根据统计,现在需求较多的领域有Cloud Back End领域, iOS, Android开发。 第二个大的维度就是薪资水平 这是indeed.com上的一个调查,呈现的是北美的薪资水平。这两个方向的平均薪资其实没有太大区别。 第三个大维度:对应职位 对于Full Stack来说,我们罗列出了一些类似的职位。大家在找工作的时候可以参考,因为其实大家投递的时候一定不要太局限自己,Job Title要去广搜。根据自己具备的技术栈框架去搜索一些Job Opening。比如说Full Stack这边列了很相关的Web Development,Mobile还有Application Engineer;Big Data这边有Data Engineer, Back end, Platform, Infrastructure还有System Engineer。当然在搜索过程中,大家要相对应地去看一下JD,但是这可以打开大家去找Opening的广度。 如何选择合适的方向? […]

面试
Read more

FAAGM里分别有多少人是网申进的?哪家公司的面试难度最大?

2018.11.16
作者:Yifan

本文摘选自Business Insider的文章,原文链接你可以在文章底部找到。 你是否梦想着拿到美国顶尖科技企业的offer?虽然这个目标并非遥不可及,但你也得做好一定的心理准备才行,因为你即将面临一场艰苦卓绝的求职之旅。 为了让大家对科技巨头的面试体验多一些了解,职业数据网站Comparably以顶尖科技企业的在职员工为采访对象,展开了一项问卷调查。这次调查总共涵盖了6463名员工,他们分别来自Amazon、Apple、Facebook、Google及Microsoft。 调查发现,不同公司的面试特点是大相径庭的。在Apple,面试官会告诉应聘者“要做好被炒好几次鱿鱼的准备”。而在Facebook,最有特色的则莫过于面试的着装要求——应聘者可以穿“任何令其感到舒适的服装”,包括T恤、牛仔裤等。 那么接下来,我们就来看看FAAGM的员工们给公司面试过程打出的具体分数吧。 Apple和Microsoft:面试过程整体评分最高 在Apple新总部Apple Park,一名旅客正在游玩 图片来源:Justin Sullivan/Getty Images 在整体面试过程上,Apple和Microsoft得到了员工们的一致好评。以下是五家公司具体的好评率: Apple — 90% Microsoft — 90% Google — 88% Amazon — 87% Facebook — 83%   Google员工:我们的面试最难 Google总部的一名员工 图片来源:M. Spencer Green/AP 受调查的大多数Google员工认为其面试难度为“困难”或“非常困难”,而Amazon的员工们则有30%选择了“简单”或“非常简单”。具体的,五家公司的面试难度数据如下: Amazon 非常困难— 17% 困难— 24% 一般— 29% 简单— 17% 非常简单— 13% Apple 非常困难— 12% 困难— 36% 一般— 32% 简单— 12% 非常简单— 8% Facebook 非常困难— 16% […]

Amazon
Facebook
Google
Twitter
Uber
薪资
面试
Read more

面试官:走,咱们去楼下转一圈

2018.11.14
作者:Yifan

Netscape(网景)联合创始人、硅谷著名风险投资人马克·安德森有次在家乡开车兜风,阳光普照、微风轻拂,正当安德森幸福到冒泡之时,突然被一个直不楞登出现在马路中间的老男人吓了一跳。 标志性的蓝色牛仔裤,上身黑色高领套头衫。 “我的天,差点撞到史蒂夫·乔布斯。” 安德森暗自惊讶道。 其实,这天只是乔布斯在苹果公司所在地Palo Alto例行散步的日常。乔布斯在当地是个出了名每天打卡散步的人。散步的时候,他不仅锻炼身体、沉思、解决问题,甚至还会在途中开会。 乔布斯也把这个习惯推荐给了公司的其他人,在传记《Steve Jobs》中便有相关记载。 乔布斯对散步的热爱一定程度上造成了散步的复兴,现在越来越多注重创新精神的公司高管们都会在散步中开会,以保持高效、专注和创新。 扎克伯格对于行走思考和会议也是格外喜爱,他总喜欢带着应聘者们去树林里散步聊天。Google 首席执行官桑达尔·皮查伊和Twitter首席执行官杰克·多西也喜欢通过散步来打开思路。 而一项美国斯坦福大学2014年的研究表明:人类在运动的时候创造性远高于静坐不动。 研究者抽取了176名大学生,让他们完成指定的需要创造力和思考能力的工作。 在这项研究过程中,研究人员使用了排他性实验。作为这个实验的一部分,参与者被要求列出尽可能多的日常生活用品的用途。比如,一把刀可以切黄油,切面包,刺伤别人,或者是数豌豆粒。这些答案会按照创造性,答案的多少和细节充分与否来评分。 并且研究人员还要求学生们在不同的环境状态下完成这项工作。包括在室内或者室外坐着答题,在室内的跑步机上答题,或者在室外边散步边答题。 他们发现当人们在走动的时候,不管他们是在跑步机上还是在室外走动。他们的创造性都比静坐时候高出60%。 此外,81%的参与者感受到了运动时候创造力的提升,而且,当参与者们在运动之后再参加测试时,他们仍然能够富有创造性,散步展示出的积极影响甚至持续到他们坐下后。 尽管到此就没有更加明确的研究表明散步是怎样让你更有创造力的,但有极大的可能是因为散步加速了血液循环,大脑神经得到了更强烈的刺激。 另外,根据2016年的一项研究表明,我们只需12分钟的步行就可以增加注意力并增强情绪。 LinkedIn首席执行官杰夫·韦纳也在LinkedIn帖子中写道,“步行会议基本上消除了分心的可能,所以我发现这是一种更有效的时间利用方式。”维珍集团创始人理查德·布兰森表示赞同。他在博客中写道:“我发现这是一种开展业务时更快捷的方式,此外,散步也是一个很好的运动,并能让我在忙碌的一天保持专注。” 所以,散步不仅仅能让你更有创造力,并且最起码可以让久坐电脑前的你得到锻炼,今天就开始散步吧!

面试
Read more
Sign up for BitTiger’s blog newsletter!

Lyft工程经理袁林独家分享:我喜欢简单直接的求职者

2018.11.13
作者:Yifan

为什么很多时候,明明感觉已经准备得非常充分,但面试还是挂掉了?面试官到底是怎样判断一个面试者的能力和潜能的?如何事半功倍地准备面试,让自己脱颖而出?一起来听听Lyft Engineering Manager袁林的看法。 访谈嘉宾:袁林,现任Lyft Engineering manager。Facebook上市前加入,在Search Team任工程师,两年升为Tech Lead。2014年底加入Coursera,历任Mobile核心工程师、Mobile Growth Team Lead,后成为Coursera最年轻的Engineering Manager,负责Coursera for Business的全栈工程师团队。 面试中看重求职者的什么特质? 袁林:在工程师的面试中,技术面试是基础。除此之外,我们比较看重面试者身上的特质,我自己的偏好一般是比较喜欢能自我驱动,然后特别勤奋热情的面试者。 这个热情不是说对人热情,而是说我们在工作中经常说的一个员工要有Passion才能把事情做好。我觉得求职者对公司的产品也好,对Engineering的技术也好,Passion是非常重要的。 最后就是如果我们考察面试者的Communication,我个人是喜欢简单直接的求职者。 什么才是“简单直接”的面试者? 袁林:面试中,我们有时候会聊一些求职者过往的经历,当问到你有没有做错过什么事情,或者有没有事情是你觉得回头来做,你能做得更好的。我觉得这是非常常见的问题,我自己作为求职者也经常会被问到。 在这类问题中,小伙伴经常可能会有一个误区,也许跟我们的这个教育文化背景有关,就是大家不是非常Comfortable去说我做错了什么事情、我Mess up了前公司的某些东西。但实际上我觉得,大家不要想太多,就是如果说被问到这种类型的问题,实际上我作为面试官是真的想知道,那这个问题的点就在于你勇于承认什么事情是本来可以做得更好的,这里面有一个反思的过程。 我觉得反思是非常重要的,包括我自己作为求职者会去面个公司,其实会遇到一个非常常见的问题,就是说你从Engineer转到Manager的时候,在这个过程中——当然他们会问很多非常具体的问题,这些具体的问题我们就不说——会经常涉及到一个点就是,在聊到某件事情的时候,你有没有想过,再给你一次机会你其实可以解决得更好。 对于我来说,我就会比较直接的回答这些问题,因为我觉得这个东西是没有必要去掩饰的,因为我的面试官也就是我未来潜在的上司,他们自己都走过这样的一个过程,他们知道你几乎必然是踩过一些坑的。那你觉得,他会觉得你是一个完美的天选之人的概率更大,还是觉得你是一个不会反思的人的概率更大呢?结果当然是重要的,但你反思是为了下次做得更好,那这就是一个更好的结果。 技术上如何考察技术到底是不是过硬? 袁林:这个其实每个公司都不太一样,但是大体上来说有一些比较相似的地方:如果是新毕业的学生一般会是Coding,也就是我们大家都知道的白板面试(现在硅谷的大部分公司都改成了可以在电脑上直接写,不需要白板,也有些公司还是用白板),这个是占比重最大的。 对于有工作经验的,或者工作时间比较长的人来说,一般会有系统设计的问题,或者是让你讲一讲过去的这些Project是怎么解决问题的,这些占的比重可能会大一点,Coding还是会有,但随着你工作时间、工作经验的加长,(问题解决)这部分的比重会越来越大。 如何判断面试者是不是对工作有热情? 袁林:我觉得这是一个很有意思的问题,可能每个人用的方法都不太一样。就我自己来说,我觉得在聊天的过程中,一方面你可以从他的简历上面聊一聊,过去的几段工作的经验,和他每段工作、甚至是在学校里面做的项目的经验。 你让他讲一讲,他是怎么解决这个问题的,那么他会讲讲这个过程,有的人会对他做的这些事情感到非常自豪,会告诉你本来有一些Project是让你做这么多,但是他在同样的时间内,想到了更好的方法,去解决这个问题;或者是在同样的时间内,他怎么样达到了一个更好的效果。 还有些同学会说以前的比赛,怎么得了冠军,或者比较好的名次。这些都是蛮能体现一个人对Engineering的一些东西感兴趣的事:真的觉得很有趣,并且很自豪自己做过了这些事情。 要不要花时间去准备Behavior Question? 袁林:我自己从学校出来到现在,实际上对Behavior Question经历过一个我认为它不重要,后来认为它重要,后来又认为它不重要的过程。 我们经常会有一个心理误区,Behavior Question不就是聊天嘛,没什么太大的意义。但是当我自己进入职场之后,我就渐渐发现,Behavior Question是重要的,一方面从面试官的角度、从公司招人的角度来说,实际上在工作中,越来越多人知道,你Get the Job Done除了Coding——Coding其实只是一部分——其实还有很多很多其他的因素,比如说你要沟通跟协作,比如说你对问题的思维方式,它们实际上都非常大程度地决定了你能不能Get Things Done。 这也就是为什么公司觉得除了编程的问题,还要考察一下这个方面,只有这样我们才觉得有自信,你是能在未来工作中表现得很好。我们是有见过一些小伙伴,在不同的公司,因为表现问题被挂掉的。所以我还是建议大家不要过于轻视。 后来又是为什么觉得它不重要了呢? 袁林:不重要不是说从公司的角度来说的,从公司的角度来说我们是肯定会考察Behavior Question的。我说它不重要,是因为我认为作为一个求职者,我们也许没有必要花特别多的时间和精力,去准备Behavior Question,或者说要去fit一个公司的Culture。 以前硅谷会比较流行Culture fit的面试,现在又比较流行看公司的Core Values,那自然每个公司的Culture也好,Core Values也好,都是不一样的。 我认为作为一个求职者,如果我们需要花特别多的精力让自己去fit到一个公司的culture里面去,而不是我本来就大体上是fit的,如果要伪装自己的话,那即使是你到了这个工作环境中——因为讲真的公司的文化它会渗透到你工作和生活中的点点滴滴——你可能真的会觉得很不适应、会很痛苦。 如何准备Behavior Question? […]

offer故事
简历书写
职场
面试
Read more

Technical Skills如何呈现,让你获得面试的几率翻倍?

2018.11.08
作者:Yifan

Technical Skills如何呈现    Technical Skills 是一块非常重要的内容,因为HR看简历的时间很短,而HM则是找你的简历中的重点,所以一个写得很具体并且能够凸显你的实力的Technical Skills的板块就可以增加你通过面试的概率。 广度:你的简历上一定要有最新的技术栈与流行的工具。 深度:一定要说清楚你运用了什么技术解决了什么实际问题。 大家要注意,虽然深度的体现更重要,但是大类的技术大家都要Cover,比如说你要有一些数据库,Load Balance以及大数据的经验。这并不是要求你要对最新的技术栈个个都熟悉,而是要你每一个大类都应该涉猎。 重点关键词有哪些 在分类的排序过程中应该将行业内热门的Technical Skills放在前面。下面我们通过几个例子来进行说明: 在这个例子中,首先的问题就是没有对Technical Skills进行分类;其次就是要将热门的Skills放在前面,比如Angular JS就应该放在Jquery& Jquery Mobile的前面;此外就是一些用法非常简单的工具就不用写上去,比如Winscp与Putty。 在这个例子中,还是之前讲到的热门Skill的问题,PHP应该往后放,并且去掉括号里的NoSQL,因为没有HM不知道Redis是一个NoSQL数据库。Jquery要放在Frameworks这一类的最后。 在这个例子中,要将 Operating Systems这一大类全部去掉,这一类写在简历上只会减分不会加分。另外,Microservice是一个非常虚的概念,不要写在Technical Skills中。并且,写了AWS,又写了S3,就会让HM认为你根本不知道它们之间的关系。 在这个例子中,应该去掉Familiar和Basic这两个词,因为这会让HM认为你只会Java,其他都只是上过教程。并且这个例子中看不出求职者的强项,因为将热门的Skills都写在了后面,总体来说技术栈太少,需要扩充。 Technical Skills分类、排序如何实现 不同的分类方式: 1. FB(Frond-End And Back-End)分类 2. LDFT(Program Language, Database,Framework,Tools)分类 不同分类的排序方式: 1. 技术新旧/使用程度 2. 熟练程度 Technical Skills很少怎么办 很多学员在面临Technical Skills很少时都会进入一个误区,就是努力硬凑,或者减少分类,以及隐藏不重要的Technical Skills,并且怀存侥幸心理。这都是不对的,正确的做法应该是增删改查,去升级自己的项目,并且一定要动手实践理论验证型的项目,如果还有时间的话,要做项目的拓展延伸。 Technical Skills很少时,要有敏锐的洞察力,缺什么就学什么,可以通过以下方法来发现现在的招聘趋势来增加获得面试的概率: 1. 查阅该公司Blog的分享文章; 2. 发现JD变化时的自己的隐藏加分项; 3. 经常阅读Tech Blog; 4. […]

offer故事
简历
简历书写
面试
Read more

毕业难就业?数据科学领域学校与工业界的落差

2018.11.05
作者:Yifan

说到学校教育和实际应用的落差之前,我们先通过几则Data Scientist的Job Posting,来分析一下数据科学家对学位的要求: 先来看一下红框内的内容,在第一则JD中写道求职者要有Master或PhD学位,第二个要求是Bachelor,第三个也要求Bachelor,第四个是更倾向于PhD。看到这样的要求,很多人会有这样的理解: 1. 对于一些DS职位来说,获得本科学位就可以达到入门标准,但对另外一些来说就要Graduate Degree。 2. Phd是一个更Preferred的资历,但不是必需的。 但是,这两个理解其实都存在误差。首先,Bachelor的学历其实并不足够,因为DS的职位会需要做一些Research的工作,但本科生很少有Research的经验,所以99%以上的大公司会要求本科以上的学历,至少是Master,除非你是非常优秀的本科毕业生,或者你有非常丰富的工作经验。 另外,大家经常会看到公司JD中写要求Master,但很少看到要求PhD,但对于一些公司来说,他们会要求PhD。 数据科学家求职的成功率和学位的关系,就如同IQ与成功的关系:只要你的IQ高于某个值,成功就靠除智力以外的其他东西。同理,只要你的学历高于某一水平,其实就已经足够了,你能不能成功要看许多其它的方面。 这里有一个特殊情况就是有些同学可能处于PhD退学的一个状态。而对于这是否是一个负面影响重点取决于你的面试官,对于有些面试官来说,他可能会觉得你因为害怕困难而退出,是一个惧怕困难的人,遇到这种情况,你可以给面试官给出一个合理的解释。 学校教育和实际应用的落差 现在我们来通过一张图看一下学校教育和实际应用之间的落差。 大家可以看上图,上图是一个DS的Lifecycle。在工作中做一个DS的Project 时,首先是Management提出一个问题,然后会有一些Business Understanding,你要把这些Business Understanding拆分出来,要决定用什么模型解决这个问题以及这个模型需要使用哪些Data。 对于这些Data,首先要有Data Collection,然后在一个Environmental中运行这些数据,当你拿到这些运行后的 Data后, 你要去Cleaning这些数据,让它可以用于模型使用。 当你有了Data和Model之后才可以回答那些问题。回答完问题后,你要考虑将这个本来是用Offline分析的Model用在自己的产品上,要做出它,并且要看它的Performance怎么样。 上图中黄色虚线内的部分就是大家在学校里面接触到的内容。传统的School Project重点培养的是学生对Model本身的理解,因为学校的项目给学生的Data一般都是已经处理好的,并且一般学校的Project所用的模型都很小,所以,学生可以在Local Machine上面运行,运行完后,也不需要再Monitor那些Model或将Model自动化作为生产用。 我们来看下面这个例子,用过R的同学应该会对这个例子比较熟悉,这是一个很经典的Boston Housing的Project。 这个Project有一个Boston Housing的Housing Value,Input是从右边这个表中的第二行到最后一行的内容,老师通常会让大家用Data Set去建模,这重点考察了你通过写一些R Code去做Model Selection和等做出Model后,去做模型诊断分析以及用Data Set去做Machine Learning里面的一些基础概念,还有去建立不同的模型。 上面我们讲解了一个很传统的学校Project,但在实际应用中你往往会遇到许多你在学校没有遇到过的问题。 比如,在Boston Housing这个项目中,他的Dataset都是给定的,你只能从有限的Variable中去选择,但是你并不知道为什么需要在这些Data Set中选而不是从其他的里面选择。但在实际应用中,你先是会有一个Business Question,然后你要进行一些头脑风暴。 比如说,你的老板想让你预测一下Housing Price,那么你就要去想哪些Variable可能会对Housing Price有影响,然后再去想如何收集所需数据。这时,你并没有一个已经做好的Dataset可以直接建模。还有你可能会遇到Dataset不在同一个平台上的问题,比如说有些数据在Data Link里面,有些在Server里面,你就要考虑如何从不同的平台收集数据来让模型使用。 大家最经常遇到的问题就是如果Data的质量很差应该怎么办。比如说在一个地区,居民的Income对这个地区的Housing Price有很大影响,但是你没有办法收集到准确的Income,或者虽然收集到了,但误差很大。并且当你做好Model后,你要考虑如何Productional Model。 除了这些技术方面的问题,你也会遇到很多非技术方便的问题。这就比较考察你的软实力,比如说当你做出模型后你需要跟一些没有专业知识的人去卖出你的模型,这些都是在学校中无法学到的。 通过以上了解,我们可以总结出学校教育和实际应用之间的Gap主要存在于以下方面: 1. 数据质量,在实际工作中,你所能用到的数据的质量都是很差的; 2. 数据大小,绝大多数的科技公司所需要处理的数据量是非常大的,这就使得你无法用处理学校项目时用的Local […]

数据科学
面试
Read more

如何解读Job Description?

2018.11.02
作者:Yifan

大家都知道,在JD中,一般写在前几行的内容要比写在后面的重要。 我们要能做到通过不同的JD知道不同的信息。要明白什么是关键信息,什么是次要信息。 JD隐藏信息 要挖掘出JD中的隐藏信息,判断出符合哪些要求会为自己的简历加分以及自己的简历必须涵盖哪些要求。下面我们来通过几个JD例子来为大家讲解如何进行JD分析。 上面这则JD前两行重点强调了前端技术,比如Angularjs,Coffeescript,D3 和Visual Designers,这就说明了这个职位主要是做一些比较前端的东西。那么你在申请这个职位的时候,就应该重点强调一下自己比较偏Web的经验。同时,你也可以看到有很多JD都在强调一些软实力的东西,你可以通过这些要求看出这个团队的风格,这也代表了整个团队的文化,那么你在面试的时候也就应该体现出自己有那方面的素质。 在这则JD中,可以看到在前面部分并没有出现任何技术名词,这说明此职位对求职者的技术栈熟练使用程度的要求不高,但更在乎求职者的综合素质。这则JD在Requirement里面提到了很多技术名词,说明这个团队强调的是求职者的学习和能从系统的较高Level去思考问题的能力而并非能快速掌握某项技术的能力。 分析上面这则JD,如果一个公司把Move Fast,Build Great Things放在JD前面时,就说明这是一个很有Start Up精神的公司。此时,你应该强调自己独立解决问题的能力。 在这则JD中,可以在Qualifications中明确看出这是一个用Wordpress的网站,运用MySQL和PHP等技术。通过Expert Level Javascript等可以看出他们希望你可以帮忙优化他们前端网页的内容。并且这个职位还有一些集成的工作,因为JD要求求职者会使用Git和Gulp。在JD最后几行我们可以看到出现了Ios,我们在前面已经讲过,没有将Ios放在前面就说明这个团队往往都不做Ios这一块,但是在这里出现Ios就说明此公司的产品一定有一个Ios客户端。此时,如果你有过Ios开发的经历就可以使自己从众多Candidate中脱颖而出。如今,Node.Js与Meteor都是热门技术栈,通过JD我们可以知道尽管这个组不使用这两种技术,但可能隔壁组你需要调用的很多Web Services是用Node.Js和Meteor写的,如果你懂的如何使用就可以在此小组中得到重视。 如何解读DS Job Description Data Scientist定义很宽泛,常见的Title有Data Scientist, Product Analyst, Machine Learning Scientist, Statistician, Business Analyst, Quantitative Analyst, Marketing Analyst, Operation Analyst等等。不同公司对DS Title的定义完全不同,有可能两个公司的DS Title一样,但是工作内容完全不一样。对于DS,就要看Job Description具体的内容,而非Title本身。 对于IT行业来说DS大致可分为三个Track:第一个是Modeling或Machine Learning的Track, 主要做一些建模的工作。第二个Track是Product Analytics;这在湾区的一些大公司,比如Facebook,Google需求量都非常大。第三个Track是Business/Marketing/Operations Analytics,这也包含在DS范畴,他合作的对象不是产品方向,而是Business或Marketing方向。以上是IT行业的三个主要Track。 其他行业还有很多,比如说Finance,银行等有Risk Modeling,在生物统计或医药行业也有很多做Clinical Statistician,在一些零售行业有Supply Chain Optimization的工作。 本部分主要讲解IT行业常见的DS Track,下面我们将通过三个案例进行分析。 第一个是Modeling/Machine Learning Track,具体如下: 首先,大家可以看一下Key Words,也就是上图中标绿色的部分,第一个是说Frame […]

北美求职面试
数据科学
简历书写
面试
Read more

作为一个New Grad,我是这样成为Deloitte数据科学家的

2018.10.26
作者:Yifan

本期主角:Yize Zang 现就职于:Deloitte Data Scientist 相信很多想成为Data Scientist的学生都被这样“劝退”过:数据科学家的岗位偏好PhD或者是有工作经验的人,New Grads就别想了。事实上,很多BitTiger的New Grad学员都顺利的拿到了Data Scientist的offer。今天我们就来看看Yize Zang同学的求职经历,以下内容来自于Yize同学的口述。 我本科在北航念的信息管理与信息系统专业。和很多同龄人一样,研究生我决定出国。因为一直都对数据挖掘很感兴趣,所以我选择了UMich信息学院的Data Science方向。 UMich的学习让我在Data Science这方面打下了牢固的基础。但是找工作时同样科班出身的其他candidate也有着坚实的统计和ML经验。如要要在校招的时候从一众候选人中脱颖而出,那就相对于其他人需要知道更多的东西。从数据科学家的角度来说,除了常规的统计和ML,很多时候你还需要知道大数据工程实践。但是,在我选过的课程中这部分内容涉及到的的并不是非常多。 意识到自己在这方面的不足,也抱着对Data Engineer这个职业的好奇心,我报名参加了BitTiger的课程。在CS项目课程中,老师深入讲解了很多大数据背后的原理。比如Kafka的Push和Pull的各种模式,对于没有什么计算机背景的我来说,大大开拓了思维,帮助我从工程的角度考虑各种实际问题。在我之后的面试中,我也经常利用BitTiger课程中学到的情景分析从工程的角度如何解决数据挖掘问题,这些方法足以应对大部分的面试。 在9月初,我开始准备求职,然后在9月中下旬参加了学校的Career Fair。之前我也是听了一些BitTiger关于秋招的讲座,对Career Fair进行了一些有针对性的准备。所以在过程中也搜刮了不少的面试机会。当然,在投简历之前,Frank老师也很负责的帮我过了一遍我的简历。 10月份差不多一直都在等消息了。期间闲来无聊我也海投了不少公司,到10月下旬基本就是各种准备onsite了。 这里我想特别提一点的就是数据科学家的Communication也是面试考察中的重要因素。很多DS的同学可能没有意识到这一点,但是在很多我的面试中,我都被反复challenge了很多和communication和teamwork相关的问题,大家还是要好好的准备一下。毕竟,如果交流能力不够强的话,进了公司之后也会遇到不少困难。 我通过简历上的项目,顺利拿到了Didi、Apple和其他四家中小型公司的面试。Didi的面试是非常非常technical的,如果大家要面Didi的话一定要做好心理准备。Apple的话那年我参加了On Campus Interview,但是很不幸那个组当时并不招Fulltime,只招Intern,所以我也没有机会继续follow up下去。 最后,我想告诉所有我的学弟学妹们,求职往往都是一个比较漫长的过程,大家千万不要放过任何机会。就像我获得Deloitte的数据科学家offer一样,刚开始我也觉得这个职位好像很难,要不就别投了算了吧,但是最后却真的一路拿到了offer。所以说,如果有机会的话,大家一定要去试一下,讲不定你就是被上帝眷顾的那个人呢?

offer故事
数据科学
面试
Read more
Next Page »

About

BitTiger is the lifelong learning platform from Silicon Valley.

  • contact@bittiger.io
BitTiger Careers

Follow Us

Legal

Privacy Policy
Terms of Use
Terms of Service
Code of Conduct
Copyright Policy

All Rights Reserved ©2017 BitTiger, Inc.