科研码农全家桶——自用总结
身为一个计算机领域的科研民工,两三年多的搬砖生涯让我深切地体会到趁手的工具对效率的提升。因此,在此稍微总结一些有用的工具,以及其中仍有待提高的一些挑战。
Intro: 任务分类
这篇文章总结作为计算机领域科研民工的我所用到的工具。其中,科研任务包含调研相关工作、思考设计方案、实现技术、写作论文和实验等多个环节。每个环节的任务和所需的工具都有所不同。我们首先整理每个环节的任务,再对应整理相应的工具。
- 调研:找资料是开始一个项目的第一步。前人的相关工作奠定了研究基础、构建了公认的表述框架、暗示了现有的不足。因此,只有总结了前人的工作之后,才能开始新的研究。
- 学术搜索:首先要解决的问题就是,去哪里找论文。
- 论文整理:论文归档工具可以快捷地整理论文,并且方便创建参考文献。
- 思考设计方案:新的技术方案要不断整理成书面的形式,而不能一直闷在心里。否则,一方面心里的想法往往是跳跃的,写成文字的时候才会发现其中的不足。另一方面,一个人独自的想法也可能有疏漏,多和人讨论才会暴露这些漏洞。
- 记录想法:不断地积攒零碎的想法,慢慢把它们拼起来。
- 组织文字:在想法还没能成文之前,需要一种自由的格式组织它们。
- 实现技术:想法总是要实现出来的。
- 代码编写:第一步,写出代码。
- 远程执行:把它在集群上跑起来。
- 多人协作:一群人一起完成项目时如何同步。
- 写作:把有用的想法整理出来,变成一个吸引人的故事。
- 正文:写作本身很难,好的工具能排除掉写作之外的问题。
- 实验:处理数据和画图,很多时候并不像想象中那么容易。
调研
学术搜索
众所周知,不要用国内的搜索引擎,最次也应该用bing。但对于学术搜索,需要更专业的搜索工具。在搜索过程中,一般从一篇论文出发,向前检索这篇文章提及的相关工作,向后检索引用了这篇文章的工作。
搜索引擎
Google Scholar 是最常用的。它整理了一篇文章的多个版本源以及引用这篇文章的其他论文,所以可以方便地找到需要的文献。
dblp 在计算机领域会更全一点,提供的bibtex引用也更完整,但它不提供论文的直接下载源。
中国知网 (cnki.net) 不只可以拿来查中文文献,还可以查专利。
辅助网站
ccf-deadlines (ccfddl.github.io) 整理了各会议的DDL。
Sci-Hub (hkvisa.net) 自由地获取文献。
arXiv 预印本网站,实时追踪最新进展。
浏览器插件
Google 学术搜索 PDF 阅读器 在使用浏览器打开pdf文献时,支持通过点击引用自动弹窗显示Google Scholar的搜索结果。
CCFrank - Microsoft Edge Addons 可以在学术搜索引擎中显示搜索结果所发表会议/期刊的CCF评级。
论文整理
Zotero 是一款很好用的整理软件。当然,在加装了对应的浏览器插件之后才完整,拉满常用插件才算完全体。
官网的教程有点难用,可以基于 Zotero 中文小组 上手这个软件,他们也提供了一系列插件的整理。
思考设计方案
记录想法
手机自带的备忘录就够了。灵感,转瞬即逝。因此,记录想法的工具不需要多复杂,但需要灵活可用。
组织文字
Typora 是本地记笔记的首选,markdown兼顾便利和格式美观,很适合记笔记和作不那么严肃的写作(比如写博客)。有钱可以直接入正。没钱找找它1.0之前的版本,只要不升级,那些版本是不用钱的。或者用其他编辑器平替,但目前还没找到能和其0.9版本匹敌的markdown编辑器。
Notion 支持比markdown更复杂的格式,其大量模板有效扩展了它的应用场景。我目前用它进行更复杂情况下的材料整理和日程安排。它甚至可以多人协作。同类产品还有飞书。飞书的模版没那么多,但对多人协作的支持更强。
编程
代码编写
IDE根据编程语言的不同而不同。作为主力Java的开发者,首选的IDE自然是 IntelliJ IDEA 。学生党可以白嫖教育优惠。
不知为何,现在有些学校不能用学校邮箱申请 IDEA 的教育优惠。但我们还有曲线救国的方法。IDEA 支持 Github 的学生认证,所以可以先 Github 激活学生认证(应该是用支付宝),然后再用 Github 激活 IDEA 的教育优惠。注意,需要去掉个人信息中的学校邮箱,否则还是会被卡。
除了常用的编程语言,临时使用其他语言的最优IDE大概是 Visual Studio Code 。这同样也是个插件大于本体的软件,插件可以很方便地在IDE自带的商店里下载,按需取用即可。
快速上手不熟悉的语言,推荐使用 菜鸟教程 。当然,现在使用LLM就行了。
远程执行
理论上,连接个终端就可以远程执行了。如果需要图形化的操作体验,使用VSCode的远程插件即可,可以进行文件传输和可视化管理、编辑。
如果有个人用户,把终端的shell配置成omz可以优化体验,参照 zsh 安装与配置 这个教程。
多人协作
多人协作的最佳选择毫无疑问是 GitHub ,当然可能有人会更喜欢 Gitee ,毕竟访问起来更方便。
Git的使用可以参考菜鸟教程或 Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com) 。
写作
正文
文字写作 计算机领域的论文基本都是用 Latex 编写。相较 Word,Latex 需要一些编码功底。当然,现在相关的编码任务都可以交给 LLM,我们只需要提需求就行了。但过度依赖 LLM 也会有问题:
- 到了需要细节微调的时候,LLM 有时不能很好地领会需求,所以作者还是需要了解基础的 Latex 编码知识。
- LLM 只能遵循作者的指令,缺乏主观能动性。因此,如果作者不清楚如何展现自己的想法,LLM 也是巧妇难为无米之炊。论文的展现方式可以借助 arXiv 学习。这是因为 arXiv 上的文章都附有源码。如果看到了好看的论文,可以直接下载源码下来学习。
Overleaf 可以用于方便地Latex写作,不需要本地部署环境,而且还支持方便地多人协作。
Word偶尔也会被用到。在Word里加参考文献一般用交叉引用,但很难用。
需要一个能和原生交叉引用无缝切换的加参考文献方案。虽然Zotero 有 Word 插件,但并不能用来和别人协作。
语法纠错
使用 Grammarly ,除了多端的软件可用于本地纠错之外。也有Overleaf插件可以直接在Overleaf的文档上纠错。
LLM出现之前,翻译我会推荐DeepL。但有了大模型,翻译首选自然是大模型。
画图
在我所在的实验室里,画图最方便的工具是PPT。但与其他软件不同。画图软件的选择很大程度上取决于同实验室的环境,以方便协作(否则我大概会推荐 draw.io 了)。Windows环境的PPT 无法直接导出无白边的PDF,此时可以用我之前写的 脚本 裁白边;Mac环境似可以直接选中需要导出的图形,右键另存为图片并选择 PDF 格式。
实验
无论是数据处理还是实验画图,用下来最方便的工具还是Python。更严格的说,是Jupyter Notebook。使用Jupyter Notebook+VSCode的组合,实现近所见即所得的数据处理和画图。
可以通过anaconda+VSCode的Jupyter Notebook的方式快捷部署环境。
使用Python的Pandas处理数据,数据导出成csv或者excel,excel都能打开。
plt画图,在Jupyter Notebook中可以很方便地渲染结果和调整。plt实际支持非常丰富的语义,可以满足各种需求,但其中很多在搜索引擎里是找不到的。之前我会建议去看文档,但现在大模型基本上可以告诉你这个需求转成代码怎么写。在有基础知识的情况下,数据处理同样也可以交给大模型。
大量的实验数据要怎么归类呢?一个实验的多个版本、相似实验和补充实验有时不容易通过命名区分。可能需要一种专业的数据管理工具,或者一套高灵活度又精确的命名方式。
- 本文作者: wengsy150943
-
版权声明: 本博客所有文章除特别声明外,均采用
BY-NC-SA
许可协议。转载请注明出处!