展开讨论

经验与复盘经验摘录 · 机器翻译

我是一名科学家和程序员,我的经历正好相反

我是科学家兼程序员,我的经历正好相反。我重视保持事情的"简单枯燥",但我迫切希望有任何一种工程规范。首先是可重复性的问题。我认为我花在简单地_尝试_让研究代码的依赖运行上的时间,和我写代码或做博士研究的时间差不多。简单的方法就是写一个requirements.txt文件!(至少对于Python来说是这样。)第二,两个没有遵循最佳实践而毁掉研究代码正确性的例子:- 很久以前,我曾参与一个模拟电网的研究代码。我们需要生成随机的负载配置文件。我注意到每次运行时,我们得到的结果都是一样的。作为一名软件工程师,我认为我必须重新设置`random`种子,但这没用。我查看了代码,和研究人员讨论后,发现了负载配置文件算法:它并不是随机生成的,而是手动编码的"1"和"0"字符串。- 后来,我有幸要改编别人的代码。他们基本上是手工设计的IPC。…

源讨论糟糕的科研代码胜过遵循"最佳实践"的代码(2014)原帖 324 条评论 · 导入时统计
3

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 3

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

PE

我也有同样的经历。科学家们编写的代码虽然能运行,但在可扩展性方面却很麻烦。不过随着时间的推移,这种情况正在改善,因为编程正变得不再那么小众。

完整原文
CA

我对这次讨论的问题是,很多人只是说“我是个科学家(或者我和科学家一起工作),我观察到X,所以我可以断言‘科学家们……’”。 不同的科学领域使用着截然不同的计算机软件环境,也有各自的习惯和传统。生物学家使用编程的方式,和天体物理学家没有理由相似:他们所经历的软件环境完全不同。甚至说“同一领域的科学家”可能都是没有意义的,因为同一领域的两个实验室可能有非常不同的方法(但如果存在共享框架,这会更困难)。 因此,我完全不惊讶你观察到相反的经验。同样地,我也不会惊讶看到有人声称他们有相反的经验,比如有人会说“欧洲人大量使用‘g’和‘k’”。…

完整原文
BO

我反复遇到的研究代码的问题是它很脆弱。我们在测试A上运行它,但当我们尝试测试B时什么也不工作,我们不知道为什么,因为上帝保佑,任何错误处理、验证,甚至只是易懂的函数名称都没有。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。