为什么编码是化学工具箱中有价值的补充

显示化学编码的图像

来源:基于©Shutterstock图片

if(化学== max(乐趣)){printf“我爱科学!"}

当我开始我的本科化学教育时,计算机编程课程并不是学位要求,所以大多数学生都没有完成这门课程。相反,我和我的同学们依靠软件应用程序来完成需要定量分析的课程。虽然我们可能会偏离软件工具和编写代码来进行计算,但我们不熟悉计算机编程;它不在我们化学工具箱的技能之列。与我的实验室伙伴一起熬夜完成数据分析,涉及的是排除电子表格中的错误,而不是调试代码。但是,如果我们能像学习物理或工程的同学一样获得编程经验,我们就能更有效地处理实验室数据并进行定量分析。

在研究生院,一些学生为他们的研究编写代码——这成为我获得理论化学博士学位的必要条件。尽管如此,它仍然局限于那些重视定量的专业,主要是物理和分析化学。我的同龄人在大学时的经历和我一样。没有人接受过任何编程培训,现在为研究编写代码的人都是自学成才的。

我的博士导师通过推荐一种编程语言和提供非正式的作业帮助我开始编程。通过这种方法,我学会了有目标地编程,并根据需要找到解决问题的资源,而不是漫无目的地学习语言。经过一些练习后,我对自己编写代码产生合理结果的能力有了信心(至少在调试之后),并为了我的研究改用了另一种语言。

自动化解决方案

我意识到所有的研究生都可以从使用代码中受益,而不仅仅是那些少数专业的学生。至少,每个人都需要从文件中提取数据并进行分析。完成这些任务当然不需要代码。尽管如此,许多都是繁琐的(特别是在重复5-6年的时候),可以自动化。

化学,像所有的科学一样,正变得越来越数字化。电子实验室笔记本和化学性质数据库是化学数字化工具的例子。数字化使信息更容易获得,并鼓励更透明的数据处理实践,从而推动了进步。虽然许多数字工具不需要编码,但如果化学家学会如何编写代码,就会从数字化中获得更多好处。例如,从数字化学属性数据库中提取信息的代码比手动搜索更有效,该代码捕获用户选择的标准的结果。同样,使用数字记录和代码访问实验室数据比使用手写笔记本更简单。

随着化学领域的数字工具变得越来越普遍,编码可以帮助它们实现效益最大化。虽然许多大学正在调整他们的课程,使计算机编程成为化学课程的一部分,但那些已经完成学位的人也应该考虑通过学习编码来扩展他们的化学工具包。这并不像听起来那么难,因为化学家已经具备成为有效编码员所需的逻辑推理和解决问题的技能。

标准软件可能不足以解决独特的研究问题。标准的实验室设备也是如此。在后一种情况下,化学家在准备非典型解决方案以应对实验室挑战方面很聪明。类似地,编写代码可以让化学家设计出超出软件工具能力的定制解决方案。所以,如果化学家已经准备好建造定制设备,为什么要羞于编写代码呢?

开始

如果你想尝试编码,首先选择一个简单的任务并写出它的过程。然后,选择一种编程语言,下载执行代码所需的所有程序。参考学习资源,帮助您为过程中的每个步骤编写代码(参见方框);然后运行代码并确保它产生准确的结果。

由于学习编码最初具有挑战性,选择经常重复的任务可以确保花在编写代码上的时间是值得的。对数据集进行排序以提取和绘制较小的部分是一个合适的任务,特别是在常规执行的情况下。所涉及的步骤可能包括读取存储在文件中的数据,搜索以识别符合条件的数据,以及生成图形。此外,用一种广泛使用的语言编写代码有助于与他人分享,并增加找到友好的同事伸出援手的机会。按照上面的步骤,你很有希望能够在短时间内完成一个通常需要几分钟(或更长时间)的任务。

扩展化学工具箱以包括编码技能可以让化学家更有效地处理数据和使用数字资源。化学家可以在没有正式培训的情况下学习基础知识并为他们的日常工作编写代码——我希望你能试一试。

学习资源

Codecademycodecademy.com

一系列编程语言的交互式编码教程。通过学习教程或查看他们特定语言的小抄单。

麻省理工开放课程ocw.mit.edu/courses/intro-programming

大学水平的编程入门课程,包括视频讲座、课堂讲稿和作业。

堆栈溢出stackoverflow.com

一个用于编程的问答网站。问你自己的问题或查看类似主题的问题/答案。

特定于语言的文档页面

它们通常通过示例提供有关特定语言主题的详细信息。