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

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

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



首先就是前端开发。



在我和老友的“古老”记忆当中,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......

各种自动化的运维工具

安全

各种脚本语言

......



在机器众多的情况下,手工根本是搞不定的, 关键点就是要做自动化

, 自动化的安装,自动化的部署,自动化的监控和分析。



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



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



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



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



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



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



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



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



·

 END ·



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