我终于不再是一个只需要埋头跟着培养计划学习的学生了,失去了强制学习的压迫,也面临着如何进入到自主学习状态的挑战:

  • 如何设置自己的学习目标,管理自己的学习进度?
  • 如何整理并长期维护自己的知识体系?
  • 如何形成一套连贯的工作流:从文献调研和选题,到科学计算实验,最后到论文写作。

可以这么说:这几年我一直在浪费时间,始终没有克服角色转变所带来的困难,没有一天能做到像期末复习周那样的满血状态,一切科研学习工作都在停滞不前!

最近看到一个辨析农夫思维 vs 打铁匠思维的文章,其中的观点令我振聋发聩: 我总是希望把自己调整到一种完美状态,以一种完美工作流进入工作, 我着迷于打磨各种软件工具的使用,对新知识和文献一味地囤积而不消化,但是这些对我所面临的学业压力和毕业要求都没有任何帮助!捡芝麻丢西瓜的故事,竟然是那么的形象。

为什么会这样?

  • 对课题研究的恐惧和拖延症:课题研究是困难的,处于迷雾中,看不到明显的方向和进度,没有短期可见的及时反馈。相比之下,“学习新知识”和“优化工具”能带来即时的、可控的成就感。每多学一个软件技巧,每整理一篇所谓的学习笔记,都让我感觉自己在“进步”,停留在自己的舒适区,心安理得地推迟了真正具有挑战性的核心任务——课题思考、实验和论文写作。
  • 始终抱着完美主义的想法:我总是执着于希望一次就打造出完美的工具流、写出完美的代码和文章,为此,宁愿在准备阶段无限徘徊,也不愿付诸行动。
  • 信息过载时代的“松鼠症”:互联网上有海量的知识、教程、方法论和软件推荐。我们像囤积过冬粮食的松鼠一样,不断收藏文章、下载软件,陷入一种“拥有即掌握”的幻觉。我们花了无数时间研究“最好的笔记软件是什么”、“如何最高效地管理文献”,却忘记了工具的目的是服务于产出,而非工具本身。我的目标不是一个精通各种工具的入门级程序员!

因此,我决定必须立刻改变自己,不能荒废于打磨工具所带来的低级成就感,必须舍弃对完美工作流的追求,不应该执着于考虑具体的工作流细节,例如如何记文献笔记,如何编程,使用哪些工具软件等,而是应该以实用主义为准,以任务驱动为主,最顺手的工作流在这个过程中会自然形成。

下面是一些目前觉得合理的准则:

  • 必须每天明确目标 + 写点东西
    • 用内容输出倒逼知识输入:强迫自己学习的最简单做法就是必须把学到的东西记下来,例如阅读文献时边读边记
    • 内容的存在形式和管理不应被任何软件束缚,形式以 LaTeX 为主,markdown 为辅,存储以 Git 仓库为准
    • 区分记录型内容(包括归档性内容,临时性内容)与打磨型内容两种:前者要求不删档!不重构!单向增长;后者则可以进行持续性的优化
  • 科学计算不是编程
    • 不要在写代码时追求完备架构和测试驱动,重点永远是公式推导和转换为实验代码,而不是造轮子
    • 避免随手写的一次性代码,但是也不要痴迷于以软件工程的标准进行编程,这两个极端都会导致成本过大,给自己带来更多的困难
    • 已有代码只能进行模块化整理,而不是框架化,因为科学计算不是前端或者深度学习,不存在几乎固定的“大一统框架”
  • 关于文献阅读
    • 文献要分类处理:有价值的必须做 LaTeX 笔记;没价值的及时丢弃,不要囤积
    • 留在 PDF 上的标注不算笔记,只是阅读辅助,随时可以丢弃,笔记必须落到实处
  • 重要数据注意备份
  • 没有最完美的东西
    • 科研本来就是探索和尝试过程,不可能创造最完美的东西
    • 不要一遇到麻烦就推倒重来
    • 不要着迷于打磨工具