您的位置:首页>>资讯中心>>行业资讯

软件技术更新速度很快,担心自己掌握的技术会过时?

上周,我在知乎上看到了一个问题,引起了一场激烈的讨论。他们说,现在编程技术更新速度很快,很多技术都会过时,那么什么技术不容易过时呢?有一段时间,我一时心血来潮,想写一个答案,没有期望大拇指的数量很快超过一千,成为一个流行的答案,没有期望有这么多的同行关注。只要利用现在的时间,我扩展了这篇文章,结合我的研发经验,然后进一步阐述,与研发学生分享。

把握最基本的原则和方法,你永远不会被淘汰。

我的IT已经工作了近30年,见证了整个IT的快速发展。从表面上看,技术发展迅速,特别是与用户直接接触的前端技术,包括人机交互部分,但事实上,计算机的基本技术和原理并没有改变。

如果让我重新学习计算机专业,我会认真学习几门课程,1:数据结构,2:算法,3:计算机系统结构4:操作系统,5:编译原理,6:计算机网络,7:数据库,8:软件工程。然后从自己的兴趣出发,学习与数字信号处理和数据分析相关的课程。我在这门课上学到的知识至少在30年前使用过,但现在仍在使用。我可以肯定地说,这门课的知识非常熟悉,技术水平一定很高。软件开发培训

例如,操作系统课程中介绍的生产者-消费者问题是一个经典问题。在许多情况下,您经常会遇到它。例如,需要在TDengine中进行查询和调度。只有当您完全了解生产者和消费者的问题时,您才能了解异步线程通信。在TDengine程序中,我们使用信号量将网络的异步操作转换为用户侧的同步操作。另一个例子是编译原则。在工作中,不太可能有任务要求你编写一个编译器,但在学习了编译原则之后,你将能够最大限度地优化你的程序,学习一种新的编程语言,写一个简单的标题。软件开发培训

就我个人而言,我最喜欢的是认真学习操作系统课程,因为它涉及到各种资源的管理和调度,包括CPU、内存、网络、外围设备等。世界上大多数IT系统都管理这种或那种资源。从抽象的角度来看,它与CPU、内存和外围设备的管理没有什么不同。因此,您可以使用操作系统类中学习的方法和算法来解决其他实际问题。

几十年来,这些计算机的所有基本原理和方法都没有改变。我们只是结合起来解决新问题,比如区块链和物联网场景下的时间序数据处理。因此,只要你掌握了最基本的原则和方法,你就永远不会被淘汰。

掌握基本原则和方法,也要学会创新。

对于底层基础软件的实现,许多基本原理和方法没有改变,但为什么产品的性能和市场竞争力存在很大差距?原因在于如何熟练地使用这些原则和方法。就像数学和物理公式一样,对复杂问题的分析也取决于你对这些公式的理解和应用。

以时间序列数据库为例,为实现水平扩展而采用的分区策略实际上是操作系统、数据库中的基本内容以及客户端服务器之间的通信,这也是计算机网络中最基本的传输协议。用于构建索引的基本索引方法等。一个好的产品功能是基于用户和市场需求,基于许多基本原则和方法的创新。

在时序场景中,物联网设备的规模可能达到数千万甚至数亿,每秒产生的数据可能高达数千万或数亿。面对如此大的吞吐量,普通数据库根本无法承受。在开发时序数据库时,我们应该考虑如何充分利用时序数据的特性进行分割,以及如何更好地实时构建索引,这些具有挑战性的实际问题的解决方案是创新。

以TDengine为例,为了更好地解决这些问题,TDengine从一开始就开发了自己的存储引擎,创新性地提出了一个数据采集点,一个表和超级表的概念。我们从传统的数据库中学习了WAL、SkipList等方法,同时对流行的LSMTree进行了很大的改变,去掉了树的层次结构,变成了只按时间段划分、按时间线划分的数据块。这种创新的存储引擎设计也使得TDengine与典型的Nosql存储模型相比,实现了标签数据与时间序数据的完全分离,不仅大大减少了标签重复存储造成的存储空间浪费,而且实现了多表之间的聚合查询,使得标签数据查询可以在毫秒级别返回。



上一篇: 2022以后云服务器的发展趋势

下一篇: 互联网行业本身变化很大