作为程序员,我们总是身处于如万花筒般变化无常的技术世界里。我们可能也是那群能够最早感知到科技变化所带来巨大影响的人。然而,面对这一波又一波向我们袭来的技术变革,我们是否也能从中窥见一丝规律,从而使自己更好地应对未来呢?让我们打开脑洞,预测一下未来 10 年,程序员这个职业可能发生的变化。
程序员将变得更加全能
许多文章或艺术作品中将程序员的未来描绘得过于科幻或戏剧化,而基于我们看到以及正在发生着的现实,有一点却是不争的事实——程序员将变得更加全能。如果你是一名 iOS 程序员,你一定能感受到最近几年市场的变化,从对 iOS 程序员趋之若鹜,到今天所谓互联网寒冬之下的少人问津,其背后的原因之一竟是市场上数不清的培训机构,像流水线般生产出过盛的 iOS 开发人员所致。同样,对于设计师群体而言,越来越多的公司对他们的要求已从单一的 UI 设计,转向能够同时具备前端开发能力。
变化来得如此之快,很多程序员或设计师都对此抱怨连连,但这些变化却恰恰反映了所有与技术相关的行业门槛都在不断降低,以及专业领域间正在不断地产生融合。借助那些唾手可得的学习资源,以及易发强大易用的工具软件,未来的程序员将会具备更多专业技能,他们在深入掌握一门编程语言的同时,还可以熟练运用2-3 门不同的编程语言以解决不同领域的问题,他们也会努力将自己的技能栈扩展到产品、设计、市场、运维等各个领域,复合型的程序员将会受到更多企业的欢迎。而拥有至少一名复合型的程序员更将成为那些初创企业的标准人员配置。
程序员将更具多样性
未来的世界将会变得非常有趣,越来越多新兴的领域将会出现,而那些传统行业和专业领域也将被不断细分,以满足人们的差异化需求,世界将因此变得更加丰富多彩。而在此过程中,程序员无疑将成为这一变化的主要推动者,而他们的职业也将随之呈现出多样化的发展趋势。今天我们能听到的很多技术领域的新鲜词汇,如:大数据,机器学习,云计算,人工智能,VR/AR,区块链,无人驾驶、物联网等等,未来都将成为可以深入研究的领域和发展方向,它们的深度的和复杂程度也绝非掌握一门编程语言所可以比拟的。过去精通一门编程语言便能通吃各个行业和领域的时代将一去不返,取而代之,程序员将变得更加“专一”,他们会尽可能早地确定自己的专业方向,并花费大量时间,努力去成为某一方面的专家,他们甚至可能不再被称为程序员,取而代之的,一些新的称呼将会出现,比如在大数据领域,我们会把那些从事数据分析的程序员称作数据分析师或数据科学家,同样的,在其他领域也会有更多新鲜词汇被用来代表程序员吧。
工具大爆发让程序员们效率倍增
我们正处在一个工具大爆发的时代,大量开发、设计、协作工具不断涌现,但我想说这还只是一个开始,越来越多针对细分领域的优秀工具会被开发出来,经过一番厮杀,一批伟大的工具将会出现。这些工具通过充分利用强大的硬件能力而变得更加智能,它们甚至可以替代很多原来必须由程序员完成的工作。未来所有优秀的工具都应该是插件化的,程序员们不会再使用那些大而全的笨重软件,而是根据自己的需求,通过安装插件来组合出最适合的开发环境,这也使得程序员们的创造过程变得有趣而高效。
云服务加速创新
另一个巨大的变化则来自云服务,我们已经将云服务比作日常生活中的水和电,但真正能够通过使用它们创造出优秀产品和服务的,仍然是程序员自身。云服务将能为开发者提供大量即插即用的基础构件,这使得程序员们不再需要重复发明轮子,再去创造诸如数据存储、图像处理、数据加密等基础服务,一且都将以 API 的形式在云端开放,基于这些基础服务,产品的研发与迭代速度都将明显加快,而成本却因云服务的按需收费而得到降低,这无疑将加快创新的步伐,相信越来越多优秀的产品和服务会不断被开发出来改善人们生活的各个方面。
程序员的职能进一步扩展
今天,互联网行业无疑是程序员最集中的地方,几乎所有的一切都由程序员创造和驱动。而在这杆互联网大旗下,诸如云计算、大数据等互联网技术与思维也正在快速渗透几乎每一个行业,越来越多有远见的企业提出了由 IT 驱动业务发展的公司战略,IT 部门在那些传统行业中正变得越来越重要,他们不再只是负责信息系统维护的辅助部门,而需要真正理解业务,并推动业务在互联网背景下的革新。程序员作为 IT 部门组成的基石,他们的职能在此期间也将得到进一步扩展,他们需要能够将行业思维与程序思维紧密结合在一起,通过技术手段创造性地去解决企业或行业的痛点。他们可能会在整个产品或系统的生命周期内同时扮演项目经理、需求分析师、设计师、开发人员、测试人员以及运营人员中的多个角色(角色的划分不再像过去那样明显),程序员们也需要能够掌控全局,而不仅仅局限于代码的编写之上。
程序员成为更多人的终身职业
程序员曾一度被认为是一份吃青春饭的工作,很多人甚至感慨,到了 30 岁自己还在编程会是一件很失败的事情。但随着程序员与越来越多行业的深度结合,他们的价值被更多企业认可,甚至变得不可替代,无论在物质上还是职业发展的空间方面,他们都将获得更稳定的发展,这也使更多的人愿意将程序员作为终身行业。只是随着年龄的增长,他们可能不再被称为程序员,取而代之的可能是 XX 专家,XX 科学家,技术总监等等,但他们并没有脱离程序员的本质,恰恰相反,他们不会像以前那些走管理路线的 IT 人那样,轻易地丢弃技术,相反的,他们会更关注并擅长通过编程去解决关键问题。他们既是程序员,却又是超越程序员的行业专家或管理者。
自由程序员将大量出现
近年来,由于一线城市 IT 用人成本的显著提高,越来越多的大型企业正在或计划将他们的 IT 部门进行拆分,成立专门的软件服务公司,并将主要开发团队由一线城市向二线甚至三线城市迁移,这本质上也是 IT 外包的一种形式。而更多中小企业在没有自己的研发部门,以及 IT 经费受限的情况下,也逐渐接受了采用众包解决企业内部 IT 问题的方式。随着猿团、码市(Coding)、猪八戒等 IT 众包平台的不断成熟,以及远程办公条件的成熟,软件开发服务将越来越多地由自由程序员或他们组成的开发团队去完成,程序员的用人市场也将逐渐流向薪资水平总体偏低的二三线城市,自由程序员将会在那里大量出现,他们不再受到地域的限制,大部分人将在家办公。
而者带来的另一个变化则是:女性程序员的比例将大大提升。我认识不少优秀的女性程序员,她们完全不比团队中任何男性程序员差,而且还总是能够给团队带来一些惊喜,比如出于女性视角的优秀建议,以及更富情感的功能设计等等。自由程序员对于女性来说会是一个不错的职业选择,由于可以在家工作,她们能够更好地兼顾家庭,也能根据情况,自由地选择适合自己的工作时间和工作量。
程序员更加国际化
今年,我参加了一些技术大会,比如云计算大会、架构师峰会等等,在会上我经常可以看到用英文来进行演说的国外技术专家,但他们却就职于像百度、阿里或华为这样的国内公司。而我也曾和来自美国、德国、印度、新加坡、马来西亚等不同国家的程序员一起合作过,大家可以打破地域或语言的限制,为了相同的目标或兴趣进行很好的协作。
同时,我们也看到越来越多的主流互联网企业乐于将他们的核心技术开源,并借助开源社区的力量推动一项技术的发展。今天,几乎在每个技术领域,我们都能看到2-3 个主流开源技术,越来越多的国内程序员也开始参与到这些社区,并成为这项技术的贡献者。程序员正变得更加国际化,通过与国外优秀程序员的合作,他们可能成长为某一技术领域的专家,而且通过这种国际化的协作,能够帮助他们建立影响力,从而获得更多优秀的机会。
出现许多伟大的程序员
在你的心目中,一定会有几位伟大的程序员,比如 Linux 之父 Linus,Java 之父 James Gosling 等等,他们对软件领域的贡献不言而喻,但说到对人类的贡献,却可能并不那么显著。而这一情况很可能在未来发生变化。
远古时代的人们只能创造出用于猎捕的长矛,而今天借助来自各行各业人们的智慧,我们却可以创造出高铁、大型飞机、并探索宇宙。但要更进一步解决人类所面临的那些难题,光凭某一群聪明人的智慧可能已经很难实现。未来那些伟大的程序员,他们的贡献可能并不在于创造了一门新的程序语言或是一款优秀软件产品,而是利用他们开创性的思想,借助诸如大数据、人工智能等技术,帮助人类战胜疾病、能源、饥饿等世界难题。想象一下,未来的一天,某一领域的诺贝尔奖可能同时授予一名生物学家和一名计算机科学家,因为他们一起攻克了今天我们无法战胜的疾病。
编程全面普及教育
国外越来越多的学校已经将编程作为一门必修课,纳入中学甚至小学的教育体系之中。国内也有越来越多的家长开始让孩子从小学习编程。编程并不是教会一门开发语言那么简单,它让人们得到一种新的思维方式,而这种思维方式如果能在更小的年龄阶段掌握,会让孩子们长大后更适应未来的工作和生活。
同样的在专业教学领域,我们也会看到大学内的相关科目设置将呈现多学科交叉的形式,这将更加贴近于实际工作的需要。新一代大学生可以同时选择学习 UI 设计、编程、大数据、机器学习、人工智能等学科中的两个或者任意多个的组合。更多企业也会向大学生们提供诸如训练营这样贴近实战的培训。而更多希望自学编程的人,则可以借助在线视频、互动教学平台、培训班等方式来学习编程。总之,你将看到越来越多通过不同途径掌握编程的人出现在我们身边。
程序员的未来会怎样,短期内,它仍会是一个各行各业都会需要的热门职业,但长期来看,随着程序员这个职业本身的自我进化以及被纳入基础教育所产生的放大效应,未来,我们可能再也看不到传统意义上只会写代码的程序员,取而代之的,每个人都会是一名程序员,他们在各自专注的领域内,利用编程解决问题,实现目标,进行创造。