研究人员应具备那些计算机技能?

笔者一直比较推崇``一个系统,一门语言''的目标,即至少熟练掌握一个操作系统/运行环境和一门通用型的编程语言。一个操作系统/运行环境指的是实验平台。由于绝大多数计算机领域的研究是需要利用实验结果来证明新方法的有效性的。所以,能够熟练使用实验环境是一项必备的技能。目前,大多数科研实验是在Linux系统下进行的。因此,学习Linux系统是一个不错的选择。
一门通用型的编程语言是指C/C++,Java,Python等通用编程语言中的一种。哪种语言更合适取决于所从事科研的领域,以及实验平台。笔者所从事的领域常常使用C/C++和Java。有时还会使用Python开发一些数据生成工具。在编程语言的选择过程中,笔者会考虑如下因素:
  • 运行环境/框架。如果所研究的内容十分依赖于某一个运行环境或者框架,那么,用于实现这一运行环境或框架的语言是最合适的编程语言。例如:笔者使用了C++语言实现了两个实验版本的文件系统。因为操作系统给出的文件系统接口是C语言的接口,而且C语言程序和C++语言程序能够被编译成一个模块,加载到操作系统中。在另一项目研究中,笔者使用了Java语言来修改Hadoop内部代码,以整合融入新算法。因为Hadoop框架使用的是Java,所以,笔者直接选择了Java语言。
  • 产出效率。因语言特性的不同,用其开发项目/实验程序的难度也不尽相同。如果语言的选择不太影响实验结果的话,应尽量使用自身熟悉的,开发周期快的语言。例如,笔者使用了Python开发实验数据生成器。因为实验数据生成的过程并不影响实验结果,而且Python具有开发速度快的优势,所以,笔者一般会优先考虑使用Python完成实验数据生成或者数据预处理,索引生成等工作。
  • 项目合作。如果一个项目是由多名研究人员共同完成的话,那么,选择一门大家都熟悉的编程语言比其他因素更重要。
  • 增量开发。如果从事的是基于某系统的增量开发,那么,保持使用同样的编程语言会使该系统具备较好的一致性。
上一章
下一章

注册用户登陆后可留言

Copyright  2019 Little Waterdrop, LLC. All Rights Reserved.