记笔记这件事,也许在很多人看来,再普通、简单不过了——从小老师就教育我们要这么做。不同的人有不同的方式,我们最终的目的,还是希望不要停留在只是记录这一层面上,而是将它们转变为我们的知识。作为一个程序员,今天我跟大家聊聊我的一些笔记管理的方法,希望对大家有用。如果大家还有更好的方式,也欢迎留言一起探讨。

知识学习的路径

首先聊聊知识学习的路径。讲得宏大一点,我们得先有方法论。知识学习的途径可以分为以下几个阶段:

接触,可能来源于工作中遇到的一个问题,或者朋友的推荐,或者逛社区、论坛时看到的新鲜内容。在接触之前,我们并不知道,或者并不在意一个知识的存在,以及它是如何存在的。通过接触,它勾起了我们的好奇心,激发了我们的热情,吸引我们去实践。

实践,就是依照别人所描述的内容,或者自己个人的理解,动手去解决问题。只有经历过实践,才能摸清楚细节,才能更加具象、深刻地理解某项知识。而在实践的过程中,我们可能会遇到各种状况,别人未描述的或自己不甚理解的。通过各种其他手段,如查阅、咨询等,最终解决了问题,丰富了知识适用的场景及其内涵。然后我们就需要把实践的过程记录下来,形成我们自己的认知。

总结,就是用自己的话去描述同样一个知识。它的表述形式可能跟别人的不一样,关注的细节点也可能不一样。通过总结,形成我们认识事物的方式。这种方式继而会影响我们在后续的实践过程中的工作流程。一些较复杂的知识点也不是一次实践或总结就能准确理解的,也许有疏漏。在后续的工作、学习中,我们使用这些尚未完全的知识,遇到困难,又继续总结,形成一个反馈循环。直到达到一个较为满意的状态。这个时候,我们就可以考虑“为人师”了。

分享,就是把自己掌握的知识,用更多人能理解的方式讲述、传播出去。它跟总结的区别就是,不再是仅仅以个人能理解的方式去表达知识,而是要辅以通俗的语言、合适的图文来表达。让大家看到还有这样一种角度、思路,成为他们的知识接触点。

结构

这里我们讨论的知识的主要载体,就是笔记。根据知识学习的路径,我们可以对笔记进行分门别类。至少要单独列出分享这一目录。我常用的一级目录为:

分享:包含所有待分享或已分享的文章、素材,使用日期作为子文件夹或文件名前缀。

开发:包含开发相关的知识点,如语言、工具、操作系统、网络、中间件、架构等等

工作:包含各个公司、个人项目的工作内容与日常记录

至于一级目录以下的目录划分,可以根据每个人所侧重的知识面来安排。

工具

那用什么做笔记呢?市面上已经有很多笔记管理软件了,像 EverNote、有道等。不过作为程序员,我们手边的开发工具就能做笔记管理。这里我推荐用 Visual Studio Code。它是一款非常轻量的 IDE 工具,有强大的插件体系。它不光可以用来写代码,还可以用来写文档,尤其是 Markdown 文档。自带 inline 样式渲染,支持格式校验、自动排版(尤其是 table)、PDF 导出等各种功能,还有很多插件可供你选择。

Markdown,我想每个程序员都应该熟悉它的语法。其实核心的、常用的几个语法很简单,包括多级标题、多级列表、Code 等。像我写这一篇文章,用到的也就无非这些语法点,额外多了图片的插入等。根本不需要花多少时间。但是掌握它,不光有助于我们写文章,包括开发中写文档,都是非常有用的。像我们常用的 Github、Gitlab 里,都可以直接渲染 Markdown 文件,Issue 中也能支持 Markdown 语法。学会一招,吃遍天下。很有必要。

也许有的同学会有疑问,那岂不笔记都是本地存储了?这个问题很好。我们还需要一些工具,Git + Gitlab。将整个笔记目录加入 Git 版本控制,这样我们所有的笔记历史都能保存起来。然后,我们可以在 Gitlab.com 的个人账号上创建一个私有项目,同步我们的本地笔记到远端。这样,我们在公司使用公司的电脑,可以顺利地同步;手机端也可以使用浏览器访问 Gitlab 网址在线打开我们的项目,查看笔记。有了 Git 支持,即便多端修改产生冲突,也能很好地去解决。

扩展

用 VSCode + Gitlab 来管理我们的笔记,还有一个好处就是,这些笔记就是我们看得到的文件。那这里我们可以引申一下。把我们的笔记管理作为个人知识仓库,它里面还能包含各种可以执行的脚本(如 Bash、Python)。这些脚本是我们自己编写的、用来方便我们工作的。比如说我就写了很多类似 Git 周报、Gitlab CI 自动化等这样的脚本。它们不光能在我家里的电脑上执行,还能同步到我公司的电脑上,照样执行。而且执行的方式不会有什么变化,不需要额外下载、保存、授权等各项工作,这些都在同步过程中解决了。十分方便。

当然,以上方式也有一些弊端,比如图片不好处理,无法直接粘贴到文章里(也许有这样的 VSCode 插件呢?)。不过至少我个人用起来,还是很舒服的。也希望这些内容,能为大家产生一些”接触“点。

程序员笔记(知识)管理的一点经验相关推荐

  1. 30岁程序员转行做管理:没经验焦虑不安怎么办?

    小编是一个多年开发经验的程序员,前端.Java.Python我都懂, 作为程序员,如果有一天厌倦了枯燥无味的代码,再加上年龄随着工作年限的增加而增加,不少人选择了转行做管理. 近日,在脉脉上看到一位网 ...

  2. 程序员的时间管理计划

    目录 01优秀程序员的时间概念 02优秀程序员的时间分类 03时间管理法则 最近大家都在忙着做什么呢?忙着找工作?忙着工作?抑或是忙着当一条咸鱼,但是每天都给自己贴上一条正在忙着思考人生的标签? 不管 ...

  3. 聊聊后端程序员的知识体系-第一篇

    聊聊后端程序员的知识体系-第一篇 原文链接:https://www.fpthinker.com/backend_knowledge_architecture/knowledge.htmll 亲爱的读者 ...

  4. 程序员生存定律--管理向左,技术向右

    点击打开链接 一个程序员在考虑增值时无法回避的一个根本问题是到底是做技术还是做管理.当然也有些职位会介于两者之间比如架构师,但我们暂时不去做细分,而是用简单的二分法. 这种基本方向上的选择对后续很多细 ...

  5. 48张帮助程序员梳理知识框架结构图谱

    汇集整理泛 IT 技术领域(云计算,大数据,运维,安全,开发语言,智能硬件,前端,后端等等)学习技能图谱,帮助程序员梳理知识框架结构,并尝试提供路径指导和精华资源,方便技术人学习成长. 后续技能图谱内 ...

  6. 免费又好用的程序员笔记应用Boostnote for mac

    此文为原文转载 Boostnote笔记可以快速清晰的棒程序员创建一个组织良好的文章,并且轻松地记录开发知识的备忘录,会议笔记等,是专业为程序员设计的笔记本开源应用,另外,它识别超过100种语法高亮使其 ...

  7. 《告别失控:软件开发团队管理必读》一一第1章 程序员为何难以管理

    第1章 程序员为何难以管理 告别失控:软件开发团队管理必读 程序设计作为一种严肃的职业已经存在60多年了.在美国,从事程序设计工作的程序员数以百万计,而全球这个数字更大.这些数字还不包括人数众多的学生 ...

  8. 基于程序员的知识付费,这个网站有点新意,但是基于程序员的知识付费,能刮起一阵凤么?

    今天无意中看到一个网站(避免广告嫌疑,不能透露名称和网址),都是一些细小的技术问题,提问的是程序员,解决问题的也是程序员.当然也有写外包项目 但感觉也有几个问题 1.问题分类都很乱,没有按开发语言区分 ...

  9. 写给程序员的时间管理

    点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 图片源自:unsplash 作者 艾力 转载自公众号:Leetcode名企之路 如 ...

最新文章

  1. 华为云春节前夕遭连续偷袭!密谋3个月,专挑凌晨断网
  2. 他们拿走腾讯百万奖金,我有点泪目
  3. 使用 FRP 反向代理实现 Windows 远程连接
  4. 如何让文本框中只能输入手机号码
  5. Tensorflow 错误总结:ImportError: cannot import name add_newdocs.
  6. Mysql分析排序和锁阅读总结
  7. Java数组与容器类分析资料--数组、List和Set、Map等
  8. VC跨进程数据(结构体)传递-WM_COPYDATA
  9. 同步I/O 和 异步I/O
  10. 什么是LUT(LOOK UP TABLE)
  11. 过年最大的烦恼是什么?
  12. 容易忽视但是功能灰常强大的Java API(二. 读写对象)
  13. 互联网的长在线、心跳和断线重连
  14. C语言程序设计题库附答案
  15. wpe封包修改服务器数据,WPE修改基础第三课:封包的基本知识
  16. 聊天室 作业 java_java大作业设计报告-java聊天室.docx
  17. 初探Linux--鸟哥私房菜读书笔记
  18. 苹果开发者账号--关于邓白氏编码的申请
  19. SCI收录的IEEE期刊
  20. Unity3D 文字线条效果

热门文章

  1. html 科幻模板,html5酷炫宇宙科幻周年庆典专题动画模板
  2. mysql003三表查询.三表查询.自链接查询
  3. pb 插入报列在此处不_获取有关[在此处插入问题]的事实
  4. figma下载_迁移至Figma
  5. imessage_重新设计iMessage以获得更好的用户体验— UX案例研究
  6. 刺猬文│从启动方式来看播客链的运行机制—设置验证者
  7. 机房管理系列之杀毒服务器维护
  8. 85、交换机安全MAC层***配置实验之Port-Security
  9. P2P网络穿越 NAT穿越
  10. MySQL查询结果导出到文件