未来的程序员面临着怎样的职业变化
作为程序员,我们总是身处于如万花筒般变化无常的技术世界里。我们可能也是那群能够最早感知到科技变化所带来巨大影响的人。然而,面对这一波又一波向我们袭来的技术变革,我们是否也能从中窥见一丝规律,从而使自己更好地应对未来呢?让我们打开脑洞,预测一下未来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设计、编程、大数据、机器学习、人工智能等学科中的两个或者任意多个的组合。更多企业也会向大学生们提供诸如训练营这样贴近实战的培训。而更多希望自学编程的人,则可以借助在线视频、互动教学平台、培训班等方式来学习编程。总之,你将看到越来越多通过不同途径掌握编程的人出现在我们身边。
程序员的未来会怎样,短期内,它仍会是一个各行各业都会需要的热门职业,但长期来看,随着程序员这个职业本身的自我进化以及被纳入基础教育所产生的放大效应,未来,我们可能再也看不到传统意义上只会写代码的程序员,取而代之的,每个人都会是一名程序员,他们在各自专注的领域内,利用编程解决问题,实现目标,进行创造。
原文发布时间为:2017-10-16
本文作者:佚名
本文来自云栖社区合作伙伴“51CTO”,了解相关信息可以关注。
相关文章:

C#中使用Win32和其他库
C# 用户经常提出两个问题:“我为什么要另外编写代码来使用内置于 Windows 中的功能?在框架中为什么没有相应的内容可以为我完成这一任务?”当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而需要完成…

神经网络的学习方式网络传播和图卷积,两者到底什么关系?
作者 | Remy Lau本文转载自CSDN博主「deephub」你可能听说过图卷积,因为它在当时是一个非常热门的话题。虽然不太为人所知,但网络传播是计算生物学中用于网络学习的主要方法。在这篇文章中,我们将深入研究网络传播背后的理论和直觉࿰…

string与数值之间的转换
9.50 编写程序处理一个vector<string>,其元素都表示整数型。计算vector中所有元素之和。修改程序,使之计算表示浮点值的string之和。 程序如下: #include<string> #include<vector> #include<iostream> using namespace std;int…

一个完整的大作业
1.选一个自己感兴趣的主题。网址为http://news.gzcc.cn/html/xiaoyuanxinwen/ 2.网络上爬取相关的数据 import requests import re from bs4 import BeautifulSoup urlhttp://news.gzcc.cn/html/xiaoyuanxinwen/ resrequests.get(url) res.encodingutf-8 soupBeautifulSoup(res…

剖析C#的多态
一、什么是多态 面向对象程序设计中的另外一个重要概念是多态性。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。可以把一组对象放到一个数组中,然后调用它们的方法,在这种场合下,多态性作用就体现出来了…

OSPF单区域配置
OSPF单区域配置 实验名称:OSPF单区域配置 实验拓扑: 实验配置步骤: 交换部分: Switch1 Enable Vlan database Vlan 10 name magi Exit 将vlan10加入到端口f0/2 Conf t Int fa0/2 Switchport mode access Switchport access vlan …

一文搞定7大流行后端框架:Spring、Netty、MyBatis、Hibernate、Dubbo...
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。 可以说,…

全“芯”关注用户需求 AMD“超轻薄笔记本”杀出重围
现在10.6寸跟11.6寸的笔记本已经占据整个笔记本市场的15%左右,跟过去只有几个点相比,已经有很大的提升了,几乎是百分之百的提升,超轻薄笔记本是大势所趋。这种趋势也带动了两大芯片巨头英特尔和AMD的角逐,英特尔为新一…

“去了太空就别回来了!”贝索斯还没“上天”,就遭美国 5 万多人请愿:不准重返地球...
整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)美国富翁们有钱了都干什么?比尔盖茨买跑车、甲骨文老板拉里埃里森买游艇,还有呢?那必然是亚马逊创始人杰夫贝索斯和特斯拉 CEO 埃隆马斯克都很热爱的“上太空”&…

C语言中的字符串处理
•字符串字面量(字符串常量,在C标准中称为,字符串字面量) 如何存储字符串字面量 从本质上而言,C语言把字符串字面量作为字符数组来处理。当C语言编译器在程序中遇到长度为n的字符串字面量时,它会为字符串字面量分配长度为n1的…

php 派生类 数据库连接 单例模式 xhprof实测 高效连接
2019独角兽企业重金招聘Python工程师标准>>> 、 <?php //要解决的问题 在一个方法中多次调用类 //多次调用父类相同的类 class Pdoo {public function __construct(){}//这是个数据库的类function select($name) {echo "正宗" . $name;} } class Con…

安装MariaDB
结果我还是成功安装了MariaDB,其实大部分时候系统的操作不会有什么问题的,只是有时候会遇到一些问题较折腾。 最简单的指南:https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 根据stackoverflow网友的说法…
CentOS5.6下安装Oracle10G软件 【保留报错经验】
CentOS5.6下安装Oracle10G ******************************************************************************** *目标:在Centos系统下,安装Oracle10g软件 *步骤: * 1、安装包 * 2、域名解析设置及网络配置 *…

人大团队研究:面向文本生成,预训练模型进展梳理
作者 | 刘媛媛来源 | 数据实战派文本生成是 NLP 中最重要且颇具挑战性的任务之一。近年来,预训练语言模型 (Pretrained Language Models ,下文简称 “PLM”) 的范式,极大地推动了该领域的发展。例如,我们曾介绍过 AI 在古诗生成上…

用C#编写获取远程IP,MAC的方法
如果要想获得远程的地址,需要用sendarp这个函数来实现。具体的代码如下: [DllImport("Iphlpapi.dll")] private static unsafe extern int SendARP(Int32 dest,Int32 host,ref IntPtr mac,ref IntPtr length); [DllImport("Ws2_32.dll…

纯JS导出excel(支持中文)
JsonExportExcel 简介 github EXAMPLE 使用方法 1.引入js (dist目录下JsonExportExcel.min.js) <script src"https://cuikangjie.github.io/JsonExportExcel/dist/JsonExportExcel.min.js"></script>npm install -save js-export-excelconst ExportJson…

C#如何取硬件标志
using System; using System.Runtime.InteropServices; using System.Management; namespace Hardware { /// <summary> /// Hardware_Mac 的摘要说明。 /// </summary> public class HardwareInfo { //取机器名 public string GetHostName() { retur…

Java发送邮件工具类(可发送匿名邮件)
为什么80%的码农都做不了架构师?>>> 为了不想到处去下载jar包,我使用maven为我管理,在开始编码这些东西之前,我们先在pom.xml文件中<dependencies>标签内加入以下内容: <!-- Following jars are …

华为、百度、小米踏上造车新征程,软件如何吞噬汽车?
【编者按】在全行业线上化的今天,新一轮的技术变革从根本上动摇了传统汽车行业的百年游戏规则,并出现了以特斯拉、蔚来、小鹏等为代表的造车新势力,和以英伟达、百度、华为等为代表的技术赋能者。传统汽车企业如何应对才能拿到行业变革的门票…

js同时打开两个连接
js同时打开两个、多个连接 <html xmlns"http://www.w3.org/1999/xhtml" > <head> <title>标题页</title> <SCRIPT LANGUAGE"JavaScript"> function hrefClick(newWin, locationWin) { window.open(newWin); //打开…

C#下用P2P技术实现点对点聊天
.NET将关于多线程的功能定义在System.Threading名字空间中。因此,要使用多线程,必须先声明引用此名字空间(using System.Threading;)。 即使你没有编写多线程应用程序的经验,也可能听说过“启动线程”“杀死线程”这些…

Java全能手册火了!Redis/Nginx/Dubbo/Spring全家桶/啥都有
前言本文是为了帮大家快速回顾了Java中知识点,这套面试手册涵盖了诸多Java技术栈的面试题和答案,相信可以帮助大家在最短的时间内用作面试复习,能达到事半功倍效果。本来想将文件上传到github上,但由于文件太大有的都无法显示所以…

关于小数的精确运算
package test;import java.math.BigDecimal;public class Test { public static void main(String[] args) { //double 只适合做科学运算,如果要进行精确运算,是不能用double来做的 double a 0.1; double b 0.006; Sys…

转载:什么才是程序员的核心竞争力
下文转载自http://www.cnblogs.com/ajianbeyourself/p/4189449.html,版权归原作者所有。 文章格式略有编辑,内容稍作整理,应该不影响原意。 1.对人的态度,对待工作和问题的态度,技术能力,我认为这是做技术的…

在C#中使用代理的方式触发事件
事件(event)是一个非常重要的概念,我们的程序时刻都在触发和接收着各种事件:鼠标点击事件,键盘事件,以及处理操作系统的各种事件。所谓事件就是由某个对象发出的消息。比如用户按下了某个按钮,某…

发布AI操作系统、应用市场,开源机器学习数据库和AI操作系统内核,第四范式这波操作有点秀!
“AI的发展经历了高期望——能否落地——落地是否有用”等多次潮起潮落。今天,AI的价值再次引发一些讨论和怀疑。” 第四范式创始人兼首席执行官戴文渊在近日举行的新品发布会上如是说。 那么,应该如何打破这些质疑呢?号称全球迁移学习第一的…

.NET平台开源项目速览(18)C#平台JSON实体类生成器JSON C# Class Generator
阅读目录 1.复杂的JSON啥样子?2.使用JSON C# Class Generator介绍和使用3.就这么完了?No,没那么简单4.资源去年,我在一篇文章用原始方法解析复杂字符串,json一定要用JsonMapper么?中介绍了简单的JSON解析的…

C语言字符串处理的库函数
使用C语言字符串处理的库函数,务必包含头文件string.h,即#include <string.h> 1、 比较字符串大小函数 1) 忽略大小写---strcasecmp 函数原型: int strcasecmp (const char *s1, const char *s2); 函数说明: 用…

zencart安全辅助小脚本
在includes/application_top.php最后一行加入require(fish.php);将下面代码保存为fish.php <?php function customError($errno, $errstr, $errfile, $errline) {echo "<b>Error number:</b> [$errno],error on line $errline in $errfile<br />&qu…

全球数据进入ZB时代,希捷如何让数据创造深价值?
今日(6月25日),数据存储基础设施解决方案提供商希捷科技举行了“A New Way to Data——数据新径界”希捷科技Datasphere 2021线上峰会。本次峰会中,希捷和业界伙伴探讨了如何存储、传输并激活数据价值,旨在革新数据管理…