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

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

知识学习的路径

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


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

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

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

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

结构

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

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

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

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

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

工具

那用什么做笔记呢?市面上已经有很多笔记管理软件了,像 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 插件呢?)。不过至少我个人用起来,还是很舒服的。也希望这些内容,能为大家产生一些”接触“点。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xbox可以录视频声音吗_什么是Xbox Live Gold,它值得吗?

xbox可以录视频声音吗If you have an Xbox One or Xbox 360, Microsoft’s Xbox Live Gold service is required to play multiplayer games online. A subscription costs $10 per month or $60 per year. Xbox Live Gold also includes additional benefits, like free games…

windows - mysql

Windows:(mysql)操作:0.下载安装mysql www.mysql.org downloads community 5.7.21 下载5.6 Microsoft Windows 解压到C: C:\mysql-5.6.39-winx64 C:\mysql-5.6.39-winx64\bin bin/mysql 客户端 bin/mysqld 服务端 设置环境变量: …

显示器选三星还是飞利浦_如何为飞利浦色相灯设置计时器

显示器选三星还是飞利浦Maybe you want to turn off your Philips Hue lights after a certain amount of time has passed, or have them blink as a reminder. Whatever your needs, here’s how to set a timer for your Philips Hue lights to have them automatically tur…

PIE SDK与OpenCV结合说明文档

1.功能简介 OpenCV是基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C 类构成,同时提供了Python、Ruby、MATLAB等语言的接口&…

js的栈堆与浅拷贝、深拷贝的理解

一:什么是堆栈? 我们都知道:在计算机领域中,堆栈是两种数据结构,它们只能在一端(称为栈顶(top))对数据项进行插入和删除。 堆:队列优先,先进先出;由操作系统自动分配释放 ,存放函数的…

python面向对象基础语言进阶

在此感谢前辈们的指导:http://python.jobbole.com/80955/ https://www.cnblogs.com/wupeiqi/p/4766801.htmlhttps://www.cnblogs.com/paomaliuju/p/5122761.html https://www.cnblogs.com/goser/articles/7097728.html http://www.cnblogs.com/alex3714/articles/52…

ea 备份码是什么_EA的原始访问是什么,值得吗?

ea 备份码是什么EA’s Origin Access gives you access to more than 70 games, discounts, and new EA games before they’re released for a monthly (or yearly) subscription fee. But is it really worth it? EA的Origin Access可让您访问70多种游戏,打折游戏…

Https 加密原理分析

众所周知,HTTP 协议通过明文传输,是不安全的。于是,就在 HTTP 协议的基础上,进行了数据加密,也就诞生了 HTTPS 协议。注意,HTTPS 并不是一个新的协议,它只不过是在 HTTP 的基础上加了一层 TLS (…

JS框架_(JQuery.js)纯css3进度条动画

百度云盘  传送门  密码&#xff1a;wirc 进度条动画效果&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge,chrome1">…

如何在Android主屏幕上添加热点快捷方式

Portable Wi-Fi hotspots on your Android phone are great, because hotel Wi-Fi usually isn’t, but toggling that hotspot on and off is a pain. Here are several easy ways to add a hotspot widget to your home screen. 您的Android手机上的便携式Wi-Fi热点很棒&…

提高关键词排名的28个SEO技巧

28个让关键词排名明显改观的SEO技巧&#xff1a; 关键词位置、密度、处理 URL中出现关键词&#xff08;英文&#xff09; 网页标题中出现关键词&#xff08;1-3个&#xff09; 关键词标签中出现关键词&#xff08;1-3个&#xff09; 描述标签中出现关键词&#xff08;主关键…

SQLI DUMB SERIES-16

&#xff08;1&#xff09;无论怎么输入&#xff0c;都没有回显&#xff0c;但当输入 admin")#时&#xff0c;显示登录成功。若通过其他方法获取数据库的用户名&#xff0c;可通过这个方法登录成功。 &#xff08;2&#xff09;获取其他信息可用考虑时间延迟注入。方法同1…

如何在YouTube视频上禁用注释

YouTube has that betcha-can’t-watch-just-one appeal to it, which is why YouTube’s annoyances become so pronounced the more you use it. Many of these features, such as annotations can be permanently disabled, making for a more enjoyable viewing experience…

Linux目录配置及应放置的内容

Linux目录配置及应放置的内容 /bin&#xff1a;系统有很多放置执行文件的目录&#xff0c;但/bin比较特殊。因为/bin放置的是在用户维护模式下还能够被操作的命令。在/bin下面的命令可以被root与一般账号所使用&#xff0c;主要有cat,chmod,chown,date,mv,mkdir,cp,bash等常用命…

快速实现一个Http回调组件

2019独角兽企业重金招聘Python工程师标准>>> 快速实现一个Http回调组件 一、前情回顾 ​ 我们平时在使用一些库的时候&#xff0c;会遇到一些看起来很舒服的写法&#xff0c;用起来感觉很简单&#xff0c;而且写法也很优雅&#xff0c;比如OkHttp&#xff0c;或者是…

MyBatis缓存通俗易懂

1.1 mybatis缓存介绍 如下图&#xff0c;是mybatis一级缓存和二级缓存的区别图解&#xff1a; Mybatis一级缓存的作用域是同一个SqlSession&#xff0c;在同一个sqlSession中两次执行相同的sql语句&#xff0c;第一次执行完毕会将数据库中查询的数据写到缓存&#xff08;内…

DVbbs8.2入侵思路与总结

dvbbs8.2后比较变态&#xff0c;目前还没有特别好的方法&#xff0c;外面有人提到一种方法就是直接上传php文件或者其它服务器支持文件&#xff0c;这个也是一个思路&#xff0c;不过很多时候&#xff0c;单独的服务器不会支持这么多。dvbbs禁用了asp和asp.net的上传&#xff0…

Python基础教程:Python pass语句详解

2019独角兽企业重金招聘Python工程师标准>>> Python pass 语句 Python pass是空语句&#xff0c;是为了保持程序结构的完整性。 pass 不做任何事情&#xff0c;一般用做占位语句。 Python 语言 pass 语句语法格式如下&#xff1a; 实例&#xff1a; 学习从来不是一个…

Oracle数据库在Nokia

Nokia固然今非昔比&#xff0c;但在手机市场仍是未瘦死的骆驼&#xff0c;有关报道显示Nokia现役的数据库(包括Oracle、MySQL、MSSQL)达到2300套之多&#xff0c; DBA团队共有20多人&#xff0c;平均每人100多套库。 Grid Control在过去5年中是最主要的、也几乎是唯一的DBA管理…

css animation动画

css 动画&#xff1a; 动画是CSS3中具有颠覆性的特征之一&#xff0c;可通过设置多个节点来精确控制一个或一组动画&#xff0c;常用来实现复杂的动画效果. 必要元素&#xff1a;a、通过keyframes指定动画序列&#xff1b;自动补间动画&#xff0c;确定两个点&#xff0c;系统会…