程序员记笔记有没有必要?如何高效记笔记?

本文转载自:https://fangcaicoding.cn/article/57

大家好!我是方才,目前是8人后端研发团队的负责人,拥有6年后端经验&3年团队管理经验,截止目前面试过近200位候选人,主导过单表上10亿、累计上100亿数据量级的业务系统的架构和核心编码。

“学编程,一定要系统化” 是我一直坚持的学习之道。目前正在系统化分享从零到一的全栈编程入门以及项目实战教程

无论你是编程新手,还是有经验的开发者,我都愿意与你分享我的学习方法、项目实战经验,甚至提供学习路线制定、简历优化、面试技巧等深度交流服务。

我创建了一个编程学习交流群(扫码关注后即可加入),秉持“一群人可以走得更远”的理念,期待与你一起 From Zero To Hero!

茫茫人海,遇见即是缘分!希望这篇文章对你有所帮助!

Hello!大家好,我是方才。不知道大家有没有遇到过如下场景:

  1. 这个bug上次遇到过,哎,怎么都想不起是怎么解决的了,然后各种谷歌、翻找之前代码,遇到的坑再来一次;
  2. 这个linux命令或脚本,之前编写过,隔一段时间**,想要用的时候,哎,又忘了!只能再学一次!**

这个场景熟悉不?哈哈!方才兄是深有体会!

我个人记笔记的习惯,也经历了各个阶段。最初笔记复用率不高,仅仅是加深了掌握情况-》然后再经历写了和没写一样,囫囵吞枣-》再到系统学习,知识图谱+技术博客的阶段,耗费精力,未能持续-》再到放弃,躺平-》然后是纯工作驱动,记录工作中遇到的问题-》重新拾起,系统学习和输出,让记笔记变得更加有意义。

我的经历不一定适用于所有人,但可以供大家参考。

迭代过程

18年-xmind

我记得18年刚学编程的时候,并没有一个比较系统的记笔记的方法和习惯,单纯使用xmind做一些知识脑图,这个方法的好处是,能快速形成一个知识树,知晓某个知识点的次重点。

可以看看之前记录的笔记:

image-20241102235432195

这个是Java基础的:

java基础01

在最初形成笔记的时候,价值和帮助性还是很大的,但仅使用xmind去记录,很难在精简细节这两者之间去达成平衡的。

形成知识体系,要的是精简,能形成一个知识树;而日常复用要的是细节,比如说某个框架或者语法的使用,期望能通过代码示例,立即满足项目的使用。

所以从上面的记录也能看出来,18年的我,还是很粗暴的,在知识图谱中记录了很多代码细节,最后就导致知识树失去了精简,代码细节也不够细,不方便检索。

这种状态,一直持续到了20年,**最可怕的是,那个时候的自己,并没有意识到这种方式并不是最优!**所以,也没有去调研,去思考改变!

19年-为了写博客

image-20241103002948388

截图是csdn的创作历程。最开始的初衷是发现单纯的思维导图,对于一些不常用的技术点或者实现,时间间隔半年或者更久之后,单靠知识图谱,很难立即复用在项目中,然后开始了**xmind+写博客。**

  • xmind:形成比较精简的知识图谱;

  • 博客:完成细节记录,方便快速复用。

但很明显到了下半年,心态发生了变更了,开始为了写博客而去写博客,忽略了自己的理解程度和掌握程度,一些技术知识点,看了一本技术书籍,就开始简单写个demo,去发博客,缺少了深度思考的过程,最典型的就是设计模式相关的内容。

虽然写了很多,但并没有有效理解和吸收!只能算是知道,而不是能算是知识!

20年-改变

人生的每一步路,都不会白走!

19年的博客经历,让我开始逐步意识到,不成体系、未经理解的输出,是没有意义的!

那种感觉就是,你看我写了这么多博客,技术成长是很大的,但真让去实践运用,大部分都没法实践!仅停留在知道层面!

20年,这一年就做一件事,系统学习ElasticSearch,选择了最笨的方法但确是最有效的办法,通读官方文档,然后站在初学者(本来也是初学者)的角度,去理解各种概念,去抽象各种DSL语句的作用和使用场景。

整个系列的文章,受到了不少es学习者的好评。

微信公众号也依托es系列,从0起步,涨粉2k,虽然不多,但这是一种认可。中途也偶尔有伙伴付费,让我帮助解决es相关的问题。

但这个过程,是非常耗费时间和精力的。所以没能持续下去!

image-20241103005146403

image-20241103005111082

21年-停止不前

21年,工作上发生了一些变动,开始半独立的负责项目,尝试带团队!工作忙起来了,就没有太多的心思去写博客写公众号了(现在回看,那是一个多不正确的选择),甚至连xmind知识图谱都没有再去总结。

处于一种单纯靠工作驱动,在工作中成长和学习的过程。

在这一年,不能说没有成长,更多是被动的,而非主动学习沉淀。

这种状态是可怕的,感知不到自我的快速成长,让我感到焦虑。

22、23年-逐步沉淀

22年,开始认知到缺乏主动沉淀的不可持续性,开始有有意识的去记录工作中实践的一些技术点,好的解决问题的思路等等,基于点上去形成博客文章,方便后续的复用。

状态好的时候,也会主动去学习一些知识点,查漏补缺。积少成多,逐步分类汇总,开始慢慢沉淀。

这种状态持续到23年底。

image-20241103010354818

image-20241103005807244

24年-一个新的开始

22年和23年,在工作中有意识的记录,慢慢也形成了一些沉淀,但相关的知识体系是没有去补充完整的。也没啥其他原因,就是懒!

决定去改变,是从今年8月开始的,开始去搭建个人博客,重新把公众号捡起来,接着出输出成体系的技术文章【为什么一定要去输出?费曼学习法是经过了时间验证的,亲测有效】。

这个过程,开始审视之前的习惯和产出比例,基于目前的认知,形成了一个基本的思路:

  1. 先基于技术书籍+官网,在2-3天里,形成知识图谱;
  2. 基于知识图谱,结合AI+优秀的博客,学习技术细节;
  3. 为技术去找一个使用场景,进行代码实践和消化,最终形成技术博客,这个过程会重新去修正知识图谱;
  4. 发布到博客系统,依托外部的有效反馈,赋予记笔记更多的意义。

比如说最近在系统学习前端知识,从html、css、js,再到vue系列,都在使用该方法。目前看来是有效的。

这个过程和20年写公众号一样,很耗费精力!但心态不一样了,有时候慢就是快!

img

image-20241103100726169

用到的软件

知识图谱的记录:xmind免费版的功能已经足够个人使用,树形结构非常符合常规的表达习惯,先总后分。

技术文章的记录:Typora+giteeTypora做为一款markdown编辑器,无疑是非常优秀的,所见即所得,自动生成目录索引。结合gitee的远程仓库,即可实现跨平台的同步。

在笔记软件上选择上,之前也用过语雀,也简单试用过nationObsidian,还是感觉使用typora更加轻量可控,没有太多的学习成本,只需要掌握markdown语法即可,而且是本地存储+gitee远程同步,完全不用担心数据丢失。

当然笔记软件不是重点,个人习惯就好,重点是要写起来。

typora使用技巧

基于文件夹分类

分类的目的,是为了方便管理,这个分类在最开始也不用去纠结。甚至没有分类都是OK的,当笔记有了个20+之后,再去分分类也是OK的。

image-20241103102541118

图片保存策略

使用Typora,图片的保存,要么本地,要么图床。最初我也是基于gitee搭建的图床,但那次giteegithub开启防盗链,让我花了一天多的时间的去迁移图片,再次提醒我 “免费的才是最贵的”

然后我也研究过使用oss搭建图床,使用过一段时间阿里云oss,不管是七牛云还是阿里云,每年的费用都是可以忽略不计的。但使用图床有个我不太能接受的问题,图片的目录管理和文章没法匹配,一篇文章极大可能是会陆续迭代的,图床常见的目录策略要么是固定目录,要么就是年月日,而我个人更期望是同一篇文章的图片放在一个单独的目录。

所以,最后还是切换为本地存储。默认存储到当前路径的 /assets/{fileName}下。

image-20241103185410839

这样,对应文章的所有图片都在一个文件夹下,若文章需要迁移目录,直接将附件一起拷贝即可,方便管理。

简单总结下

使用的软件:

  • 知识图谱的记录:xmind知识图谱是为了记忆,掌握全貌。
  • 技术文章的记录:Typora+giteeTypora是为了记录细节,方便复用。结合gitee的远程仓库,实现跨平台的同步。

主动学习的笔记形成过程:

  1. 先基于技术书籍+官网,形成知识图谱;
  2. 基于知识图谱,结合AI+优秀的博客,学习技术细节;
  3. 为技术去找一个使用场景,进行代码实践和消化,最终形成技术博客,这个过程会重新去修正知识图谱;

被动学习的笔记:

  1. 临时将工作中遇到的有价值的问题点,记录成文;
  2. 在后续的系统学习中,加以整合;

写在最后

高效记笔记的前提的,是先记!先记!先记!

一定不要本末倒置,因为没有找到好的方法论,就一直不去做这个事情!程序员持续的学习是非常有必要的,这个学习不仅仅是技术、还有业务知识、个人成长等等!

以上就是方才兄个人记笔记的迭代过程,也欢迎大家在评论区留言讨论!分享一些高效的学习&记笔记的方法!


近期更新计划

近期更新计划(有需要的小伙伴,记得点赞关注哟!)

  1. vue、router、elementplus等前端框架入门教程,预计11中旬更新完成;
  2. 博客系统功能完善,实现评论系统等功能;
  3. 基于vue3+springboot3的前后端分离的博客系统已经开源啦,欢迎大家star!

“学编程,一定要系统化”——若你也是系统学习的践行者,记得点赞关注,期待与你一起 From Zero To Hero!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

lust变频器维修电梯变频器CDD34.014.W2.1LSPC1

LUST伺服在安装时须注意,不可有任何的铁屑、螺丝、导线等掉人驱动器内。在安装完成后应作基本的检测动作,如对地阻抗,和短路检测等。 所有的安装及使用事项需要符合安全规定,并且也需要符合当地的相关规定和灾害预防措施。DC BUS…

NFTScan Site:以蓝标认证与高级项目管理功能赋能 NFT 项目

自 NFTScan Site 上线以来,它迅速成为 NFT 市场中的一支重要力量,凭借对各类 NFT 集合、市场以及 NFTfi 项目的认证获得了广泛认可。这个平台帮助许多项目提升了曝光度和可见性,为它们在竞争激烈的 NFT 市场中创造了更大的成功机会。 在最新更…

深度学习在复杂系统中的应用

引言 复杂系统由多个相互作用的组成部分构成,这些部分之间的关系往往是非线性的,整体行为难以通过简单的线性组合来预测。这类系统广泛存在于生态学、气象学、经济学和社会科学等多个领域,具有动态演变、自组织、涌现现象以及多尺度与异质性…

Vue computed watch

computed watch watch current prev

批量提取当前文件夹内的文件名

在需要提取的文件夹内新建一个txt文件,输入: dir ./b>name.txt 然后将该txt文件的扩展名改为.bat 如图 双击即可提取当前文件夹文件名,并保存到name.txt内

Android OpenGL ES详解——模板Stencil

目录 一、概念 1、模板测试 2、模板缓冲 二、模板测试如何使用 1、开启和关闭模板测试 2、开启/禁止模板缓冲区写入 3、模板测试策略函数 4、更新模板缓冲 5、模板测试应用——物体轮廓 三、模板缓冲如何使用 1、创建模板缓冲 2、使用模板缓冲 3、模板缓冲应用——…

QML基础语法2

函数 函数格式: function关键字 函数名(参数名1:参数类型,参数名2:参数类型,...):返回值类型{} 其中: 函数名必须以小写字符开头,后面驼峰可以有多个参数或者没有参数参数类型可以不写返回值类型也可以不写 如何调用:通过id点…

Qt自定义控件:汽车速度表

1、功能 制作一个汽车速度表 2、实现 从外到内进行绘制,初始化画布,画渐变色外圈,画刻度,写刻度文字,画指针,画扇形,画内圈渐变色,画黑色内圈,写当前值 3、效果 4、源…

Rust 力扣 - 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 长度为k的二进制子串所有取值的集合为[0, sum(k)]&#xff0c;其中sum(k)为1 2 4 … 1 << (k - 1) 我们只需要创建一个长度为sum(k) 1的数组 f &#xff0c;其中下标为 i 的元素用来标记字符串中子串…

【2024年11月高质量国际学术会议推荐1】拓展学术视野,点亮学术之路!开启科研新征程!——数学|物理|电离|能源|遥感|交通各大领域...

【2024年11月高质量国际学术会议推荐1】拓展学术视野&#xff0c;点亮学术之路&#xff01;开启科研新征程&#xff01;——数学|物理|电离|能源|遥感|交通各大领域… 【2024年11月高质量国际学术会议推荐1】拓展学术视野&#xff0c;点亮学术之路&#xff01;开启科研新征程&…

沪深A股上市公司数据报告分析

数据分析报 目录 数据分析报告 1.引言 1.1 背景介绍 1.2 报告目的 1.3 报告范围 1.4 关键术语定义 2. 数据收集与预处理 2.1 数据来源概述 2.2 数据收集过程 2.3 数据预处理步骤 3. 数据可视化 3.1分析地区对公司数量的影响 3.2分析行业分类是否影响公…

ImportError: Install xlrd >= 1.0.0 for Excel support

文章目录 一、报错问题二、问题解释三、解决方法 一、报错问题 问题描述&#xff1a; python2.7使用pandas读取excel文件时报错ImportError: Install xlrd > 1.0.0 for Excel support。 问题代码&#xff1a; # codingutf-8import pandas as pddata pd.read_excel(D:\Wo…

【Linux】make/makefile/gdb调试技巧/进度条小程序

目录 一、sudo提权&#xff1a; 二、自动化构建工具make与Makefile makefile&#xff1a; make&#xff1a; 是否重新执行make&#xff1a; 伪目标&#xff1a; 三、进度条小程序&#xff1a; 四、Linux调试器gdb&#xff1a; 1.、前景提要&#xff1a; 2、进入与退出…

Flutter实战短视频课程

1、课程导学 一套代研运行多蜡 体州一致&#xff0c;目胜能优昇 未来大趋势 不改交原生项目的基础上&#xff0c;扩展Flutter能力 Flutter原生灵话切涣 0入侵 最简单、最通用 最新Flutter 3,x新特性讲解 大量flutter官方组件和api学习 最常用的第三方库使用及原理解析 自研组…

程序员的新电脑到手后应该做哪些必要设置?

吃水果要剥皮&#xff0c;用 Windows 也一样&#xff0c;如果是 Win 10 的话&#xff0c;刚装完系统就需要屏蔽一些功能&#xff0c;才能更顺畅快速&#xff1a; 隐藏任务栏上的搜索框和小娜&#xff0c;需要搜索时wins就会出现禁用开始目录的app自动推荐删除人脉图标删除任务…

unocss 添加支持使用本地 svg 预设图标,并支持更改大小

安装 pnpm install iconify/utils 在配置文件 unocss.config.ts&#xff1a; presets > presetIcons 选项中 通过 FileSystemIconLoader 加载本地图标&#xff0c;并指定目录。 import presetWeapp from unocss-preset-weapp import { extractorAttributify, transformer…

Zig 语言通用代码生成器:逻辑,发布冒烟测试版二之二

Zig 语言通用代码生成器&#xff1a;逻辑&#xff0c;发布冒烟测试版二之二 Zig 语言通用代码生成器&#xff1a;逻辑&#xff0c;已发布冒烟测试版二。此版本完善了代码生成物。支持多对多关系。修复了所有单域动词。并有更多缺陷修复。暂时不支持图片类型。暂时不支持日期和…

Vue3的router和Vuex的学习笔记整理

一、路由的基本搭建 1、安装 npm install vue-router --registryhttps://registry.npmmirror.com 2、配置路由模块 第一步&#xff1a;src/router/index.js创建文件 第二步&#xff1a;在src/view下面创建两个vue文件&#xff0c;一个叫Home.vue和About.vue 第三步&#x…

远程连接服务

目录 一、远程连接服务器简介 二、连接加密技术简介 三、认证阶段 四、ssh实验 1.修改ssh服务器的端口号 2.拒绝root账户远程登录 3.允许特定用户ssh登录&#xff0c;其他用户无法登录 4.ssh-keygen 一、远程连接服务器简介 概念&#xff1a; 远程连接服务器通过文字或…

JS中面向对象

一、对象 1.认识对象 在JavaScript中&#xff0c;对象&#xff08;Object&#xff09;是一种复合数据类型&#xff0c;它允许你存储键值对。对象的属性是连接到对象的变量&#xff0c;而函数或方法是属于对象的函数。 JavaScript中的对象类似于哈希表&#xff0c;其中键可以是…