
先说结论,按下面顺序去选择:行业>城市>公司>岗位。因为条件概率决定了你能走多远。接着你应该问自己下面几个问题:1.选择哪个行业?2.选择哪个城市?3.选择行业中的哪种岗位? 带着这些问题,我们下面一起聊聊。1.选择哪个行业?俗话说「男怕入错行」,就是在说选择行业很重要。前见年机械很火,有很多人选择了机械专业,毕业后发现人工智能时代来了,在这个时代趋势下,干机械的想转人工智能相关的工作,只能从零开始学起。而那些当年选择计算机专业的,却因为选对了行业,可以顺势而为。我遇到很多人找工作说自己想找互联网行业的。如果你说自己想进入“互联网行业',那就说明你还没想清楚到底要干什么。因为互联网的存在是为了解决某个行业的问题,比如滴滴、高德地图解决的是出行交通行业的问题,小学英语在线平台vipkid解决的是教育行业的问题,蚂蚁金服解决的是金融行业的问题,饿了么解决的是餐饮行业的问题。只有确定了行业,才能研究这个行业是什么,你要准备做哪些与行业相关的项目放到简历里。这样对症下药,找到工作的概率才是最大的。想想,你要找金融行业的工作,但是你简历里放的项目经验都是其他行业的,而另一个人的简历里做的都是金融相关的项目,哪个被录用的可能性更大呢?肯定是那个行业相关的。保持在行业上的积累,对于职业成长很重要。我看到过很多人技术很厉害,但是工作几年发展却受限,成为不了某个行业的专家。是因为今天跳到A行业,明天跳到B行业,这样做行业经验无法积累,导致哪个行业的业务都不精通。如果你不想做现在的职位了,要注意换岗不还行,也就是不要随意换行业,避免跳到一个陌生的领域,但是可以换到相关行业的其他职位。在一个行业的业务知识积累,可以让你成为这个领域的专家,要知道,行业经验是你的核心竞争力之一。 在风口上,猪都能飞起来。所以,在找工作的时候就要问自己:我要从事的这个行业是朝阳还是夕阳产业? 是否能给我更稳定的发展时间? 那么问题来了:“我怎么知道哪个行业是有有前途的?”了解一个行业最好的办法就是找这个行业的从业人员去问。如果没有这样的朋友,那也没关系。在2网络发达的今天,你总能在互联网上找到想要的东西,这里我列了去哪查找各个行业发展的办法:在哪里能找到各行业的分析研究报告?www.zhihu.com图标 2.选择哪个城市?当我们听到"世界是平的",似乎意味着居住在任何地方都能和外界联系并高效工作,所以家住何处似乎也变得无关紧要。《你属哪座城市》的作者研究证明,这个认识是完全错误的,全球化潮流导致的恰恰是地区差异进一步拉大,选择不同的居住地,意味着完全不同的人生。 数据显示,北京、杭州、上海、深圳、广州成开发者最喜欢工作的城市,杭州成为仅次于北京的开发者偏爱城市,首次突破了北上广深的围栏。在中国西部区域,成都、西安分别成为开发者最喜欢的西南、西北两大城市。 学过概率的人,应该知道条件概率对于一个人命运的影响。不要在沙漠里挖水,而要到水多的地方找机会。世界不是平的,城市大权影响命运。要相信,环境改变命运,越大的城市赋予你的条件概率越高。 3.选择行业中的哪种岗位?在一个行业中,往往有着多种岗位。比如餐饮行业的美团,你既可以是送外卖的,也可以是前端工程师,也可以是数据库维护工程师,或者是数据分析师。选择哪个岗位更有利于自己未来的发展呢?你需要考虑:现在的工作经历写到简历上,会对下一份工作有帮助吗? 这个岗位对我的职业规划有帮助吗? 现在的技能有助于构建我的核心竞争力吗? 如果你找的工作是在自己的“最佳领域”工作,那这份工作就会比较好。所谓的“最佳领域”,就是你热爱的、你擅长的、以及社会需要的这3个重叠的领域。 类似的,关于如何确定值得付出的事业,战略咨询师,知名博主、设计师巴德·卡德尔明确指出三条准则:擅长做的,希望做的,能赚钱的。他用下面这张图画出了这个准则: 图中有三个互相重叠的圆,分别表示:你擅长做的、喜欢做的、能赚钱的。对每个重叠部分均给出了相应的建议:1)找出赚钱的方法:如果你擅长且喜欢做某事,却不能以此为生,则应该学会找出能赚钱的方法,将技能变现;2)学会说不:如果你擅长做某事且可以赚到钱,但不喜欢,则应该学会说不;3)精进技术:如果你喜欢做某事且可以赚到钱,但不擅长,则应该精进技术,转变为擅长做的。 4.总结找工作,按以下顺序优先选择:行业>城市>岗位,这样才能确保你未来赚的更多。选择比努力更重要。猴子聊求职zhuanlan.zhihu.com图标
【题目】 公司的app(类似滴滴、uber)为用户提供打车服务。现有四张表,分别是“司机数据”表,“订单数据”表,“在线时长数据”表,“城市匹配数据”表。(滴滴面试题) 下图左表是“司机数据”表的部分数据。为了便于讲解,之后在涉及到表的时候,用下图右表来代替。右表中展示了左表的部分代表性数据。 上表中的“产品线id”: 1是表示专车,2表示企业,3表示快车,4表示企业快车 业务问题 分析出2020年8月各城市每天的司机数、快车订单量和快车流水数据。 分析出2020年8月和9月,每个月的北京市新老司机(首单日期在当月为新司机)的司机数、在线时长和TPH(订单量/在线时长)数据。 分别提取司机数大于20,司机总在线时长大于2小时,订单量大于1,乘客数大于1的城市名称数据。 (文末有模拟数据下载) 【解题思路】 为了方便数据处理,首先将这些表中所有的日期数据转化为日期格式 ‘年-月-日’ 的形式。需要使用 date_fromat 函数。 sql语句为update 司机数据 set 日期=date_format(日期,'%Y-%m-%d');update 司机数据 set 首次完成订单时间=date_format(首次完成订单时间,'%Y-%m-%d');update 订单数据 set 日期=date_format(日期,'%Y-%m-%d');update 在线时长数据 set 日期=date_format(日期,'%Y-%m-%d'); 处理后的表如下图,可以发现对应日期列已经修改过来了。 接下来看需要分析的业务问题。 提取2020年8月各城市每天的司机数、快车订单量和快车流水数据。 (1) 2020年8月各城市每天的司机数 使用逻辑树分析方法,拆解业务需求的每个部分。 “2020年8月”,可以用 between and 函数来对时间进行条件限制。 “每天的司机数”,司机数的计算用到的表是 “司机数据” 表。当出现“每天”要想到《猴子 从零学会sql》里讲过的分组汇总,来解决“每天”这样的问题。用“日期“来分组(group by),用 count(司机id) 来汇总司机数。 “各城市”,城市在“城市匹配数据“表中。也就是“每个城市”所以用“城市“来分组(group by)。 这里涉及到两个表“司机数据” 表和“城市匹配数据“表,所以遇到多表查询的情况,要想到《猴子 从零学会sql》里讲过的多表联结。下图是两表联结的条件(通过城市id联结)。 使用哪种联结呢? 因为要查询的是司机数,所以要保留“司机数据”表中的全部数据,因此使用左联结。 sql语句如下 查询结果如下图(部分展示) (2) 2020年8月各城市每天的快车订单量 “2020年8月”,可以用 between and 函数来对时间进行条件限制。 “每天的快车订单量”,对于计算快车订单量,用到的表是 “订单数据” 表。根据题目的字段解释,“产品线id”: 1是表示专车,2表示企业,3表示快车,4表示企业快车。可以用where子句把快车数据先筛选出来(产品线id=3)。 当出现“每天”要想到《猴子 从零学会sql》里讲过的分组汇总,来解决“每天”这样的问题。用“日期“来分组(group by),用 count(订单id) 来汇总订单量。 “各城市”,城市在“城市匹配数据“表中。也就是“每个城市”所以用“城市“来分组(group by)。 在 “订单数据” 表、“司机数据”表中都没有城市数据,所以需要三表联结,下面是3表的关系图。 使用哪种联结呢? 因为要查询的是快车订单量,所以要保留“订单数据”表中的全部数据,因此使用左联结来与“司机数据”进行联结(联结依据为“司机id”)。然后,因为要对第一次联结后的表的“城市id”与“城市名称”进行匹配,所以我们用左联结来进行匹配。 sql语句如下 查询结果如下图 (3) 2020年8月各城市每天的快车流水数据 “2020年8月”,可以用 between and 来对时间进行条件限制。 “每天的快车流水数据”,对于计算快车订单量,用到的表是 “订单数据” 表。根据题目的字段解释,“产品线id”: 1是表示专车,2表示企业,3表示快车,4表示企业快车。可以用where子句把快车数据先筛选出来(产品线id=3)。 当出现“每天”要想到《猴子 从零学会sql》里讲过的分组汇总,来解决“每天”这样的问题。用“日期“来分组(group by),用 sum(流水) 来汇总流水。 “各城市”,城市在“城市匹配数据“表中。也就是“每个城市”所以用“城市“来分组(group by)。 在 “订单数据” 表、“司机数据”表中都没有城市数据,所以需要三表联结,下面是3表的关系图。 使用哪种联结呢? 因为要查询的是快车流水量,所以要保留“订单数据”表中的全部数据,因此使用左联结来与“司机数据”进行联结(联结依据为“司机id”)。然后,因为要对第一次联结后的表的“城市id”与“城市名称”进行匹配,所以我们用左联结来进行匹配。 sql语句如下 查询结果如下 提取2020年8月和9月,每个月的北京市新老司机(首单日期在当月为新司机)的司机数、在线时长和TPH(订单量/在线时长)数据。 我们将新老司机分开来分析,先针对新司机进行提取,然后老司机同理可得。 (1)提取2020年8月和9月,每个月的北京市新司机的司机数。 使用多维度拆解分析方法来拆解题目为以下子问题: 1)每个月的司机数2)条件:新司机 2)时间条件:2020年8月和9月3)城市条件:北京市 先来看子问题1:每个月的司机数 对于司机数的计算,用到 “ 司机数据” 表。根据《猴子 从零学会sql》里讲过的,遇到“每个”这类型问题要用分组汇总。“每个月”按月份分组(group by),用count(司机id)来汇总司机数。 select count(司机id) as 司机数from 司机数据group by 月份; 这里的月份怎么得到呢? 可以通过“日期”列获得:date_format(日期,'%Y-%m') 所以,上面sql修改为: select count(司机id) as 司机数from 司机数据group by date_format(日期,'%Y-%m') as 月份; 子问题2,条件:新司机å 对于 ‘新司机’ 这个条件,由题目中的释义可知:首单日期在当月为新司机。因此我们通过比较 "日期" 与 “首次完成订单日” 两列的年月 相等的,即为新司机。我们用函数 year(日期) 来提取日期中的年份。用函数 month(日期) 来提取日期中的月份。 利用如下“where”条件来表示新司机。 where year(首次完成订单时间)=year(日期) and month(首次完成订单时间)=month(日期) 加入“新司机”条件后的sql如下: select count(司机id) as 新司机数from 司机数据where year(首次完成订单时间)=year(日期) and month(首次完成订单时间)=month(日期) group by date_format(日期,'%Y-%m') as 年月; 子问题3,时间条件:2020年8月和9月 利用where加条件,between...and 函数限制时间范围。where 日期 between '2020-08-01' and '2020-08-31'or 日期 between '2020-09-01' and '2020-09-31' select count(司机id) as 新司机数from 司机数据where year(首次完成订单时间)=year(日期) and month(首次完成订单时间)=month(日期) and (日期 between '2020-08-01' and '2020-08-31'or 日期 between '2020-09-01' and '2020-09-31')group by date_format(日期,'%Y-%m') as 年月; 子问题4,城市条件:北京市 利用where添加城市条件,城市id等于北京市的id。where 城市id ='100000' 最终sql如下 查询结果如下 (2) 提取2020年8月和9月,每个月的北京市新司机的在线时长。 对于在线时长的计算,用到 “ 在线时长数据” 表。根据《猴子 从零学会sql》里讲过的,遇到“每个”这类型问题要用分组汇总。“每个月”按月份分组(group by),在线时长的总长利用sum(在线时长)来计算。 而我们发现新司机在 “在线时长数据” 表 中并没有,而是在 “司机数据”表 中通过查询语句才能得到,因此我们用两个表的联结,得到 8,9月北京新司机的在线时长,然后再利用子查询,使用sum(在线时长)得到总时长。 sql语句解析如下 查询结果如下 (3) 提取2020年8月和9月,每个月的北京市新司机的TPH(订单量/在线时长)。 由题可知,TPH=订单量/在线时长。其中在线时长我们在上一题中已经求得,因此只需求出订单量即可。 订单量的计算,会用到 “订单数据” 表,用count(订单id)来计算。然后思路与上题一样,新司机在 “在线时长数据” 表中并没有,而是在 “司机数据”表 中通过查询语句才能得到。 因此我们用两个表的联结,得到 8,9月北京新司机的在线时长,然后再利用子查询,使用count(订单id)得到总订单量。 sql语句解析如下 查询结果如下 因此,2020年8月和9月,每个月的北京市新司机的TPH=订单量/在线时长=2/4=0.5。 对于老司机的司机数,在线时长以及TPH,同理可得,只需要将 “新司机” 的条件 换成 “老司机” 即可,其他语句都不变。 分别提取司机数大于20,司机总在线时长大于2小时,订单量大于1,乘客数大于1的城市名称数据。 (1) 司机数大于20的城市名称。 司机数的计算用count(司机id),用到的是“司机数据”表,城市名称在 “城市匹配数据”中,用表的联结。联结图如下。 sql语句解析如下 查询结果如下 (2) 司机总在线时长大于2小时城市名称。 总在线时长用sum(在线时长)来计算,用的是 “在线时长数据”表,而这个表中没有城市id,因此我们需要先联结“司机数据”表,得到城市id,再通过联结“城市匹配数据”表,得到对应的城市名称。 sql 语句解析如下 查询结果如下 (3) 订单量大于1的城市名称。 订单量的计算用count(订单id),乘客数的计算用count(乘客id),用到的表为“订单数据表”,而这个表中没有城市id。 我们需要先通过“司机数据”表联结,得到对应的城市id,在通过“城市匹配数据”表进行联结,得到相应的城市名称。 sql语句解析如下 查询结果如下 (4) 乘客数大于1的城市名称。 乘客数通过count(乘客id)来计算,用到的表为“订单数据”表,而这个表中并没有城市id,所以我们需要联结 “司机数据”表来得到相应的城市id,再通过“城市匹配数据”联结,得到相应的城市名称。 sql语句解析如下 查询结果如下 【本题考点】 1.这次试题重点要考察的是表的联结。当题目中涉及到多个表之间的关系时,我们要找到多个表之间是通过什么条件关联的,然后进行多表关联。 2.考查如何将复杂问题拆解为简单问题的能力,可以使用逻辑树分析方法。 3.如何下载案例数据? 推荐:如何从零学会sql?
现在招聘网站也挺多,不同的招聘网站用户人群也不一样,所以要选择适合你的招聘网站投递简历才能找到好工作。下面的的表格是排名前10的招聘类APP。 数据来源:TalkingData《2018年招聘类APP用户人群洞察报告》应用活跃指数:根据TalkingData样本数据通过预测算法预估出的全平台活跃终端数 从表格中我们可以看出,2018年2月,传统综合招聘平台代表-智联招聘、前程无忧51job的APP应用活跃指数以较大领先优势居于招聘类APP前两位。 虽然Boss直聘、猎聘同道、拉钩等平台主打高端人才招聘、互联网人才招聘等细分定位,但是在用户规模上仍然难以与传统综合平台竞争。 所以可以得出的结论是,传统综合招聘平台在用户规模上仍居于领先。 之前社群会员给我发求助问题,说自己在拉勾网上投简历,连个面试机会都没有。这其实就是忽略了传统综合招聘平台。我给他的建议是同时在综合招聘平台智联招聘、前程无忧51job上投简历,很快就收到了面试通知,这位社群会员现在已经成功拿到58同城的offer。 我们再来看看各个招聘平台的用户人群有什么不同。下面图片中对比了三个招聘类APP的用户,其中智联招聘、猎聘同道APP用户更多集中在三线及以下城市。而拉勾APP一线城市用户占比接近40% 这给我们的决策依据是,以后你找工作,就要根据自己的城市选择合适的招聘APP来投简历。例如下面这位社群会员分享的经验: @柯本在他的面试经验中是这么分享的:我投的都是苏州和上海的岗位,主要在拉勾网、Boss直聘、前程无忧、智联招聘、猎聘网上同步更新简历,投递简历。 收到的面试邀约主要来自于Boss直聘、前程无忧和智联招聘,拉勾网上被刷掉的概率很高。 这里主要说一下Boss直聘,这个偏向于及时聊天的功能。在工作日上午的时候,可以主动跟Boss们聊天,介绍一下自己的情况,表达自身意愿,获得面试机会。这个成功率还是比较高的。 总结几条经验:1)应届生,社会招聘渠道不要忽视传统招聘平台,也不要在一个招聘平台上死磕。同时在下面招聘渠道上投简历: 3)高层人才,国外招聘渠道 5)各个招聘平台都有置顶简历的付费服务,可以提高简历的曝光率。 猴子聊求职zhuanlan.zhihu.com图标
【题目】 现有用户登录时间表,记录每个用户的id,姓名,邮箱地址和用户最后登录时间。表如下: 问题:生成一张临时表(表名:用户登录表),表中呈现四列数据分别为:姓名,最后登录时间,登录时间排名,登录天数排名 要求: 1.“登录时间排名”这一列:按时间给出每个人的登录次数,登录时间最早的为1,之后的分别是2,3,4等。 2.“登录天数排名”这一列:按天给出每个人的登录次数,同一天多次登录认为是同一次,最早标记为1,之后以此类推。 【解题思路】 题目没看懂,对吧?没事,使用逻辑树分析方法,将复杂问题拆解为简单问题。 看看我们已有的字段有:姓名,最后登录时间,未知的字段 :登录时间排名,登录天数排名两列,要求的表格如下图: 接下来看如何得到这个表里的每一列。 1.“登录时间排名”这一列:按时间给出每个人的登录次数,登录时间最早的为1,之后的分别是2,3,4等。 (1)当“每个”出现的时候你能想到什么? 就是《猴子 从零学会sql》里讲过的:每个出现的时候,就要想到是分组汇总。 表里能区分“每个人”的是“姓名”,所以按“姓名”来分组(group by或者窗口函数的partiotion by)。 汇总的要求是“登录次数”(登录时间最早的为1,之后的分别是2,3,4等),这句话翻译成大白话就是用登录时间来排序,最早登录记1,第二次登录记2 ,依次排序。也就是排名。 因为是排名问题,所以使用分组(窗口函数partiotion by 姓名),并按最后登录时间升序排列(order by最后登录时间 asc),套入窗口函数的语法,得出下面的sql语句: select 姓名,最后登录时间, row_number() over (partition by 姓名 order by 最后登录时间 asc) as 登录时间排名 from 用户登录表 ; 查询结果如下: 2.“登录天数排名”这一列:按天给出每个人的登录次数,同一天多次登录认为是同一次,最早标记为1,之后以此类推。 同一天多次登录认为是同一次,也就是同一天排名相同,我们用test1登录次数举例,如下图: 排名问题,要使用窗口函数。因为同一天登录的记录排名相同,不占用下一名次排名,所以用dense_rank函数, 按姓名分组(partiotion by,并按最后登录天数升序排列(order by,升序asc)。套入窗口函数的语法,得出下面的sql语句: select 姓名,最后登录时间, dense_rank() over (partition by 姓名 order by 最后登录时间 asc) as 登录天数排名 from 用户登录表 ; 得出查询结果如下: 发现上面的查询结果里“登录天数排名”里是登录时间,而题目要求是登录天数,所以需要使用date_format(date,format)来转化为时间格式: date_format(最新登录时间,’%Y%m%d’)。 套入上面的sql语句中就是: select 姓名,最后登录时间, dense_rank() over (partition by 姓名 order by date_format( 最后登录时间,'%Y%m&d' ) asc) as 登录天数排名 from 用户登录表 ; 查询结果如下: 3.将得到的2列合并到题目要求的表中 查询代码如下: select 姓名,最后登录时间, row_number() over (partition by 姓名 order by 最后登录时间 asc) as 登录时间排名, dense_rank() over (partition by 姓名 order by date_format( 最后登录时间,'%Y%m&d' ) asc) as 登录天数排名 from 用户登录表 ; 查询结果如下: 【本题考点】 1.考察逻辑思维能力,如何将复杂问题转化为可以解决的子问题能力。这时候可以使用逻辑树分析方法。 2.本题本质上是“分组排名”问题,就要想到用窗口函数。 3.考察窗口函数的 dense_rank, row_number的区别和使用。dense_rank函数,如果有并列名次的行,不占用下一名次的位置(即1,1,2,3);row_number函数:不考虑并列名次的情况(即1,2,3,4)。 4.考察时间格式的数据如何灵活转换,用date_format(date,format)根据format的指定的格式显示date值。 【举一反三】 下表是双十一客户购买清单表。双十一当天,商家为每位客户购买的第一个商品免单,请找出商品名称,客户姓名及购买金额。 参考答案: 双十一当天每个客户(分组)第一个下单的商品(按购买时间来排名),是“分组排名”问题,使用窗口函数来解决。 select 客户姓名 ,商品名称 ,购买金额,购买时间, rank() over (partition by 客户姓名 order by 购买时间 asc ) as 下单顺序 from 双十一客户购买清单表; 查询结果如下: 2.题目要求是商家为每位客户购买的第一个商品免单,接着上面的查询结果写,可以加入一个where子句把“下单顺序”值为1,把第1个商品筛选出来。 查询结果如下: 推荐:如何从零学会sql?
人在江湖,生不由己。人在职场,Excel必备。为了帮助更多人快速掌握职场必备技能Excel,我写了一个免费的教程《职场Excel》,能帮助你解决99%职场中遇到的问题。对,你没看错,是完全免费的。点击下面章节的名称就可以学习了。《职场Excel》第1章:快速处理数据1.如何快速选中数据2.如何查找和替换数据?3.Excel的数据类型4.如何进行数据验证?5.如何删除重复数据? 第2章:数据可视化入门1.如何制作图表?2.如何设置图表属性?3.设计图表的原则是什么?4.如何看懂图表? 第3章:数据可视化进阶1.管理项目工具甘特图如何制作?2.如何制作组合图?3.如何制作创意图表?4.数据条:让表格一目了然5.突出显示重点数据?6.如何让数据高亮显示? 第4章:用函数让工作高效1.字符串截取函数2.多表查询:vlookup函数3.查找函数:index+match组合4.求和函数 第5章:Excel函数进阶1.如何实现排名?2.自动判断:if函数3.摆脱手工计数:countif函数4.日期问题:dateif函数来搞定猴子数据分析zhuanlan.zhihu.com图标