前言写过很多技术贴,今天换个维度写点别的话题,来聊聊程序员的职业发展 。
不管是对于大厂还是其他软件公司,都会有全栈工程师这个职位,而且这个职位的薪资待遇明显比其他同等级的职位高出不少 。
重赏之下必有勇夫,所以大家对这个职位的关注度更高一些也在情理之中 。虽然每个公司对于全栈工程师的要求以及定位都各不相同,但是大体上来看,全栈工程师大概需要有以下几个特质:
- 一个人有处理一条数据链路或者业务链条的能力,能有端到端的开发能力那就太好了
- 不仅要有开发能力,还要有一定的设计能力,毕竟你这条业务线的数据或者接口大概率还是会被其他业务线来使用的,所以必要的设计能力还是很重要的
- 除了代码编写以外,数据库的设计包括运维方面的相关东西也需要能hold住,毕竟这是一个闭环,你需要对其他人提供一整套系统或者模块
上面的要求就注定了全栈工程师不是你想做,想做就能做的,毕竟人才易得,全才难求 。
诸如NBA,有无数强力内线在禁区内利用身体天赋和华丽技术予取予求,也有无数顶尖后卫在弧顶和外线利用犀利突破和精湛射术翻江倒海,但是却很少有人能同时拥有内线和后卫的技术,能内能外从一打到五 。
所以全栈工程师是很多研发人员的final fantasy,作者曾经也有类似的理想 。但是随着时间的推进,技术的发展,作者感觉离这个目标越来越远,甚至可能永远也没办法成为全栈工程师了,那看到这篇文章的你,离这个目标还有多远呢?
如果想快速测试离全栈差多少,可以直接看文末最后一张图,看看那些技术图标你都认识多少?
十年前的全栈首先作者是做JAVA出身,所以这里就以十多年前的JAVA应用开发流程作为样例来进行讲解,但是我技术都是相信大同小异的,而语言只是实现技术的工具 。

文章插图
作者第一次接触到全栈大概是10年前,那时候作者也工作个3,4年,也有了点开发经验,那时候很是羡慕那些全栈大师,能一个人搞定所有的东西,任何客户现场的项目部署以及调试他一个人去就行了 。
现在回头看看那时候的全栈要求,相对来说还是比较简单的,所有的技术栈都不是很复杂,拼接到一起基本上就能满足基础的全栈需求 。
后端十多年前的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这种监控软件进行监控和运维即可 。
现在的全栈上面的全栈说得很简单,虽然实际情况会比上面描述得复杂一些,但是并没有复杂太多 。个人感觉这时候的全栈还是很有希望达到的 。
但是仅仅十年过去了,一切都已改变,完全看不出之前的模样了,到底发生了什么?
下面再来看看现在的全栈,作者认为只是粗略地列举了下,并不是全貌 。但就算如此,你会有什么感想呢?

文章插图
后端此时的后端已经被细分成数据接入,数据处理,数据存储,数据挖掘等多个数据处理流程 。数据已经成为了整个后端技术流转的核心,整个业务的流转基本上就是数据流转的过程 。
推荐阅读
- 做前端开发需要掌握什么技术?
- TCP 为什么需要三次握手?
- 中国最美的50个地方,我竟然只去过18个,你呢?
- 我们应该如何分辨PU皮革与真皮? pu皮是什么?
- 血性胸水肯定是恶性吗
- 嘴唇偶尔发麻什么病兆
- 眼肌痉挛吃什么药最好?
- 促甲状腺激素偏高是什么意思?
- 肉松小贝常温保存几天,肉松小贝要怎么保存-
- 想象中的大学生活和现实中的大学生活,想象中的大学和现实中的大学生活-
