这里是普通文章模块栏目内容页
聊聊过去十年新出现的一些开发职位

前几天和老友聊天,我们都再次感慨互联网软件行业发展之快,这些年出现了一些我们之前根本都无法想象的开发职位。

首先就是前端开发

在我和老友的“古老”记忆当中,Web系统还都是通过“套模板”的方式来创建的,简单来说就是美工把页面用Photoshop之类的软件做好,然后变成HTML页面,Web开发人员把动态的代码添加进去,调试通过就大功告成。

这里根本没有前后端之分,都是现在的后端程序员在折腾,页面的一些炫酷的效果也是后端程序员通过调用类似jQuery之类的类库来生成的。

当我第一次听到前端这个概念的时候,心里是打了一个问号的,不就是JavaScript, CSS,HTML吗? 还能搞出什么花样来?

没想到的是前端和后端这么快地分离了:后端专注于提供数据, 前端专注于交互,快速响应UI变化。

聊聊过去十年新出现的一些开发职位

现在看来对前端程序员的要求是非常高的:

HTML/CSS/JavaScript

层出不穷的开发框架,Angular JS, React JS, Vue......

模块化开发,项目构建

代码质量/风格

单元测试

自动化测试

跨浏览器测试

各种调试工具

版本管理

SEO

文件压缩合并

Web安全

移动Web

可视化的图形图表,动画

......

要求的技能这么多,薪水肯定也水涨船高了。

第二个就是App开发。

我在10年前还学过诺基亚的塞班系统的开发, 那叫一个麻烦,我甚至觉得诺基亚就是为了提高准入门槛,故意刁难开发者。

然而,乔布斯的苹果开启了移动互联网时代以后,一切都变了,守旧的诺基亚像断崖一样跌落,迅速消失。

无论是App Store还是最早的Android Market , 无不期待着大量的App入驻。

这直接导致了一个新的开发岗位--App开发--的无比繁荣, 在巅峰时期,每个公司都想要自己的App, 但是没有足够的人去开发啊 !

老友感慨说:你不知道最热门的时候想招聘个Android/iOS开发有多难,薪水多高!!

国内培训机构趁势忽悠很多人入坑, 成批地推出了大量Android和iOS程序员。最后形成了一个尴尬的局面: 初学者太多,抱怨工作不好找,而公司要求的中高级开发者又太少,抱怨招不到人。

第三个就是运维

我刚毕业的时候, 做的系统相对简单,通常只是部署在一个机器的一个软件组件上,部署的时候就是往一个机器上复制文件,开发人员轻松兼任。

现在的系统越来越复杂,从技术上看,使用的软件组件越来越多,像什么ngnix, keepalived, HAProxy, redis , mysql ,elastic search,rpc框架,分布式文件系统,cdn...... 等等,还经常需要搞高可用的集群,主从备份等等。光是把一个系统搭建起来就很不容易。

从业务上看,把所有的东西放在一起也不可能了,业务也做了分家,放到了不同的机器上,或者虚拟机/容器中。 由于业务之间还需要互相调用,这又涉及到复杂的配置。

数量众多的业务系统+ 数量众多的软件组件构成了一个巨大的挑战, 这些系统和软件组件需要安装、配置、维护、监控,单靠开发人员兼职折腾是不太现实了。

于是运维人员就横空出世了!

运维要做的事情上面已经有所描述,可以看出对运维的技能也很高:

Linux 基础

各种软件(Ngnix, Redis, Mysql等)的安装和配置

网络基础服务: DNS, DHCP, FTP......

各种自动化的运维工具

安全

各种脚本语言

......

在机器众多的情况下,手工根本是搞不定的, 关键点就是要做自动化, 自动化的安装,自动化的部署,自动化的监控和分析。

第四个是大数据相关的岗位

刚工作那会儿,看到一个表里几千万行的记录,感觉很吓人,觉得不可能超越了。

没想到的是这才过了几年, 拜互联网尤其是移动互联网所赐,现在的互联网系统都要面对海量的用户和海量的数据, 数据量之大,导致传统的数据库和文件系统竟然无法存储,传统的单机竟然无法在合理的时间内处理!

你听音乐的时候,读电子书的时候,上网浏览的时候,聊天的时候,使用手机的时候,网上购物的时候....  无时不刻都在产生数据,再加上手机拍的照片,聊天记录,很难想象你在网上的活动不产生数据的。

数据的存储必须分布式,数据的多样化让关系型数据库举步维艰。数据的处理也必须想办法分布式,对海量的数据进行分析、“挖掘”, 找出其中的价值, 这就导致了大数据相关系统以及工作机会的诞生。

#p#分页标题#e#

在这个领域Hadoop是无可争议的王者,对大数据的分析和处理也是很热门的岗位,想象一下,若是有机会处理和分析存储在成百上千台机器上的数据,是不是也很有成就感?

还有一个不得不提的是人工智能,2017年大热,由于数学和算法的关系,导致门槛较高,还未像前面几个职位那样,基本普及了。机器学习,深度学习什么时候能“飞入寻常百姓家”,让我们拭目以待!

总而言之,技术的发展在不断创造出新的机会,对从事软件开发的人来讲,是坏事也是好事,想在这个行业里呆下去,只有一个“秘诀”:快速地、持续不断地学习。

【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】

戳这里,看该作者更多好文

【编辑推荐】

手把手:我的深度学习模型训练好了,然后要做啥?

Android Hook技术防范漫谈

对于培训出身的同学,接下来该怎么学习技术?

小白学数据:教你用Python实现简单监督学习算法

手把手:用Python搭建机器学习模型预测黄金价格

收藏
0
有帮助
0
没帮助
0