个人学习工作流
整理一下个人在学习生活中的工作流,根据个人实际需求和实践不断调整更新。
代码编辑
分析一下我目前的需求,我目前需要大量编写如下类型的文件:
- 文档语言
- LaTeX
- Markdown
- 编程语言
- C/C++
- Python
- MATLAB
- ...
目前采用的方案如下:
- VSCode:作为绝对的主力编辑器,只需要进行一些配置就可以支持绝大部分语言;(VSCode的配置需要及时备份)
- Typora:对于Markdown的轻量级使用,Typora也是一个非常好的选择,比VSCode更加方便。
- MATLAB:这个比较特殊,还是需要使用MATLAB自身的IDE,因为VSCode的插件支持太拉了;
- Vim/Nvim:鼓捣了一阵,但是有一些难以克服的问题,比如中英文切换太麻烦,没有Linux真机导致GUI无法使用等,因此浅尝辄止。
至于各种编程语言的具体配置,这里就不列出了,比较麻烦。
文献阅读
实际包括三类需求:文献管理、文献阅读、文献笔记:
- 文献管理:
- Zotero的文献数据库比手动维护文献存储的文件夹方便得多,它可以自动给添加的PDF重命名,提供期刊信息等;
- Zotero的数据存储依赖坚果云的webdav服务,免费版已经足够使用了。
- 文献阅读:
- Zotero对于文献阅读非常友好,只需要配置一些插件即可,例如翻译插件和参考文献插件等;
- 基本的注记通过Zotero的PDF浏览器实现,不使用其它花里胡哨的功能。
- 文献笔记:不使用Zotero及其插件提供的笔记机制,只使用下一节中的LaTeX笔记,文献阅读笔记要求与Zotero解耦,不产生任何联系。
在测试使用了一段时间,发现Zotero不仅功能花里胡哨,而且存在很多潜在问题,因此决定尽量简化使用方式:
- 解析:对导入的文献自动解析数据,包括获取期刊信息
- 分类:对文献进行基本的分类
- 注记:在PDF中进行标注,不使用Zotero提供的额外笔记或单独的笔记条目
- 标签:没有任何固定的规则,等我使用时慢慢养成吧,使用标签的目的只有一个——迅速找到想要的文献
除此之外,由插件提供的附近功能尽量不要使用,因为很容易出问题,例如条目关联,阅读进度数据等。
学习笔记
与大部分人不同,对于通常办公需要的office三件套几乎不需要使用,我完全不关心Word和PPT中的各种模板和配置。
分析一下我目前的需求:
- 需要大量使用LaTeX做数学笔记,基于markdown或者富文本的笔记软件都是不适合的:
- 富文本笔记的导出和转换都很麻烦
- 富文本和markdown对于LaTeX公式的支持都是远远不够的
- 要求数据保存在本地,并且便于迁移,这一点决定了任何非本地的笔记软件也是不可接受的。(之前重度使用印象笔记来拍照记录上课的手写笔记,但是现在那些笔记的导出非常困难,就放在那儿吧)
因此,实际上当前的所有主流笔记软件(印象笔记,Notion,OneNote等)都不适合,也包括很多人重度使用的Obsidian。 我被迫选择在本地使用文件夹组织管理LaTeX笔记,使用VSCode编辑。
考虑到笔记的特点和数据安全性,需要基于Git仓库进行版本管理和备份,只使用单个主分支进行开发,使用USTC LUG提供的GitLab服务进行远程备份(私有仓库),提交信息使用英文,在重要节点使用标签标记。
使用LaTeX做笔记有一个天然的问题:必须准备合适的配置模板才能做到开箱即用,之前鼓捣了很多花里胡哨的模板,但是那些配置其实都不是必要的,因此删繁就简,将必要的配置整理为两个文件:
note-setup.tex
:笔记配置模板beamer-setup.tex
:Beamer配置模板
放在Github上的仓库LaTeXZero,并且放置在本地的~/latexzero
文件夹,使用时直接在开头input即可。
在本地使用一个文件夹管理所有的LaTeX笔记和Markdown笔记,例如~/Notes
,主文件的模板通过VSCode
snippet提供。
笔记仓库主体结构如下:
Archive
:归档仓库,按照月份进行归档,例如Archive/2024-10/
,由对应月份的Main
仓库和记录文件合并而成。Main
:当前月份的主要笔记,包括一些主要的笔记条目,例如Main/Note-10-04
,其中包括Note-10-04.tex
以及附属的bib
文件,图片等。Main/Beamer-10-09
,其中包括Beamer-10-09.tex
以及附属的bib
文件,图片等。
Topic
:一些零碎且简短的笔记条目,例如Topic/lrmm-note
,其中包括lrmm-note.tex
以及附属的bib
文件,图片等。
- 当前月份的记录文件,例如
2024-11-log.md
大致每个月底,将主笔记文件夹Main/
中的内容以及记录文件2024-xx-log.md
整理到归档文件夹Archive
对应的月份文件夹下。
备份与同步
分析一下我目前的需求,有两类需求:
- 第一类是基于网盘的备份:例如pdf资源,图片视频资源等。
- 第二类是基于Git的备份:对应那些适合采用git备份的文本资源,例如学习笔记,各种项目代码,脚本等;
先考虑网盘备份,目前的各种商业网盘都不太同满足我的需求:
- 国外的网盘有网络访问问题,而且付费版太贵了,例如Dropbox和Onedrive;
- 国内的网盘有数据安全问题,这一点也是不可接收的,例如百度网盘,腾讯云盘。
因此自己又在云服务器上搭建了一个Cloudreve网盘,供个人使用,但是它的备份机制是我自己写的Python定时备份脚本,感觉还是不太可靠,最终还是选择付费的100G Onedrive吧。
目前关于云盘的所有使用详情如下:
- 大部分情况:Onedrive(100G基础版)
- Zotero的数据存储:坚果云(免费版)
- 网上获得的各种资料(备考资料,软件资料等):百度网盘
- 早期手机上的大量相册和视频:百度网盘(加密)
- 学习笔记中的PDF:Cloudreve,便于跨平台查看(但是主要靠Git备份)
电脑桌面的很多垃圾最近终于被我清理完成了,顺便用Onedrive把桌面和文档同步备份一下。(百度的同步空间非常垃圾,用是不可能用的)
下面的内容比较重要,因此采用多平台进行备份:
- 学术备份(包括与毕业论文和期刊论文相关的文档和代码):打包压缩在三个平台备份(Onedrive + 睿客网 + 百度网盘)
- 课程资料:Onedrive,打包备份在百度网盘
然后是基于Git仓库的备份,目前的使用分成两种情况:
- 大部分情况下:使用Github(即使偶尔网络不好连不上也没事)
- 与学习生活强相关的:考虑到安全性和可靠性,使用USTC LUG提供的GitLab服务 https://git.lug.ustc.edu.cn/