甜薪工场 博客 动辄月入数万元的程序员,到底是怎样一群人?

动辄月入数万元的程序员,到底是怎样一群人?

2024.02.07 发布

“hello world”,这是一名程序员初次进入计算机世界时,看到的第一句招呼语。

自冯·诺依曼创造出了现代计算机,程序员踏上时代舞台不过70余年。而在中国,程序员的历史要更短一点。

以国内第一位程序员求伯君来说,这个职业的生命刚过“而立之年”不久。短短三十多年,程序员在国内所承载的社会含义却颇具符号化,且历经变化。

马化腾、雷军等最早一批技术出身的创业者,开启了国内互联网创业的序幕,这也是程序员最初给大众的印象——极客、精英。而后,王小川、张一鸣,甚至28岁从字节提前退休、全球旅居的郭宇等后继者,更是将“成功” “财富”的标签粘牢在这个职业之上。

如今,这个职业的从业人数已大规模增加。Github给出的数据是,2021年中国的开发者数量已经高达755万,位居全球第二。与此同时,“程序员”一词所折射出的含义变得更加复杂。一方面,它仍与创新、财富息息相关,越来越多的人被吸引进来。另一方面,它在某种程度上被塑造成了一个“高危”职业,脱发、加班、裁员甚至猝死,这些词屡屡与“程序员”三个字一起出现在新闻上。

这个时代里,一名程序员在用什么样的姿势进化?他们如何找到自己的平衡感?这是我们想与你们分享的。

“我现在用到的知识,基本都是工作以后现学的。比如大数据在线和离线是我后来才学的,因为当时学校还没开这些课程。”2019年毕业,现在某大厂负责数据开发的工程师韦小磊表示。

在入职前,他基本掌握了数据、结构和算法的知识和技能。但实际工作还需掌握大数据技术(分在线和离线,它们有各自的框架知识),这意味着他需要自行完成相关的技能提升。

于是,曾有1年左右的时间,他每天下班后至少花2小时来看书、看官网、看视频,然后操作实践……这样坚持下来,他才完成了大数据技术的“自学计划”。

做一名程序员,肯定要学一些专业知识和技能。可现实是,这些知识和技能只有部分来自在校期间的积累,更多需要通过自学、接受培训等渠道来获得。

“必须学。”算法工程师何莉莉表示,自学是程序员必不可少的日常。

她在某大厂工作,主要负责推理加速任务。所谓“推理加速”,就是通过“推理”(指从输入数据到输出结果的过程),将预测模型完成任务的时间缩短。

“当完成了‘从0到1’的过程后,如何‘从1到99’是比较难的。”她说。

在大学时,她学的理论知识、模型结构、技术工具等东西都比较宽泛,针对性不强。实际工作需要她在这些基础上进行优化。于是,她日常工作中会针对已有方案,不断探索新的方案。

目前,主要是大厂在做推理加速,中小公司基本不会涉及,所以何莉莉日常还会重点学习、借鉴其他大厂的解决方案中的逻辑思维和创新方法。

她说:“我们会翻看他们在社区里的演讲,大公司官方提供的讲座,一些技术帖子等。”

Java开发工程师蔡炳添指出,大学阶段学到的基础知识相当于“行业敲门砖”,如果读大学,有人引导着要比自己去摸索要轻松很多。但它并不是成为程序员的必要条件。

“因为知识更新太快,所以大学不是学相关专业的人也能成为程序员,只是付出的代价要大一些。”他说。

很多孩子从高中、初中甚至小学开始,通过课外自学、上兴趣班等方式学编程。对此,蔡炳添评价说:“编程要掌握的知识很多。他们开始得早,就意味着掌握的知识和技能更多。”

很多程序员在求职过程中,常常会出现这样两种情况:有些人虽然面试差,但实操能力强;有些人面试分高,但实操能力弱。

第一种情况好理解,很多程序员比较老实,不会油嘴滑舌的。至于为什么会出现第二种情况,可能只是因为他们“准备充分”。

“网上有教程刷算法题。它相当于数学公式,只要背熟了,就有思路。”Java开发工程师肖恒解释道,“但你让他实现这种算法,他可能无从下手。”

即使是大厂,有时候也会很不幸地招到不如预期的程序员。其原因在于:通过简单的笔试和面试过程,并不能够完全了解一个人。

“仅仅靠那几轮面试就想看透一个人,太难了。”Java研发工程师施嘉禾认为,时间轮替、大浪淘沙才能解决这部分招聘问题。

根据这些程序员的描述,程序员水平高低可以从四个维度去判断:

(1)解决问题的能力

程序员的价值不在于代码和程序,而是解决问题的能力。不管他们是“复制黏贴”,还是自己创造,这些都是他们解决问题能力的表现。

而解决问题的能力,是指将团队接到的需求或问题,抽象成可具体执行的事务,包括技术调研、解决方案、执行步骤、沟通协调等,以及它们之间的关联。

比如,结婚是一个需求,办婚礼是其中一个环节。怎么办婚礼?要调度什么资源?寻求哪些人的帮助和配合?面对需求的人通过具体、详细的方案和流程去落地执行。

(2)写代码的能力

代码能力是程序员的硬名片。正如Linux创始人Linus Torvalds曾在一封邮件中说到的,“Talk is cheap. Show me the code.”(能说算不上什么,有本事就把你的代码给我看看)

代码结构和逻辑是否通畅?代码是否简洁、规范且表达力强?代码能否长期稳定运行?这些都是判断代码能力高低的依据。

另外,程序员如果不了解业务,根本没法写代码。哪怕是这方面要求相对较低的前端开发工程师,也至少得知道自家平台上,每一功能步骤的具体实现过程。

(3)学习能力

工作中遇到问题,比如报错了,可能还需要查书、查资料,或者谷歌、百度,才能确定问题出在哪里。即使搭建架构,也可能需要大量查找中英文的论文。所以程序员爱学习是很重要的品质。

(4)架构能力

架构对业务进行还原和建模,并使之适应多种情况,是比较复杂的工程。一般来说,程序员要积累5~10年的经验,才有可能具备这个能力。

架构是“想”的能力,是抽象能力、逻辑能力。当技术团队接到需求后,就要准备设计“房子”:什么样的软件可以满足这个需求?软件中的功能模块是什么关系?它们怎么交互?要用到什么样的中间件等等。

设计完,要清晰地告诉负责开发的工程师们,准备搭建的“房子”是怎样的,所以架构能力也包括表达能力。

此外,架构能力包括成功按时交付项目。只有20天的项目周期,就不能拖到第21天才交付。这个过程中,需要预估风险,随时协助团队解决技术难题,并适时调整或优化计划。

“今年工作量还好,变得不那么卷了。”施嘉禾现在的工作状态,是忙完手头的活儿就“摸鱼”——不是打游戏,而是升级技术,以此提高自己的能力。

前两年,他所在的公司处在疯狂扩张阶段,他们团队从3个人一下子增加到80多个人。但去年9月后,业务稳定了,他们没有从0到1的大型项目,只有针对十几个已有项目的迭代需求。

这样一来,他们团队成员的任务量就变得比较弹性,只需要忙完需求就可按时下班。

然而,多数程序员仍然“卷得厉害”。受周围工作环境的影响,他们常常选择“自愿加班”。

“我们都是早上9点半上班,晚上10点半下班,偶尔会晚上6点多下班。”何莉莉说,她每周会安排一天早点下班,这样可以回家收拾房屋,“不然每天都那么晚下班,除了工作什么也干不了”。

目前,她所在的小组还没出现“半夜爬起来”的现象。但此前,有几个年轻同事,因为刚毕业不久,无法接受这种强度较大的加班而选择离职。

“经常长时间工作,晚上10点以后才下班,还担心任务出问题会带来较大的影响……这样的工作生活会给人带来较大的心理压力,会有点扛不住的感觉。”何莉莉对这个工作的压力有很深的体会。

加班与否,与业务内容也有关系。比如安全风控,对于很多公司来说都是至关重要的,所以投入较多。韦小磊所在的业务部门负责公司的安全风控,经常加班到晚上10点多。

有些程序员需要加班熬夜,直至凌晨一两点,甚至凌晨三四点,简直是拿生命来工作的节奏。这是程序员的工作性质决定的,因为一个任务来了,就必须忙到“问题解决了”或“项目上线了”才能休息。

“我们公司的使命是用户第一。在这样的情况下,我们肯定就不看时间,不能说‘现在是凌晨几点,我得去睡觉了’。”肖恒表示,“用户着急等着,我们就得解决,直到没有问题为止。”

由于经常加班,肖恒一个月的加班打车费也得一两千块钱,“平时看电影、看书之类的时间就相对较少,周末也不太想出去玩”。

在加班较多的情况下,公司也会给程序员相应的补偿。比如较高的工资,这样双方就默认“加班不额外给加班费”。还有允许调休,几班倒。但实际情形可能是大家都很忙,根本没时间调休。

这看起来并不划算。“我们的时薪算起来并没有很高。”蔡炳添说,这也没有办法,都要生存嘛。

都知道程序员收入高,这一方面是因为这个群体整体收入水平确实高,还有一个原因,可能是因为他们太忙,没有时间花钱。

蔡炳添平时除了工作,基本没有生活。他每天两点一线:早上搭50分钟地铁到公司,晚上加班结束后,搭地铁回家洗漱、睡觉。到了周末,他才可能有点自己的生活,通常是爬爬山,或找朋友小聚。

在公司忙工作时,蔡炳添会专注地完成任务,长时间坐在电脑前写代码、修补漏洞。

“根本没时间想要不要上厕所。”蔡炳添说,搞开发是一个需要体力又消耗脑力的高强度活动。开始一个需求的开发,一般要经历“梳理需求-理清思路-开始开发-测试联调”这么几个阶段。每个阶段都得由人手动完成,而且最好是连贯的。如果某一阶段突然打断,理好的思路再重新去梳理就要投入更多的时间。所以他大多数情况下都安静的坐着。

等这几个阶段完成了,他才可以交给电脑去跑。

“我来我们公司后,感觉自己的头发明显变少了。”施嘉禾表示,这样的工作生活会有点累。

BOSS直聘研究院数据显示,除web前端、测试等少数岗位外,大部分程序员相关岗位的薪资,都大幅高出平均水平;如2021年1月至今,后端开发岗的月均收入约为19200元,Java为19200元,自然语言处理为33000元。

赚得多,花钱的机会却不多。施嘉禾每月房租加日常消费,总支出控制在1万以内,这样每年能存几十万,这样的资产增长速度令人眼红。

但在施嘉禾看来,这样的收入水平在一线城市的房价面前,仍“不值一提”。他和女朋友正准备结婚,看上北京海淀区一套老破小的房子,首付要300万。

“稍微好一点的,首付都得上500万。存10年是不是太遥远了?”他说,“这赚钱完全跟不上节奏啊!”

为了赶紧凑够结婚买房的钱,他研究过“赚外快”的选择。在他看来,像写广告稿这样,花1个星期才能挣到5000块钱的兼职工作,都不能解决“快速存够300万首付”这个问题。

何莉莉也在为买房而烦恼。她比较过技术岗位和其他岗位的收入增长速度,最终得出的结论是:相比于其他工作,做程序员的话,来钱更快些。

“不在北京买房子的话,在经济上不会有压力。其实现在买的话,我和男朋友攒的钱,再加上家里人的支持,咬咬牙还是能上车的。”何莉莉才27岁,谈起收入要比同龄人更有底气一些。

不过,一旦买房,就会背上很重的房贷,如果工作有个风吹草动,可能就还不起房贷了。而且,“最近房地产市场不是很稳,万一房价跌了,贷款也不会跌的”。考虑到这些风险,她目前还没决定在北京买房。

众所周知,大厂的“35岁现象”,最早就是从程序员这里来的。

“我才25岁,不想35岁的事。”韦小磊说,他不担心自己35岁就失业,“人是一点点发展的。如果觉得自己发展的OK,那么没必要焦虑。像我的组长今年都37岁了,他也还在啊。”

问题是也就只有组长的年龄超过35岁。事实上,很多年龄稍大的程序员都会有焦虑感。毕竟他们的工资较高,工作精力和学习能力却可能比不上年轻人,被换掉的几率还是很大的。

“确实大部分程序员都是在‘吃青春饭’。”今年47岁的程序员高春辉表示。作为技术人员,他90年代开始创业,现在是一家公司的创始人。在公司里,他是其中一位大龄程序员。

与国外不同,国内大龄程序员并不多。少部分人会一直走技术路线,成为架构师。但大部分人会转产品、项目经理或管理岗位。至于转行的,开滴滴、送外卖、写博客等情况都有。

高春辉认为,这种现象恰好说明,35岁后程序员群体从“买方市场”进入“卖方市场”。年轻时,他们更在乎钱,接受加班;到了中年,他们有房有车,更在乎时间,为更多陪伴家人而选择其他工作。这个市场似乎能够不断“更新血液”。但长期来说,买卖双方都有损失。

对于程序员来说,他们只对其职业生涯的前1/4段可控,后3/4段则充满不确定性。

“很多企业长期强制加班,也不支付加班费。这不仅降低员工的工作效率,而且可能提高了离职率,企业还要为招聘新人付出更多的成本。”他表示,与其这样,企业还不如多招人,并适当继续聘用年龄较大但仍具有竞争力的程序员。

高春辉的公司现在有近50名员工,几乎每天都是朝九晚六,即使偶尔需要加班,也会按国家规定支付加班费。员工当中,还有3人是80后程序员。有两年,公司业务调整,需求不多,他选择继续聘用这些程序员。

年龄大小不是问题,但性别差异还是个问题。不久前,高春辉的公司曾招到一位女员工。面试时,她说自己还没有对象。但三个月后,她的肚子大了。

高春辉对此有点无奈,“我们也不是想搞职场性别歧视,但确实不信任的成本很高。企业要为怀孕的女员工付出两个成本,一是她休产假后照发的薪水,二是另外招人去做她的工作的成本。”

“如果不能干到35岁,就可能回老家。”何莉莉表示,女程序员的焦虑感更强,因为她们面临的不只是年龄的问题,还会担心结束当前合同期后,能不能继续留在公司。

程序员不只有男性。BOSS直聘研究院数据显示,今年3月,全国范围内,拥有程序员相关工作经历的求职者中,男性占比80.47%,女性占比19.53%。

但现实中,仍有很多用人单位不愿意招已婚未孕的员工。这对于想跳槽或者合同期快结束,但还有好几年才到35岁的女程序员来说,是一个叫人头疼的现实问题。

何莉莉说,“我有对象,现在还不敢结婚,但该结还是要结的。”

我们致力于创造高价值的自由工作市场,为企业高效匹配专业的远程工作者,满足企业灵活多样的人才需求,使自由工作者可以充分发挥个人价值,获取合理收入,从而实现社会资源的优化配置。

公司核心团队为连续创业者,在人力资源、科技互联网等领域拥有近 20 年经验,积累有 200,000+ 优质企业客户与 HR 资源,对未来工作、未来组织和信息技术发展有深入洞见。我们相信,一个充满信任感的自由工作环境将极大赋能个人和企业,而甜薪工场,正在打造这样一个空间。

上一篇文章 下一篇文章

相关阅读