如今开发软件的方式正在发生深刻的变革,回想起刚毕业的时候做软件开发工程师,和现在已经截然不同了。
最早运维工程师往往是公司里一个独立的团队,公司租用公共机房的机器,大一些的公司也会选择自建机房。上架新机器(俗称扩容)是个流程繁复的事情,从公司决定采购到物理机器到位这中间有很长的时间间隔。
在实际的业务开发过程中,开发工程师在项目结束之后需要正式的「移交」给运维工程师来处理后续的事情。然而全栈工程师的概念慢慢流行起来,推崇「You build it, you run it」。高级的工程师可以拿到线上本来只有运维才有的权限,自己写的代码自己考虑部署、监控、告警。
DevOps 也开始深入人心,运维团队中出现了很多自己开发的工具,上线系统、配置管理、监控告警平台等等。
但无论怎么变化,所有软件和硬件都还在自己的机房里,直到云服务的到来。
也就是我们目前所处的环境,软件和硬件都走上了云端,即使那些还在自己经营机房的大公司,本质上也是一个内部的云服务商。云服务的核心是虚拟化,任何人都可以很轻松的在几分钟之内申请到新的虚拟机器(将来可能是容器)。运维工程师进化为了可靠性工程师,以设计软件运行环境和管理软件配置为主。
说完现在,就要说未来了。
很久之前读过 《代码的未来》 ,今天想讨论一下几类工程师的未来的工作方式。
无论是自建机房还是云服务,运维工程师一直无法避免要知道「什么东西部署在什么机器」。然而 Docker 和 K8S 的出现将彻底的改变这个情况,无论多庞大的集群,交给软件自动来编排。软件的标准化、部署、迁移的方式得到了质的变化。
运维工作需要更加深入到业务中,了解项目打包的过程,管理公司内部的镜像,提供标准化的持续集成的工具,提供各个项目的 docker 开发环境。
说到这个感触就更深了,因为我们数据仓库的基础设施刚刚完成从自建 CDH 到云上服务的迁移。
一直以来,我们已经习惯了离线数据和大量计算的需求使用其他工具来完成,比如各种 ETL 工具和 Hive。然而现在的趋势是将存储和查询引擎解耦开来,无论是什么存储,都使用同一套协议(比如 MySQL)来查询。
也就是说无论是分析师还是 ETL 工程师,只要会 SQL 语句就可以了,更重要的是代码层面完全统一。
开发工程师以后只关注生产业务逻辑即可,随着高级语言的发展,不需要懂底层的知识也可以开发出高效稳定的软件。
以 Go 语言为例,代码层面交互的只有 goroutine,背后是协程还是线程还是进程,语言的底层来帮你解决。越来越多的第三方库帮你做掉了大部分的工作,工程师只需要看着文档会调用即可。
Serverless 可能会成为主流,即写完业务逻辑不需要申请服务器,直接在云端运行。
无论是哪个领域,计算机软件的生产都走向了「使用越来越简单,背后越来越复杂」的方向。
我认为公司需要的 技术专家和架构师将大幅度减少 ,与此同时 云服务使用专家 将成为新的需求。
普通工程师也许真的可以变成简单培训即可上岗的职业,普通工程师的可替代性会进一步提高,核心技术掌握在极少数大型公司,尤其是云服务公司之中。
开源软件将走向「社区孵化,云服务商私有化」的道路,最终开源软件将被头部云服务商垄断,然后变成 SaaS 最终成为云服务商的现金流。
从企业家的角度来看,生产软件的成本可能会降低(尤其是人力成本)。但从工程师的角度来看,其实有点悲观的,要么努力成为顶部的技术专家,要么就会变得随时可以被代替了。
原文 https://liangshan.blog/blog/2019/11/16/future-engineering/
Web前端工程师必备的PS技能之切图:PS中我的标尺的参考线为什么不能自动吸附图层或画布中间了?有个选项没有选择“菜单栏-视图-对齐”,按照设计师提供的设计稿,实现HTML页面,需要将设计稿切分成为最终在页面中呈现的一个个图片为“切图”
作为一名技术人员,我们应该如何践行呢?本文总结了十条精进原则,希望能够给大家带来一些启发,更好地指导我们行动。Owner意识、时间观念、以终为始、闭环思维、保持敬畏
Web前端开发技术主要包括三个要素:HTML、CSS和JavaScript!如果单纯只是学习前端编程语言、而不懂后端编程语言(PHP、http://ASP.NET,JSP、Python),也不能算作是优秀的前端工程师。在成为一个优秀的前端工程师的道路上,充满了汗水和辛劳。
随着软件技术的发展以及市场需求的变化,全栈工程师似乎已成为未来发展趋势。很多Flag公司都已经声称只招Full Stack的员工,那么面对这样的市场形势,对于正在求职路上或者是想要跳槽的程序员来说,我们需要如何准备,如何应战?现在,小编带你了解为什么这次我选全栈工程师!
初次接触PHP,就为他的美所折服,于是一发不可收拾。很多面试,很多人员能力要求都有PHP高级工程师的字眼,如果您真心喜欢PHP,并且您刚起步
对于JavaScript,掌握其语法和特性是最基本的,但是这些只是应用能力,最终仍旧考量仍然是计算机体系的理论知识,所以数据结构,算法,软件工程
现在,前端工程师终于前所未有的在Web中占有了一席之地。随着多设备、浏览器和Web标准的演变革命,前端正在成为兼顾逻辑、性能、交互、体验的综合性岗位。
前端开发是一个非常特殊的行业,它的历史实际上不是很长,但是知识之繁杂,技术迭代速度之快是其他技术所不能比拟的。
职场危机感似乎是每个人在职业生涯都会遇到的话题,我对这种危机处境和自己曾遇到的问题进行了一番思考,参考了其他人的一些结论并结合自身的经历,设计了应对的初步方案。
一提起“全栈开发工程师”,大家的印象肯定是:这号人啊,堪称大神!会很多技术,前端后端都精通,不掌握七八种语言都不好意思出来打招呼,热点技术名词全都知道,也都会点儿;
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!