我可能永远也没办法成为全栈工程师了,看看你还差多少?

前言

写了很多技术贴,今天换个维度写点别的话题,来聊聊程序员的职业发展。

不管是对于大厂还是其他软件公司,都会有全栈工程师这个职位,而且这个职位的薪资待遇明显比其他同等级的职位高出不少。

重赏之下必有勇夫,所以大家对这个职位的关注度更高一些也在情理之中。虽然每个公司对于全栈工程师的要求以及定位都各不相同,但是大体上来看,全栈工程师大概需要有以下几个特质:

  • 一个人有处理一条数据链路或者业务链条的能力,能有端到端的开发能力那就太好了

  • 不仅要有开发能力,还要有一定的设计能力,毕竟你这条业务线的数据或者接口大概率还是会被其他业务线来使用的,所以必要的设计能力还是很重要的

  • 除了代码编写以外,数据库的设计包括运维方面的相关东西也需要能hold住,毕竟这是一个闭环,你需要对其他人提供一整套系统或者模块

一言以蔽之,就是当爹又当妈,所有的任务都是你的,所有的锅也都是你的,当然所有的成就感也由你自己独享。

上面的要求就注定了全栈工程师不是你想做,想做就能做的,毕竟人才易得,全才难求。

诸如NBA,有无数强力内线在禁区内利用身体天赋和华丽技术予取予求,也有无数顶尖后卫在弧顶和外线利用犀利突破和精湛射术翻江倒海,但是却很少有人能同时拥有内线和后卫的技术,能内能外从一打到五。

如果想快速测试离全栈差多少,可以直接看文末最后一张图,看看那些技术图标你都认识多少/p>

十年前的全栈

现在回头看看那时候的全栈要求,相对来说还是比较简单的,所有的技术栈都不是很复杂,拼接到一起基本上就能满足基础的全栈需求。

后端

十多年前的JAVA后端基本上就是java core以及ssh或者ssi。技术发展慢的好处就是可供选择的东西不多,很容易形成行业标准,大家把行业标准的技术和玩法搞熟练了就可以包打天下了。

前端

那时候的前端基本上主流就是JSP,脚本语言就是JavaScript+jQuery,再加上css,基本上就能hold住前端的需求了。

数据库

大部分就是SQL三剑客Oracle,SqlServer以及MySql的天下,偶尔在大客户的现场会遇到DB2或者TeraData等高端数据库。但是除了标准SQL之外的差异化的语法,其余的基本上大同小异,尤其是应用或者系统开发(数据库DBA不在此讨论范畴内,在那个时代这个是神一般存在的职业)。

处理的数据都是结构化的数据,少量的非结构化和半结构化的数据基本上就是存硬盘,大部分场景下就是送到仓库中吃灰或者在需要使用的时候能找到然后使用即可。

运维

那时候的运维部署大部分的场景就是给一台linux服务器,在上面安装tomcat,高端点的就是Weblogic或者WebSphere这种90后基本上没怎么听说过的上古神器。然后把打好的jar包以及war包放到固定的位置,使用web容器发布后,即可以通过web页面或者C/S架构的客户端运行和使用系统了。

后续的运维就是通过各种脚本、自研的监控系统或者Zabbix这种监控软件进行监控和运维即可。

现在的全栈

上面的全栈说的很简单,虽然实际情况会比上面描述的复杂一些,但是并没有复杂太多。个人感觉这时候的全栈还是很有希望达到的。

但是仅仅十年过去了,一切都已改变,完全看不出之前的模样了,到底发生了什么/p>

后端

此时的后端已经被细分成数据接入,数据处理,数据存储,数据挖掘等多个数据处理流程。数据已经成为了整个后端技术流转的核心,整个业务的流转基本上就是数据流转的过程。

至于技术,不胜枚举:

  • 数据接入已经从十年前的库表文件导入或者业务录入转化成多元化的数据接入技术。除了传统的TCP和UDP数据接入外,爬虫也大行其道;至于商业化公司如elastic公司的elkb这种体系化的数据接入和处理流程也是深受欢迎。

  • 数据处理处理传统的java外,数据处理已经从第一代的mapreduce、hive、storm以及impala框架进化到了以spark或者flink为主的新一代批流一体化的框架所代替。而且这些框架也互有攻守,无法形成一家独大的行业标准。

  • 数据存储已经不是之前的sql以及jdbc的行业标准,而变成了以数据库为导向的不同api的操作,虽然现在都在推SQL标准在不同数据库的落地,但是大部分的情况下,还是需要使用不同的api进行各种操作,学习成本可见一斑。

前端

现在的前端以及分 页端和移动端的双端了,而且前端的全栈的要求已经是端到端了,即从移动端到 页端的业务和数据的处理和展示。

数据库

下面就是现在的数据库分类:

  • SQL

  • NoSql

  • NewSql

  • GraphDB

细节的分类和数据库就不多说了,因为实在是太多了,而且新的数据库也是层出不穷,更过分的是每个数据库基本上都有受众,也都能火那么一段时间,大部分也仅仅就是那么一段时间,但是对于从业者来说大多数时候真的是痛并“快乐”着….

运维

之前的运维玩明白linux和一个主流的运维软件即可。现在的运维真的是玩出花了。

之前的虚拟化已经难堪大用,云计算和云平台登上了历史舞台,公有云和私有云遍地开花;再后来是以docker为首的容器掀起了容器化的浪潮;再后来云原生横空出世,甚至抛出了“一切皆可云原生”的豪言壮语。

当前的运维已经慢慢形成了以K8S为首的容器编排与管理,istio等一系列service mesh作为辅助的运维体系,在这个体系周围衍生出的技术也不胜枚举。运维小哥哥再也不能一招鲜吃遍天下了,而对于研发人员来说,想跨界搞专业运维的难度和成本也越来越高

至于监控,虽然Prometheus+grafana在大多数场景下都是标准选择,很多组件也都有响应的扩展包来支持在上述二者上的部分监控。但是多数情况下,很多专业的监控以及运维还是需要定制化的监控界面,甚至很多大厂都自行开发监控和运维工具以求更精准和有效的运维。

总结

而此时的全栈已经很难和当初的全栈相提并论,能做到细分领域的全栈或者一专多能已经相当不易了。但是理想还是可以有的,能不能实现不重要,能作为前进的动力就好。

白月光虽好,但总是遥不可及;朱砂痣若有,牢牢把握住就好!

全栈不死,只是凋零;不是全栈淘汰了我们,而是时代淘汰了全栈!

文章到这里就结束了,最后路漫漫其修远兮,大数据之路还很漫长。如果想一起大数据的小伙伴,欢迎点赞转发加关注,下次学习不迷路,我们在大数据的路上共同前进!

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91960 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月12日
下一篇 2022年8月12日

相关推荐