成长经验系列之三-猜想-技术未来

  看了几个关于编程语言趋势的视频和文章,结合自身的一些工作经历和对技术的猜想,想讲讲自身对于语言趋势和市场趋势的看法。

  【不要把路走窄】

  1.语言入门难度与内卷

  同等条件下,语言入门难度越高,上手的难度越高,这一门语言的从业人员数量越少是毋庸置疑的。但真实的情况会更加复杂,应该是市场需求、上手难度、从业人员的薪资待遇等多个因素平衡的结果。现阶段360行,行行转码农的情形下,想要找到真正的性价比高地而人又很少的领域或者语言,是不太现实的。即便出现了新兴的产业需求大,从业人员少,后期一定会出现人员供过于求的情况,从而达到一种动态平衡。难度越低、薪资越高的语言和行业肯定是会特别卷的。

  所以,要把眼光放长远,从十年甚至二十年的维度,来看看,到底什么才是不容易变化的,抓住根本的东西,需求会变大的东西,不要畏难,也不要怕花太多时间。如果想保持自身的价值,这是一条必由之路,东西就那么多,肯定有搞到懂的那一天,过程中还是要找技巧,找方法,但无论如何,时间精力肯定是不会少花的。

  2.语言场景与公司业务场景

  一门语言的出现,往往伴随着解决业界比较烦恼的问题。或者是提升了性能,或者是降低技术门槛,或者是带来了特别大的便捷。从这个角度上看,一门语言的出现,本身是为了解决一些问题,所以只能在一些方面比较突出,它是无法描绘整个计算机世界的,比如说H5基本就是应用层,Java就是服务器应用,再往下会有操作系统,再往下是硬件,如果单单使用这一语言来解决市场的需求,那么很多其它方面的技术细节一定是在设计层面就被屏蔽掉了,你无法获取到整个技术体系的全貌。

  对于选定了一门语言,一定要搞清楚的是:这个语言本身是为了解决什么问题的,它处在哪一层,未来的需求会怎么样。搞清楚这些问题的目的,是为了保持警醒,如果说有新的平台,新的架构把这个语言和本身的生态都消灭了,那么对你来说,技术之路就会越来越窄。

  对于安定在某一个公司发展的,一定要注意的是:公司的业务方向往往是比较单一的,相对于语言本身来说,一个公司要你去解决的问题,一定不是这个语言的全部,尤其是像Java这种生态比较大的语言。如果说,你想依靠这个语言实现职业自由,那只关注公司的那点技术肯定是不够的,因为你所经历的项目也好,解决的问题也好,从10年的维度来说,是有限的,数得过来的,而且这个过程中技术本身在不断地更迭,那么10年之后,市场流行的你自己又掌握的还会剩下多少呢?

  从这两个角度上来说,一方面,我们要关注到自身使用的核心语言的一个生态范围,就是它能干什么,有个大概的了解,对于一些应用特别广泛而自己公司业务又不会涉猎的,要能够有些基础的储备。另一方面,需要做的,也是比较可能实现的,是依靠公司的业务体系,把这个技术挖深,吃透。比如Java可以从语言、框架、设计模式、网络协议、JVM、甚至到JNI、操作系统....整个相关的东西,都了解深入,透彻,这样在过了10年或者20年,才能够说有些积淀,否则一旦技术风向变化,市场变化,那对于你来说是很不利的。

  【Java与Golang】

  Golang的火爆,是随着微服务的流行开始的。有docker,K8s这些杀手级应用,而且有原生的优势。所以在微服务,高并发和多线程等领域,基本上Go有把Java取代的趋势。但是在生态方面,Go还远远不如Java。所以这两门语言,Java有存量项目和工程的优势,而且随着这么多年的发展,它的生态能够让它在各种环境下快速出活,并且这几十年的发展已经有大量的Javaer,这些人可以毫无障碍的搭建团队进行开发工作,应该说在未来相当长的一段时间里,它还是能稳坐王者的交椅;而Go是比较新生的,也是随着近几年微服务火起来之后,才在这个领域慢慢完善自身的生态,对于长期来看,我觉得Go不会在生态上完全的取代Java,这是不现实的,而对于高并发微服务等相关的业务,我觉得未来除了头部的平台公司之外,其它公司应该基本都会是在平台公司提供的云服务上进行组件搭配,自己实现一些定制化较高的业务方面的功能,慢慢达到各种组件甚至整个业务的上云的状态。

  【H5前端的趋势】

  H5搭配React,Vue已经有一统前端开发的趋势了。对于未来会落地的终端设备,H5可能会是端开发的大一统方案。对于现阶段出现的各种硬件的不适配,各种系统的性能不高,我觉得未来可能会出现类似JVM这种中间层,如果这个中间层能够解决各个端系统的适配,弥补现阶段H5落地上的一些缺陷,那这个语言可能又会是一个无法被取代的新型王者。在这个基础上,各终端工程师不断地完善这一生态,可以让它在各个场景下不断完善,不断被验证,形成自己的护城河。

  如果是想进入应用层领域的开发,这一条路可能会比较合适。相对于后台服务开发,这一层更接近用户,更能够直观地理解产品交互。在未来云端组件不断完善加强,一般的业务型后端开发可能慢慢在价值上就会显得不那么突出,反而前端更接近用户的体验,更了解产品的理念,能够更快地在一个细分领域找到风口。

  【感想】

  总的来说,比较重要的,一个是底层的基础,如果了解了操作系统层面的很多细节,那么对于各种语言来说,去掌控他们的维度会更高,我觉得这一层次可以去做各种功能类的,工具类的,或者云端对外服务,是核心的技术大师。

  对于衔接前端和底层的应用层开发来说,了解技术本身当然也很重要,另一个就是要了解业务,知道各种场景下怎么落地,未来能够合理搭配云端提供的各种服务来为业务赋能,我觉得可以称之为业务大师。

  而前端未来应该会大有可为的,在各种终端领域,能够设计出交互性、体验性比较强的产品,这一类人,我觉得可以称之为体验大师。

  三个方向这里都有些猜想,应该说都是比较有前途的,我们拭目以待。

原文地址:https://www.cnblogs.com/bruceChan0018/p/15023232.html