当前位置: 首页 > article >正文

编程学习时怎么更好归纳自己的笔记

学了一个月回头翻笔记发现根本看不懂自己写了什么。记了满满一本真要查某个知识点时翻来翻去找不到。明明记过用的时候大脑一片空白。这是不是你笔记不是记过就算而是要用得上。本文从实际痛点出发分享一套经过验证的编程笔记整理方法帮你把笔记从存档变成资产。一、常见笔记困境你中了几条困境表现根因记完就忘笔记写得很详细但三天后完全不记得只是抄写没有理解查不到想找某个知识点翻遍笔记找不到缺少分类和检索体系用不上笔记和实战脱节开发时想不起来去查缺少场景索引难坚持笔记记着记着就断了方法太重难以持续二、笔记整理的核心原则在讲具体方法之前先记住三个原则原则含义检验标准有结构笔记不是流水账而是知识体系看到目录能大致说出学到了什么有代码理论配代码能跑能改半年后拿来就能运行有检索能快速找到需要的信息记完就能找到半年后还能找到三、七步打造高效笔记体系3.1 分门别类很多人的笔记是线性记录今天学什么记什么笔记像一本按时间排列的流水账。正确的做法是先搭好分类骨架知识点往里填。推荐分类方式以Java学习为例Java学习笔记/ ├── 01-基础语法/ │ ├── 数据类型与变量 │ ├── 控制流程if/for/while │ ├── 数组与字符串 │ └── 方法函数 ├── 02-面向对象/ │ ├── 类与对象 │ ├── 三大特性封装/继承/多态 │ ├── 接口与抽象类 │ └── 内部类 ├── 03-集合框架/ │ ├── ListArrayList/LinkedList │ ├── SetHashSet/TreeSet │ ├── MapHashMap/ConcurrentHashMap │ └── 集合对比与选型 ├── 04-并发编程/ │ ├── 线程基础 │ ├── 锁机制 │ └── 线程池 ├── 05-常用框架/ │ ├── Spring │ ├── Spring Boot │ └── MyBatis └── 06-实战问题/ ├── 遇到的Bug及解决 └── 性能优化案例建议分类不必一次完美随着学习深入不断调整。关键是先有分类后有内容。3.2 使用图示编程中有很多光靠文字说不清楚的概念类的继承关系、设计模式、系统架构、数据流转。这时一张图抵得上一千个字。什么场景适合画图场景图类型示例类之间的关系UML类图继承、接口实现、依赖数据流转流程图用户请求→Controller→Service→DAO→数据库设计模式结构图观察者模式中Subject和Observer的关系系统架构架构图前端→网关→微服务→数据库→缓存画图工具推荐工具特点适合场景ProcessOn在线、免费、模板多流程图、架构图Dram.io免费、可离线UML图、各种图示Excalidraw手绘风格、极简快速草图纸笔零门槛、最快个人理解、草稿建议不要追求画得好看先追求表达清楚。自己看得懂比什么格式都重要。3.3 编写示例代码笔记里最重要的不是文字描述而是可运行的代码。代码示例的黄金三要素// 1. 先说明这段代码要证明什么 // 示例演示HashMap的put和get方法 // 2. 代码本身简洁、可运行、有注释 HashMapString, Integer map new HashMap(); map.put(苹果, 100); // 存入键值对 map.put(香蕉, 80); int price map.get(苹果); // 100 // 3. 预期输出 关键点说明 System.out.println(price); // 输出100 // 注意HashMap不保证顺序遍历结果可能与插入顺序不同代码笔记的最佳实践✅ 每个重要概念配一个可运行的代码示例✅ 代码尽量短10-30行为佳✅ 关键行加注释说明“为什么这么写”❌ 不要大段粘贴要有自己的注释和说明3.4 总结关键点和常见坑每个知识点学完后花5分钟做两件事第一件提炼一句话核心“HashMap键值对存储查找快不保证顺序。”就一句话帮你快速回忆这个知识点的定位。第二件记录常见坑知识点常见坑一句话避坑equals和用比较字符串字符串比较用equals比的是地址多线程多个线程改同一个变量加锁或用Atomic类数据库连接用完不关用try-with-resources自动关闭为什么这个很重要复习的时候看常见坑比看正确用法更高效因为你真正需要记住的是哪里容易错。3.5 选择合适的工具工具特点适合人群代码支持云同步Notion功能最强数据库视图愿意花时间折腾的人支持支持Obsidian本地存储双向链接喜欢纯文本、爱折腾的人支持需配置Typora极简Markdown编辑器只想专心写字的人支持不支持VS Code 插件开发者最爱程序员支持不支持语雀国内友好开箱即用不想折腾的人支持支持飞书/钉钉文档团队协作有学习小组的人支持支持个人推荐追求极简Typora写 GitHub存追求功能Notion数据表、标签、搜索都很强开发者习惯VS Code Markdown插件 Git3.6 建立检索体系笔记记了找不到等于没记。建立检索体系让笔记真正“可用”。方法一标签系统在每篇笔记开头打上标签--- tags: [java, 集合, 面试题] date: 2024-01-15 ---方法二创建索引页在一个地方集中记录所有笔记的链接## 索引页 ### 基础 - [Java数据类型](notes/java/数据类型.md) - [控制流程](notes/java/控制流程.md) ### 集合 - [ArrayList源码分析](notes/java/ArrayList.md) - [HashMap实现原理](notes/java/HashMap.md)方法三全文搜索Notion/Obsidian/语雀都支持全局搜索关要有关键词意识记的时候就想好以后我会用什么词来搜这个内容3.7 定期复习与更新笔记不是一次性的需要持续养护。复习节奏频率做什么时间每天扫一眼前一天笔记5分钟每周回顾本周笔记整理归档15分钟每月检查哪些笔记需要更新、补充30分钟更新的信号发现某个知识点之前理解错了 → 立即修正学了新内容和旧笔记有关联 → 补充链接实际开发中踩了坑 → 加到“常见坑”里四、几种常见笔记方法的对比方法核心理念优点缺点适合阶段康奈尔笔记法分区记录主笔记线索总结结构清晰便于复习不适合代码理论型内容卡片盒笔记法原子化、双向链接知识网络易于产生新想法门槛高需工具支撑进阶学习者Q/A笔记法一问一答形式直接对接问题查阅方便知识碎片化查漏补缺代码仓库型笔记 代码 注释实战性强可运行缺少理论梳理项目驱动学习五、优秀笔记示例示例HashMap学习笔记# HashMap 学习笔记 一句话核心键值对存储基于哈希表查找O(1)不保证顺序。 ## 基本用法 \java // 创建 HashMapString, Integer map new HashMap(); // 增/改 map.put(苹果, 100); map.put(香蕉, 80); // 查 Integer price map.get(苹果); // 100 // 删 map.remove(苹果); // 遍历 for (Map.EntryString, Integer entry : map.entrySet()) { System.out.println(entry.getKey() entry.getValue()); } \ ## 原理简析 - 底层结构数组 链表/红黑树 - put流程计算hash → 定位桶 → 无冲突直接放有冲突链起来 - 扩容负载因子0.752倍扩容 ## 常见坑 ⚠️ | 坑 | 现象 | 解决方案 | | :--- | :--- | :--- | | 自定义对象做Key不重写hashCode | 相同的对象存不进去 | 必须同时重写equals和hashCode | | 遍历时删除 | ConcurrentModificationException | 用Iterator的remove | | 多线程使用 | 死循环1.7、数据丢失 | 改用ConcurrentHashMap | ## 相关笔记 - [[ConcurrentHashMap]] - 线程安全版本 - [[LinkedHashMap]] - 有序版本 - [[HashSet]] - 底层就是HashMap六、总结阶段目标核心动作持续时间起步期先动起来不要完美主义每天记一点用什么工具都行第1-2周调整期找到适合自己的方法尝试分类、画图、代码注释第3-8周稳定期形成习惯体系定期复习、持续优化2个月后最后三个建议不要追求完美笔记先记下来再慢慢优化。一张草稿照片 一句话也比没记强。笔记是给自己看的不需要华丽不需要给别人看。你自己能看懂、能用上就够了。坚持比方法更重要再好的方法不坚持也没用再简陋的方法坚持下来也有收获。你的笔记是你编程成长路上最忠实的见证者。从今天开始记下第一个知识点不要等到准备好出发本身就是一种准备。

相关文章:

编程学习时怎么更好归纳自己的笔记

学了一个月,回头翻笔记,发现根本看不懂自己写了什么。 记了满满一本,真要查某个知识点时,翻来翻去找不到。 明明记过,用的时候大脑一片空白。这是不是你?笔记不是记过就算,而是要用得上。本文从…...

如何用Python在5分钟内自动解析简历关键信息?PyResParser终极指南

如何用Python在5分钟内自动解析简历关键信息?PyResParser终极指南 【免费下载链接】pyresparser A simple resume parser used for extracting information from resumes 项目地址: https://gitcode.com/gh_mirrors/py/pyresparser 在招聘高峰期,…...

Arm Neoverse CMN-650架构与性能优化解析

1. Arm Neoverse CMN-650架构概览在现代多核处理器系统中,一致性互连网络扮演着至关重要的角色。作为Arm Neoverse平台的核心组件,CMN-650采用Mesh拓扑结构设计,为多核处理器集群提供高效的数据传输和缓存一致性管理。这种架构特别适合需要高…...

如何在电脑上完美运行3DS游戏:Citra模拟器5步安装指南

如何在电脑上完美运行3DS游戏:Citra模拟器5步安装指南 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 想要在电脑上重温任天堂3DS的经典游戏吗?Citra模拟器作为目前最优秀的开源3DS模拟…...

3mux常见问题解决:10个用户最常遇到的错误及其修复方法

3mux常见问题解决:10个用户最常遇到的错误及其修复方法 【免费下载链接】3mux Terminal multiplexer inspired by i3 项目地址: https://gitcode.com/gh_mirrors/3m/3mux 3mux是一款受i3启发的终端复用器,为用户提供高效的终端窗口管理体验。然而…...

为什么你的Midjourney胶片图总像数码后期?——从光子散射模型到显影时间算法的底层差异解析

更多请点击: https://intelliparadigm.com 第一章:胶片质感的视觉直觉与认知偏差 胶片质感并非单纯的技术残留,而是一种经由人类视觉系统长期训练形成的感知锚点——它将颗粒噪点、色偏渐变、边缘晕影等非理想光学特征,编码为“真…...

在Windows电脑上玩转酷安社区:这款免费UWP客户端让你告别手机小屏幕

在Windows电脑上玩转酷安社区:这款免费UWP客户端让你告别手机小屏幕 【免费下载链接】Coolapk-UWP 一个基于 UWP 平台的第三方酷安客户端 项目地址: https://gitcode.com/gh_mirrors/co/Coolapk-UWP 还在用手机刷酷安社区吗?是时候体验大屏幕带来…...

YouMightNotNeedJS与响应式设计:打造完美适配所有设备的UI组件

YouMightNotNeedJS与响应式设计:打造完美适配所有设备的UI组件 【免费下载链接】YouMightNotNeedJS 项目地址: https://gitcode.com/gh_mirrors/yo/YouMightNotNeedJS 在现代网页开发中,实现跨设备兼容的响应式界面是提升用户体验的关键。YouMig…...

Midjourney等距视角风格落地全栈手册(附NASA航天器建模级参数配置表)

更多请点击: https://intelliparadigm.com 第一章:Midjourney等距视角风格的本质与视觉范式 等距视角(Isometric Perspective)在 Midjourney 中并非原生渲染模式,而是通过提示词工程、参数约束与构图引导共同构建的视…...

5分钟掌握英雄联盟国服换肤:R3nzSkin完整解决方案

5分钟掌握英雄联盟国服换肤:R3nzSkin完整解决方案 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 你是否曾在游戏中羡慕别人的稀有皮肤&…...

Promises/A+完全指南:深入理解JavaScript异步编程标准规范

Promises/A完全指南:深入理解JavaScript异步编程标准规范 【免费下载链接】promises-spec An open standard for sound, interoperable JavaScript promises—by implementers, for implementers. 项目地址: https://gitcode.com/gh_mirrors/pr/promises-spec …...

终极指南:如何让苹果触控板在Windows上获得专业级体验

终极指南:如何让苹果触控板在Windows上获得专业级体验 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-touchpad …...

ISG系统三大电机结构深度解析:永磁同步、感应与开关磁阻电机对比

1. 项目概述:从“电机”到“ISG系统”的深度关联在混合动力与新能源车领域,ISG(Integrated Starter Generator,集成式启动发电一体机)系统是一个核心的动力单元。它不像传统汽车那样,启动电机和发电机是分开…...

坐到马斯克和库克中间的湖南女人

梦瑶 发自 凹非寺量子位 | 公众号 QbitAI谁能在国宴现场坐在马斯克和库克中间?她——你可能不认识她的脸。△图源:《新闻联播》但你手上这块iPhone的玻璃屏,是她家公司做的。你开的特斯拉的车体配件,大概率也是。三星、Meta、摩托…...

Nuxt.js Tailwind CSS 模块:零配置快速启动现代Web开发

Nuxt.js Tailwind CSS 模块:零配置快速启动现代Web开发 【免费下载链接】tailwindcss Tailwind CSS module for Nuxt 项目地址: https://gitcode.com/gh_mirrors/tai/tailwindcss Nuxt.js Tailwind CSS 模块是一个专为Nuxt框架设计的Tailwind CSS集成解决方案…...

demo-magic实用技巧:模拟网络连接和隐藏后台操作的完整方案

demo-magic实用技巧:模拟网络连接和隐藏后台操作的完整方案 【免费下载链接】demo-magic A handy shell script that enables you to write repeatable demos in a bash environment. 项目地址: https://gitcode.com/gh_mirrors/de/demo-magic demo-magic是一…...

终极指南:如何用Chrome Markdown阅读器完美阅读本地Markdown文件

终极指南:如何用Chrome Markdown阅读器完美阅读本地Markdown文件 【免费下载链接】markdownReader markdownReader is a extention for chrome, used for reading markdown file. 项目地址: https://gitcode.com/gh_mirrors/ma/markdownReader 你是否曾经在C…...

【运维篇 / 实战】❀ 邮件告警的自动化配置与故障排查 ❀ FortiGate 防火墙

1. 邮件告警功能的价值与场景 想象一下这样的场景:凌晨三点,公司防火墙突然检测到大规模DDoS攻击,而此时所有运维人员都在睡梦中。等到第二天上班才发现,业务系统已经瘫痪了整整五个小时。这种"事后诸葛亮"的窘境&…...

为什么选择Lacinia?5大优势带你了解这个强大的GraphQL解决方案

为什么选择Lacinia?5大优势带你了解这个强大的GraphQL解决方案 【免费下载链接】lacinia GraphQL implementation in pure Clojure 项目地址: https://gitcode.com/gh_mirrors/la/lacinia 在当今API开发领域,GraphQL已经成为构建高效数据接口的重…...

如何快速提升Obsidian笔记体验:AnuPpuccin主题完整指南

如何快速提升Obsidian笔记体验:AnuPpuccin主题完整指南 【免费下载链接】AnuPpuccin Personal theme for Obsidian 项目地址: https://gitcode.com/gh_mirrors/an/AnuPpuccin 还在为单调的Obsidian界面而烦恼吗?想让你的笔记软件既美观又实用吗&a…...

别再傻傻做27次实验了!用SPSSAU三分钟搞定正交试验设计(附保姆级极差分析教程)

正交试验设计实战指南:从理论到SPSSAU高效操作 在科研与工程实践中,我们常常面临多因素多水平实验设计的挑战。传统全面试验方法虽然理论严谨,但当因素和水平数量增加时,实验次数呈指数级增长,导致资源浪费和时间成本飙…...

demo-magic常见问题解决:pv工具安装和终端兼容性完全指南

demo-magic常见问题解决:pv工具安装和终端兼容性完全指南 【免费下载链接】demo-magic A handy shell script that enables you to write repeatable demos in a bash environment. 项目地址: https://gitcode.com/gh_mirrors/de/demo-magic demo-magic是一个…...

GalTransl代码架构分析:理解多进程插件系统的设计原理

GalTransl代码架构分析:理解多进程插件系统的设计原理 【免费下载链接】GalTransl 支持GPT-4/Claude/Deepseek/Sakura等大语言模型的Galgame自动化翻译解决方案 Automated translation solution for visual novels supporting GPT-4/Claude/Deepseek/Sakura 项目地…...

Veil-Evasion核心模块深度解析:从控制器到Payload生成

Veil-Evasion核心模块深度解析:从控制器到Payload生成 【免费下载链接】Veil-Evasion Veil Evasion is no longer supported, use Veil 3.0! 项目地址: https://gitcode.com/gh_mirrors/ve/Veil-Evasion Veil-Evasion是一款专业的免杀payload生成工具&#x…...

SyncedStore深度解析:揭秘CRDT技术如何实现无冲突数据同步

SyncedStore深度解析:揭秘CRDT技术如何实现无冲突数据同步 【免费下载链接】SyncedStore SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically. 项目地址: https://gitcode.com/gh_mirrors/sy/Sy…...

终极指南:如何快速解决LaTeX中文排版字体问题

终极指南:如何快速解决LaTeX中文排版字体问题 【免费下载链接】latex-chinese-fonts Simplified Chinese fonts for the LaTeX typesetting. 项目地址: https://gitcode.com/gh_mirrors/la/latex-chinese-fonts 还在为LaTeX中文排版时遇到的字体缺失、样式混…...

RabbitMQ-C测试框架深度解析:单元测试、集成测试与模糊测试

RabbitMQ-C测试框架深度解析:单元测试、集成测试与模糊测试 【免费下载链接】rabbitmq-c RabbitMQ C client 项目地址: https://gitcode.com/gh_mirrors/ra/rabbitmq-c RabbitMQ-C是一个功能强大的RabbitMQ C客户端库,为确保其稳定性和可靠性&…...

Spoolman:终极3D打印线轴管理解决方案,让您的打印工作更高效 [特殊字符]

Spoolman:终极3D打印线轴管理解决方案,让您的打印工作更高效 🚀 【免费下载链接】Spoolman Keep track of your inventory of 3D-printer filament spools. 项目地址: https://gitcode.com/gh_mirrors/sp/Spoolman Spoolman是一个强大…...

Pinia Colada:革命性Vue数据获取层的完整入门指南

Pinia Colada:革命性Vue数据获取层的完整入门指南 【免费下载链接】pinia-colada 🍹 The smart data fetching layer for Vue 项目地址: https://gitcode.com/gh_mirrors/pi/pinia-colada Pinia Colada是Vue生态系统中一款革命性的数据获取层解决…...

Hash-Buster未来展望:AI驱动的智能哈希破解技术

Hash-Buster未来展望:AI驱动的智能哈希破解技术 【免费下载链接】Hash-Buster Crack hashes in seconds. 项目地址: https://gitcode.com/gh_mirrors/ha/Hash-Buster Hash-Buster作为一款高效的哈希破解工具,目前已支持MD5、SHA1、SHA256等多种哈…...