母鸡与前端工程师

作者: 阮一峰

日期: 2016年7月26日

(说明:本文原载2016年第29期《财新周刊》

1.

新闻说,今年全国高校毕业生达到空前的756万,又赶上很多传统行业压缩产能,就业压力很大。

很多曾经的"明星专业",都已经就业困难。我考大学的时候,国际贸易是最热门的专业之一,大家认定这个专业容易赚钱。但是现在这个专业的毕业生,想找一份好工作会很难,上海将它列入10大预警专业,即最难就业的十个专业之一。

但是,并非所有行业都不景气。至少有一个行业的用工需求极其旺盛,到处都是招聘广告,工作岗位是应聘者数量的好几倍,通常你都有好几家公司可以挑。每周都有朋友发来消息,能不能帮忙介绍几个人过来,我们实在是缺人啊。

这个行业就叫做互联网开发。

2.

互联网行业的劳动力需求,可以用"用工荒"来形容。

只要你会做网页,尤其是手机App的页面,或者微信的活动页面,就不愁找不到工作。哪怕你刚刚学会几个月,或者刚从培训班毕业,只要能拿出作品,就会有比其他行业高得多的起薪。等到有了一两年工作经验,工资就可以达到大学教授的水平。

这样的就业行情,怎不令人趋之若骛。尽管每年都有好几万新人加入,互联网公司还是在喊,工程师严重短缺。

我曾经不太理解,为什么网页开发工程师(或称"前端工程师")这么抢手。直到有一天,看到了一组鸡蛋的统计数据,才想通了这个问题。

3.

中国是世界鸡蛋第一大国。据统计,2013年全国产量5750亿枚,一个中国人平均一年要吃掉400多枚鸡蛋。

那么中国需要多少只母鸡,才能达到这样的产量?

据说,普通母鸡一年大概生200~250枚鸡蛋。养鸡场里面最优秀的母鸡,一年可以达到320枚。以250枚计算的话,中国至少需要有23亿只母鸡,才能满足全国人民吃蛋的需求。

4.

如果把鸡蛋换成网页,同样的问题就是,中国一年需要生产多少张网页,才能满足人民消费的需要?

去年,我国手机用户超过13亿,智能手机用户超过6亿。就算其中只有一半人上网,那也是3亿多人。这么多人,每天都有几十分钟或者几个小时,要使用手机上网。全体中国人一年消费的网页和App的数量,是一个天文数字。

鸡蛋是母鸡生出来的,网页从哪里来?归根结底,所有页面都需要工程师做出来。那么多互联网公司,每家公司都需要前端工程师。而全国的前端工程师,目前可能总共有几十万人,对比那么大的内容消费量,肯定是远远不够的(想一想吧,全国的母鸡有23亿只)。这样一想,工程师抢手就不奇怪了。

还有一个很重要的原因,学校不教前端开发,可能会有一些相关课程,但不会系统地教,所有前端工程师都是靠自学的。这也导致了供给偏少。

5.

由于工作好找和工资较高,前端工程师现在成了一个热门职业。很多不是搞计算机的人,也在考虑转行加入。社会上的培训班,每个周末的各种讲座和大会,都已经人满为患。

我经常收到电子邮件,咨询是否应该改行。

"我是一名会计/教师/导游,现在的工作没有任何成就感,感到没有发展空间。如果我拿出一年左右的时间去自学前端类的课程,将来能走上程序员这条路吗?"

这可怎么答复?

6.

前端编程入门,确实不难,可以短期速成。只要你对计算机有基本的理解,哪怕编程零基础,经过三四个月的培训,也能做出网页和App。

如果你确实想改行,我觉得,这基本上是一件好事,你应该选择那些更有前景的职业。但问题是,并非每个人都适合编程。现在那么多人一窝蜂学习互联网开发,肯定有人将来会后悔。

你最好事先知道下面三件事,再考虑加入这个行业。

7.

首先,你应该热爱编程。

职业程序员每天都必须长时间地坐在电脑前面,与机器对话的时间,远超过与人对话。如果不是真心热爱编程,这会很难忍受,简直像是一种惩罚。让一个人在他不喜欢的事情上面,筋疲力尽地干上几年甚至几十年,那是多么痛苦的人生。

其次,编程本身虽然是一种智力活动,但是中国的现实却更像一种体力劳动。

由于运营活动太多,开发是做不完的,App必须不断地推出新版本。工作量常常是超负荷的,任务排期一个接着一个,中间根本没有喘息时间,同时做多个项目也是家常便饭。每个项目都有截止期,做不完只能加班。这样说吧,制作网页本身是有趣的,但是像流水线一样的"制造"网页是乏味的,好比养鸡场的母鸡不停得下蛋,每周必须完成5个蛋的指标。

最后,这个行业的新陈代谢很快。

快速的技术更新和极大的工作强度,使得年轻人具有天然的优势。等到职业生涯后期,你的开发速度开始慢下来,就是你被更年轻的人取代的时候。一只母鸡一生中,大约总共可以生2000枚鸡蛋,你的一生中可以制作的网页(或者 App),大概也是一个常数。

8.

如果你不喜欢编程,体会不到代码的乐趣和成就感,只是为了一份好的薪水,就跑来干,那就是很糟糕的选择。想一想如果十年前,你听说国际贸易很兴旺,高考志愿就填了国际贸易,今天会怎样呢?

你应该选择,那些让你产生最大兴趣和热情的职业。因为未来所有行业,低端的、低技能的岗位都会被机器取代,只有技能最强、最有创造性的人不会被淘汰。兴趣,也只有兴趣,才会让你产生不倦的热情,钻研下去,变得更优秀。

(完)

留言(93条)

這篇失了水準。(原來是寫給週刊的爛竽,難怪了。

热爱或者离开

阮老师,想知道您是怎么评价前端不断出现的新兴框架的,angular react vue angular2,该做怎样的取舍?谢谢您!

下面一个珠峰的前端培训好应景

慢慢的人们喜欢上土鸡蛋。。。

鸡蛋你吃了我就不能吃,网页你看了我还能看。

确实是,那么多人每天都要盯着各种设备屏幕,每个设备屏幕上的可见的东西都是一个个人坐在电脑前面敲进去的。距离被机器取代估计还要不短时间,总是还要有人去生成这么多的网页和app。

引用Yoda的发言:

鸡蛋你吃了我就不能吃,网页你看了我还能看。

而事实上网页的生命周期也并不是很长,最典型的是那些活动页面,过了某个时间节点,基本就只能在简历里面被人看到了。

我觉得是现在企业过分看重所谓"用户体验",尤其是小型的创业公司,真正功能上的创新才是重点,界面上的体验只能是锦上添花,并不能够有起死回生的作用。

很多身边的亲人,想学前端。都不了解,就直接想学,,也是没办法

很多比较优秀的前端都不会一直选择前端。

兴趣可以培养。

技术本身也是快速迭代和淘汰的,不能因为哪个热门就趋之若鹜,当头来一场空。

阮老師這篇文章的風格有失偏頗啊......不如你一貫的風格

我打算去開培訓班當老師 嘿嘿嘿

网页不能算消耗品吧,虽然也有更新周期,大部分还是功能上的增加

这个,我去年转型做后端php,结果现在开始纠结要不要再转js来前端……

恰到好处的描述,当xx变成流水线确实很可怕

兔哥,开个前端培训班吧

高考志愿填的基本都是软件工程,现在发现这是多么明智的决定啊

前端调试起来耗费时间,效率不高。
还是后端更有成就感。不过,会前端的工程师一定不只会前端,全栈工程师才是真汉子!

这篇文章是出自本人吗?

引用Libo的发言:

前端调试起来耗费时间,效率不高。
还是后端更有成就感。不过,会前端的工程师一定不只会前端,全栈工程师才是真汉子!

为啥我觉得前端调试比后端方便很多呢,前端工具一大堆,还直观,后端就一个gdb。可能是我是做后端的,前端是我的兴趣爱好。

引用window的发言:

我打算去開培訓班當老師 嘿嘿嘿

联系我吧

去年,我国手机用户超过13亿,智能手机用户超过6亿。就算其中只有一半人上网,那也是3亿多人。这么多人,每天都有几十分钟或者几个小时,要使用手机上网。全体中国人一年消费的网页和App的数量,是一个天文数字。

这里阮老师偷换了一个概念,中国十几亿人每个人每天吃的鸡蛋是都是完全不同的,但是每个人消费的网页和App的数量,确实有巨大的重叠性的。所以,并不是你想的那样的天文数字。

对前端无感,尤其是css这块。

感觉前端做的比较累,经常调像素

阮老师这篇文章写的太有味道的。诸多观点,无一不是赞同非常。作为从移动端转来做前端er,深感这行业之火,以及体力倾向之深重。所以,作为前端er,开发活动型页面,必须“快准”,天下武功,唯快不破;前端模块化,组件化已经成型,必须大步向工程化,自动化迈进,冲锋,才能更多的解放生产力,否则 就是一个累,大家一起累。

之前在哪看到过有句类似的话,大概就是说每个人一生中能做的事(或者说产出吧)都是差不多多的,就看把时间精力等等都花在了什么上。
不过话说回来,这不是说后端就很尴尬了。

看的人心疼又心酸

但其实什么工作又能喜欢一辈子。

如果每个人一辈子的某产出如果是大致固定的,只能在这个岗位上混混的,慢条斯理的人,越是能干一辈子。

其实前端工程师之所有缺,都是缺少相对优秀的工程师。互联网的暴涨势发展,需求也多嘛,也就需求人嘛。但是自己的选择还是得看自己,不要刻意参考别人。

阮老师,我觉得设计师的职位更加紧缺。对于非计算机专业的学生,甚至在家带了两年孩子的妈妈,都可以转行做。同样可以通过培训入门,然后自学。除了纯粹视觉设计外,3D造型和虚拟现实方面所使用的工具也很强大复杂,专业人员也很缺乏,可以考虑进入这个行业,未来5年市场的就业应该都没什么问题。

我已经切图切了快十年了,哈哈哈

编程本身虽然是一种智力活动,但是中国的现实却更像一种体力劳动。

确实,做了差不多8年开发,本来以为这是有意思有创造里的个智力活,做久了才发现原来是个枯燥的体力活。

原来做各种网页的时候确实觉得前端好枯燥。但是近几年在做可视化方面的,用js处理各种数据的过程简直享受。其实前端远不止眼睛能看到的那么浅,精髓在于js的交互灵活性。

其实现在的前端也不好做啊。涉及的范围太广了,要学的内容太多。

作为一名每月收入3万的前端工程师,我承认我是一只合格的母鸡

生活向来身不由己,即使不喜欢总会找到喜欢他的理由,过程很重要嘛

前端做深了是做什么呢?

如果每个页面只有1个人消费,那么来当前端不是在作死吗?事实是在阿里每个页面上千万人消费,才换来一个刚刚能买得起杭州房子的前端职位。那么大家还要被忽悠来当前端吗?
而且前端职位很不成熟,没有未来的样子,除非热爱,否则请离开,若来,请要高价!要不到别来!

这篇文章,写的这么傻,谁信谁倒霉。

两年前做前端,10k,后来转后端,每月50k

本人女前端程序员一枚,从事前端工作两年,没有从中体会到一点乐趣,感觉做技术挺无聊的,越干越压抑,对工作没有一点热情,只是为了工作而工作

引用Yoda的发言:

鸡蛋你吃了我就不能吃,网页你看了我还能看。

鸡蛋每个人每天吃不了几个,但是网页每个人每天甚至看几百个

当一个爱好变成工作的时候并不会有当初那么喜欢他了,
反而那些硬着头皮去做的事,终将让你长进。培训出来的,欠缺很多,0基础感觉很难,不是很刻苦到无时无刻都在敲代码,但是不放弃一直在努力

对编程感兴趣只是动力之一,说白了更多的还是为了待遇吧,以前在知乎上看到过这样的问题,人家回答很有道理:我一个医药专业的研究生,毕业之后找的工作薪水凭什么还不如你一个培训班出来的码农??我付出的精力比你少吗??我的智商比你低吗??凭什么你工作就能最少6000,我多学了3年研究生才4000?你说你加班,制药的不加班吗?我就问一句,凭什么?
这才是这么多人转行的原因吧,现实而已

既然有体力劳动一样的现实,想做出优美程序的人如何发展?

换了好多工作和不同岗位,我觉得其实每一次选择,实际上都是在慢慢更靠近自己的真正的兴趣点. 我最早做视觉设计,后来做UX, UE, 后来做前端,现在做测试. 每个阶段的兴趣点不同, 比较合适我自己的是,在感到做哪块有流水线的枯燥感觉时,就换换,反而更有兴趣. 目前最有兴趣的是前端.

那产品设计师又是什么角色?

优秀的前端都是全栈把

引用Yoda的发言:

鸡蛋你吃了我就不能吃,网页你看了我还能看。

我也想说这个,这篇文章感觉比较水……干货太少

引用知行合一的发言:

其实现在的前端也不好做啊。涉及的范围太广了,要学的内容太多。

前端是“入门”容易。

引用范国亮的发言:

我也想说这个,这篇文章感觉比较水……干货太少

鸡蛋每天最多能吃几个,可是你看的网页只有几个么

突然发现ad blocker无法屏蔽老师的广告!

引用tyy的发言:

本人女前端程序员一枚,从事前端工作两年,没有从中体会到一点乐趣,感觉做技术挺无聊的,越干越压抑,对工作没有一点热情,只是为了工作而工作

那你可以找个喜欢的职业干了

如何你忽略长期从事一项工作的经验值,那不管任何一种职业,一个年长的人跟年轻人相比都存在劣势。
而事实上,经验对编程来说是很重要的。现在大部分公司都希望招到高级前端,只会做网页的只能算美工了。

引用fengyao的发言:

突然发现ad blocker无法屏蔽老师的广告!

adblock屏蔽之后, 老师加了一条css rule...
inline-block ! important

引用Yoda的发言:

鸡蛋你吃了我就不能吃,网页你看了我还能看。

赞同,比如淘宝,每个人看到的页面有好多是相同的呀!

从百度点进来的,支持一下,希望站长您多出一些好文章。

引用肖金的发言:

阮老师,想知道您是怎么评价前端不断出现的新兴框架的,angular react vue angular2,该做怎样的取舍?谢谢您!

angular2 和 angular1 沒什麼好取捨的,廢除angular1,學習angular2。
angular2 是 angular1 的重寫版,你可以看看他們的屬性,就可以看出來,angular1是因為寫的太臃腫,所以angular2 重寫。

作为一名计算机本科出身的后端转前端后来进入培训行业的新人,我热爱程序,喜欢创造世界的感觉,前端给了我实体化的感觉,在不断地进步中收获着不一样的感受。现在对我来说,教学生可能放在第一位,可有的时候我也想告诉这些前赴后继通过培训入行的朋友们,如果你想达到一定水准,不付出是不可能的,培训绝对不是条轻松的捷径,是需要百分百付出的一条路,一条荆棘之路。

看到第一段就提到了我的专业——国际贸易。立马两眼泪哗哗的流哈哈,我马上大四,已经定位前端工种了。

说白了,我们做前端的就是一只“鸡”,而且还是母鸡,哈哈!想想觉得挺有趣的!!更有趣的是很多人还都想做“鸡”!!!阮老师说的很对,每个人“前端”“鸡”的一生的总产出是一样的,但是不同时期的产量是不一致的,前端“鸡”吃的是青春饭,年龄大了是会被淘汰的。为了不被淘汰,我们就得做好“鸡”,甚至不做“鸡”!!!

第八点最后一句,我有不同的见解,对于我这种出来工作了2年的人来说,可以把兴趣换成生存,我是计算机专业,从小就喜欢计算机,现在从事的就是前端

那后端程序员的前景怎么样呢

前端是否有必要向全栈方向发展?纵向和横向的发展老师有何建议?貌似现在一大批的前端工程师在向全栈发展。

很多前端就是写写推广页面专题页面的体力劳动

面试的时候,经常会遇到非计算机专业的同学,或自学,或培训(大多是后者)。我不会鄙视或者小看他们,因为我自己是和计算机搭上少少关系的师范专业出身,所以十分愿意给他们机会踏入编程的大门。
对于这类同学,我总是会问他们一个问题:为什么选择做开发。假使回答这个行业有前景之类的,敷衍一下就pass掉。我认为单纯为了赚钱而入行的,不是说你生产力达不到水平,而是你很难达到一个高水平。

这文章有问题!

@Romen:

您是什么专业的。我也是和计算机沾点边的师范专业

会不会今后的部分编程工作会被机器取代

按这种说法,我做纯页面以及页面交互设计,和前端相比的话,哪个更吃香呢?

引用肖金的发言:

阮老师,想知道您是怎么评价前端不断出现的新兴框架的,angular react vue angular2,该做怎样的取舍?谢谢您!


看生态

步入前端一年,第二份工作。一开始对写代码很有兴趣,也能感受到小小的成就感,指望有一天能像成为像BAT公司那样的专业前端开发人员。可是,小公司实在扼杀人学习的积极性,各自重复无意义的H5,做的没有存在感;没有前奏的技术栈说来就来,像svg、canvas和webgl等最新技术学习起来,感学基础不够;而且项目经常变,容易转变技术方向,偶尔又要弄办公OA什么的,需要vue.js等。感觉太累了,这种不切实际的学习路线实在打击人的学习热情。

前端这行业,感觉人与人之间的差距挺大的,太多只会css和jquery但初级前端了。你逼着他们去学习一个前端框架比如说Angularjs或者React的话,他们大多学习进度很慢,几个月都没法掌握运用在实际项目中。哎,自学能力足够强且对这行正的有兴趣的人才才是第一位啊。

我觉得说的还是有一定道理的,目前的互联网消费最多的就手机上的活动专题等页面,周期很短有的可能做了一个月就上线一天(其实现在的大部分互联网营销公司都在生产大量的移动端应用,网页,而这部分公司现在又大量存在)。即便是网站等大型应用迭代也是很快的。

引用tyy的发言:

本人女前端程序员一枚,从事前端工作两年,没有从中体会到一点乐趣,感觉做技术挺无聊的,越干越压抑,对工作没有一点热情,只是为了工作而工作

既然对前端一点兴趣都没有,当初为什么选择从事前端?仅仅是因为工资高吗?

引用tcdona的发言:

如果每个页面只有1个人消费,那么来当前端不是在作死吗?事实是在阿里每个页面上千万人消费,才换来一个刚刚能买得起杭州房子的前端职位。那么大家还要被忽悠来当前端吗?
而且前端职位很不成熟,没有未来的样子,除非热爱,否则请离开,若来,请要高价!要不到别来!

这篇文章,写的这么傻,谁信谁倒霉。

阮老师只是拿鸡蛋和鸡来做个比喻,比喻现在网页消费量非常的大!而且阮老师是告诉那些想转前端的人:转之前一定要对编程感兴趣。
还说别人傻,就你精。

前前后后一年七个月了。java七个月,第一份工作到现在差两天就两个月了,研究react40天左右,然后react,redux,router,es6,webpack,babel啥的,来写第一个项目,说真的,挺累的。前端的繁华,有时候在想,是我太蠢了跟不上?再来看看周边的人,那些干了两三年的,甚至比我差很多,都活下来了,可我,就觉得活的好累好累,总感觉是自己想太多。很多东西,还没做,我就想了一道,怕做的时候出问题,做了之后如果遇到问题,比如昨天遇到state在内部互相影响了,今天问老大才发现mapstatetoprops分发我没理解透,后来我就把它理解为我国的制度,中央和地方的关系,噗哈哈。然后css模块化问题 也是遇到了,想了很多方法,才知道大家都遇到了,还没开始搞这一块,不过看到有 几篇文章好像把这块解决了。总感觉时间和精力不够,现在每天过的好累好累,虽然只上班 八个小时,但有时候到下午四点左右,整个大脑就感觉反应特别慢了。一个多月,把react拿下里真是hold不住。而且,后台接口我都不知道,看着一个静态的htmlcss页面通通一顿想,后台数据是怎样?这块业务是怎样 ?才工作两个月,我感觉死了无数的脑细胞。老大说,我可以了,就是差点经验。。。。。刚毕业几个月,却感觉人生过了一半。。。。。不知道别人是怎么活下来的。。。。幸好没加班,现在工资也低(都不用交税的。。。。。。)。加班的话果断活不下去了

前端有无数的细节需要处理,有海量的知识技能需要学习、磨练,没有实践中的琢磨和领悟,可不把前端干成体力活了。把前端干成体力活的,都不配“工程师”这三个字。
干活需要出力,更需要用脑,如何多快好省地完成预定目标,是每个前端工程师需要每天自省的。在软件领域拼的是智力而不应该是体力。

真正懂前端的又有多少人。几个月确实能速成,还有两个月也能速成,但是写出的代码,真心不能看!

我现在是大学生,对程序猿很热爱。
只是刚开始接触,老师讲的多,比较笼统。
会写网页,c语言会一点,Java不会,想自己多找点师傅帮帮忙,分享一下自己学习的秘籍,方法

做php后端的路过。。。

哈哈,高中的时候理科偏科严重,大学偏偏修了社会工作,毕业后2.5年都在从事自己专业的社会服务,收获也挺多的,之后还是对代码有兴趣,开始自学前端,3个月后找了份工作,一边做项目一边学习,套用看到的一句话说:“又给钱又可以码代码的好事哪里找”,每次修复一个bug或者将自己一直没有搞懂的东西搞懂后都特别开心,当然,有躁狂症的自己偶尔也会为问题而抓狂

我是计算机专业的,但是对各种语言编程提不起兴趣,数据结构和算法也只是能学会的样子。这样看我就是那种不热爱编程的人,但自从接触前端,想学习各种与其相关的技术和知识,有非常大的兴趣,希望能坚持下去,养成好习惯!

现在的初级前端工程师已经过剩了。。。大量培训机构出来的

引用Libo的发言:

前端调试起来耗费时间,效率不高。
还是后端更有成就感。不过,会前端的工程师一定不只会前端,全栈工程师才是真汉子!

非也非也,前端调试的迭代周期小,进步快,反馈多,成就感大

写代码本是一件快乐的事情,但如果要把它当做一项工作去做,去生产程序,生产网页的时候,恐怕这种兴趣该消失殆尽了。

引用清汤挂面的发言:

而事实上网页的生命周期也并不是很长,最典型的是那些活动页面,过了某个时间节点,基本就只能在简历里面被人看到了。

页面还能整进简历里面?

说了这么多。和废话没什么区别

一直再看阮大神的文章,本文类比好像不太合理。因为你把鸡蛋吃了,我就吃不了了。可是你看了这个网页,我还能看

我一开始只是喜欢做网页 喜欢研究css以及特效 可是不只是这些前端要掌握的东西实在是太多了 现在的业务要求前端面面俱到 webpack react vue redux three.js ...
可我并不能做到对一切技术都感兴趣 学到的东西 也只不过是为了应付业务 面面俱到 确又浅尝辄止 技术更新又快 真的是感觉有点不太适合自己了

活动页什么的需求量不高并且写的话也没啥难度,还有什么成千上百的页面大部分都是请求数据直接模板引擎啊

很多前端人员,只是简单培训出来就套页面,对接口。很多人员都是手上活一完,就没事了。我觉得这类人,不能叫程序员。并且这类人不少。

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接