你所听到的技术原理、技术本质究竟是什么?

职场的程序员们或多或少都受到过前辈或领导的指点,应该都听过这么一句话 “学技术不能光会搭建个环境,使几个API,要学习了解技术的本质”。可能实际听得比较多的是 “学习技术原理”这句。因此这两个点都会说到,会说一说区别及联系。程序员

原理,何为原理,技术原理到底在学什么?面试

本质,何为本质,怎么就算了解掌握技术本质了?redis

本文就来码一码技术原理和技术本质这两个东西。算法

1、技术原理

先说一下「技术原理」这个词,这个应该你们都很熟悉,往往提起甚至感到一丝丝痛苦和折磨,一线互联网公司面试官的最爱,常常拿来挑逗一下面试者,"知道xx技术的实现原理吗?能不能说一说"。数据库

技术原理即技术背后的 实现思想、架构设计、代码 ,学习一个技术的实现原理就是学习这三个方面的内容。缓存

这三个方面也是层层递进的关系,愈来愈具体。数据结构

  • 首先,思想是宏观的东西,构建起整个技术的理论支撑;
  • 其次,架构是思想的进一步推敲和论证的产物;
  • 最后,就是代码了,结合思想和架构设计变成一行行的可执行代码。

因此,你看学习技术原理的路线图和目标就出来了,第一,学习思想构建起宏观概念 ;第二,学习总体架构及局部架构掌握总体结构的组成和相互之间的关系;第三,学习代码的实现和逻辑。架构

举例说明一下,学习 "HashMap原理",这时候首先应该构建起的是它的数据结构知识即哈希表的概念和特色(其实若是再拔高一点,应当是先创建起各类数据结构和相互之间区别、特色及相关算法的思想和理论知识,固然这个要求就稍微高一些了),而后架构设计由于这是一个具体的类,因此这部分就是类中包含的核心方法及做用,最后就是深刻代码,学习具体的代码实现逻辑,好比put方法是怎么存入数据的,又在什么状况下会进行扩容等等。分布式

若是没有前面部分的思想和理论作支撑, 不建议直接上来就进入到代码细节,会学的很痛苦比较挣扎。发现概念和理论上的盲区,应及时补上,而后在继续代码的学习。memcached

2、技术本质

说完技术原理,下面看技术本质。简单理解,技术的本质就是解决问题,将解决问题的来龙去脉分别具体化研究,展开来讲本质就是除过上面说到的技术原理以外,还应该包括 技术所解决的核心问题 应用场景 以及 存在什么样的优点和不足

总结一下,就是如下3点内容:

  1. 技术解决的核心问题和应用场景
  2. 技术原理
  3. 技术特性

因此,你看学习技术本质的路线图和目标也就出来了,第一,掌握技术解决的核心问题和应用场景,即搞明白它能够用来干什么;第二,研究技术原理,搞明白它为何能够作到;第三,了解它的技术特性,搞明白它的优点在哪里。

拿redis来讲,它解决的核心问题是提供高性能的内存数据缓存服务。虽然说官方认为它还能够用做数据库和消息代理,但实际应用中更多做为数据的缓存服务。

技术原理上面专门作了介绍了,读者能够类比理解,这里就不在展开了。

技术特性便是该项技术与相关其余相似技术相比有什么牛逼的地方,拿redis和memcached比,多数据类型的支持就算redis的一个特性,持久化能力的支持也算是一个特性。特性在作技术选型的时候每每有着相当重要的做用。

搞清楚一门技术以上3点内容,才算得掌握到技术的本质。咱们再学习技术原理的时候,不妨再加把劲,窥一窥它的技术本质。

再带你们理解一下「本质」这个词,下面这句是摘自网上的一句话

IPFS本质上是一种内容可寻址、版本化、点对点超媒体的分布式存储、传输协议。

从面上看更像是一句定义,告诉你什么是IPFS,可是加上了本质二字,就让这句话看起来不是那么的简单,而支撑本质二字的背后就是IPFS这个技术的是内容可寻址,具备能够版本化、点对点、分布式传输的特性,解决的核心问题和应用场景就是标准化数据传输过程。

因此做者必定是窥透了这技术背后的本质内容而总结出这么一句话。但愿这里没有让你看糊涂。

当咱们再看到“xx的本质是xx”这种相似的话的时候,但愿你们能多思考思考这句话中本质背后的支撑是什么,有点跑题了,收回来。

3、总结

能够看到,技术本质包含了技术原理,也就是一种包含关系。

本文就是理清技术原理、技术本质的真正含义和关系,常常咱们对这些看似都懂的概念不去深究,而实际上真正搞明白这些东西可以帮助咱们搭建本身的知识体系,并且知识结构脉络十分清晰,不易混淆。在学习一门新技术或深刻研究一门技术的时候也会有一个清晰的方向和目标。

最后,随着学的东西愈来愈多,越日后你们就越会发现概念和理论(也就是思想)的重要性,有清晰的概念和理论体系做为支撑,能让咱们的学习事半功倍。


关注做者公号「风象南讲全栈」,作有思想的技术人。

相关文章
相关标签/搜索