首页 > 编程语言 >编程知识提纯之法

编程知识提纯之法

时间:2023-06-17 18:55:10浏览次数:47  
标签:结构化 知识 事物 编程 原理 提纯

编程知识提纯,本质上就是将编程知识结构化。


引言

在“打造适合自己的知识库”一文中,讲到了打造知识库的一般步骤。其中整理固然是必要工作,而核心却在于知识提纯。

在“职业发展战术设计:构建可持续积累的职业优势”一文中,谈到:构建良好职业优势的一大基础支撑能力即是知识提纯能力。

信息过滤能力和知识提纯能力,是现代社会里职场人士的两大核心能力。即使从事自由职业,这两大能力也不可或缺。

结构化方法

编程知识提纯,本质上就是将编程知识结构化。为什么能够将编程知识结构化呢?因为编程知识是基于逻辑构建的,而逻辑是一个极具结构化特征的事物。

结构化特征:

  • 层次性: 事物的结构具有层次性,可以分为多层,上层的服务依赖下层的实现。
  • 组合性: 可以通过组合简单部件来构建复杂部件。
  • 逻辑性: 事物的内在具有很强的关联性,不是随机偶然的,可以运用心智去理解。
  • 整体性: 事物的各个子部分组成事物的整体,子部分的协作共同完成整体的功能。

编程知识很好地体现了结构化的特征:

  • 层次性:由基础概念相互联结而成,概念之间相互贯通;理解了基础概念,才能更好地理解各种原理和技术机制,否则欲速则不达。
  • 组合性:简单的知识能够组合出复杂的知识;简单的组件构成复杂的组件。
  • 逻辑性:软件的基础是数学与逻辑,毋需多言。
  • 整体性:体系化的编程知识的效用远大于孤立的编程知识的效用。

编程知识剖析框架

编程知识可以解析为五层结构: 原理与模型 - 结构与算法 - 设计与封装 - 限制与考量 - 操作与应用。

  1. 原理与模型:这是第一性原理所在的地方,即事物基于什么理念而建立,建立什么模型较为恰当。经典力学、相对论、量子论都是原理和模型,从实践中提炼而来,也用于指导实践。程序的原理与模型就是数学与逻辑的表达。

  2. 结构与算法:这是实现的基本层次,即事物的结构、组织、存储和关联,步骤、流程与变化方向。

  3. 设计与封装:这是设计的基本层次,在结构与算法的基础上进行封装,使之灵活可靠,实现各种关键质量属性。

  4. 限制与考量:这是设计的限制层次,需要重点考量什么因素,有哪些限制,对设计及决策的影响。比如软件开发要考虑法律政策的限制,不能做违法的事情;设计列车要考虑地理特征、路线资源调度限制等。

  5. 操作与应用:这是使用的层次。如何让事物更加安全易用方便,能够应用到哪些场合。

举一个本地缓存的例子:

  • 原理与模型: 邻近原则,近水楼台先得月,预先加载,从邻近的地方获取数据更加快速;
  • 结构与算法: 数据结构采用 HashMap(或缓存行),设计操作 HashMap(缓存行) 的方法;
  • 设计与封装: 考虑性能、并发安全、过期策略、命中统计等;
  • 限制与考量:考虑容量限制、过期时间、大数据量的存储空间占用、计时的细节;
  • 操作与应用: 内存缓存,作为数据库重要数据的缓冲区,提升性能。

通过以上五个方面,即可将“缓存”这个知识点透彻理解。

这个框架不仅仅限于理解编程知识,可以作为理解各类知识的通用框架。

技术思考框架

“抽象-思路-考量-优化-细节” 五步曲。基于“编程知识剖析框架”而构建。

  • 抽象:给用户提供怎样的抽象;
  • 思路:如何去实现它,基本的依据、结构、算法与实现;
  • 考量:工程应用上需要考虑哪些因素,做到安全可靠高质量;
  • 优化:在考量的基础上,从多个层面去优化和完善;
  • 细节:在优化的基础上,打磨细节,精益求精。

详见:“技术思考框架:抽象-思路-考量-优化-细节

知识梳理提纯

  • 识别原理、知识、经验、方法,培养要点提炼能力。
  • 按照上述框架结构化改造技术文摘。
  • 少而精。重要、精练、简洁为要。
  • 列成清晰宜读的条目形式。
  • 注重知识之间的关联性。
  • 保留文章原文链接。

原理-知识-方法-经验

  • 原理:事物何以存在的基础支撑。原理是对事物主要特征的勾勒。通常是事物的构成要素(部件)及关联(交互)。原理不涉及大量细节,仅仅是指明起决定性因素的部分。
  • 知识: 指明一个必达或潜在的联系。比如水在一个大气压的前提下温度达到100摄氏度会沸腾(液体汽化)。知识充实原理的细节部分。
  • 方法:实现某个目标的明确的步骤序列。方法使得原理和知识可以应用于现实的目标。
  • 经验:特定问题或场景的特定方法或巧妙方法。比如复利的七二法则。经验或是由某种原理推导而得,或是还未理解原理但确实奏效。经验是更有效率的方法,但应用到不适用的场景会导致错误或失败。

基本准则

  • 能够一行命令说清楚的,不用文字。
  • 能够用一行文字说清楚的,删除不必要之语。
  • 去除引述、衔接、啰嗦之语。
  • 去除含糊之语。如果读不懂,且只是解释性语句,直接删除。

删减的勇气

文字太多,阅读会耗时,也很难形成清晰有力的印象。古人云:“把书读薄”,正在于此。格言为什么有力?正因其短小、精悍、有力。而今之文多赘语。

做知识提纯面对的一个问题是: 如何大幅度删减不必要的文字,同时保留文章的精髓?想删而不敢删,似乎字字都有联系,下不了手去大幅度删减,这可能是很多想做知识提纯工作的人要面对的一个问题。

解决这个问题的办法:

  • 保留原文链接。潜在风险:原文被删除或网址不可达。
  • 如果原文写得特别精彩,保留原文全文亦可(可作为自己写文章的参考)。
  • 提取原文的关键字、关键内容。
  • 保留原文的行文逻辑关联。

稍微做点知识提纯工作就会发现,很多网络文章都很啰嗦,就说明这篇文章质量不怎么样,给它润色修改都是很耗时的工作,可以直接舍弃,寻找更好的文章。很多文章为了保持所谓的生动有趣,掺杂了太多水分,反而导致文章质量下降。实际上也是浪费读者的时间。寸寸光阴寸寸金。节省读者的时间才是最重要的。

因此,我的观点是:宁可文章写得“枯燥”一点,也要保证干货的密度很大。牛逼的人往往就是有耐心读那些干货很多但略显枯燥的东西。太枯燥了也不好,可能直接劝退。实际上,一个事物是否枯燥,取决于一个人的知识和学问修养。相对论对于我来说或许很枯燥,但对于物理学家来说可能就是好玩的东西。

好文章的特征:

  • 图文并茂;
  • 文字简练朴实;
  • 行文衔接少,干货多。

一点技巧

  • 拆分条目。大段的文字不适合阅读,可以拆分成多个条目,每一行表达一个点。
  • 加标题。让段落内容的中心清晰明确,提纲挈领。我一般加两级标题 H2,H3, 偶尔 H4。
  • 知识小卡片。不了解的地方,可以向 AI 提问,添加内容,做成知识小卡片,作为补遗。

拆分成条目的例子

比如下面的大段文字。看到这种文字是不是很头疼?很难读下去?脑中一团浆糊。

拆分成条目的形式之后:每一行都是一个小的知识点,清晰悦目,是不是宜读多了?

另外还有一个细节点:英文单词和汉字最好分开一个空格。这是写论文的基本要求,但是很多人都忽视了。

有人可能说这些细节不重要。但我深信:把事情做细致,也是让自身变得更好的一种途径。很多事情的益处,只有自己才能体会。

小结

知识提纯能力是一项非常重要的能力。说它是现代职场中应当具备的一项核心竞争力也不为过。在知识社会里,知识是第一生产原材料。如何运用知识的力量,转化成可观的效益,是每个人都值得去思考和探索的问题。

标签:结构化,知识,事物,编程,原理,提纯
From: https://www.cnblogs.com/lovesqcc/p/17488070.html

相关文章

  • opcenter camstar designer基础知识-- Categories
    “类别”窗口用于定义新的“Storage”和“table”类别。类别如下  左窗格包含选择树,其中列出所有可用的类别。右键单击此选择窗格,将打开具有以下选项的快捷菜单: • addcategoriesdefinition添加类别定义• removecategoriesdefinition 移除类别定义下表定......
  • Reactive Extensions 响应式扩展 用于事件驱动编程的库,具有可组合的声明性模型
    响应式扩展这个存储库包含四个库,它们在概念上是相关的,因为它们都与LINQoverofthings序列有关:ReactiveExtensionsfor.NET又名Rx.NET或Rx( System.Reactive ):一个用于事件驱动编程的库,具有可组合的声明性模型AsyncRx.NET(实验性预览)(System.Reactive.Async):Rx的实验......
  • 零代码编程:用ChatGPT打造小宇宙播客下载软件2.0
    之前用ChatGPT写了一个简单的小宇宙播客下载应用,但是实际使用一段时间后,发现有几个问题,比如:如果文件名中有一些特殊符号,下载不成功;有些m4a格式的也下载不成功;文件大下载的慢;根据这些情况,进行完善,利用ChatGPT生成了小宇宙播客下载软件2.0版本:在ChatGPT输入如下提示词:你现在是一个Pyt......
  • 当前高校火灾隐患问题分析及预防校园火灾知识介绍
    安科瑞虞佳豪近几年,随着高校的扩招,高校的师生也在不断增加,办学规模不断扩大。而校园作为特殊的公共场所,都有个共同特点:场地分散、积大、管理人员少,学生人数众、活泼好动、防范意识差。学校的实验室、学生活动中心、运动场、图书馆、学生宿舍、餐厅、教学楼等公共场合都存在电气火灾......
  • 【技术积累】Linux中的基础知识【二】
    Linux的发行版本Linux是一个开源操作系统,有许多发行版,每个发行版都有自己的特点和优势。以下是一些常见的Linux发行版:Ubuntu:Ubuntu是最受欢迎的Linux发行版之一,它拥有一个庞大的社区,提供了易于使用的界面和大量的软件。Debian:Debian是最古老的Linux发行版......
  • 语音社交源码知识语音房间功能的实现
    当今,快节奏的社会为现在的很多年轻人带来了压力,每到深夜或是压力大的时候,很多人都想找人倾诉一下自己心里的悲伤与痛苦,以此来释放一下自己的压力,然而,这是一个独生子女的社会,大部分家庭都只有一个孩子,并且每天工作繁忙又加班到很晚的人根本没有时间或是精力去交朋友,所以这些人没有人......
  • 板卡知识
    板卡一般是分模拟量、数字量、开关量,脉冲量,,板卡只能读电压1,模拟量:反映的是电量测量数值(如电流、电压),模拟量是指变量在一定范围内连续变化的量,简单来说就是在时间上或数值上都是连续的物理量,注意这里的“连续”,我们把表示模拟量的信号叫做模拟信号,把工作在模拟信号下的电子电路叫......
  • 语音社交源码知识语音房间功能的实现
       当今,快节奏的社会为现在的很多年轻人带来了压力,每到深夜或是压力大的时候,很多人都想找人倾诉一下自己心里的悲伤与痛苦,以此来释放一下自己的压力,然而,这是一个独生子女的社会,大部分家庭都只有一个孩子,并且每天工作繁忙又加班到很晚的人根本没有时间或是精力去交朋友,所以这......
  • 硬件知识点
    1,ECU是一个控制核心,对电路板的控制2,一般汽车通讯是走Can通讯,主要有三种通讯方式:UDS(用的较多),XCP,CCP3,EOL相对ECU多了些电机其他东西,eol是一个总成4,NIcan卡一般是有一个120欧姆的电阻,现在NIcan卡自带120欧姆电阻,可以开启,也可以不打开5,串口通讯,RS232通讯,一般距离3米左右的距离,只能......
  • 【雕爷学编程】Arduino动手做(113)---5110液晶屏模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是......