简评:对学到的知识进行整理归纳有助于温故而知新(以下我均指原作者 Bruno Paz)
软件开发和技术总的来说是一个快速发展且需要持续学习的领域。
在 Twitter,Medium,RSS feeds,Hacker News 等专业网站和社区上浏览几分钟,就足以从论文,案例研究,教程,代码片段,新应用程序等内容中找到大量的有用信息。
收集和整理所有这些信息可能是一项艰巨的任务。在这篇文章中,我将介绍一些我进行知识管理的工具。
我认为对知识管理非常重要的一点是避免局限在特定平台。我使用的所有工具都允许以标准格式(如 Markdown 和 HTML)导出数据。
请注意,我的工作流程并不完美,我一直在寻找新的工具和方法来优化它。每个人的情况都是不同的,所以对我有用的东西不一定适合你。
基于 NotionHQ 的知识库
对我来说,知识管理的基础部分是建立某种个人知识库/维基,一个你可以系统地保存链接,书签,笔记等信息的地方。
我用的工具是 NotionHQ 。我用它来记录各种主题,列了一些资源表,如用编程语言分组的优秀库或教程,为有趣的博客和教程添加书签等等,除了软件开发相关的知识,我还用它记录个人生活。
我最喜欢 Notion 的地方是用它创建新内容非常的简单。你可以用 Markdown 格式编写,并将内容组织为树状结构。
这是我的“开发”工作区的顶层页面:
Notion 还有其他一些很好的特性,比如集成电子表格/数据库和任务板。
由于免费功能有限,如果你想深度使用 Notion,就需要购买个人付费版,我认为它物有所值。Notion 允许将整个工作区导出到 Markdown 文件。导出存在一些重要问题,比如丢失页面层次结构,希望 Notion 团队可以改进这一点。
如果要用免费的工具,我可能会选择使用 VuePress 或 GitBook。
用 Pocket 保存有趣的文章
Pocket 是我最喜欢的应用程序之一!使用 Pocket,你可以创建 Internet 上的文章阅读列表。
每当我看到一篇有点意思的文章,我都会用 Pocket 的 Chrome 扩展将文章保存到 Pocket,等之后我从头阅读完,发现它足够有用,就用 Pocket 的“归档”功能永久保存该文章并清理我的 Pocket 收件箱。
我尽量保持阅读列表足够小,并保存存档我处理过的信息。Pocket 允许你标记文章,以便以后能更轻松地搜索特定主题的文章。
为了防止原始站点消失,你还可以将文章的副本保存在 Pocket 服务器中,要使用这个功能需要购买 Pocket Premium。
Pocket 还有一个“发现”功能,它会根据你保存的文章推荐类似的文章,这是寻找新内容的好方法。
使用 SnippetStore 进行代码片段管理
从 GitHub 到 Stack Overflow answers,再到博客文章,常常能找到一些你希望稍后保存的好代码片段。它可能是一些很好的算法实现,一个有用的脚本,或者一个如何在 Y 语言中执行 X 的例子。
我尝试了很多应用程序,从简单的 GitHub Gists 到 Boostnote,直到我发现了 SnippetStore。
SnippetStore 是一个开源的代码片段管理应用程序。SnippetStore 与其他产品的区别在于它的简单性。你可以按语言或标签组织整理代码片段,并且可以有多个文件片段。它不完美但足以完成我需要的工作。Boostnote 虽然具有更多的功能,但我更喜欢 SnippetStore ,它组织内容的方法的更简单。
对于我每天使用的缩写和片段,我更喜欢使用 Editor/IDE 片段功能,因为它更方便。我使用SnippetStore 更像是对代码示例的参考。
Cacher 也是一个有趣的选择,因为它集成了许多编辑器,有一个 cli 工具,使用 GitHub Gists 作为后端,但是付费版每个月需要 6 美元,个人认为有点贵。
使用 DevHints 管理备忘单
Devhints 是由 Rico Sta. Cruz 创建的备忘录表的集合。它是开源的,由 Jekyll 提供支持,Jekyll 是最受欢迎的静态站点生成器之一。
备忘单是用 Markdown 编写的,带有一些额外的格式优势,比如对列的支持。
我非常喜欢这个界面的外观,Markdown 使得添加新内容并保持更新和版本控制变得非常容易,这与 PDF 或 Image 格式的备忘录不同,这种格式的可以在 Cheatography 等网站上找到。
因为它是开源的,所以我创建了自己的分支,删除了一些我不需要的备忘单,并添加了一些。
我使用备忘单作为「如何使用一些库或编程语言或记住一些命令」的参考。拥有一个单独的页面非常方便,例如具有特定编程语言的所有基本语法。
我仍然在试验这个工具,到目前为止用的挺好。
Diigo
Diigo 允许你注释和突出显示网站的部分内容。我在研究新主题时用它来注释重要信息,或者从文章、Stack Overflow answers 中保存特定段落或者从 Twitter 中获取带来灵感的引用。
以上就是我想介绍的内容。某些工具可能在功能方面有一些重叠,但是正如我在开始时所说的,这是一个不断发展的工作流程,因为我一直在尝试和寻找改进和提高生产力的方法。
你是如何管理你的知识的呢?在评论区一起聊聊吧。
原文链接:How I organize my knowledge as a Software Engineer
推荐阅读:比尔·盖茨:2018 年我喜爱的 5 本书
网友评论