<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Flash's blog]]></title><description><![CDATA[Flash's blog]]></description><link>https://coolwrite.cn</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 09:26:08 GMT</lastBuildDate><atom:link href="https://coolwrite.cn/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[迟到的年终总结]]></title><description><![CDATA[要给2月画上一个句号了，今天是24年2月29号，实际上，我想写的是我23年的年终总结。 距离元旦，已经过去2个月了，具体春节，也已经有20天，想一想还是记录下自己的2023。
2023年开始，自己身上的责任多了一份——有了一个可爱的女儿，同时也有了一份当父亲的幸福，不需要多做什么，看着她就觉得生活的美好，和她在一起就会感到幸福和快乐，她生病时，会感到焦虑急躁，希望她一切都好，这愿望有点理想，也许经历本身就是美好。
大概4/5月份的时候，开始了一些奔波，老家、北京每周跑一趟，直到7月底从北京搬家，...]]></description><link>https://coolwrite.cn/6lf5yiw55qe5bm057ui5oc757ut</link><guid isPermaLink="true">https://coolwrite.cn/6lf5yiw55qe5bm057ui5oc757ut</guid><dc:creator><![CDATA[Flash]]></dc:creator><pubDate>Thu, 29 Feb 2024 13:18:22 GMT</pubDate><content:encoded><![CDATA[<p>要给2月画上一个句号了，今天是24年2月29号，实际上，我想写的是我23年的年终总结。 距离元旦，已经过去2个月了，具体春节，也已经有20天，想一想还是记录下自己的2023。</p>
<p>2023年开始，自己身上的责任多了一份——有了一个可爱的女儿，同时也有了一份当父亲的幸福，不需要多做什么，看着她就觉得生活的美好，和她在一起就会感到幸福和快乐，她生病时，会感到焦虑急躁，希望她一切都好，这愿望有点理想，也许经历本身就是美好。</p>
<p>大概4/5月份的时候，开始了一些奔波，老家、北京每周跑一趟，直到7月底从北京搬家，前几天熬了几个晚上收拾东西，但零碎的东西还是很多，原来家里这么多东西了已经，来北京后还没有一个人搬过家，幸好搬家师傅很好，也很耐心，花的时间多一些，但还算比较顺利。离开北京，但也没有完全离开，只是居住的地方换到了北京边上，每天上班还是会来北京，还好距离并不远。</p>
<p>工作上变化不大，但比较忙、比较累，并不是活多的那种，而是心态上的，还有就是准备一些大促活动相关的事情，也导致有段时间的心烦。我还是很感谢目前的这份工作的，也是对目前自己的能力并没有太大的自信，外面的环境也很多变，自己只能更多的去需求学习、成长、武装自己。</p>
<p>生活上经历了很多糗事，但也有一些好的事情，首先对自己的了解、认识多了一些。了解了正念冥想的一些皮毛，让自己多少都会内心平静、安宁一些。看待自己、别人也能和善、坚定一些。过去会有很多欲望，现在觉得当下就很好，我不必太关注纠结于当前的条件或环境，已经很好，顾虑少了很多，要做的只是为了更好去努力。</p>
<p>追求自己的能力提升、成长方面，确实松散了很多，越来越认识到懒惰才是我们的原罪的道理，要想不干一个事情，总有千千万万个借口和理由，虽也有一些新的尝试，但这一年并没有让自己下定决心真正努力去做什么，或许，还是对自己认识的不够，还不够成熟吧。希望，24年的自己能有一番积累。</p>
<p>不知不觉，人已经到中年了，看目前的自己，状态尚且可以，也许中年并没有什么可怕的，可怕的是固步自封，自己想象出来的，一些模糊不清的恐惧与欲望。</p>
<p>回归当下、安在当下，在外界刺激与回应直接，总还有那么0点x秒的时间，容我们思考、选择一下。即使还是原来的决定，但后面走的路还是会清楚、明确了一些，就也许就是我所要追求的自由了。</p>
<p>我们无法改变他人，对于一些不满、悔恨，能够控制的，只能是从自己出发，由内而外的去改变、去修炼属于自己的处世哲学。</p>
]]></content:encoded></item><item><title><![CDATA[Jvm中gc的算法演进]]></title><description><![CDATA[垃圾回收是JVM的一大功能模块，面试中经常会被问到有哪些垃圾回收算法，那么这些垃圾回收算法是如何被设计出来的呢？首先要回到根本的问题上来。
问题的起源：为何需要垃圾回收
在早期编程语言中，程序员需要手动管理内存：分配内存并在不需要时释放。这一过程容易出错，导致内存泄漏（未被释放的内存）或悬挂指针（指向已释放内存的指针），严重影响程序稳定性和性能。为解决这些问题，垃圾回收机制应运而生，目的是自动检测并回收不再被程序使用的内存。
1. 标记-清除算法（Mark-Sweep）
JVM堆内存用于存储Ja...]]></description><link>https://coolwrite.cn/jvmgc</link><guid isPermaLink="true">https://coolwrite.cn/jvmgc</guid><dc:creator><![CDATA[Flash]]></dc:creator><pubDate>Wed, 31 Jan 2024 10:32:43 GMT</pubDate><content:encoded><![CDATA[<p>垃圾回收是JVM的一大功能模块，面试中经常会被问到有哪些垃圾回收算法，那么这些垃圾回收算法是如何被设计出来的呢？首先要回到根本的问题上来。</p>
<h3 id="heading-kirpl67popjnmototbfmupdvvjrkulrkvzxpnidopohlnoplnl7lm57mllyqkg"><strong>问题的起源：为何需要垃圾回收</strong></h3>
<p>在早期编程语言中，程序员需要手动管理内存：分配内存并在不需要时释放。这一过程容易出错，导致内存泄漏（未被释放的内存）或悬挂指针（指向已释放内存的指针），严重影响程序稳定性和性能。为解决这些问题，垃圾回收机制应运而生，目的是自动检测并回收不再被程序使用的内存。</p>
<h4 id="heading-1-mark-sweep">1. 标记-清除算法（Mark-Sweep）</h4>
<p>JVM堆内存用于存储Java对象，对于堆内存如何管理就需要有些考究了，首先有一块空白内存等待被使用。当新对象需要被分配空间的话，我们可以采用简单直接的遍历方式按需分配即可，等到分配的对象不需要时，则需要清理对应空间，后面再创建新对象时可以使用已回收空间，这就是我们直接想到的标记-清除算法：</p>
<p><img src="https://staticcdn1-5.umiwi.com/epms_ebook/1c6d91fe9fbf6b0fe7ef97a55a43304a.jpg?x-oss-process=image/resize,w_2560,m_lfit" alt /></p>
<p>这种方法简单直接，但它的问题是内存碎片化，零碎的内存多了，当一个新的大的对象要创建时，会遇到连续的空间不够的情况，这就需要对已经存活的对象进行迁移地址，这影响到了内存分配效率。</p>
<h4 id="heading-2-copying">2. 复制算法（Copying）</h4>
<p>为解决内存碎片问题，复制算法被引入。它将内存分为两个相等的区域，每次只使用其中一个。垃圾回收时，算法会将活动对象从当前区域复制到另一个区域，然后清除当前区域的所有对象，从而避免碎片化。</p>
<p><img src="https://staticcdn1-5.umiwi.com/epms_ebook/0ae1829f51d3300b1698c732818fba5b.jpg?x-oss-process=image/resize,w_2560,m_lfit" alt /></p>
<p>赋值算法依然有其局限性：</p>
<ol>
<li><p><strong>内存利用率</strong>：复制算法需要将内存分成两个区域，一次只使用其中一个区域来存放对象。这意味着在任何时刻，有一半的内存空间不被利用，从而降低了内存的有效利用率。</p>
</li>
<li><p><strong>对象复制开销</strong>：虽然复制存活对象到另一区域可以避免碎片化，但这个过程需要复制对象，并更新引用这些对象的所有指针。对于存活对象较多的场景，这种复制动作可能会带来不小的性能开销。</p>
</li>
</ol>
<p>这就导致在遇到<strong>大对象</strong>（涉及到对象不断复制复制）<strong>、对象多</strong>的情况下，也会有性能问题。</p>
<h4 id="heading-3">3. 分代收集算法</h4>
<p>分代收集算法基于这样一个观察：不同对象的生命周期不同。因此，JVM的内存被划分为年轻代（Young Generation）和老年代（Old Generation），以不同的方式管理不同寿命的对象。</p>
<ul>
<li><p><strong>年轻代</strong>：新创建的对象首先被分配到年轻代。年轻代进一步细分为Eden区、From Survivor区和To Survivor区。大部分对象在这里被快速回收。</p>
</li>
<li><p><strong>老年代</strong>：经过多次垃圾回收依然存活的对象，会被移动到老年代。老年代的对象生命周期较长，垃圾回收频率较低。</p>
</li>
</ul>
<h4 id="heading-4-edenfromto">4. Eden区、From、To区</h4>
<ul>
<li><p><strong>Eden区</strong>：新生成的对象首先被分配到这里。</p>
</li>
<li><p><strong>From和To Survivor区</strong>：用于实现复制算法的一部分。在每次年轻代垃圾回收时，存活的对象会从Eden区和一个Survivor区（例如From）复制到另一个Survivor区（例如To），然后清空Eden区和之前的From Survivor区。</p>
</li>
</ul>
<h4 id="heading-5-mark-compact">5. 标记-整理算法（Mark-Compact）</h4>
<p>用于老年代的标记-整理算法，它在标记阶段后不是简单地清除未标记对象，而是将所有存活的对象移动到内存的一端，然后清理边界以外的内存，从而解决内存碎片问题，适用于老年代中对象生命周期较长的特点。</p>
<h3 id="heading-kirnu5porroqkg"><strong>结论</strong></h3>
<p>JVM的垃圾回收机制通过引入复制算法、分代收集算法、Eden区、From/To区的概念，以及标记-整理算法等技术，有效地解决了内存管理中的关键问题，如自动内存回收、内存碎片化，以及不同生命周期对象的高效管理。这些技术的引入，是基于对程序内存使用模式的深入理解和长期观察的结果，目的是优化内存回收过程，提高程序性能和稳定性。</p>
]]></content:encoded></item><item><title><![CDATA[活在当下与正念]]></title><description><![CDATA[我们经常说要活在当下，意思好像是在表达我们经常并没有活在当下，那么活在当下到底意味着什么？如何才能活在当下呢？ 简单来讲，活在当下是说无需对未来的不确定性过多焦虑，回归内心的平静。我们都知道“焦虑”并不能解决问题，让内心平静、克服自己的情绪、理性思考、积极行动才是正确的生活态度与方式，但是我们对自己一味强硬地要求，发出指令施以控制，却并不能让自己回归平静状态。想要控制往往会适得其反，会让在一些无所谓的事情上花费更多精力，甚至上瘾，比如说对手机上瘾。关于这种现象的一种解释是我们对自我的控制系统是脆...]]></description><link>https://coolwrite.cn/5rs75zyo5b2t5lil5lio5q2j5b1</link><guid isPermaLink="true">https://coolwrite.cn/5rs75zyo5b2t5lil5lio5q2j5b1</guid><dc:creator><![CDATA[Flash]]></dc:creator><pubDate>Sun, 23 Jul 2023 12:42:26 GMT</pubDate><content:encoded><![CDATA[<p>我们经常说要活在当下，意思好像是在表达我们经常并没有活在当下，那么活在当下到底意味着什么？如何才能活在当下呢？ 简单来讲，活在当下是说无需对未来的不确定性过多焦虑，回归内心的平静。我们都知道“焦虑”并不能解决问题，让内心平静、克服自己的情绪、理性思考、积极行动才是正确的生活态度与方式，但是我们对自己一味强硬地要求，发出指令施以控制，却并不能让自己回归平静状态。想要控制往往会适得其反，会让在一些无所谓的事情上花费更多精力，甚至上瘾，比如说对手机上瘾。关于这种现象的一种解释是我们对自我的控制系统是脆弱的，一旦有什么风吹草动，它会首先崩溃，这也就是我们越想摆脱玩手机的状态，却又深深陷入其中无法自拔的原因。</p>
<p>我就是手机重度上瘾的人，这里有个判断依据，具体判断的要点列举如下（X代表手机），如果在对应项上是符合你的情况的话，都算1分，最后上瘾程度分布为：轻微（2~3分）、中等（4~5分）、严重（6~7分）</p>
<ul>
<li><p>使用X比你想象中的时间更长</p>
</li>
<li><p>想要减少或不再使用X，但做不到</p>
</li>
<li><p>花费大量时间使用X，或是花费大量时间从使用X中恢复元气</p>
</li>
<li><p>渴望并冲动地想使用X</p>
</li>
<li><p>由于X的存在，你没法完成工作、家庭或学校里该做的事</p>
</li>
<li><p>就算X导致人际关系出问题，也继续使用</p>
</li>
<li><p>由于X而放弃重要的社交、事业或娱乐活动</p>
</li>
<li><p>不停地使用X，哪怕它让你置身危险当中</p>
</li>
<li><p>需要更多的X来达到你想要的效果</p>
</li>
<li><p>产生了使用更多X方可缓解的戒断症状</p>
</li>
</ul>
<p>当然，除了对手机上瘾，我还伴随有焦虑症、拖延症、强迫症的系列缺点，一直想要从这些挣脱出来，却依旧处于错乱、迷茫、浑浑噩噩的状态。我有意无意间找寻着方法，直到最近有了一些启发。</p>
<p>到底如何缓解自己的焦虑、摆脱上瘾、活在当下？一个有效的方法是使用“正念”（Mindfulness）。简单介绍一下“正念”的概念：回归、观察自己当下事情的本身，不评判。（百科：正念是一种自我调节的方法，强调有意识地觉察、将注意力集中于当下，对当下的一切都不作评判。）这里的重点是：不评判，只是调用自己的意识观察就好。你可以认为它是一种心理学上的名词，但一些脑科学方面的研究表明，正念的练习是会影响大脑，是可以帮助我们摆脱上瘾的。（参见：《欲望的博弈》）</p>
<p>正念的练习，可以随时随地进行，比如说关注自己的呼吸就是一种简单的方式。正念的高手甚至会一直处在正念的状态当中，他们对自己当下正在做的事有所觉知。作为一个初学者，目前我也只能是有意识的状态下去练习，经过了一段时间的尝试，目前给我的感觉确实是对自己处理焦虑上很有帮助。让自己能够意识到将关注点回归到当下的事情上，尽管自己还是对手机上瘾，但偶尔也能有意识的发现，而不是无意识的陷入其中。正念相关的书籍也很多，其中基本包括：《正念的奇迹》、《和繁重的工作一起修行》、《一平方米的静心》、《欲望的博弈》，它们都从不同侧面展开介绍正念的作用、练习的方式、方法等内容。</p>
<p>活在当下是一种状态，而正念是方式方法。</p>
]]></content:encoded></item><item><title><![CDATA[计算机网络基础（一）]]></title><description><![CDATA[计算机网络研究的本质问题：计算机之间的信息传递。现在让我们站在一个设计者的角度，假设没有计算机网络的时候，考虑如何实现这样的目的。
首先，将问题简化为2台计算机要想实现通信，首先可以想到的是，用一根线连接2台计算机，通过它来实现信息的传递。那这个线就被叫作介质。这里介质的选择，可以是光纤、同轴电缆等。而数据是需要通过转换为物理信号来进行传递的，计算中的0 1组合通过编码转换为电信号，然后再通过介质进行传递，接收方接收到电信号，再通过解码转换为0 1组合，完成传递。完成编解码的工具就是调制解调器。...]]></description><link>https://coolwrite.cn/6k6h566x5py6572r57uc5z656ga77yi5lia77yj</link><guid isPermaLink="true">https://coolwrite.cn/6k6h566x5py6572r57uc5z656ga77yi5lia77yj</guid><category><![CDATA[General Programming]]></category><dc:creator><![CDATA[Flash]]></dc:creator><pubDate>Fri, 14 Jul 2023 08:26:10 GMT</pubDate><content:encoded><![CDATA[<p>计算机网络研究的本质问题：计算机之间的信息传递。现在让我们站在一个设计者的角度，假设没有计算机网络的时候，考虑如何实现这样的目的。</p>
<p>首先，将问题简化为2台计算机要想实现通信，首先可以想到的是，用一根线连接2台计算机，通过它来实现信息的传递。那这个线就被叫作介质。这里介质的选择，可以是光纤、同轴电缆等。而数据是需要通过转换为物理信号来进行传递的，计算中的0 1组合通过编码转换为电信号，然后再通过介质进行传递，接收方接收到电信号，再通过解码转换为0 1组合，完成传递。完成编解码的工具就是调制解调器。当然如果是Wifi的场景，介质就变为了电磁场，原理还是类似的。</p>
<p>软件开发人员，其实无需关注上述的过程，这里还是用到分层的理念，将底层硬件层面传递信息的过程进行对上层的屏蔽，划分出自己独有的层次，也就是物理层。</p>
<p>然后，问题变为很多台计算机要想实现相互通信，那么只依赖一根线就无法实现了，除了很多跟线之外，还需要为每台计算机分配一个地址，也就是MAC地址。就是 数据链路层。研究的对象是：上层提供的信息，如何在识别到MAC后，以某种协议，将数据准确发送到指定的MAC的 计算机中。</p>
<p>如果计算机特别特别多怎么办？直接连接？需要引入网络层了</p>
<p>数据链路层研究单到单，点到点的玩法，网络层研究的是整体的玩法。整体数据传输的过程。</p>
<p>也即：数据链路层研究通过网线直接相连的数据传输，网络层研究的是整个计算机网络中的任意机器的数据传输，不局限于网线直连的计算机。</p>
<p>由于传输过程中源MAC和目的MAC会随着传输的进行不断更迭，需要引入一个唯一标识最初请求来源的那台机器，即IP地址。用于唯一标识网络中的计算机，不关心其中跨越了多少MAC。（<strong>整个网络上传输的唯一标识</strong>KEY）</p>
]]></content:encoded></item><item><title><![CDATA[计算机基础-笔记：内存管理]]></title><description><![CDATA[英特尔x86架构的内存划分主要包括实模式和保护模式两种模式。
实模式是一种兼容早期x86处理器的模式，它允许程序直接访问物理内存。在实模式下，内存被划分为若干个64KB的段，每个段有一个段基地址和一个段限长，程序可以通过偏移量来访问段内的任意地址。但是实模式下没有任何内存保护措施，程序可以随意访问所有内存地址，这会导致很多安全问题和稳定性问题。
保护模式是一种更高级别的模式，它提供了更多的内存保护和安全性。在保护模式下，内存被划分为若干个分页的虚拟地址空间，每个虚拟地址被映射到物理内存中的一个物...]]></description><link>https://coolwrite.cn/6k6h566x5py65z656galeesloiuso8muwghewtmoeuoeeqhg</link><guid isPermaLink="true">https://coolwrite.cn/6k6h566x5py65z656galeesloiuso8muwghewtmoeuoeeqhg</guid><dc:creator><![CDATA[Flash]]></dc:creator><pubDate>Sun, 26 Mar 2023 15:10:20 GMT</pubDate><content:encoded><![CDATA[<p>英特尔x86架构的内存划分主要包括实模式和保护模式两种模式。</p>
<p>实模式是一种兼容早期x86处理器的模式，它允许程序直接访问物理内存。在实模式下，内存被划分为若干个64KB的段，每个段有一个段基地址和一个段限长，程序可以通过偏移量来访问段内的任意地址。但是实模式下没有任何内存保护措施，程序可以随意访问所有内存地址，这会导致很多安全问题和稳定性问题。</p>
<p>保护模式是一种更高级别的模式，它提供了更多的内存保护和安全性。在保护模式下，内存被划分为若干个分页的虚拟地址空间，每个虚拟地址被映射到物理内存中的一个物理地址。程序可以通过虚拟地址来访问内存，操作系统负责将虚拟地址转换为物理地址，并保护程序不访问不属于它的内存空间。保护模式下还提供了一些高级内存管理功能，如虚拟内存、页面交换和内存保护等。</p>
<p>在保护模式下，内存分为四个不同的区域：内核区、用户区、I/O区和BIOS区。内核区是操作系统和内核驱动程序使用的内存区域，它拥有最高的内存访问权限，可以直接访问所有物理内存。用户区是用户程序可以访问的内存区域，它受到保护，只能访问其自身的内存空间。I/O区是用于访问I/O设备的内存区域，它不受内存保护控制，因为它必须与外部设备交互。BIOS区是保留给BIOS程序使用的内存区域，它也不受内存保护控制。</p>
<p>总之，英特尔x86架构的内存划分主要包括实模式和保护模式两种模式。保护模式提供了更高级别的内存管理和保护措施，可以帮助操作系统和应用程序提高安全性和稳定性，同时也提高了程序的性能和效率。</p>
<p>除了实模式和保护模式，英特尔x86架构还有一些其他的内存划分机制，例如分页机制、段页式内存管理等。</p>
<p>分页机制是保护模式下常用的内存管理方式，它将虚拟地址空间分成大小相等的页，每个页都映射到物理内存中的一个物理页框。操作系统通过页表来管理虚拟地址和物理地址的映射关系，当程序访问一个虚拟地址时，操作系统会检查页表，将虚拟地址转换为物理地址，然后访问物理地址。</p>
<p>段页式内存管理是一种混合内存管理方式，它将虚拟地址空间分成若干个段，每个段又分成若干个大小相等的页。段页式内存管理既保留了段式内存管理的优点，又克服了它的缺点。它能够有效地实现内存保护和动态分配内存，同时又能够提高内存的利用率和访问速度。</p>
<p>在现代计算机中，内存分为多层缓存，例如L1、L2、L3缓存等。缓存是为了提高内存访问速度而设计的，它能够暂存最近访问的数据和指令，提供更快的访问速度。缓存的实现可以通过硬件或者软件来实现，它的大小、结构和算法等都会影响计算机的性能。</p>
<p>总之，英特尔x86架构的内存划分机制包括实模式、保护模式、分页机制、段页式内存管理等。这些机制能够提供不同级别的内存保护和管理功能，帮助操作系统和应用程序提高安全性和稳定性，同时也提高了程序的性能和效率。内存管理是计算机系统中非常重要的一部分，它的设计和实现直接影响着计算机的性能和可靠性。</p>
]]></content:encoded></item><item><title><![CDATA[计算机思维——模块化与等价性]]></title><description><![CDATA[模块化、等价性是计算机思维中的两个核心设计思想。通过很多简单的模块组合出整体的功能，通过等价性原理，将一个复杂问题进行拆解为多个简单为题，进而得出复杂问题的解。这样的设计思路才使得计算机由最初的不断复杂的演化过程、转变为通过简单模块实现通用计算机的方式。
以香农二进制逻辑电路为例。它是一种将逻辑函数表示为二进制信号的技术。在这种电路中，逻辑函数被分解成多个子函数，每个子函数被实现为一个逻辑门。逻辑门有不同的类型，如与门、或门和非门等。这些逻辑门被组合成一个电路，从而实现逻辑函数。这种分解和组合的...]]></description><link>https://coolwrite.cn/6k6h566x5py65ocd57u04ocu4ocu5qih5z2x5yyw5lio562j5lu35ocn</link><guid isPermaLink="true">https://coolwrite.cn/6k6h566x5py65ocd57u04ocu4ocu5qih5z2x5yyw5lio562j5lu35ocn</guid><category><![CDATA[Computer Science]]></category><dc:creator><![CDATA[Flash]]></dc:creator><pubDate>Sun, 19 Mar 2023 15:46:46 GMT</pubDate><content:encoded><![CDATA[<p>模块化、等价性是计算机思维中的两个核心设计思想。通过很多简单的模块组合出整体的功能，通过等价性原理，将一个复杂问题进行拆解为多个简单为题，进而得出复杂问题的解。这样的设计思路才使得计算机由最初的不断复杂的演化过程、转变为通过简单模块实现通用计算机的方式。</p>
<p>以香农二进制逻辑电路为例。它是一种将逻辑函数表示为二进制信号的技术。在这种电路中，逻辑函数被分解成多个子函数，每个子函数被实现为一个逻辑门。逻辑门有不同的类型，如与门、或门和非门等。这些逻辑门被组合成一个电路，从而实现逻辑函数。这种分解和组合的过程是模块化的体现。</p>
<p>模块化是一种将大型系统分解为更小、更易于管理的部分的技术。在电路中，逻辑函数被分解成多个子函数，每个子函数被实现为一个逻辑门。这些逻辑门可以进一步分解成更小的子函数，直到达到最小的单元为止。这种分解使得电路的设计和开发更加容易，也使得电路更易于维护和升级。</p>
<p>当今的计算机科学领域中，模块化和等价性是两个非常重要的概念。在这篇文章中，我们将讨论这些概念及其在计算机思维中的作用。</p>
<p>模块化是将一个大型系统分解成小型且易于管理的模块的过程。在计算机科学中，模块化意味着将程序分成多个功能相对独立的部分，每个部分完成特定的任务，并且这些部分可以被独立地编写、测试和调试。这种方法可以提高程序的可读性、可维护性和可重用性。</p>
<p>在计算机程序中，模块化的概念通常通过函数、类和模块等方式实现。函数是一段可以重复使用的代码块，可以接受参数并返回值。类是一个包含数据和函数的模板，可以创建多个实例，每个实例可以有自己的数据和函数。模块是一组相关函数和类的集合，可以在程序的不同部分重复使用。</p>
<p>等价性是指两个或多个东西在某些方面具有相同的特性。在计算机科学中，等价性通常是指两个或多个程序或算法在执行相同任务时产生相同的结果。在程序设计中，程序的等价性通常是通过单元测试和集成测试来验证的。这些测试可以确保程序的每个部分都能够按照预期工作，并且当这些部分组合在一起时也能按照预期工作。</p>
<p>模块化和等价性在计算机思维中的应用非常广泛。模块化可以帮助我们在设计和开发程序时更有效地组织代码，使其易于管理和维护。等价性可以帮助我们确保程序的正确性和一致性，并减少代码错误的风险。</p>
<p>总之，模块化和等价性是计算机科学中非常重要的概念。通过使用这些概念，我们可以更有效地设计、开发和维护计算机程序，同时确保程序的正确性和一致性。</p>
]]></content:encoded></item><item><title><![CDATA[身份认同（identity）]]></title><description><![CDATA[生活中我们往往拥有着多个身份，既是家庭中的成员，又是公司职场中的成员，可能也是某个兴趣小组的成员。相关的一个概念——“身份认同（identity）”能解释很多身份相关的问题，今天只简单聊一下对自身改变方面的影响。

所谓身份认同，就是你认为你是个什么人，你想在别人面前以一个怎样的形象出现。

改变行为
要想养成一个好习惯，一般有三种常见的做法：

强调结果，比如定下目标每年看xx本书，减掉20斤体重等，画饼与白日做梦的做法；

强调过程，用意志力逼迫自己的方式，有一定效果，但比较难，坚持了也容易...]]></description><link>https://coolwrite.cn/5asa6yen6lqr5lu9</link><guid isPermaLink="true">https://coolwrite.cn/5asa6yen6lqr5lu9</guid><dc:creator><![CDATA[Flash]]></dc:creator><pubDate>Sun, 12 Mar 2023 15:58:52 GMT</pubDate><content:encoded><![CDATA[<p>生活中我们往往拥有着多个身份，既是家庭中的成员，又是公司职场中的成员，可能也是某个兴趣小组的成员。相关的一个概念——“身份认同（identity）”能解释很多身份相关的问题，今天只简单聊一下对自身改变方面的影响。</p>
<blockquote>
<p>所谓身份认同，就是你认为你是个什么人，你想在别人面前以一个怎样的形象出现。</p>
</blockquote>
<h2 id="heading-5ps55yy6kgm5li6">改变行为</h2>
<p>要想养成一个好习惯，一般有三种常见的做法：</p>
<ol>
<li><p>强调结果，比如定下目标每年看xx本书，减掉20斤体重等，画饼与白日做梦的做法；</p>
</li>
<li><p>强调过程，用意志力逼迫自己的方式，有一定效果，但比较难，坚持了也容易放弃，过程中人们会找各种借口，一旦中途暂停就很难继续。很多人停留在这个水平。</p>
</li>
<li><p>建立身份认同，《掌控习惯》（Atomic Habits, 2018）一书中提到的是给自己建立身份认同，先让自身身份发生转变，然后带动行为的改变。与其强调过程或者结果，不如说自己已经是那个身份下的人，就应该拥有那个身份下对应的行为。</p>
</li>
</ol>
<p>举个例子，比如一个想要戒烟，他在与朋友聚会时，朋友递过来一根烟，他想达到想戒烟的目的，他应该怎么回答？是说“不用了，我正在戒烟了”，还是说“我已经不抽烟了”，那种方式更好一些呢，答案是后者，后者的回答来自于对自己身份的认同：我已经与吸烟的人划清界限了，我的身份变了，不再是烟民。</p>
<blockquote>
<p>《掌控习惯》的作者克利尔提出，养成好习惯的最好办法是两步 ——</p>
<ol>
<li><p>选定一个新身份，看看你想成为什么人；</p>
</li>
<li><p>用生活中点点滴滴的小成就来向自己证明你就是这样的人。</p>
</li>
</ol>
<p>这是一个互相促进的正反馈过程。真正的目标不是做什么事，而是做一个全新的自己。克利尔建议 ——</p>
<p>目标不是阅读一本书，而是成为读者。</p>
<p>目标不是跑马拉松，而是成为跑步者。</p>
<p>目标不是学习一种乐器，而是成为音乐家。</p>
<p>身份认同是行动的终极驱动。这个原理也有负面作用。</p>
</blockquote>
<h2 id="heading-5bcp57ut">小结</h2>
<p>要改变行为，先改变身份认同。是身份认同（而不是利益诉求和认知） —— 决定了你的观念和言行。</p>
]]></content:encoded></item><item><title><![CDATA[编程之路（一）：c语言的出现]]></title><description><![CDATA[我们都知道C语言程序会被编译为汇编语言程序，然后会被执行，实际执行时，是将汇编语言程序通过汇编器转换为机器指令才能执行。想想在没有C语言、汇编语言的时候，程序员的编程只能是通过一堆 0 和 1 的组合、编写来实现，也就是机器语言的编程，而描述机器语言的规则（0/1组合的协议）有一个统一名称：指令集架构 Instruction Set Architecture（ISA）
ISA
简介
什么是指令集架构？
指令集体系结构（ISA）是计算机抽象模型的一部分，它定义了软件如何控制 CPU。ISA充当硬件...]]></description><link>https://coolwrite.cn/c</link><guid isPermaLink="true">https://coolwrite.cn/c</guid><category><![CDATA[编程之路]]></category><dc:creator><![CDATA[Flash]]></dc:creator><pubDate>Sun, 26 Feb 2023 10:05:34 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/xrVDYZRGdw4/upload/03bb999ef17b673f0a69bc750ff4032c.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>我们都知道C语言程序会被编译为汇编语言程序，然后会被执行，实际执行时，是将汇编语言程序通过汇编器转换为机器指令才能执行。想想在没有C语言、汇编语言的时候，程序员的编程只能是通过一堆 0 和 1 的组合、编写来实现，也就是机器语言的编程，而描述机器语言的规则（0/1组合的协议）有一个统一名称：指令集架构 Instruction Set Architecture（ISA）</p>
<h1 id="heading-isa">ISA</h1>
<h2 id="heading-566a5lul">简介</h2>
<p>什么是指令集架构？</p>
<p>指令集体系结构（ISA）是计算机抽象模型的一部分，它定义了软件如何控制 CPU。ISA充当硬件和软件之间的接口，指定处理器能够做什么以及如何做。</p>
<p>ISA 是用户能够与硬件交互的唯一途径。它可以被视为程序员手册，因为它是机器的一部分，对汇编语言程序员、编译器编写者和应用程序程序员来说都是可见的。</p>
<p>ISA 定义了：支持的数据类型、寄存器、硬件如何管理主存、关键功能（如虚拟内存）、微处理器可以执行的指令以及多个 ISA 实现的输入/输出模型。ISA 可以通过添加指令或其他功能，或者通过添加对更大地址和数据值的支持来扩展。</p>
<p>参考：</p>
<p><a target="_blank" href="https://www.arm.com/glossary/isa">GLOSSARY-Instruction Set Architecture (ISA)</a></p>
<p><a target="_blank" href="https://www.learncomputerscienceonline.com/instruction-set-architecture/">LCSO-What is instruction set architecture</a></p>
<p>为什么需要了解ISA？</p>
<p>从定义我们知道 ISA 是软件与硬件之间沟通的桥梁，是 CPU 厂商提供给我们的支持的功能说明，软件程序实际执行还是会回归到硬件、回归到 CPU，汇编程序经汇编器生成的机器指令也都必须符合特定平台的 ISA 规则才能执行。如上所述，了解 ISA 可以帮助我们更好的理解编译器的输出，编写更高效的代码。我们可以把 ISA 看作是所有编程语言的始祖，是所有程序员应必备的开发手册。</p>
<h2 id="heading-5yig57g7">分类</h2>
<p>ISA 指令集主要分为两种类型：复杂指令集 CISC（Complex Instruction Set Computer）、精简指令集 RISC（Reduced Instruction Set Computer）</p>
<p>CISC 指令集内部执行时会被拆分为更细粒度的指令执行，提供的功能也更加定制化、强大，可能一条指令就能实现复杂的操作，RISC 则更加精简。</p>
<blockquote>
<h3 id="heading-characteristics-of-risc"><strong>Characteristics of RISC</strong></h3>
<ol>
<li><p>Relatively few instructions.</p>
</li>
<li><p>Relatively few addressing modes.</p>
</li>
<li><p>Memory access is limited to load and store instructions.</p>
</li>
<li><p>All operations are done within the registers of the CPU.</p>
</li>
<li><p>Fixed-length, easily decoded instruction format.</p>
</li>
<li><p>Single-cycle instruction execution.</p>
</li>
<li><p>Hardwired rather than microprogrammed control.</p>
</li>
<li><p>A relatively large number of registers in the processor unit.</p>
</li>
<li><p>Use of overlapped register windows to speed-up procedure call and return.</p>
</li>
<li><p>Efficient instruction pipeline.</p>
</li>
<li><p>Compiler support for efficient translation of high-level language programs into machine language programs.</p>
</li>
</ol>
<h3 id="heading-characteristics-of-cisc"><strong>Characteristics of CISC</strong></h3>
<ol>
<li><p>A larger number of instructions – typically from 100 to 250 instructions</p>
</li>
<li><p>Some instructions that perform specialized tasks and are used infrequently</p>
</li>
<li><p>A large variety of addressing modes – typically from 5 to 20 different modes</p>
</li>
<li><p>Variable-length instruction formats</p>
</li>
<li><p>Instructions that manipulate operands in memory</p>
</li>
</ol>
</blockquote>
<p>RISC 阵营的典型代表是ARM，CISC 阵营的典型代表是Intel</p>
<p>有关这两种类型之间的详细对比，参考：<a target="_blank" href="https://alldifferences.net/difference-between-risc-and-cisc/">Difference Between RISC and CISC</a></p>
<p>要选择一个平台进行深入了解的话，这里推荐 Intel 平台，因为 CISC 类型提供的指令功能更加强大，加上 Intel 目前也较为常用，这样可以通过 Intel 平台提供的开发手册进行详细分析。</p>
<p>Intel开发手册下载：<a target="_blank" href="https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html">Intel® 64 and IA-32 Architectures Software Developer Manuals</a></p>
<h1 id="heading-5rgh57yw6kt6kia566a5lul">汇编语言简介</h1>
<p>面对一堆只有 0 和 1 的代码，机器语言程序的编写既繁琐又不容易理解、维护，因此为了方便开发，降低理解难度，发展出了汇编语言，以助记符的形式提升开发效率。我们可以将汇编语言看作一张映射 Hash 表，汇编器实际做的工作就是将助记符与具体机器指令之间进行对应、转换。</p>
<p>站在 CPU 的角度，我们可以想象 ISA、汇编程序 无非都是操作的 CPU 和 内存，CPU提供控制、计算的作用，内存 则是 CPU 的数据来源。一条计算机指令，包括了要操作的目的、要操作的对象，分别对应指令中的 操作码 和 操作数。对数据的操作指令会有以下一些类型：</p>
<ol>
<li><p>移动：内存 -&gt; CPU、CPU -&gt; 内存</p>
</li>
<li><p>运算：+、-、*、/</p>
</li>
<li><p>移位、逻辑运算</p>
</li>
<li><p>……</p>
</li>
</ol>
<p>汇编语言中的操作码包括 mov、add、sub 等命令，同时我们需要知道操作内存时候具体的大小，内存寻址的最小单位是 1 byte，以 mov 举例，movw、movl、movq 分别对应 2、4、8 个字节的内存空间移动操作。</p>
<h1 id="heading-c">C语言的引入</h1>
<p>汇编语言的使用，要求开发人员熟悉内存操作的具体单位、并且需要知晓 CPU 中寄存器的分类、应用细节，对程序员要求较高，开发也不方便。因此在汇编的基础上，又进行一次抽象，屏蔽掉诸多细节，让语言符合人类的认知。</p>
<p>设计这样一门语言，具体包括如下需求要点：</p>
<ol>
<li><p>设计类型系统，屏蔽对内存单元大小的访问；</p>
</li>
<li><p>定义符号，抽象对数据的操作，比如使用 +、-、*、/ 来替换具体操作指令；</p>
</li>
<li><p>添加语言自身的特性。</p>
</li>
</ol>
<p>这些设计需求，就是汇编语言上层更高级语言的由来，而基于此，C语言完成了对汇编语言最纯粹的抽象：实现了自己的类型系统，定义了支持的符号，并没有自己其他任何的特性。</p>
<h1 id="heading-5bcp57ut">小结</h1>
<p>本篇重点介绍了 ISA 的概念以及分类，同时基于此介绍汇编语言、C语言的由来，知其所以然，才能更好地去学习、掌握上层的语言。</p>
]]></content:encoded></item><item><title><![CDATA[理解他人，表达自己]]></title><description><![CDATA[我们都知道沟通的重要性，进入职场后，逐渐发现沟通能力甚至是与专业能力起码同等重要的程度，沟通的目的其实就是要实现理解他人、表达自己，而沟通能力的培养，可以追溯到我们上学时候接受的语文教育。而以前的语文课程的学习，我当时并没有学好，应付考试的程度都没有达到很好的水平，更别说通过这门课程来习得沟通的目的了。语文的学习本应该是最能提现到生活中、同时也对其他学习提供基础的一门课程，上学时却并没有体会到它的重要性。
最近阅读了《吴军阅读与写作讲义》这本书，书中总结了阅读与写作的方法论，并结合一些文学经典进...]]></description><link>https://coolwrite.cn/55cg6kej5luw5lq677ym6kgo6l66ieq5bex</link><guid isPermaLink="true">https://coolwrite.cn/55cg6kej5luw5lq677ym6kgo6l66ieq5bex</guid><category><![CDATA[阅读与写作]]></category><dc:creator><![CDATA[Flash]]></dc:creator><pubDate>Sun, 19 Feb 2023 15:07:45 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/71CjSSB83Wo/upload/5d6b6dd053ee98524b9dbd467eaa8a2c.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>我们都知道沟通的重要性，进入职场后，逐渐发现沟通能力甚至是与专业能力起码同等重要的程度，沟通的目的其实就是要实现理解他人、表达自己，而沟通能力的培养，可以追溯到我们上学时候接受的语文教育。而以前的语文课程的学习，我当时并没有学好，应付考试的程度都没有达到很好的水平，更别说通过这门课程来习得沟通的目的了。语文的学习本应该是最能提现到生活中、同时也对其他学习提供基础的一门课程，上学时却并没有体会到它的重要性。</p>
<p>最近阅读了《吴军阅读与写作讲义》这本书，书中总结了阅读与写作的方法论，并结合一些文学经典进行实践练习展示。开宗明义，书中开头说明了语文在生活中的实际应用可以总结为读和写、听和说、观察与视觉表达三个方面，本书重点阐述了前两个方面的内容，诚如书名，阅读与写作更是其中的重点。</p>
<h1 id="heading-6zif6k7leeqhuinos7lus6ug">阅读-理解他人</h1>
<h2 id="heading-6zif6k755cg6kej">阅读理解</h2>
<p>和《如何阅读一本书》中所描述的一致，我认为最重要的一点是要读者有自己的意识、主动地去阅读，具体操作首先就是<strong>提问</strong>，将“内容”转换为“信息”。类似于计算机中编译原理的概念，我们要完成一本书的基本阅读，首先就是要实现这种信息转换，也就是常说的阅读理解：“读懂作者的意思，是阅读；完成形象的重构，是理解”。</p>
<p>那具体要提哪些问题呢，概括来讲也就是常说的那 7 个wh问题：when（时间）、where（地点）、who（人物）、what（是什么）、how（怎么发展）、why（为什么）、which（哪一个，用于对比观点）。阅读理解的过程，就是讲书中内容转换为这些问题的信息表。《如何阅读一本书》中更是给出了更加详细的问题清单，如果不知道如何入手剖析一本书，可以从提问题开始！</p>
<h2 id="heading-5rex5bgc6zif6k7">深层阅读</h2>
<p>当然除了内容上的掌握之外，我们也可以从优秀作者的作品当中学习其他方面的技巧：</p>
<ol>
<li><p>结构；</p>
</li>
<li><p>描写手法；</p>
</li>
<li><p>比喻；</p>
</li>
<li><p>用词用语；</p>
</li>
<li><p>语气。</p>
</li>
</ol>
<p>从这些方面更深层次的理解作品，结构层面我们可以理解为内容的骨架，我们不仅要掌握书中讲了些什么，也更关注书中的内容是如何组织的，骨架结构直接的联系性，这样更能接近作者，结构方面也是需要在我们进行写作时首先要搭建出来的，就像一个建筑一样，首先设计师们确定了建筑的结构才能进行施工。</p>
<p>对于更深层一些的阅读：通过作品去了解作者，去了解当时的时代。比如一些文学作品中，作者虽然描写的是一个故事，但都有着作者自己的影子，表达着自己的思想。举个书中的例子，李商隐的《锦瑟》其实就描述了自己的生平的苦闷与无奈：</p>
<blockquote>
<p>锦瑟无端五十弦，一弦一柱思华年。</p>
<p>庄生晓梦迷蝴蝶，望帝春心托杜鹃。</p>
<p>沧海月明珠有泪，蓝田日暖玉生烟。</p>
<p>此情可待成追忆，只是当时已惘然。</p>
</blockquote>
<p>现在看来这首诗其实就是作者对自己一生的总结，结合作者的生平，再到我们自身，其实我们更容易理解这首诗中的含义（关于作者的生平介绍可以参看《吴军阅读与写作讲义》书中的介绍），同时也更能够感同身受，也许这就是阅读的意义：理解他人，知道我们在这个世上并不孤独。</p>
<p>反思自己，其实这首诗其实上学时候就学过，但当时真的只是临时背住了而已，怎么会有那种 “已惘然” 的同感呢？</p>
<p>再来看另一篇《兰亭集序》，我们都知道它是王羲之非常有名的书法作品，但往往忽视了它的内容。这篇文章我们也基本都学过，内容大家可以很容易搜索到，如果我们认真了解了这篇文章的内容，其实也能引起我们很大的共鸣……</p>
<p>兰亭集序是为《兰亭集》写的一篇序言，这么多年过去了，整本《兰亭集》没有流传下来，却只流传这了这篇序，它到底写了什么呢？</p>
<p>首先就是1/3的内容描写了作者出游的景色，2/3发表了作者自己的观点：我们总是感叹与好友欢聚的时光短暂，不只不觉中就到了暮色，到了分别时分，不面让人怅然，因此联想到人生的短暂，然后便是人类在宇宙视角下的渺小。</p>
<p>可见古人描写的内容与我们现在经常思考的话题很多都非常一致呀，古人流传下来的作品当中，多少也都会有值得我们借鉴的内容。</p>
<h1 id="heading-5yaz5l2cleihqoivuihquw3sq">写作-表达自己</h1>
<p>写和说是有很大不同的，《吴军阅读与写作讲义》书中比对说明了这些不同点，同时印象深刻的是围绕如何让我们从害怕写到天天想写这一话题展开的内容：</p>
<ol>
<li><p>随便找一个新鲜有趣的主题去写；</p>
</li>
<li><p>突出主题；</p>
</li>
<li><p>形成具有动感的故事；</p>
</li>
<li><p>让读者产生共鸣；</p>
</li>
<li><p>形成自己的风格。</p>
</li>
</ol>
<p>此外，书中不仅讲了通用的写作技巧，同时也针对不同的写作场景描述了具体的方式方法。包括日记、邮件、简历、报告等。</p>
<h1 id="heading-5bcp57ut">小结</h1>
<p>沟通是我们每个人绕不过去的一道坎，沟通能力的强弱也影响着我们的生活，书中提到“大语文”的概念，我想沟通其实也在这个范畴内，数理化我们可能学完不会用到，但始终还是要和别人、和自己打交道的，理解他人、表达自己，还需多多练习呀！</p>
]]></content:encoded></item><item><title><![CDATA[如何阅读一本书]]></title><description><![CDATA[最近在读《如何阅读一本书》，之所以要读这本书，是因为罗翔老师的推荐，这里也推荐他的这个视频，主要讲了阅读的意义。在现在这个最应该去阅读的时代，却因为我们内部外部的一些因素，造成现在很少的阅读实属不该。问题是我们现在不缺信息，信息以各种各样的方式充斥在身边，我们实际缺乏的是自身的理解、思考。
回到这本书，诚如书名，内容主要就是详细、系统地讲了阅读的方法。我关于阅读的方法和技巧，以前多多少少都有些了解，比如快速阅读（检视阅读）、5W总结法等，但始终没能形成系统的方法论，更是很少贯彻执行具体的方法。在...]]></description><link>https://coolwrite.cn/5aac5l2v6zif6k75lia5pys5lmm</link><guid isPermaLink="true">https://coolwrite.cn/5aac5l2v6zif6k75lia5pys5lmm</guid><category><![CDATA[reading]]></category><category><![CDATA[how to read]]></category><dc:creator><![CDATA[Flash]]></dc:creator><pubDate>Sun, 05 Feb 2023 14:09:27 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/6jYoil2GhVk/upload/f85db3f0cc49c7895d18f81702f2ac8c.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>最近在读<a target="_blank" href="https://book.douban.com/subject/25934182/">《如何阅读一本书》</a>，之所以要读这本书，是因为罗翔老师的推荐，这里也推荐他的这个<a target="_blank" href="https://www.bilibili.com/video/BV1BK411L7DJ">视频</a>，主要讲了阅读的意义。在现在这个最应该去阅读的时代，却因为我们内部外部的一些因素，造成现在很少的阅读实属不该。问题是我们现在不缺信息，信息以各种各样的方式充斥在身边，我们实际缺乏的是自身的理解、思考。</p>
<p>回到这本书，诚如书名，内容主要就是详细、系统地讲了阅读的方法。我关于阅读的方法和技巧，以前多多少少都有些了解，比如快速阅读（检视阅读）、5W总结法等，但始终没能形成系统的方法论，更是很少贯彻执行具体的方法。在阅读之前，如果我们已经掌握了系统的阅读规则、技巧，可以更好的帮助我们阅读的效果。</p>
<p>在内容结构上，系统、深入、逻辑性强是这本书的优点，缺点的话，因为内容比较长、同时主要介绍的是方法，加之翻译的原因，阅读起来还是有些不顺畅、枯燥，要想很好的掌握并应用在自己实际的阅读过程中，还是需要下很多功夫，这里把这本书中讲解的内容做些整理、摘要。</p>
<h1 id="heading-6zif6k75ocb5bqm">阅读态度</h1>
<p>首先要指出的是，阅读是一项活动，是有主动、被动之分的，越是主动的参与其中，效果越好。以前我认为阅读、听课等都只是一件被动接收信息的事，只有自己去表达、输出才是主动的事，但现在看来这个理解是有些片面的，书中提到：“听众或读者的“接收”，应该像是棒球赛中的捕手才对。”</p>
<blockquote>
<p>捕手在接球时所发挥的主动是跟投手或打击手一样的。投手或打击手是负责“发送”的工作，他的行动概念就在让球动起来这件事上。捕手或外野手的责任是“接收”，他的行动就是要让球停下来。两者都是一种活动，只是方式有点不同。如果说有什么是被动的，就是那只球了。球是毫无感觉的，可以被投手投出去，也可以被捕手接住，完全看打球的人如何玩法。作者与读者之间的关系也很类似。写作与阅读的东西就像那只球一样，是被主动、有活力的双方所共有的，是由一方开始，另一方终结的。</p>
</blockquote>
<h1 id="heading-6zif6k75bgc5qyh">阅读层次</h1>
<p>阅读的层次是本书写作的线索，本书大部分内容都是围绕着这个线索展开，提到了每个层次的方方面面，内容详尽。之所以称为层次，是因为较高层次中依赖、包含了较低层次的特性，是递进的一个过程。</p>
<p>阅读的层次总共包含4个：基础阅读（elementary reading）、检视阅读（inspectional reading）、分析阅读（analytical reading）、主题阅读（syntopical reading），每个阶段对应着每个读者应该问出的对应的问题。</p>
<h2 id="heading-5z656ga6zif6k7">基础阅读</h2>
<p>基础阅读也称初级阅读、基本阅读或初步阅读，这个层次要问的问题是：这个句子在说什么？也就是要明白书中每个句子字面上的含义。基本上一个完成初中学历的读者就应该具备这个层次的能力了。</p>
<p>实现基础阅读层次能力的积累，经历4个阶段：</p>
<ol>
<li><p>阅读准备阶段（readingreadiness），从刚出生到6岁的阶段，完成基本认知能力的积累；</p>
</li>
<li><p>读一些简单的读物。学习识字，这个时期会学习基本的技巧，像字句的使用，词句的含意，字句的发音等等；</p>
</li>
<li><p>可以完成不同领域顺畅的阅读，通过上下文推测不熟悉的字的能力，可以完成一些课程之外的“扩大视野”的阅读；</p>
</li>
<li><p>对书中的观点进行转化吸收、从一个观点联系到另一个观点，能够对同一个主题下的不同观点进行比较。</p>
</li>
</ol>
<p>回到我自身，目前的阅读能力也只是停留在这个起步阶段，甚至都还不能做的很好。虽然基本技巧都已掌握，能够理解书中每个句子的含义，对提炼观点、联系观点、主题分析等还有所欠缺。对文字背后的观点停下来主动思考，不只是功利性的阅读是后面要多注意的。</p>
<p>在进入下一个层次之前，这里也还是强调下，每个阅读层次之间并不是孤立的，每一个较低层次都为高层次的阅读提供了基石，都被高层次包含其中。</p>
<h2 id="heading-5qoa6keg6zif6k7">检视阅读</h2>
<blockquote>
<p>检视阅读是系统化略读 （skimming systematically）的一门艺术。</p>
</blockquote>
<p>也可以成为略读、预读，检视阅读强调<strong>时间，</strong>要求在一定的时间之内，抓出一本书的重点（往往由于时间过短，总不能抓出所有重点）。这个阶段要完成对这本书基本架构的构建。读者要问的问题包括：“这本书在谈什么？”、“这本书的架构如何？”、“这本书包含哪些部分？”</p>
<p>检视阅读包含2个步骤：有系统的略读或粗读、粗浅的通读</p>
<h3 id="heading-5pyj57o757uf55qe55wl6k75oiw57kx6k7">有系统的略读或粗读</h3>
<ol>
<li><p>先看书名页，然后如果有序就先看序。</p>
</li>
<li><p>研究目录页， 对这本书的基本架构做概括性的理解。</p>
</li>
<li><p>如果书中附有索引，也要检阅一下 ——大多数论说类的书籍都会有索引。快速评估一下这本书涵盖了哪些议题的范围，以及所提到的书籍种类与作者等等。</p>
</li>
<li><p>读一下出版者的介绍</p>
</li>
<li><p>开始挑几个看来跟主题息息相关的篇章来看 。</p>
</li>
</ol>
<p>最后一步，把书打开来，东翻翻西翻翻，念个一两段，有时候连续读几页，但不要太多。</p>
<blockquote>
<p>你可以把自己想成是一个侦探，在找寻一本书的主题或思想的线索。随时保持敏感，就很容易让一切状况清楚。留意我们所提出的建议，会帮助你保持这样的态度。你会很惊讶地发现自己节省了更多时间，高兴自己掌握了更多重点，然后轻松地发现原来阅读是比想象中还更要简单的一件事。</p>
</blockquote>
<h3 id="heading-57kx5rwf55qe6yca6k7">粗浅的通读</h3>
<p><strong>规则</strong>：头一次面对一本难读的书的时候，从头到尾先读完一遍，碰到不懂的地方不要停下来查询或 思索。</p>
<p>速度要点：</p>
<ul>
<li><p>不要逗留与倒退</p>
</li>
<li><p>不要渴求对每个句子的理解</p>
<p>  可以练习把手当做指针，强迫眼睛跟随手指移动进行速度。</p>
</li>
</ul>
<h2 id="heading-5yig5p6q6zif6k7">分析阅读</h2>
<p>在这个阶段是要彻底搞透一本书，包含了更加复杂、系统的规则，目的是对这本书追寻完整、全面的理解。当然，并不是所有书都要经历这个阶段。</p>
<p><em>“如果说检视阅读是在有限的时间内，最好也最完整的阅读，那么分析阅读就是在无限的时间里，最好也最完整的阅读。”</em></p>
<p>分析阅读包含三个阶段，每个阶段中包含着要遵循的规则。</p>
<h3 id="heading-5lia44cb5om5ye65lia5pys5lmm5zyo6lci5lqb5lua5lmi55qe6kee5yiz">一、找出一本书在谈些什么的规则</h3>
<ol>
<li><p>依照书的种类与主题来分类。</p>
</li>
<li><p>使用最简短的文字说明整本书在谈些什么。</p>
</li>
<li><p>将主要部分按顺序与关联性列举出来。将全书的大纲列举出来，并将各个部分的大纲也列出来。</p>
</li>
<li><p>确定作者想要解决的问题。</p>
</li>
</ol>
<h3 id="heading-5lqm44cb6kg6yek5lia5pys5lmm55qe5yaf5a656kee5yiz">二、诠释一本书的内容规则</h3>
<p>详细内容识什么？如何写出来的？</p>
<ol>
<li><p>诠释作者的关键字，与他达成共识。</p>
</li>
<li><p>由最重要的句子中，抓住作者的重要主旨。</p>
</li>
<li><p>知道作者的论述是什么，从内容中找出相关的句子，再重新架构出来。</p>
</li>
<li><p>确定作者已经解决了哪些问题，还有哪些是没解决的。再判断哪些是作者知道他没解决的问题。</p>
</li>
</ol>
<h3 id="heading-5lij44cb5yop5piv5rkf6yca55l6kg5lia5qc35zyw6ke6k665lia5pys5lmm55qe6kee5yiz">三、像是沟通知识一样地评论一本书的规则</h3>
<p>智慧礼节的一般规则</p>
<ol>
<li><p>除非你已经完成大纲架构，也能诠释整本书了，否则不要轻易批评。（在你说出：“我读懂了！”之前，不要说你同意、不同意或暂缓评论。）</p>
</li>
<li><p>不要争强好胜，非辩到底不可。</p>
</li>
<li><p>在说出评论之前，你要能证明自己区别得出真正的知识与个人观点的不同。</p>
</li>
</ol>
<p>批评观点的特别标准</p>
<ol>
<li><p>证明作者的知识不足。</p>
</li>
<li><p>证明作者的知识错误。</p>
</li>
<li><p>证明作者不合逻辑。</p>
</li>
<li><p>证明作者的分析与理由是不完整的。</p>
</li>
</ol>
<h2 id="heading-5li76aky6zif6k7">主题阅读</h2>
<blockquote>
<p>主题阅读时，阅读者会读很多书，而不是一本书，并列举出这些书之间相关之处，提出一个所有的书都谈到的主题。但只是书本字里行间的比较还不够。主题阅读涉及的远不止此。借助他所阅读的书籍，主题阅读者要能够架构出一个可能在哪一本书里都没提过的主题分析。因此，很显然的，主题阅读是最主动、也最花力气的一种阅读。</p>
</blockquote>
<h1 id="heading-5bcp57ut">小结</h1>
<p>在chatGPT上问一下“如何阅读一本书？”，它的回答是这样的：</p>
<blockquote>
<p>以下是一些有效的阅读方法：</p>
<ol>
<li><p>目标明确：在阅读之前明确你的目标，是为了了解特定的信息还是更深入地了解整个主题。</p>
</li>
<li><p>预读：快速阅读整篇文章，以了解它的大致内容。</p>
</li>
<li><p>找关键词：找出文章中的关键词和词组，以帮助你理解文章的重点。</p>
</li>
<li><p>创造图像：通过想象和创造图像，加深对文章的理解。</p>
</li>
<li><p>注释：在阅读过程中，写下重要的信息和细节，以帮助你回顾和记忆。</p>
</li>
<li><p>思考问题：询问自己问题，以帮助你更深入地理解文章。</p>
</li>
<li><p>总结：在阅读完整篇文章后，总结你所学到的信息。</p>
</li>
<li><p>实践：尝试应用所学到的内容，以加深对它的理解。</p>
</li>
</ol>
<p>这些方法不是固定的，可以根据个人需求和喜好进行调整。最重要的是，要坚持阅读，不断练习和提高阅读能力。</p>
</blockquote>
<p>英文版本描述可能更精确些：</p>
<blockquote>
<p>“How to read a book”</p>
<p>Here are some effective methods for reading a book:</p>
<ol>
<li><p>Set a purpose: Before you start reading, determine why you're reading the book. Is it for general understanding or to gain deeper knowledge of a subject?</p>
</li>
<li><p>Preview: Quickly scan the book to get a general understanding of its content.</p>
</li>
<li><p>Identify key words: Look for key words and phrases that can help you understand the focus of the book.</p>
</li>
<li><p>Create images: Use your imagination to create mental images of the book's content, to help deepen your understanding.</p>
</li>
<li><p>Take notes: Jot down important information and details as you read to help you review and recall later.</p>
</li>
<li><p>Ask questions: Ask yourself questions while reading to help you better understand the content.</p>
</li>
<li><p>Summarize: After finishing the book, summarize what you have learned.</p>
</li>
<li><p>Practice: Try to apply what you have learned to reinforce your understanding of the material.</p>
</li>
</ol>
<p>These methods are not set in stone and can be adjusted to suit your individual needs and preferences. The most important thing is to be consistent with your reading and continuously practice and improve your reading skills.</p>
</blockquote>
<p>这个回答中的阅读目标、预览、笔记、问问题、总结、实践，这些要点都在这本书（《如何阅读一本书》）中有所体现。你可以把这本书归类为一本实用性的书，通过它来指导自己后面的阅读行为。</p>
]]></content:encoded></item></channel></rss>