-
- 了解各个语言的优劣 (e.g., R for statistics, Lisp for artificial intelligence),选择适合自己的编程语言(我选Python)。
- 推荐开发基于Apache等web server(网络服务),这样容易被大多数的生物学家接受和使用,从而得到他们的反馈并进一步提高和改进软件质量。
- 充分了解、利用好开源社区,了解、学习、使用、参与、贡献Biopython, BioPerl等社区。
- 掌握必要的Unix操作技巧,不仅仅是由于大多数的生物信息学软件只有Unix版本,更为重要的原因是Unix下面的cat, grep, '|'等工具可以极大的简化生物信息学分析任务。
- 注意命名规范和统一,做好必要的注释。
- 使用代码管理器(如Git)管理、备份自己的代码;并且及时备份自己的系统。
- 积极拥抱并行计算,因为并行程序写起来相对比较复杂(需要考虑任务松紧度),但随着多核计算机的普及以及Google MapReduce技术的推广,并行计算,甚至云计算将成为一种趋势。
- 将数据结构化并存贮在数据库中,除了常见的关系型数据库之外,key/data model的数据库如BerkeleyDB,也值得关注,尤其对于基因、SNP等具有unique ID的信息存贮比较方便。
- 了解计算机的硬件性能,也许你的计算机支持GPU加速。
- 注意支持并遵守标准,支持互操作性。
- 时间无价,正确权衡编码时间,不要过度优化代码,切记过度追求完美,“the perfect is the enemy of the good”,要求太高反难成功。大部分的休息生物信息学软件只对某一任务有效,这也就是Unix的KISS原则。
|