{
  "schemaVersion": "0.11.0",
  "canonical": "https://www.pystone.net/notes/cs-learning-workflow-series/",
  "atlas": "https://www.pystone.net/?node=cs-learning-workflow-series#knowledge-atlas",
  "markdown": "https://www.pystone.net/notes/cs-learning-workflow-series.md",
  "context": "https://www.pystone.net/notes/cs-learning-workflow-series.context.json",
  "knowledgeVersion": "224c990773de.5fa8af6e39fa",
  "build": {
    "siteCommit": "224c990773de166d23a886306577dd90379529ce",
    "notesCommit": "5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a",
    "builtAt": "1970-01-01T00:00:00.000Z",
    "version": "224c990773de.5fa8af6e39fa"
  },
  "id": "note:cs-learning-workflow-series",
  "slug": "cs-learning-workflow-series",
  "title": "学习工作方法系列",
  "type": "note",
  "visibility": "public",
  "idStability": "rename-stable",
  "author": {
    "name": "Perrin Yong",
    "profile": "https://www.pystone.net/profile/"
  },
  "publisher": {
    "name": "Perrin Yong",
    "profile": "https://www.pystone.net/profile/"
  },
  "aliases": [],
  "summary": "学习工作方法系列 如何借助开源项目学习 如何读懂源码 修改代码就是理解代码的最好方式 CandyCat 一本技术书籍是如何出版的…… 最高效的学习一门视频课程的方法 纸质书vs电子书 Ref",
  "contentRole": "unspecified",
  "isMoc": false,
  "mocRecognition": "none",
  "generated": false,
  "attribution": "unspecified",
  "domain": "10-计算机、信息技术与工程",
  "tags": [],
  "mocs": [],
  "updatedAt": "2020-10-13T11:02:30.000004Z",
  "contentHash": "0cae2001826b062cc62fc1139256b18a97dc7bb40d83f5bacf18a1ee8b6e6d04",
  "assets": [],
  "headings": [
    {
      "depth": 1,
      "text": "学习工作方法系列",
      "anchor": "学习工作方法系列",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E5%AD%A6%E4%B9%A0%E5%B7%A5%E4%BD%9C%E6%96%B9%E6%B3%95%E7%B3%BB%E5%88%97"
    },
    {
      "depth": 2,
      "text": "如何借助开源项目学习",
      "anchor": "如何借助开源项目学习",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E5%A6%82%E4%BD%95%E5%80%9F%E5%8A%A9%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E5%AD%A6%E4%B9%A0"
    },
    {
      "depth": 2,
      "text": "如何读懂源码",
      "anchor": "如何读懂源码",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E5%A6%82%E4%BD%95%E8%AF%BB%E6%87%82%E6%BA%90%E7%A0%81"
    },
    {
      "depth": 3,
      "text": "修改代码就是理解代码的最好方式",
      "anchor": "修改代码就是理解代码的最好方式",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E4%BF%AE%E6%94%B9%E4%BB%A3%E7%A0%81%E5%B0%B1%E6%98%AF%E7%90%86%E8%A7%A3%E4%BB%A3%E7%A0%81%E7%9A%84%E6%9C%80%E5%A5%BD%E6%96%B9%E5%BC%8F"
    },
    {
      "depth": 2,
      "text": "CandyCat 一本技术书籍是如何出版的……",
      "anchor": "candycat-一本技术书籍是如何出版的",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#candycat-%E4%B8%80%E6%9C%AC%E6%8A%80%E6%9C%AF%E4%B9%A6%E7%B1%8D%E6%98%AF%E5%A6%82%E4%BD%95%E5%87%BA%E7%89%88%E7%9A%84"
    },
    {
      "depth": 2,
      "text": "最高效的学习一门视频课程的方法",
      "anchor": "最高效的学习一门视频课程的方法",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E6%9C%80%E9%AB%98%E6%95%88%E7%9A%84%E5%AD%A6%E4%B9%A0%E4%B8%80%E9%97%A8%E8%A7%86%E9%A2%91%E8%AF%BE%E7%A8%8B%E7%9A%84%E6%96%B9%E6%B3%95"
    },
    {
      "depth": 2,
      "text": "纸质书vs电子书",
      "anchor": "纸质书vs电子书",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E7%BA%B8%E8%B4%A8%E4%B9%A6vs%E7%94%B5%E5%AD%90%E4%B9%A6"
    },
    {
      "depth": 2,
      "text": "Ref",
      "anchor": "ref",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#ref"
    },
    {
      "depth": 2,
      "text": "如何借助开源项目学习",
      "anchor": "如何借助开源项目学习-1",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E5%A6%82%E4%BD%95%E5%80%9F%E5%8A%A9%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E5%AD%A6%E4%B9%A0-1"
    },
    {
      "depth": 2,
      "text": "如何读懂源码",
      "anchor": "如何读懂源码-1",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E5%A6%82%E4%BD%95%E8%AF%BB%E6%87%82%E6%BA%90%E7%A0%81-1"
    },
    {
      "depth": 3,
      "text": "修改代码就是理解代码的最好方式",
      "anchor": "修改代码就是理解代码的最好方式-1",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E4%BF%AE%E6%94%B9%E4%BB%A3%E7%A0%81%E5%B0%B1%E6%98%AF%E7%90%86%E8%A7%A3%E4%BB%A3%E7%A0%81%E7%9A%84%E6%9C%80%E5%A5%BD%E6%96%B9%E5%BC%8F-1"
    },
    {
      "depth": 2,
      "text": "CandyCat 一本技术书籍是如何出版的……",
      "anchor": "candycat-一本技术书籍是如何出版的-1",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#candycat-%E4%B8%80%E6%9C%AC%E6%8A%80%E6%9C%AF%E4%B9%A6%E7%B1%8D%E6%98%AF%E5%A6%82%E4%BD%95%E5%87%BA%E7%89%88%E7%9A%84-1"
    },
    {
      "depth": 2,
      "text": "最高效的学习一门视频课程的方法",
      "anchor": "最高效的学习一门视频课程的方法-1",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E6%9C%80%E9%AB%98%E6%95%88%E7%9A%84%E5%AD%A6%E4%B9%A0%E4%B8%80%E9%97%A8%E8%A7%86%E9%A2%91%E8%AF%BE%E7%A8%8B%E7%9A%84%E6%96%B9%E6%B3%95-1"
    },
    {
      "depth": 2,
      "text": "纸质书vs电子书",
      "anchor": "纸质书vs电子书-1",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#%E7%BA%B8%E8%B4%A8%E4%B9%A6vs%E7%94%B5%E5%AD%90%E4%B9%A6-1"
    },
    {
      "depth": 2,
      "text": "Ref",
      "anchor": "ref-1",
      "citation": "https://www.pystone.net/notes/cs-learning-workflow-series/#ref-1"
    }
  ],
  "claims": [],
  "outgoing": [],
  "incoming": [
    {
      "id": "note:systems-and-network-security",
      "title": "系统基础与网络安全",
      "url": "https://www.pystone.net/notes/systems-and-network-security/",
      "atlas": "https://www.pystone.net/?node=systems-and-network-security#knowledge-atlas",
      "label": "系统基础与网络安全",
      "origin": "explicit",
      "humanReviewed": true,
      "context": "计算机与操作系统中的“学习工作方法系列”导航项",
      "citation": "https://www.pystone.net/notes/systems-and-network-security/#%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%8E%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F"
    },
    {
      "id": "note:when-info-becomes-reusable-knowledge",
      "title": "信息何时成为可复用知识",
      "url": "https://www.pystone.net/notes/when-info-becomes-reusable-knowledge/",
      "atlas": "https://www.pystone.net/?node=when-info-becomes-reusable-knowledge#knowledge-atlas",
      "label": "信息何时成为可复用知识",
      "origin": "explicit",
      "humanReviewed": true,
      "context": "学习工作方法系列把“先理解架构、再进入细节”和“通过修改代码检验理解”用于技术学习。这可以迁移为知识复用原则：结构帮助建立整体模型，应用与反馈帮助暴露虚假理解；但该笔记还包含个人经验和重复内容，不应把全部陈述提升为稳定事实。",
      "citation": "https://www.pystone.net/notes/when-info-becomes-reusable-knowledge/#%E4%BE%9D%E6%8D%AE%E4%B8%8E%E5%88%86%E6%AD%A7"
    },
    {
      "id": "note:how-to-increase-odds-impactful-work",
      "title": "怎样提高做出重要工作的概率",
      "url": "https://www.pystone.net/notes/how-to-increase-odds-impactful-work/",
      "atlas": "https://www.pystone.net/?node=how-to-increase-odds-impactful-work#knowledge-atlas",
      "label": "怎样提高做出重要工作的概率",
      "origin": "explicit",
      "humanReviewed": true,
      "context": "但“复利”不应被误读成无限延长工作时间。长期有效投入依赖睡眠、健康、关系和恢复；透支可能增加短期工时，却降低判断、创造力和持续年限。学习工作方法系列强调先理解结构、再主动应用，这与“更聪明地工作”相通：积累应围绕重要问题形成可调用能力，而不是无方向地收集信息。",
      "citation": "https://www.pystone.net/notes/how-to-increase-odds-impactful-work/#%E4%BA%8C%E5%87%86%E5%A4%87%E4%B8%8E%E6%8C%81%E7%BB%AD%E6%8A%95%E5%85%A5%E9%80%9A%E8%BF%87%E5%A4%8D%E5%88%A9%E6%94%B9%E5%8F%98%E6%9C%BA%E4%BC%9A"
    },
    {
      "id": "note:knowledge-acquisition-organization-reuse",
      "title": "知识获取、整理与复用",
      "url": "https://www.pystone.net/notes/knowledge-acquisition-organization-reuse/",
      "atlas": "https://www.pystone.net/?node=knowledge-acquisition-organization-reuse#knowledge-atlas",
      "label": "知识获取、整理与复用",
      "origin": "explicit",
      "humanReviewed": true,
      "context": "学习工作方法系列把学习放进可执行的工作过程。",
      "citation": "https://www.pystone.net/notes/knowledge-acquisition-organization-reuse/#%E7%90%86%E8%A7%A3%E4%B8%8E%E6%A0%A1%E5%87%86"
    }
  ],
  "contentMarkdown": "# 学习工作方法系列\n- 如何借助开源项目学习\n- 如何读懂源码\n - 修改代码就是理解代码的最好方式\n- CandyCat 一本技术书籍是如何出版的……\n- 最高效的学习一门视频课程的方法\n- 纸质书vs电子书\n- Ref\n\n\n## 如何借助开源项目学习\n\nhttps://github.com/openecnu/teach-yourself-programming-with-open-source\n\n\n## 如何读懂源码\n\n1. 读懂程式码，使心法皆为我所用。 （a）读懂别人写的程式码，让你收获满满 （b）先了解系统架构与行为模式，再细读 （c）熟悉沟通语言与惯例用语 （d）掌握程式码撰写者的心态与习惯\n2. 摸清架构，便可轻松掌握全貌。 （a）阅读程式码的目的，在于了解全貌而非细节 （b）由上而下厘清架构后，便可轻易理解组成关系 （c）了解架构，必须要加上层次感 （d）探索架构的第一件事：找出系统如何初始化\n3. 优质工具在手，读懂程式非难事。 （a）善用文字编辑器或IDE中，加速解读程式码 （b）grep按（读者：推荐来源透视）是一个基本而极为有用的工具 （c）gtags可建立索引，让搜寻更有效率 （d）再搭配htags制作的HTML文件，更是如虎添翼\n4. 望文生义，进而推敲组件的作用。 （a）好的说明文件难求，拼凑故事的能力很重要 （b）探索架构的第一步─ ─找到程式的入口 （c）系统多会采用相同的架构处理插件程式 （d）随着实务经验，归纳常见的架构模式 （e）善用名称可加速了解\n5. 找到程式入口，再由上而下抽丝剥茧。 （a）展开的同时，随手记录树状结构 （b）无法望文生义的函式，先试着预看一层 （c）根据需要了解的粒度，决定展开的层数\n6. 阅读的乐趣，透过程式码认识作者。 （a）阅读程式码是新时代程式人必备的重要技能 （b）好的名称能够摘要性地点出实体的作用 （c）转换立场，理解作者的思考方式 （d）从程式码着手认识作者独有的风格，进而见贤思齐\n\n\n### 修改代码就是理解代码的最好方式\n\n当拿到一个项目时，其中很大一部分内容是不需要关注的。把所有不需要关注的部分删除掉，就可以去除干扰，逐步看清核心内容，抓住本质。在删除的过程中，调式一些错误，进行一些模块的对接，也是加深理解的一种fang'shi\n\n\n## CandyCat 一本技术书籍是如何出版的……\n\nhttp://candycat1992.github.io/2017/02/22/book-second-edition/\n\n\n## 最高效的学习一门视频课程的方法\n\n如果有课件，直接看课件，根据课件整理笔记。\n\n遇到不太清楚的，再看视频\n\n这样，根据自己的实际情况，懂得的东西，能做一个归纳整理，不需要浪费看视频的时间。\n\n不懂的东西，能参考视屏，直观地理解清楚。\n\n\n## 纸质书vs电子书\n\n时代在进步，各行各业知识在爆炸性地增长，工具和方法都在经理革命，要跟上时代的潮流，新的、质量更高的方法与工具就是要取代旧的、低效率的方法与工具。不可迂腐守旧，不会适应。\n\n电子书的阅读已经在很大程度上优于纸质书了。\n\n从阅读效率上：在电脑上阅读电子书，字体更大，一页显示的信息更多，更容易翻阅，阅读速度更快。\n\n从身体健康上：电子书阅读不需要低头，对颈椎比较好。\n\n从笔记效果上：电脑上更方便记录。知识量很大，用笔记录就要慢很多。而且电脑上的笔记也更容易查阅。\n\n\n因此，在学习时，可以将阅读电子书、记录电子笔记与阅读纸质书、记录纸质笔记的方式结合起来，哪个方便用哪个，想用哪个用哪个，保证把要学的东西学完且不重复即可。不管用什么方法，都是形式问题，不要执著于表象，要关注本质，本质上把知识学到就好。\n\n\n## Ref\n\nhttps://www.zhihu.com/question/19625320/answer/18512481\n\n[TOC]\n\n## 如何借助开源项目学习\nhttps://github.com/openecnu/teach-yourself-programming-with-open-source\n## 如何读懂源码\n\n\n1. 读懂程式码，使心法皆为我所用。\n（a）读懂别人写的程式码，让你收获满满\n（b）先了解系统架构与行为模式，再细读\n（c）熟悉沟通语言与惯例用语\n（d）掌握程式码撰写者的心态与习惯\n2. 摸清架构，便可轻松掌握全貌。\n（a）阅读程式码的目的，在于了解全貌而非细节\n（b）由上而下厘清架构后，便可轻易理解组成关系\n（c）了解架构，必须要加上层次感\n（d）探索架构的第一件事：找出系统如何初始化\n3. 优质工具在手，读懂程式非难事。\n（a）善用文字编辑器或IDE中，加速解读程式码\n（b）grep按（读者：推荐来源透视）是一个基本而极为有用的工具\n（c）gtags可建立索引，让搜寻更有效率\n（d）再搭配htags制作的HTML文件，更是如虎添翼\n4. 望文生义，进而推敲组件的作用。\n（a）好的说明文件难求，拼凑故事的能力很重要\n（b）探索架构的第一步─ ─找到程式的入口\n（c）系统多会采用相同的架构处理插件程式\n（d）随着实务经验，归纳常见的架构模式\n（e）善用名称可加速了解\n5. 找到程式入口，再由上而下抽丝剥茧。\n（a）展开的同时，随手记录树状结构\n（b）无法望文生义的函式，先试着预看一层\n（c）根据需要了解的粒度，决定展开的层数\n6. 阅读的乐趣，透过程式码认识作者。\n（a）阅读程式码是新时代程式人必备的重要技能\n（b）好的名称能够摘要性地点出实体的作用\n（c）转换立场，理解作者的思考方式\n（d）从程式码着手认识作者独有的风格，进而见贤思齐\n\n### 修改代码就是理解代码的最好方式\n当拿到一个项目时，其中很大一部分内容是不需要关注的。把所有不需要关注的部分删除掉，就可以去除干扰，逐步看清核心内容，抓住本质。在删除的过程中，调式一些错误，进行一些模块的对接，也是加深理解的一种途径。\n\n## CandyCat 一本技术书籍是如何出版的……\n\nhttp://candycat1992.github.io/2017/02/22/book-second-edition/\n\n## 最高效的学习一门视频课程的方法\n如果有课件，直接看课件，根据课件整理笔记。\n遇到不太清楚的，再看视频\n这样，根据自己的实际情况，懂得的东西，能做一个归纳整理，不需要浪费看视频的时间。\n不懂的东西，能参考视屏，直观地理解清楚。\n\n## 纸质书vs电子书\n时代在进步，各行各业知识在爆炸性地增长，工具和方法都在经理革命，要跟上时代的潮流，新的、质量更高的方法与工具就是要取代旧的、低效率的方法与工具。不可迂腐守旧，不会适应。\n电子书的阅读已经在很大程度上优于纸质书了。\n从阅读效率上：在电脑上阅读电子书，字体更大，一页显示的信息更多，更容易翻阅，阅读速度更快。\n从身体健康上：电子书阅读不需要低头，对颈椎比较好。\n从笔记效果上：电脑上更方便记录。知识量很大，用笔记录就要慢很多。而且电脑上的笔记也更容易查阅。\n\n因此，在学习时，可以将阅读电子书、记录电子笔记与阅读纸质书、记录纸质笔记的方式结合起来，哪个方便用哪个，想用哪个用哪个，保证把要学的东西学完且不重复即可。不管用什么方法，都是形式问题，不要执著于表象，要关注本质，本质上把知识学到就好。\n\n## Ref\nhttps://www.zhihu.com/question/19625320/answer/18512481\n"
}
