互联网技术的进步离不开程序员群体的努力,他们的人生发展问题需要社会各界关注。光明图片/视觉中国穿格子衬衫、戴黑框眼镜,平日里不善言辞,只顾坐在电脑屏幕前“无情”地敲击键盘,偶尔还会对自己日渐稀疏的头发发出几声叹息——这是如今社交媒体上众多网友对程序员这个群体的刻板印象。对此,程序员也会自嘲式地自我解构——戏称自己为“码农”。
如今,互联网行业无疑是程序员最集中的领域,几乎所有互联网技术都由程序员创造和驱动,例如那些已经深度参与人们工作生活的手机应用程序(App),其顺畅运行的背后都是一串串由程序员写就的代码。数字技术的落地、人们的数字生活体验已经离不开这个群体。
但是,你真的了解程序员吗?程序员的日常就是不停地写代码吗?这行业是吃“青春饭”的吗?中国的程序员群体是不是已经“过剩”了?……各种关于程序员的话题、讨论、段子层出不穷,他们更像是“最熟悉的陌生人”,让大众对这个群体抱有强烈好奇心。
本期“青年说”,我们一起走进青年程序员的世界。
只需“两耳不闻窗外事,一心只顾敲代码”吗?
“程序员只会写代码是远远不够的,还需要有沟通、项目管理、总结反思、培养人才、协作等综合能力。”
作为当今最热门的职业之一,程序员的压力是如影随形的——漏洞(bug)找不到、数据平不了、需求够不着……这些事件都会在程序员的日常生活中反复上演,有人甚至将程序员的工作常态描绘为“两耳不闻窗外事,一心只顾敲代码”。加之国内互联网企业“996”等事件屡屡登上热搜榜,程序员职业人群的生存状态和精神世界也逐渐成为一个备受关注的议题。
“自认为写得很完美的代码,却在运行时总有大大小小的bug,这大概是每个程序员最郁闷的时候。”王霄(化名)在福建一家海运公司从事后端程序员的工作。从2012年毕业至今,他已先后任职于几家软件开发公司,既有创业公司,也有大型互联网公司。王霄坦言,作为一名程序员,烦恼有之,但更多的是享受与热爱,特别是看到一串串代码经过自己的编排和组合后,变成真正“会跑会动”、会给人们带来便捷生活的应用时,这种满足感是溢于言表的。
程序员的工作就是守着电脑不停地敲代码吗?王霄对于技术、产品以及相关业务有着综合性的理解。“现在的程序员只会写代码是远远不够的,还需要有沟通、项目管理、总结反思、培养人才、协作等综合能力。”王霄说,程序员这个群体的工作内容并非大众想象的那么单一,除了写代码,其内涵是非常丰富的。
虎牙公司主播服务技术部副总经理徐光兴认为,程序员是一个较大的概念,根据工作内容的不同,大概分为几种类型——
“第一种是一线的开发工程师,也就是人们常说的‘码农’,他们的工作主要以执行为主,完成功能的开发即可;第二种是架构师,除了执行外,还要理解业务、技术,能抽象出既满足业务又符合技术逻辑的架构;第三种是技术专家,技术专家一般会在相关领域有较深的积累和经验,例如人工智能(AI)、大数据等,具有一定的深度,能解决业务痛点、难点甚至是行业痛点、难点问题。”徐光兴说,以上三种程序员类型主要是聚焦技术本身,从深度上一层层地递增。第四种是技术管理,在技术深度的基础上拥有更宏观的视野,把握和理解公司战略,结合实际带领团队找到对应的业务技术方向。
过了35岁的程序员,还有价值吗?
“行业内并非单纯从年龄来判断程序员的价值,更多的是综合考察其能力、经历、后续发展潜力以及过往贡献。”
“程序员过了35岁该何去何从”一直是个比较沉重的话题,甚至有人判断,一般国内程序员的“寿命”在20~35岁之间,超过35岁就很难继续从事开发工作,随之会面临淘汰、裁员的窘境。
的确,“年龄危机”在这个行业中较为普遍,并且随着互联网的发展,计算机技术慢慢成为基础技能,这无疑为程序员这些互联网从业者们带来很大的竞争压力。因此,“不满足于基础的写程序”也成为越来越多一线开发工程师们转型的方向。
今年30岁的李楠(化名)为国内某知名大学的软件工程专业毕业生,后入职于广州某通信企业,成为一线开发工程师。他告诉记者,最开始的工作是负责日常的软件功能开发与维护,除了写程序,还要和产品经理进行需求的反复沟通以及磨合。在积累了几年工作经验后,李楠选择了转型。
“目前我的工作更倾向于项目经理。”李楠说,“我始终觉得,一个优秀的程序员不光是自己一个人闷头写程序,还要尝试着引导一个团队去思考,要在满足用户多样性需求的基础上,创造更多的社会价值。”从做一线开发工程师时起,李楠就一直在积累业务经验,努力提升自己在行业内的竞争力。
事实上,在互联网公司,程序员的上升发展路径并非死胡同。“有的走专家路线,也就是往工程师、架构师、专家方向发展;另外也可以走管理路线,实现业务价值,我现在就是更多地往管理上转型。”李楠说。
徐光兴告诉记者,现在包括虎牙在内的互联网公司一般都会同时设置专业发展通道和管理发展通道两条路径。
“如果喜欢专注于技术,不希望精力分散,那就可以走专家路线;若是喜欢与人协作、带领团队、关注业务,不局限于某个细分技术领域的话,就可以让渡一部分研究技术细节的时间去做管理工作。”徐光兴说,行业内并非单纯从年龄来判断程序员的价值,更多的是综合考察其能力、经历、后续发展潜力以及过往贡献。
对于程序员群体的“年龄危机”,之江实验室人工智能社会实验研究中心副研究员王平认为,程序员要走出个人职业成长的焦虑,一方面需要不断学习,在提升原有技术知识的同时,增加其他相关业务的能力;另一方面,可以带着数字赋能等互联网思维,发掘新的创业领域,实现“破圈”。
“近几年,虎牙公司每年都会组织技术核心人员去国外交流学习,像亚马逊、谷歌这些互联网企业的很多工程师都会干一辈子,即使是年纪很大的技术专家依然在激情十足地敲着代码。”徐光兴认为,只要保持紧跟技术前沿的热情和持续学习的心态,35岁并不能限制技术人员的发展。
中国的程序员群体已经“过剩”了吗?
“支撑科技创新和产业升级的高层次人才和创新创业人才始终是社会迫切所需的,而程序员正是互联网时代技术创新的重要贡献者。”
早在互联网大潮来临前,就有人对程序员这一职业进行预言。1976年,美国未来学家丹尼尔·贝尔提出,信息劳动者将是后工业时代发展最为迅速的社会群体,因为社会生产实践正朝着越来越信息化的方向发展。本世纪初,互联网大潮正式登陆之时,印度社会学家达斯对这类新兴的互联网从业者也大加赞誉,称其为“新的中产阶级英雄”。
但是,随着每年相关专业的应届生踏入社会,加之国内越来越多互联网技术培训机构不停地向市场输入人才,国内程序员的从业人数逐年上升,并且逐渐年轻化。正是如此,才会出现中国程序员已经“过剩”的论断。
“程序员数量越来越多,但是好的程序员依然非常抢手。”徐光兴认为,互联网行业是高速发展的,如果程序员只局限在写代码上,那便没有核心竞争力,很容易被人替代,而“技术大牛”“程序高手”是不会存在“过剩”可能性的。
在创新驱动发展和高质量发展的背景下,支撑科技创新和产业升级的高层次人才和创新创业人才始终是社会迫切所需的,而程序员正是互联网时代各种技术创新的重要贡献者。
中国社会科学院社会发展战略研究院研究员田丰认为,就大众的生活而言,目前互联网的渗透率非常高,从孩童到老人,都使用智能手机上网,互联网技术的应用场景会逐渐从生产科研等部门扩展到百姓生活的方方面面。而互联网应用场景的增加,会使社会对程序员的需求也保持增长。
“我们仍处于数字技术革命的进行时,人工智能和大数据技术的发展还有相当多的技术红利,亟待应用于经济社会的多个领域和场景。劳动力市场不仅需要传统意义上的程序员,也需要从事具体业务工作领域的人员,只有掌握一定的编程技术,才能极大地提升工作效率。”王平说。
“未来国家间的竞争是高新技术的竞争,需要大量的人才作为支撑。”田丰说,在某种意义上,程序员队伍的建设也是未来国家间竞争的人才储备基础。
在人生键盘上,不停敲击“向上”键
李锐,80后正高级工程师,浪潮集团技术中心人工智能研发部总经理,主攻人工智能技术研发。博士毕业于德国慕尼黑工业大学计算机系,山东省泰山产业领军人才,累计申请发明专利156项,带领技术团队斩获2019数字中国创新大赛等多个赛事奖项。我至今忘不了那些艰难攀登、未雨绸缪的日子,它们令那无数次袭来的困顿与憧憬、迷茫与希望、挫折与喜悦,最终都化作我手中的光,让我无惧挑战,勇闯充满未知的数据世界。
13年间,我从基础程序员成长为浪潮集团技术中心人工智能研发部总经理,但我还是喜欢以“程序员”自居。这个“头衔”时刻提醒我,在向高新科技挺进的征途中,我们每个人都必须脚踏实地,如同程序要一个字符一个字符地“码”,如同数字大厦要一层一层地“盖”。我需要这个“头衔”,并以它为傲。
如果没有对理想的坚持,我可能会一直“躺”在舒适的环境里,最终失去迎接挑战、迎难而上的勇气和能力。2007年我硕士毕业,工科在德国很吃香,我在一家研究所得到助理研究员的工作,负责研究信号处理。日积月累的进步,让我心中理想的火焰燃烧了起来——我要攀登更高的山。2009年我辞去高薪工作到德国慕尼黑工业大学计算机系正式攻读博士学位,为成为一名优秀的程序员充电。
在人生的键盘上,我不停敲击“向上”这个键,可这个键不好敲。学习顶尖计算机技术的过程真的很漫长,没有创新思路、程序不通、文章读不懂、实验效果不好都是拦路虎,艰难耕耘却始终见不到果实的日子很煎熬。回想起来,自己每向前一步,都至少要在心理上扒下三层皮。
但是,这大概是通往理想彼岸唯一的路了。我深刻体会到,一个知识领域比较窄、只懂得计算机技术的研发人员,很难在计算机领域有所突破。于是,我继续朝着更高目标攀登。数学、统计学,更灵活的思维、更强的动手能力……我开始向更广阔的学习领域拓展。
博士毕业后,我在德国获得一家著名科技公司的终身工作机会,在高水平的平台上做数据科学家,开发最初的人工智能应用。可我心中一直有强烈的愿望,要为我们中国研发人工智能技术贡献力量。
于是我选择了回国,在一个既熟悉又陌生的环境里从零做起,在看似平凡的工作中,锻炼着自己面对陌生问题的思维方法、面对不确定性问题的应对能力,在似乎找不到答案的环节寻找突破口。我不需要“海归博士”的光环,我要的是在程序员的日常中保持对科技前沿的敏锐嗅觉、对未知领域的大胆探索、对过硬技术的刻苦锤炼。
这些年,感谢浪潮集团给我提供的平台,让我和团队有机会不断求索。我们每成功开发应用一项新技术、每取得一个数据竞赛的奖项,都把功劳归于“精诚协作”。程序员需要团队精神、协作精神,每个人都朝一个方向转动轮子,这个轮子就越转越快。
如今,我作为一名管理者,致力于带领队伍不断“精进”,让普通的程序员变得优秀,让优秀的程序员变得更优秀。在程序员的世界里,非常重要的精神就是“精进”。如果说还有什么比“精进”更重要,那恐怕只有两个字——热爱。
找准赛道,在技术浪潮中厚积薄发
陶阳宇,80后程序员,腾讯云人工智能平台总监。目前从事人工智能、大数据领域研究,主攻机器学习和安全联合计算。2020年4月,国家发改委正式明确将人工智能纳入新基建范围。人工智能作为智能经济发展的核心引擎,无疑将迎来发展的新风口。青年程序员正身处于前所未有的广阔实践场域,只要确定正确的目标并踏实努力,必将大有可为。
我是博士毕业后开始程序员生涯的,到目前为止已超过11年了。程序员这个群体最大的特征就是聪明好学并且思维活跃,善于接受新事物。但对于一些刚毕业或者刚走出校门的程序员来说,也面临着选择行业、领域的难题,对未来充满了迷茫。
新基建是大事业,无疑给程序员带来了实现人生价值的重大机遇。我们当中的年轻人,是否已经准备好?
技术的浪潮此起彼伏,我们不必去盲目追求热点方向。程序员需要潜心笃志,选好自己的赛道。多看、多听、多思考,不要受外界浮躁因素影响,不要因为某个行业的待遇给得高,就往那儿涌。我们要思考的是:今天想投身的方向,能否解决这个领域的核心问题?
打好扎实的基础是程序员最重要的功课。找准自己的人生定位,就要注重自己底层能力的积累。什么叫底层能力?看过武侠小说的都知道,一个真正的武功高手,不在于他的招式有多花哨,而在于他的内功心法有多深厚。基础打牢了,学习任何招式都很容易。我认为对于程序员来讲,底层能力首要的就是编程能力,涉及数据结构、算法,这是任何一个领域、任何一个技术方向都需要的底层能力。第二,要足够了解像操作系统、网络这样的底层技术;第三,学会如何把一个现实的问题抽象成数学问题,进而转化成计算机问题。只要切实将自己的底层能力夯实了,才能在变化万千的软件行业临危不乱。
做好技术的同时,要拥抱更广阔的世界。我们可以通过分享、参与和交流,把自身的技术优势或经验贡献给开源社区或公益组织,实现价值最大化。腾讯在2017年就正式开源了高性能分布式机器学习系统——Angel,它是第一个真正意义上把处理海量数据的模型训练从理论变成现实的系统,目前已经能够支持万亿级规模的参数模型。我们在获得这一规模上的突破之后,通过开源的方式将Angel系统贡献了出来,让更多的企业能够在自己的应用环境中进行部署,帮助他们有效提升了内容推荐的准确率,最终也成为国内第一个从LF AI基金会(Linux基金会旗下,面向AI领域的国际顶级基金会)毕业的开源项目,实现了项目价值的最大化。
青年程序员要想实现自己的人生价值,要“像外行一样思考,像专家一样实践”。前者要求我们在看待和思考一个问题的时候,不要带有任何先入为主的偏见,不要迷信权威,应该要像完全不懂这件事情的外行一样,从多方面看待和思考它,这样你的思维会更加发散,更加有突破性。但是看完之后,你还要像专家一样很小心地求证、认真地思考、细致地实践,用数据说话。
我在腾讯云从事人工智能方面的研究工作,主要研究方向是机器学习和安全联合计算。就安全联合计算来说,我们面临技术上的巨大挑战。作为一个新兴的交叉学科,国际上并没有任何成功的经验可以借鉴。通过不断地思考与实践求证,我们提出了创新性的方法来提升加密算法速度,并首创了异步通信的技术架构。基于此,腾讯安全联合计算目前的整体端到端性能超业界5倍以上,并且数据量越大,提升的效果越明显,在国际上取得领先。
新时代需要的是具备开拓进取精神的创新型的技术工作者,程序员这个群体拥有聪明的大脑和活跃的思维,只要我们保持定力,潜心笃志,一步一个脚印,就能够在新基建大潮下厚积薄发,用奋斗成就自己,用代码绘就蓝图。
原题为《为自己和国家“码”一个出彩未来——青年程序员的发展之问、价值之思》《在人生键盘上,不停敲击“向上”键》《找准赛道,在技术浪潮中厚积薄发》