有关程序员的十个预言

作为程序员,我们总是身处于如万花筒般变化无常的技术世界里。我们可能也是那群能够最早感知到科技变化所带来巨大影响的人。然而,面对这一波又一波向我们袭来的技术变革,我们是否也能从中窥见一丝规律,从而使自己更好地应对未来呢?让我们打开脑洞,预测一下未来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设计、编程、大数据、机器学习、人工智能等学科中的两个或者任意多个的组合。更多企业也会向大学生们提供诸如训练营这样贴近实战的培训。而更多希望自学编程的人,则可以借助在线视频、互动教学平台、培训班等方式来学习编程。总之,你将看到越来越多通过不同途径掌握编程的人出现在我们身边。

程序员的未来会怎样,短期内,它仍会是一个各行各业都会需要的热门职业,但长期来看,随着程序员这个职业本身的自我进化以及被纳入基础教育所产生的放大效应,未来,我们可能再也看不到传统意义上只会写代码的程序员,取而代之的,每个人都会是一名程序员,他们在各自专注的领域内,利用编程解决问题,实现目标,进行创造。

本文来自开源中国社区 [http://www.oschina.net]

时间: 2024-10-03 08:56:46

有关程序员的十个预言的相关文章

优秀程序员的十个习惯

--转来和大家一起共勉 在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer).经过一段时间后,这些人也许能够成为一个 优秀的编码人员,他们会非常熟悉如何用计算机语言来完成自己的工作.但是,如果你要成为一个优秀的程序员,你还可以需要有几件事你需要注意,如果你能让下 面十个条目成为你的习惯,那么你才能真正算得上是优秀程序员. 1. 学无止境 .就算是你有了1

成为优秀程序员的十个有效方法

http://www.aliyun.com/zixun/aggregation/7026.html">优秀的程序员是在穿过一条单行道的时候还会往两边看的人. 作为一个IT行业的软件程序员,每天驱使我们日复一日的辛勤工作的,是来自我们对编程的兴趣和激情.但是要让编程变得始终有趣,我们必须学会坚持某些成为优秀程序员的基本原则. 我并不是要写出一些咒语,你照着执行就可以成为一个优秀程序员了.我的目的是想记录下我学习到的和用过的一些有用的经验,它们帮助我获得比较好的结果.对于优秀程序员是没有明确定

我是怎么招聘程序员的

很早以前就想写一篇和面试相关的文章了,今天在网络上看到一篇关于如何去面试程序员的英文文章,发现其中有很多和我共鸣的东西,所以仿照其标题通过自己的经历写下了这篇文章. 工作这么多年来,即被面试过,也面试过他人,对于程序员的面试,经历过很不错的面试,很专业的面试,也经历过一些BT和令人不爽的面试,我个人觉得一个好的面试,面试官是很重要的,所以,本文想从"面试官"的角度来阐述一下.于是,有了下面这样一篇的文章,希望本文对你的职场经历有用,特别是那些正在招聘和面试程序员的朋友,我觉得这篇文章会

【转帖】我是怎么招聘程序员的

 我是怎么招聘程序员的 收藏 此文于2009-12-18被推荐到CSDN首页此文于2009-12-21被推荐到CSDN首页如何被推荐? 原文:http://coolshell.cn/?p=1870(酷壳) 很早以前就想写一篇和面试相关的文章了,今天在网络上看到一篇关于如何去面试程序员的英文文章,发现其中有很多和我共鸣的东西,所以仿照其标题通过自己的经历写下了这篇文章. 工作这么多年来,即被面试过,也面试过他人,对于程序员的面试,经历过很不错的面试,很专业的面试,也经历过一些BT和令人不爽的面试,

C++程序员容易犯的十个C#错误

c++|程序|程序员|错误 我们知道, C#的语法与C++非常相似,实现从C++向C#的转变,其困难不在于语言本身,而在于熟悉.NET的可管理环境和对.NET框架的理解. 尽管C#与C++在语法上的变化是很小的,几乎不会对我们有什么影响,但有些变化却足以使一些粗心的C++编程人员时刻铭记在心.在本篇文章中我们将讨论C++编程人员最容易犯的十个错误. 错误1: 析构函数上的差异 几乎可以完全肯定地说,对于大多数C++编程人员而言,C#与C++最大的不同之处就在于垃圾收集.这也意味着编程人员再也无需

Python 程序员最常犯的十个错误

常见错误1:错误地将表达式作为函数的默认参数 在Python中,我们可以为函数的某个参数设置默认值,使该参数成为可选参数.虽然这是一个很好的语言特性,但是当默认值是可变类型时,也会导致一些令人困惑的情况.我们来看看下面这个Python函数定义: >>> def foo(bar=[]):        # bar是可选参数,如果没有提供bar的值,则默认为[],  ...    bar.append("baz")    # 但是稍后我们会看到这行代码会出现问题.  ..

十个程序员必备的网站推荐

简述 程序员的工作和日常生活非常的枯燥,这里给大家推荐一些程序员经常使用的网站,也是我经常上的一些网站,尤其是前三个网站感觉用起来非常的舒服.我大致把这些网站分为三类,使用工具类,设计分享类,资讯交流类,业界良心类.希望能对大家有所帮助. 简述 网站推荐 网站推荐 Github代码托管(https://github.com/) 作为开源代码库以及版本控制系统,Github拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法.代

新入行程序员应知的十个秘密

初出茅庐的你带着仍残留墨香的毕业证书踏上工作岗位,马上就被书上没写的规则和各种繁杂的日常事务来了个下马威.这样的故事实在是司空见惯,编程工作也不例外. 没有几个学生能100%为自己的第一份真正的工作做好准备.如果你不想成为其中之一,请学学以下这10项无需手把手指导就能学会的基本技能: 1.版本控制系统(VCS) VCS也许是计算机课程最大的疏漏.这些课程光记得教如何写代码,但却往往忘记教学生如何去管理代码.每一个程序员都应该懂得利用Git或Subversion有效地创建repository(仓库

这十个代码习惯,程序员你得有

程序员是一群艺术家,用代码创作项目,向用户展示流畅而友善的体验. 程序员境界:烂.低调.业余.普通.胜任.知名.成功.不朽,这是八个等级. 前几种不需要讲,工作中不会碰到,公司招聘也只会从普通程序员开始招,普通指可以工作,达到胜任就是核心成员,成功的程序员如比尔-盖茨,不朽如图灵.很不幸,业内许多公司的程序员,还在普通上下打转,所以导致招人十分困难. 今天我们先讲讲普通程序员需要有哪些习惯: 1.团队协作.指:为了一个共同目标,在标准规范下,分工协作的能力.一个小的项目,可能随便写写便交付,也没