互联网学院:毕业10年才懂,会升层思考,工作有多轻松?

互联网学院:毕业10年才懂,会升层思考,工作有多轻松?

(文章来源于阿里技术 ,作者张荣华)

导读:从学生开始老师就教导我们什么是问题?如何找出标准答案。然而,经过十几年的学习,大多数人依然没有理解问题的本质。正确定义问题是成功的开始,更是成功架构师的必要条件。今天,阿里资深技术专家张荣华从问题的本质入手,用“升层思维”解决问题,告诉我们创新的核心,给出高效工作的途径。

一、问题的本质

我也在很多场合问过一个问题:什么是问题?虽然我们天天挂在嘴边,但是没有人能够给出较为合理的答复。之前我也没有想过这个问题,很多人对问题的理解还不太一样。一部分人认为问题就是方案中的难点,一部分认为问题是现实和目标的差距,这些解读我觉得都还不够精确,我在尝试定义无果之后查询了大量的资料,终于找到了一个比较合理的定义,目前我认为毛主席的解释是比较合理的:“问题就是事物的矛盾。哪里有没有解决的矛盾,哪里就有问题。”

而主管们经常问到:

你要解决的问题是什么?
这里的问题定义是什么?

其实潜台词在问,这里事物间的矛盾是什么(已经发生的矛盾,将来会发生的矛盾,可能潜在会发生的矛盾),这个矛盾如果不早点解决,可能会激化,带来很严重的后果。
其他例子:

中国人日益增加的财富和国产商品的低劣品质就存在矛盾,这个矛盾就是个问题(已经发生的矛盾)。所以我们要提倡中国质造。
如何利用新技术,更快更准地帮助消费者找到其最需要的商品,提升幸福感(将来会发生的矛盾,在矛盾发生之前,我们应该将之解决)

上面几个问题的定义都是社会级问题,而且都是公司层面在解决的问题,在我们技术同学的手头的工作中应该也存在各种问题,比如说QPS太低,RT太高,不稳定,研发效率低,等等,这些问题的定义稍微常见一点,基本上大家只要解决问题,而不用定义问题。

二、准确定义问题是成功的开始

这么多年来笔者review过很多技术方案,而且也经历混沌混乱的模块设计,大部分糟糕的设计基本上是摸不清楚自己到底要解决什么问题,总是觉得这个问题我要解决,那个问题我也要解决,甚至不是问题的问题我也要解决。然后设计出了一个能解决所有“问题”的方案。但是实际情况是有些问题根本不是问题,有些问题确实是问题但是却又不是核心问题,有些问题是核心问题,但是又不是当下最核心的问题。我相信类似的方案有很多在review的时候被挡下了,但是还有很多应该已经上线了。如何尽可能减少这方面的损失?那就是要开始阶段就要准确的定义问题,这也是这么多思想家推崇问题定义的原因。

著名思想家杜威如是说道:“A problem well-defined is a problem half solved.”

爱因斯坦如是说道:“提出一个问题往往比解决一个问题更重要,因为解决问题也许仅能是一个数学上或实验室上的技能而已。而提出新的问题、新的可能性,从新的角度去看旧的问题,都需要有创造性的想象力,而且标志着科学的真正进步。”

那么准确定义一个问题要考虑哪些维度呢?我粗粗地列了一个表格,只是代表我自己的理解,未必是正确或者全面的,大家批判的阅读:

这里应该是一个三维的图形,有时间维度,主次要维度,紧急不紧急维度。

对这个主要次要,紧急不紧急是不是眼熟,没错,在很多如何高效工作上都有类似的方法,把要做的事情分成重要紧急,重要不紧急,不重要紧急,不重要不紧急。

其实我不太认同将事情划分成重要或者不重要,紧急或者不紧急,我建议大家将自己手头要解决的问题划分为重要或者不重要,紧急或者不紧急,因为事情只是一种方案或者手段,区分问题本身的重要度和紧急度才是思考的源头(包含问题的升层思考)。

要填满这张表格必须结合对业务的理解,和对产品的理解,尤其是业务理解,如果没有业务理解,很难准确地刻画问题。

可是什么叫问题的重要度呢?我也思考了很久,终于得出了一些较为自洽的解释。

三、问题的严重程度

3.1 问题严重程度的定义

当我们明确地定义问题之后,我们就要设定目标来解决这个问题,但是现状是残酷的,我们目标和现状之间可能存在巨大的落差,这个落差的程度就是问题的严重程度,所以说:问题的严重程度是希望(目标)与现实的落差!

有些书或者文章里这样定义问题:问题 = 目标 – 现状,这个定义是模糊的,因为目标-现状和这张图一样,往往表示的是落差,落差往往让人想起差距,用差距来形容问题是含糊不清的,很难让人一下子就明白问题的本质。

我们拿性能问题举例,我们的目标是RT<1秒的请求占比大于98%,当前的现状是RT<1秒的请求占比为80%,那么这里的差距就是98%-80%=18%,这18%就是问题严重的程度,但是这18%绝对不是问题本身,这18%是问题的严重程度。

3.2 衡量问题严重程度的挑战

要区分问题的严重程度有两个挑战:

现状:对现状有准确的认知,比如该例中某系统RT<1秒的请求占比为80%。
期待(目标):问题解决后的状态有个清晰的表述,比如该例中某系统RT<1秒的请求占比大于98%。

对于数值型的现状,我们要搞清楚这个数值是容易的,只要将你的目标值减去现状的值就可以得到问题的严重程度了。对于难以量化的现状,那要摸清楚问题的严重程度,可能需要一些案例,需要一些数据统计,比如说架构现在不合理是个问题,这个问题严重到什么程度,那可以计算一下最近半年的需求在实现的过程中,花费了多少工时,如果架构合理的情况下哪些工时是可以节省掉的。或者现在的架构上迭代需求故障和bug的情况是怎么样的,评估一下重构之后故障和bug率会降低到多少。

只要现状和目标有一个没清晰,那我们就很难判断出问题的严重程度在哪里。

FBI warning:如果你不能确定问题的严重程度(现在的或者将来的),不要贸然行动去沉迷于方案的设计。

而不定义问题,不评估问题的严重程度,往往是很多工程师的常见思维习惯,大家可以对号入座。

四、问题的分类

基本上看这三类问题的字面意思就可以知道这三类问题的区别了:

恢复原状型:原本就应该是这样的,但是现在不是,比如说原本轮胎就应该是充满气的,但是现在扎了个钉子,所以我们要让轮胎恢复原状,这就属于恢复原状型问题。
风险防范型:问题可能发生,也可能不会发生,但是一旦发生,带来的危害是巨大的,所以我们不得不费大量的精力来防止这样潜在的问题发生。在安全和可用性方面,很多工作都是属于风险防范型。这里的尴尬之处是做了对数字指标可能没什么提升,但是不做可能会发生特别严重的事故,带来极其负面的影响。
追求理想型:知道未来会发生的矛盾是什么,提前解决未来必然会发生的矛盾。

如果将这三个问题映射到架构上,那么应该是如下的描述:

1)解决架构上未来会遇到的问题:已经明确预知到未来的业务问题,并且可以转换为未来的架构问题,提前做架构准备(功能性&非功能性)。我根据自己的理解又将其划分成两类:

目标是非常明确且可以用数字衡量的:比如性能问题是可以准确定义一个指标来衡量问题当前的具体的量化值的,RT要到降低到多少毫秒,QPS要提高到多少,稳定性要提升到几个9等等,基本上非功能模块都可以用数字来衡量,比如我们系统中出现的数据搬移的功能,都是目标明确,且可以用数字来衡量的。或者比如系统的可扩展性要达到什么程度,是否满足95%以上的需求下不需要进行大量重构。
目标是不明确的:比如将来要走哪个方向,要做什么样的技术准备,很多的类似的场景是很难直接评估出一个度量指标的。可能只有一个愿景和使命,根据这个愿景和使命来分解问题,然后我们才能设定通往这个理想的问题的路径,而探寻到这个理想的过程是相当的复杂,要考虑的因素实在太多,我只能说这个东西我的经验真的不多,我只能尝试用我所学的内容来进行自顶向下的推导,而以目前的功力实在很难保证结果的正确性。

2)解决架构上当前已经发生的问题:架构上的问题已经发生了,要对架构当前的问题进行识别,定义,以及解决(功能性&非功能性)。

3)解决当前架构合理迭代的问题:我们在架构上进行大量迭代,迭代过程中往往容易给架构挖坑埋雷,我们应该尽可能避免这样的情况发生(功能性&非功能性)。

这三大问题正是各线任意一个粒度的架构师需要明察,并时刻提醒团队的三大问题。如果无法定义这三大问题,那么这里可能就是最大的问题。

这里还要阐述一个问题:即使是未来的架构,我们还有分类,一类是你走在最前面,一种是你跟着别人,你跟着别人要怎么跟上去。

这里应该有个决策分支,告诉我们遇到什么场景的时候应该用什么样的思考方法,不过这只是个人总结,每个人脑海里应该都有一套类似的方法,而且这套方法是在不断的突破和修正的。

五、问题定义中的常见问题

1.误把方法/手段当“问题”

接下来,我编了三个小故事,大家从故事中感受一下手段和问题的区别,以及我们如何才能避免把手段当做问题。

案例一:鲧治水着重在堵的方法上,毕生精力都在思考如何更好地堵。

老师:请问这里的问题定义是什么?
小明:这里的问题是如何堵!
老师:其他同学也说说这里的问题定义是什么?
小红:这里的问题是洪水和生命财产的矛盾!堵只是解决这个问题的方法或手段。
老师:如果问题的定义是问题是洪水和生命财产的矛盾,堵只是方法,那么还有什么方法可以解决这个问题?
小王:还可以用疏通的方法来治水。
小白:我们还可以搬走,以避免水患
老师:恩,这也是一个思路

案例二:如果我问我们的客户他们想要什么,他们会告诉我他们需要一匹更快的马。——亨利福特

老师:请问这里的问题定义是什么?
小明:这里的问题是如何让马跑的更快!
老师:还有其他同学能说说这里的问题定义是什么吗?
小红:这里的问题定义是如何更快的到底目的地,马只是一种手段。
老师:是的,如果马只是一种手段,而不是问题的定义,请问还有什么什么手段可以解决我们提到的问题。
小王:根据目的地的距离的不同,我们可以选择坐飞机,坐火车,开汽车。
小明:老师,我不知道自己不知道,我不知道有汽车,火车,飞机,我只知道马,所以我想到的就是如何让马跑的更快。
老师:是的,我们的局限往往是受限于我们的认知,这种情况不可避免,唯一的方法就是不断的学习,提升自己的认知。

案例三:如何做好资金防控?

老师:请问这里的问题定义是什么?
小明:这里的问题是如何做好资金防控,怎么防,怎么控。
老师:还有其他同学能说说这里的问题定义是什么吗?
小红:这里的问题定义是如何避免公司产生资金上损失,防控只是手段。
小白:资损防控解决直接问题是避免公司产生资金和名誉的损失,这个问题背后更深层次的是社会信任的问题。
老师:小白,你的名字虽然叫小白,但是你的思考一点都不小白,显然你在思考问题定义时使用了升层思考的方法,看到了问题背后的问题。
小明:老师,为啥我每次思考的时候,都是在思考解决问题的手段,都没有看到问题定义呢?
老师:那你可以尝试自问自答,比如你可以问自己资损防控是手段吗?自己给个回答,如果回答是yes,那么再问自己:如果资损防控是手段,那么资损防控是解决什么问题的呢?通过这样的自问自答的方式,基本上我们可以较为准确的找到问题的定义
小白:老师,我在想资损防控解决的是社会信任的手段之一,但是解决社会信任问题的手段不止一种啊。
老师:小白,你在思考问题时使用了升层思考,在思考解决方案时使用了升维思考,给你32个赞。
小白:谢谢老师,此时此刻我有点开心啊。
老师:保持心态的平稳,可以看到更多的东西,谦卑的态度没了,那自己的局限也就到了。
小白:谢谢老师提醒,我记住了。

三个故事看完了,总结一下,这三个故事的核心在于:

准确区分手段和我们要解决的问题本身,这种情况非常常见,我review的很多技术方案之所以有问题基本都是问题定义没有搞清楚,所以解决方案的也就不符合需要了。
思考问题背后的问题时使用升层思考,在思考问题包含的子问题时使用升维思考
当升层思考之后,之前的问题可能会变成手段/方法。比如说用堵解决生命财产问题,堵是方法。升层思考之后,生命财产问题背后的问题是民生问题,此时保护生命财产就是解决民生问题的一个手段/方法。

当然当我们无法准确的分辨问题的时候,我们还可以不断缩短描述问题句子,比如提炼主谓宾,如果还不能清晰地描述,那么在这几个词里再找出最最最关键的词,尤其是主语或者宾语中的词汇非常重要,它有可能就是重点,只是我们无情的忽略它了。

把手段或者方案当问题,或者把技术方案中的挑战当做问题是很多同学遇到的问题。

2.误把挑战当”问题”

当我们明确定义出问题之后,我们开始解决方案的升维思考,可以从各个角度来给出解决方案,这些解决方案就是我们前面说的手段/方法。

举例:如果快速到达目的地是目标,而马,汽车,飞机,火车只是手段/方法,那么如何让马跑的更快,如何让汽车跑的更快,如何让飞机飞的更快,如何让火车开的更快就成了挑战。

此时如果你说“让马跑的更快也是个问题啊”,确实,广义上也可以这么理解,但我不建议这样做,原因是这样我容易将问题和手段/方法搅混。

所以这里我尝试给他们一个定义,以明确他们出现的场景:

问题:事物之间在某个时期存在的矛盾,在本文的语境中尤其是指企业的客户和某种事物,趋势之间的矛盾。
挑战:解决矛盾的方案中最困难的几个地方。

接下来我们回到上述的几个案例中,来看看问题和挑战:

回到用堵治水的案例上:

问题定义:洪水和人民生命财产安全的矛盾。
手段/方法:堵水。
挑战:获取息壤,以筑三仞高堤,这是手段/方法的挑战。

回到福特的案例上:

问题定义:如何让人更快的到达目的地。
手段/方法:造汽车来让人们更快的到达目的地。
挑战:设计出更高的扭矩,更高的功率的引擎,更平顺智能的变速箱等等。

这样我们在沟通的时候,就能明确的知道对方到底是在产生客户的问题定义,还是在阐述方案中的难点和挑战。

3.思考问题时缺少时间维度

单个问题在时间轴上的不同时期的严重程度是不一样的,比如说闭关锁国公元后1500年-1700年是看不出太大的问题的,但是,300年后的1800年,闭关锁国的弊端就开始浮现了,当然我们都是事后诸葛亮。

所以任何一个问题的严重程度都有一个时间轴,也许过了某个时间点之后,问题便不再是个问题。比如外卖兴起之后,如何更好的制作一包方便面以满足用户的口味需求就不是一个问题了。

时间维度是一个及其重要的维度,任何事情理论上都必须考虑在时间维度上的影响,所以即使在定义问题上,时间维度是一个不能不考察的维度。所以才需要一个roadmap的路线图,标注不同阶段要解决什么样的问题。

六、升层思考及升维思考
我们不能用问题发生时的同一层次思维来解决问题。——by 爱因斯坦

爱因斯坦阐述了思维存在层次这一现象,这里我发表另外一个观点:

我们不能只局限于问题本身,还需要看到问题背后的问题,然后才能更容易的找到更多的解决方案。

我把这种方法叫做问题的升层思考,接下来我会简称之升层思考,我在网上搜索了一下,之前没有人提起过这个词,所以这个词目前版权在我这里哈,如果你想说服谁需要用这种思考方式,不妨把我这篇文章发给他。

当问题升层思考之后,前面的问题会变成手段/方法,比如说洪水和人民生命财产的矛盾背后的问题是社会的稳定性问题(1和2是升层思考),而升维思考洪水和人民生命财产的矛盾的时候就会发现用疏通治水或者搬走都是方案(3是升维思考)。

这就是升层思考问题,升维思考手段/方法。不过这张图中每个问题到底严重到什么程度,还没有给出量化,不过我们在工作中,我们是要量化这个严重程度,而且要放在时间轴上来进行量化,因为有些问题当前可能并不严重,但是数月后可能会变成大问题。

值得注意的是这里思考的升层是依赖认知升级的,就像一个小朋友,也许也能升层思考,但是其认知的程度决定了他思考能到的层度,所以历史,社会科学,哲学也是我们的必修课,有助于我们认知到更高的层次的存在。当问题的层次不断提升的时候,往往最终会归结为社会问题和人性问题。

重要的话说三遍:

缺乏升层思考的升维思考是不完整的自顶向下;
缺乏升层思考的升维思考是不完整的自顶向下;
缺乏升层思考的升维思考是不完整的自顶向下。

接下来我拿一些网上横向思考的案例,来使用升层思考和升维思考的方式获得相应的解决方案:
例一:游客有时会从帕台农神庙的古老立柱上砍下一些碎片,雅典当局对此非常关心,虽然这种行为是违法的,但是这些游客仍旧把它作为纪念品带走。当局如何才能阻止这一行动呢?

问题定义:如何给客户提供纪念品?
升层思考:客户需要纪念品的背后是想解决什么问题?是不是解决客户的旅游纪念的需求。
对背后的问题升维思考:要满足客户的旅游纪念的需求有没有其他方法?
明信片:明信片也可以做为一种纪念的方式,有了明星片做纪念,游客敲石柱的比例可能会下降。
现场照片:可以安排现场拍照的摄像师,选择特别的角度为这些想要留念的客户拍摄特别的照片,游客敲石柱的比例可能会下降。
帕台农神庙模型:可以制作各种帕台农神庙的模型,让客户购买,以满足客户纪念的需求,游客敲石柱的比例可能会下降。
对原问题升维思考:
在地上洒上大理石碎片:让客户以为这是帕台农神庙的大理石,客户会捡起地上的大理石碎片带回去留念(这是网上的标准答案)。
进入神庙时寄存各种金属物件:让用户无法用金属去砍古老立柱,缺点是成本高,效率低,需要排队检测金属物件
把柱子围起来,让用户只能在一米开外的距离观看:用户碰不到柱子,自然无法去砍柱子,成本比较低,也比较容易实现。
写标语,在入口处,以及门票上明确指出破坏文物是违法行为,会受到法律的制裁,等等。

网上的标准答案是在柱子旁边洒上大理石碎片(其他的都是我使用升层思考和升维思考瞎想出来的,你也可以想出很多)。让游客以为这是神庙已有的碎片。不过这种方案经不起逻辑思维的推敲,比如开放了这么多年,地上的碎石为什么还没有被捡光?于是游客就知道这是人为洒在上面的,那么有些游客会继续破坏石柱。

我想说的是,这里的升层思考,和不同层次的升维思考会给我们带来很多种方案,如果集合全团队的力量,我们甚至还可以想出更多更多的idea。

例二:在美国的一个城市里,地铁里的灯泡经常被偷。窃贼常常拧下灯泡,这会导致安全问题。接手此事的工程师不能改变灯泡的位置,也没多少预算供他使用,工程师应该怎么办?

问题定义:如何不让窃贼拧下灯泡?
升层思考:不让窃贼拧下灯泡是为了解决什么问题?是为了解决预算不足的问题。
对背后的问题升维思考:解决预算不足有没有其他方案?增加预算?募捐?防止窃贼拧下灯泡。
对原问题升维思考:不让窃贼拧下灯泡可以从哪些维度进行考虑?
焊住:缺点是灯泡坏了之后很难更换。
反向螺纹(窃贼在拧下灯泡的时候其实是在拧紧):缺点是窃贼只要使用逆向思维就能破解(反向螺纹是网上的标准答案)。
特别的螺纹(特别螺纹让窃贼拿到灯泡之后也无法在其他地方使用):缺点是需要定制,成本高。
摄像头:缺点是增加了设备,需要更大量的投入。
把灯安装在更高的位置:窃贼得用梯子才能去盗窃灯泡,要看线路是否支持
在灯泡上印上地铁专用标志:别人不敢买这种灯泡,窃贼无法销赃,缺点是多一道工序,灯泡的成本变高。

在这个案例中,反向螺纹是标准答案,缺点是窃贼只要使用逆向思维就能破解。其他都是我自己通过升层思考和升维思考想出来的,其实你也可以想出很多,这里跟逻辑无关。我想说的是通过升层思考和升维思考,我们就会发现很多种创新答案。而不会沿着某个答案一直往下走。

这两个例子是关于横向思维(和升维思考类似)的例子,但是通过我们会发现如果加上升层思考,在每个层次上再进行升维思考,我们会得到很多创新的idea。如果让整个团队使用这一的思考方式,我们就可以得到更多更多idea。

七、是新问题还是新技术解决老问题?

我们做架构的时候,一般都会根据当前流行的技术趋势来解决问题,这些流行的技术趋势其实手段的更新,并不是问题的更新。

尤其是在一些社会性问题以及人性问题上,几千年来问题都没有变化过,只是新的技术手段可以更好的解决这些问题而已。

比如人类有沟通需求,数百年前是通过书信,后来是电报,后来是电话(音频),后来是视频等等。都是技术的革新来更好的解决已有的问题。这就要求我们随时关注新技术,并和当前自己手头的工作产生一定的联想,不同对象之间的联想能力此刻变的无比重要。

当然在一些问题特别明确的领域,比如说数据库领域,要解决的问题基本没有变过,但是问题转换成的指标的值却在一直提升,比如支持的数据量越来越大,插入的速度越来越快,查询速度越来越快,比如最近就有很多通过AI来做自动tunning和AI索引优化的,都属于此列。

类似的例子还有很多,比如Mobile流行的时候,消息的更实时触达是改造各种消息通道的一个契机,会产生新的产品,比如微博,微信,等等。地理位置可以获取之后,也出现一堆新的应用,改造了老的产品。

所以我对自己提了一个要求,任何新技术,哪怕是很小的新技术,都要联想一下可能对现在的工作,以及现在工作的产业链路上下游有咩有什么帮助,这种联想可能不只是个人要做的,而是要驱动团队展开讨论的。目前眼前被提到的新技术有AI,区块链,IOT,5G等等,这些也许可以跟我们的业务产生链接。可以组织团队进行发散型思考。
不过这个事情我自己做的也一般,想多跟大牛们学习学习。MCN整合营销

八、小结

区分手段和问题
明确问题定义
对问题背后的问题进行升层思考
对问题的分解进行升维思考

升层思考和升维思考有时候是创新的核心,比如鲧用堵治水,他毕生都在思考如何堵,所以他是从堵这个顶点向下思考的,如果对堵进行升层思考之后再进行升维思考,你会发现除了堵水,还可以用疏通的方式,还可以搬走等等。所以创新的关键在于升层思考和升维思考。

京东旗下众邮快递首次亮相 对标“通达系”电商快递小件市场

京东旗下众邮快递首次亮相 对标“通达系”电商快递小件市场

定位于高性价比快递,瞄准3kg小件电商包裹,招募合伙人……3月6日,京东旗下的众邮快递对外发布一份广东省合伙人招募公告(下称“公告”),首次对外公开表述其品牌定位。公告称,众邮快递是一家专注于下沉市场与经济型商业发展的快递公司,配送网络覆盖全国,并提出了“国内性价比最优”的目标。

值得留意的是,众邮快递在公告中明确定位于电商快递小件市场,表示将为国内电商平台、微商微店、新型电商、专业市场及散户提供快递服务,服务产品聚焦于3KG小件电商包裹,并且还提供COD(快递代收货款)业务、货到付款、货物保价等增值业务。
快递物流行业专家赵小敏分析认为,众邮快递直接对标的是中通、韵达、圆通、申通、百世等“通达系”电商快递。

赵小敏透露,据他了解,“众邮快递”和“弘邦拓先”都在向国家邮政局申请快递经营许可,其中,广东弘邦拓先物流科技有限公司 (即众邮快递的主体)已经获得广东邮政管理局颁发的快递经营许可证。

此前已有消息显示,众邮快递将率先从广东打造快递网络,再复制到江浙沪及全国。界面新闻记者也留意到,除了广东省之外,众邮快递在上海以及江浙地区的合伙人招募工作也在启动中。
据公告显示,众邮快递联合生态合作资源,现拥有分拨中心180余个,干线1500余条,车辆4700余辆,三方协作网点10000家,实现全国99%的四级地址覆盖,可提供强大的网络平台支撑及稳定的时效服务质量保障。
赵小敏分析,这一生态合作资源除了京东快递网络的现有资源,可能还包括已整合的部分第三方资源。对于众邮快递未来的发展,还需要看京东未来对其支持力度有多大,看其资源整合力度有多大。在现阶段,众邮快递的意义可能更多还是为京东物流IPO提供新的故事。
众邮快递的出现已经引起业内的注意,尤其是一些地级市、县城,快递网点经营者往往同时代理多个快递和快运品牌,不少人对这一新品牌表示出兴趣,也有人仍在观望。
一位湖南某地级市的快递从业者对界面记者表示,选择加盟某一快递品牌,首先要看其网络体系是否完备,以及总部对加盟商有没有扶持政策。他看到众邮的合作伙伴招募公告后,有意向进一步了解,但心里也有几分担忧:“怕不好做,毕竟现有的快递都难以生存。”
一位资深业内专家则对记者直言“不看好”。“现在快递业已经进入了少数寡头的阶段。就全国快递网络而言,新成立的快递品牌很难生存、发展,地方性的配送网、区域快递品牌未来还会有一些发展空间。”他说。
截至2020年1月,反映快递行业集中度的CR8(行业规模前8家企业的市场份额占总市场份额的比例)指数为 84.8%,较去年环比提升2.3百分点,同比提升 3.6百分点。这也代表快递行业集中度正在进一步提升。
2019年,不仅包括国通快递、如风达快递、全峰快递等二三线快递品牌相继出局,包括圆通快递母公司推出的新快递品牌“承诺达特快”,也在试水一年时间后停滞。

2020程序员技能展望:平均年薪5.4万美元,雇主最看重JavaScript

机器之心报道
参与:王子嘉、Geek AI
诸如 TIOBE 此类的编程语言流行排行榜一直吸引了大量 IT 产业从业者的目光。随着市场需求的变化,最受欢迎编程语言的头把交椅从早年的 C++,到 Java 再到如今的 JavaScript、Python,可谓你方唱罢我登场。而在业界的招聘经理们看来,优秀的开发者需要具备哪些素养呢?开发者们更喜欢学哪些技能呢?本文对这些问题进行了一一详解。

为了了解 2020 年市场对开发人员技能需求的状况,世界知名招聘平台 HackerRank 对来自 162 个国家/地区的 116,000 多名开发人员和招聘经理进行了每人 15 分钟的在线调查,发布了第三份年度开发人员技能报告。这是该公司有史以来规模最大的调查,要求受访者提供有关编码训练营、薪酬公平等方面的投入,相关结论如下。
招聘经理在招聘开发人员的时候看重的是什么?
事实证明,这在很大程度上取决于公司的规模。
小公司更喜欢全才,从而招募到很多可以身兼数职的全栈开发人员。这通常是以牺牲掉招募专用前端开发者和后端开发者的成本为代价的。
较小公司认为全栈开发人员更重要,大公司则更可能需要领域专家

HackerRank 的《2020 年开发者技能报告》(2020 Developer Skills report) 中的图表显示,对于较小的公司(少于 50 名员工)来说,43% 的公司认为全栈开发者是他们最想雇佣的人。
细想一下,这种现象是有道理的。大公司才能允许人做更多专业性的事情。
也就是说,所有大型公司的大多数招聘经理都将前端、后端或全栈开发人员列为优先招聘的人员。只有约 30% 的 招聘经理认为以下职位是他们的优先选择:
DevOps 工程师
数据科学家
质量保证工程师
至于雇主招聘时又会看重哪些技能呢?
JavaScript 仍然是最受雇主欢迎的编程语言技能

上图按地区列举了招聘经理对语言的看重程度,JavaScript 是最受欢迎的语言,紧随其后的是 Python 和 Java。
JavaScript 是目前全球最流行的语言,其次是 Python;
在亚太地区,对 Java 的需求量仍然很大。相较于其他地区,C# 和 C++ 在非洲、欧洲和中东地区更受欢迎
但这里有一个很有趣的现象——越来越多的经理(尤其是在美洲)是「语言无关的」,他们并不关心你了解哪种特定的编程语言。
这可以追溯到我过去几年一直在反复宣扬的一个观点:如果你能学好一门编程语言,你就可以轻松地在工作中学习第二门语言。
因此,我很高兴越来越多的雇主认识到这一现实情况,而不是仅仅为「JavaScript 开发人员」或「Python 开发人员」提供工作岗位。
开发人员过去所开发的成果比开发人员使用的特定工具更能反映他们的能力。
越来越少的雇主要求雇员有大学学位,小公司更加灵活

这张图表展示了没有学士学位、有学位和有研究生学位的开发人员的比例(按雇主规模排序)。规模较小的公司聘用没有学位的开发人员的可能性更高。
小公司中 31% 的开发人员没有学士学位(在美国也被称为「本科学位」或「四年制学位」);
即使在大公司,也有 9% 到 18% 的开发人员没有学位。
这与上世纪 90 年代和 21 世纪初的情况有很大的不同,当时大多数开发人员的工作都对学位有所要求。但是细想下来,这也是完全有道理的。在过去 40 年里,获得大学学位(尤其是在美国)的成本飙升。

美国大学学杂费的通货膨胀与总体通货膨胀(消费者价格指数)之比。(资料来源:美国国家教育统计中心)
越来越多的美国人选择放弃传统的大学学位,而选择自学。
我的建议一直是:上便宜的社区大学,然后上便宜的公立大学。如果你能在不负债的情况下获得四年制学位,我仍然认为这是值得的。但我可以理解,那些已经过了传统意义上读大学的年龄(十几岁到二十岁出头)的人完全不想上大学的原因。在大学学杂费增长 25 倍的同时,万维网也诞生了,随之而来的是大量的免费学习资源。现在,只要你愿意静下心来学习,你就可以免费学到很多东西。
因此,鼓舞人心的是,我们看到越来越多的雇主开始雇佣完全自学成才的开发人员。同时,在上大学和完全依赖网上免费学习之间出现了一个新的中间地带:编程训练营。
我写过大量关编程训练营的文章,而且也解释了它们对那些不想重返校园的人的作用。大多数人通过一两年的在线自学,参加当地的科技活动,逛逛当地的极客空间,就能成功地找到一份开发人员的工作。
但是有些人更喜欢加入编码训练营,因为训练营的课程更有结构性,也更容易理解。这和上社区大学和州立大学的花费基本是一样的,但是它们要快一些。同时一些雇主正在雇佣这些编程训练营的毕业生并分享他们对他们的看法,这对参加训练营的人来说无疑是好消息。
编程训练营有用吗?

图表显示,在接受调查的招聘经理中,近 32% 的人曾聘用过一名参加过编程训练营的开发人员。
接受调查的招聘经理中,约有 32% 的人表示,他们曾聘用过编程训练营毕业生。
以下是他们对这些训练营毕业生能力的看法:

上图显示,大多数招聘经理认为,编程训练营的毕业生与其他人胜任其工作的能力是差不多的。
他们发现,这些编程训练营毕业生的能力大多与其他雇员一样好。甚至有近三分之一的人表示,编程训练营的毕业生比一般员工表现更好。需要注意的一点是,许多编程训练营的毕业生已经获得了学士学位——有些人来自计算机科学和工程领域。因此,这些训练营的毕业生中,有些人的受教育程度比一般员工高。还要注意,不同编程训练营之间的教学质量差异很大。
这项调查没有公布更详细的数据,所以我们不知道哪些编程训练营是最受雇主欢迎的,我们也不知道传统的实体训练营和在线训练营的数量是多少。但不管怎样,在招聘了编程训练营毕业生的招聘经理中,有 32% 的人对这些人技能的评价很高。这一事实肯定会让其他在自己城市建立编程训练营的开发人员感到安心。
开发者们更喜欢学什么?
尽管 JavaScript 是目前使用最广泛、最受欢迎的编程语言技能,但未来的情况将会如何也一直是个问题。幸运的是,这项调查也包括了这项内容。如下图所示:

如上图所示,36% 的开发者希望接下来学习 Go,然后是 Python 和 Kotlin。
我们可以假设大多数受访者已经会使用 JavaScript 了——因为到 2020 年,如果不了解 JavaScript,就很难成为一名开发人员。因此,开发人员正在将目光转向一些新的语言。为了防止你还不熟悉这些语言,接下来我会对这些语言做简单描述。
Go 是谷歌在 2007 年开发的一种功能强大的服务器语言。Go 提供的特性如下:
垃圾收集
内存安全
有限的结构类型
以及大量用于编写高度并行程序的特性
开发者第二想学的语言是 Python。
我们正在开发一个基于浏览器的交互式 Python 课程,这门课程将会在 2020 面世,同时这个课程是提供证书的:
https://www.freecodecamp.org/news/python-curriculum/
2020 年,开发者们第三想学的语言是 Kotlin。Kotlin 是 JetBrains(InteliJ 和 WebStorm 等流行 IDE 的创建者)开发的一门优秀的语言。Android 开发本来是基于 Java 的,Kotlin 让这个开发流程变得更简单了。
「freeCodeCamp」上也有一门免费的 4 小时 Kotlin 课程:
https://www.freecodecamp.org/news/learn-how-to-develop-native-android-apps-with-kotlin-full-tutorial/
在专业开发方面,专业开发人员真正关心的是什么?
图表显示 59% 的开发人员希望在工作中学习新的技术技能。这个数字比那些主要想要获得证书、开发软技能或得到晋升的开发人员的数量要大得多。一言以蔽之:技能。大多数开发人员不太关心职业发展的传统标志(晋升)。他们更关心如何扩展自己的技术技能。
当你看下面这个图表时,你就能理解这种现象出现的原因了:

图表显示,相较于管理岗,开发人员对技术岗的兴趣更高。
大多数开发人员更愿意在技术岗上获得晋升,而不是进军管理岗。项目经理是经理,而独立贡献者就是一个被管理的开发人员。但究竟什么是技术主管呢?技术主管的角色因公司而异,但其工作一般跟做出高层次的技术决策(如提出架构)和为开发团队设定远景有关。技术主管通常向项目经理汇报,项目经理再向像 CTO 这样的高管汇报。
2020 年,开发者每年能赚多少钱?
根据对全球范围内 11.6 万名开发者的调查,他们的平均年薪为 5.4 万美元。让我们具体看看美国的情况,美国的开发者得到的报酬最多。我不太清楚这是为什么,但我猜测这背后的原因有很多:美国是世界上许多最大的软件公司的总部所在地,再加上限制性
移民政策限制了可以招募的开发者。
以下是美国城市中开发者的平均工资:

旧金山以 14.8 万美元的平均年薪位居榜首,其次是西雅图、洛杉矶和波士顿。相比之下,美国人的平均收入约为 4.7 万美元。所以作为一名开发人员的工作是真的不错的了。
参考链接:
https://www.freecodecamp.org/news/computer-programming-skills-2020-survey-developers-hiring-managers-hackerrank/
https://research.hackerrank.com/developer-skills/2020