1.1 高薪的背后

如果说程序员是21世纪以来的高薪职业,那么不会有人反驳。事实上,也确实如此,下面不妨用官方数据来说话。

国家统计局统计数据(National Data)显示:在2011年至2020年的这十年间,根据对城镇单位就业人员年平均工资的统计,其中“信息传输、计算机服务和软件业”的平均工资一直保持在所有行业的前两位,并于2016年超越“金融业”,位列第一,蝉联至今,如图1-1所示。

这样的增长趋势绝不是偶然的。从宏观方面来看,互联网带给人类经济、文化、社会等各方面的深层次变革。自1994年互联网进入中国以来,二十多年间,互联网深刻改变着国人的生活,成为国民经济发展的重要驱动力。

然而,从城镇单位就业人员数量方面来看,信息传输、软件和信息技术服务业的就业人员数量仍远低于其他传统行业。我国的软件行业仍处于发展期,一大批人正涌入这个行业。如图1-2所示。

图1-1

图1-2

程序员是互联网行业的产能来源,是软件业的核心角色,一度被打上“高薪”的标签。究其原因,高薪的背后不仅是互联网时代的发展红利,还有每一位普通程序员付出的努力。

1.1.1 外界对程序员的刻板印象

与猿小兔一样,大众谈及程序员,似乎都热衷于谈论打在他们身上的一些标签,如“格子衬衫”“头发少”“加班多”“理工宅男”等。但随着互联网行业的逐渐成熟,以及程序员群体的壮大,这群看似“特别”的人逐渐从被标签化认知的幕后勇敢走向台前,向公众展示自我。

(1)程序员都是一个样?

有种戏谑说法:美国有“硅谷男”,日本有“电车男”(“宅男”),中国有“张江男”。“张江男”代表着这样一个男性群体,他们通常具备理工科教育背景,活跃在软件与微电子行业,常常深居简出,工作勤奋,却拙于表达。他们通常心怀理想,却生活单调,甚至有一些不健康的生活习惯。用通俗、戏谑的话来讲,这群人买房基本靠攒,娱乐基本靠网络,吃饭基本靠外卖,人际关系较淡,恋爱基本靠配对,周末基本“宅”在家。从这些标签可见,大众对这个群体的印象是刻板且负面的。

自互联网兴起以来,程序员曾被认为是典型的“张江男”。从外貌上来看,他们给大众的印象是:黑框眼镜、凌乱的头发、格子衬衫、直筒牛仔裤、胸前挂着工牌。从行为上来看,他们给大众的印象是:痴迷技术、沉默寡言、不爱社交。

随着信息技术行业的不断发展,以及程序员群体的壮大,他们正在摆脱人们对他们的刻板印象。在蜕变中,他们走向舞台的中心。

新时期的程序员有着干净的打扮、多样的兴趣。以作者身边的程序员为例,他们每一位都各不相同,有些人乐于社交、热爱运动,有些人爱好广泛、风趣幽默,有些人是美食“达人”、旅游“达人”。

每个程序员都应该是不一样的人,应该回归到自我实现上,而不应该“千篇一律”。

(2)程序员都会修计算机?

一位女同事找到身边的程序员,让他帮忙维修一下坏掉的计算机,他可能会淡淡地回答:“我不会修计算机。”

实际上,不是每个程序员都会维修计算机的。维修计算机并非程序员的必备技能。可以将程序员进行细分,如客户端程序员、服务器端程序员、网页开发程序员、数据库程序员等。软件开发并不等同于维修计算机硬件,“程序员不会维修计算机”是一件很正常的事情。就像厨师的炊具坏了,他需要寻找维修炊具的专业人员来修理,因为厨师的关注点是如何做出美味的食物。

曾经有人想请作者“黑”入某个网站,修改其中的数据。很遗憾,我不能也不可以满足这个“外行人”的需求。程序员没有“神奇魔法”,不是人人都会修计算机,不是人人都是全球顶级“黑客”,他们中的大部分只是从事程序开发、维护的专业人员。

(3)程序员只会编程就行?

对于很多想入门编程的新手,他们对程序员有一个刻板的印象:程序员只会编程就行了。但实际工作中,除编程以外,程序员还需要把很多精力放在和产品人员对接需求等非编程的工作上;而不善于沟通的程序员,会在这个过程中很挣扎。

程序员平时需要接触、学习的东西有很多,比如产品思维能力、理解业务能力、文档编写能力、述职汇报能力、团队协作能力等。

你也许会追问:程序员为什么还要有产品思维能力?

这里简单聊一下技术和产品的关系,或许能给你一些启发。在工作几年后,作者愈发觉得:技术只是实现产品的手段,再厉害的技术也是为实现某一产品而服务的。程序员只有深刻理解产品设计,才能更好地落地技术、发展技术。所以,这就要求程序员除了掌握编程技术以外,还要正视自己所研发的平台的业务。编程技术由业务出发,决定着产品的上限。

以上要学习的内容会在后续章节逐渐展开,但首先要要意识到:程序员绝对不是只会编程就行了。只有世事练达,才能在职场道路上越走越宽。

(4)“程序员鼓励师”

你也许听说过“程序员鼓励师”这个称谓,也许也看过这样的新闻,在10月24日“程序员节”中,一些IT公司会找来一些所谓的“美女程序员鼓励师”来庆祝这个节日,包括为程序员揉肩捏腿、与程序员一起做小游戏。

有些读者可能会问,难道这也算是对程序员的刻板印象?当然算。“程序员鼓励师”通常由长相甜美、穿着前卫的女性担任,在程序员工作焦虑的时候,为他们“加油鼓劲”。但这种带有暧昧的所谓的“鼓励”并不能起到实质上的帮助作用,反而破坏了程序员这个职业的工作操守。严格来说,这种行为算得上职场性骚扰了。职场性骚扰的解释:要求他人做出符合性别角色的事情,有不必要的身体接触,有关于性的明示或暗示。性骚扰不仅局限在女性群体中,对于男性群体,也同样存在,“程序员鼓励师”会让一些男性感到不适。

“程序员鼓励师”的出现,既轻薄了女性,又轻薄了程序员,是一种价值观混乱的体现,是对程序员这一群体的偏见。其实,积极的鼓励是为程序员提供充分的福利保障。

有人对程序员有偏见,这是我们不愿意看到的。我们需要重新认知程序员,为他们正名。

1.1.2 程序员的工作日常

想要深入了解程序员,不妨看一下程序员的工作日常。

曾经有人采访过国内某大企业中的一名程序员,他介绍了他的工作日常。早上8点起床,然后洗漱、吃早餐、通勤。9点,到达公司并打卡,接着清洗水杯并接水,然后回到工位并打开计算机,启动开发软件、OA软件,查收邮件、阅读OA信息,在列表中列出一天工作任务。10点,抱着笔记本计算机去会议室开会,汇报项目进度,对接各方需求并进行问题确认。在会议结束后,返回工位并随意浏览一下技术论坛或新闻,拓展视野。11点,再与各方确认具体任务细节以及优先级。12点到食堂吃饭,吃完饭后在园区内或围绕园区转一转,然后返回工位并查看手机消息,准备午休。13点~13点30分,午休,睡醒后泡一杯咖啡,提神醒脑,稍作调整后开始编写代码。“程序员写代码”并不意味着独自一人编写代码,其间还可能与用户界面(UI)设计人员、测试人员、产品经理、项目经理或其他开发人员等进行沟通,对具体的问题展开讨论,一同推动任务的完成。编码时,还会在网络上查询大量相关解决方案,并对方案进行研判。18点,去食堂吃饭,同时和同事聊一聊天,然后通过走路方式消消食。回到工位时已经19点,回归任务或者进行提升技术的学习。21点,休息几分钟,收拾东西,准备下班。21点半,乘坐公司大巴或打车回家。如图1-3所示。

以上内容描述了程序员非常真实的工作日常。具体到不同的公司,工作时间或环节有些许不同,但整体来说大同小异。

接下来,讨论一些程序员日常关心的热门话题。

(1)劳逸结合

程序员的工作并不是一成不变、重复的,更多时候,他们的工作具有创造性。在编程时,往往需要精神高度集中,这样会极大地消耗人的精力。没有人可以长时间保持高强度的工作状态,只有劳逸结合,才能提高工作效率和质量。

(2)弹性工作制

在招聘广告中,有些公司会用“弹性工作制”来吸引人才。

弹性工作制是指在完成规定的工作任务或固定的工作时间长度的前提下,员工可以灵活地、自主地选择工作的具体时间安排,以代替统一、固定的上下班时间的制度。

很多互联网公司的上下班时间都是弹性的,由于程序员的职业特性,有些时候需要在晚上熬夜加班或支撑上线业务,弹性工作制可保证程序员能在第二天晚一点上班。当然,无论是9点上班、18点下班,还是11点上班、21点下班,员工都要按时、高效地完成自己分内的工作。

需要特别提出的是,有些公司滥用弹性工作制,把这种制度扭曲为让程序员进行无意义、无价值的硬性加班的制度,这是非常不可取的。

图1-3

(3)与产品经理“对线”

在前面关于程序员工作日常的描述中,可以了解到程序员的工作不仅局限于写代码这一件事。

在工作中,程序员需要和同岗位的同事与其他很多不同岗位的人打交道。以产品经理为例,他们与程序员经常打交道。产品经理负责给程序员提需求,程序员负责把需求变成可以使用的软件产品。在这个关系中,产品经理是甲方,程序员是乙方。

按道理来说,程序员按照产品经理的想法去做就可以了,但实际上并不是这样的,因为大部分产品经理都不理解技术,更不懂技术实现,可能导致他们提出的需求脱离技术,有时会让程序员感到无奈。于是,程序员需要去向产品经理解释,说明哪些需求是可以实现的、哪些需求是不能实现的、用什么技术实现什么样的需求,以及需要多大的成本等。在这个过程中,两种角色之间需要进行充分的“沟通”。所以,和产品经理“对线”,也是程序员的工作日常。

(4)善用复制和粘贴

有人调侃程序员在编程时只会使用复制和粘贴功能,事实并非如此,在很多场景下,程序员可以通过代码复用迅速解决开发问题,这样可以避免重复劳动,也能“站在前人的肩膀上”,利用他人的有效成果,让编码工作更进一步。

俗话说,无论是黑猫还是白猫,能抓到老鼠的就是好猫。同样,无论是依靠复制和粘贴已有代码来实现功能,还是一点点手写代码并封装,只要按时、高质量地完成工作,就是一名合格的程序员。以解决问题为导向,善用代码“轮子”也是一种能力。

(5)程序员的职业病

1)视力下降。程序员每天面对着计算机,长时间盯着高亮的屏幕,这对眼睛的损伤很大。

2)颈椎病、腰椎病。长时间坐在座位上,加上不正确的坐姿,程序员的颈椎和腰椎容易出现毛病。

3)胃病。程序员的工作强度高,有时为了赶进度,只能吃方便面、外卖等食物,甚至不能按时吃饭。时间长了,胃就会因为饮食不规律而落下毛病。

4)久坐引发的疾病

程序员长期盯着计算机屏幕,并保持一个固定的姿势长久不活动,这可能导致血脉不通,气滞血瘀。长此以往,肩颈肌肉酸痛、腰酸背痛,颈椎病等就会找上门来,同时还容易诱发高血压、肥胖、痔疮、便秘、前列腺炎等疾病。世界卫生组织的研究表明,久坐是导致死亡和残疾的十大原因之一。

所以,程序员要养成定时活动颈椎和腰椎的习惯,并积极进行健身、运动。如果在日常工作中忙得挪不动屁股,那么在悄无声息中流失的是健康。

作为程序员,不仅要应对编程上的挑战、工作上的挑战,还要守护好自己的健康,毕竟身体才是革命的本钱。

在看了程序员的工作日常之后,有人可能会问:“这和正常的上班族没有太大区别啊?”是的,就像1.1.1节中强调的那样,程序员只是互联网行业中一个普通的专业岗位。