昨天看的《How to leave academia》 一文中强烈推荐了Software Carpentry这个网站/课程/志愿者组织。

To begin with, go read Software Carpentry. Right now. This document covers all the basic practicalities of dealing with code. Even if you plan to stay in academia, you should go read it, particularly if you plan to be a computational scientist. I’d differ from software carpentry in only one case: use git instead of subverson. —— How to leave academia

当时没来得及看这个网站,只是搜了一下Carpentry的意思,没有什么帮助。今天仔细研究了一下, 不得不说这是一个好网站,如果将来有机会希望能够参与其中,贡献一份力量。这个组织的目的非常明确,

Making scientists more productive by teaching them basic computing skills. — Software Carpentry

网站提供在线的课程学习,也支持搜索并参加身边的Boot Camp。扫了一眼内容目录,这些基础的技能 不算什么有深度的东西——不适合专门开课——但在实际科研活动中却能极大地提高生产力,理应由实验室 组织大家一起学习一下。在这里列出这个目录(括号中都是我的注释),希望能引起您的兴趣:

  • 版本控制 (Github)
  • Unix Shell (常识)
  • Python (比Ruby更严肃一些)
  • 测试 (学院派教育的绝对弱项,宁愿让程序跑上一天,也不愿写一个单元测试)
  • 集合与字典(列表和哈希的数学说法…)
  • 正则表达式
  • 数据库
  • 使用Access(微软的数据库)
  • 数据管理
  • 面向对象编程
  • 程序设计
  • Make (看过有人说用Make管理一切,其实Windows有.bat,Ruby有Rake)
  • 系统编程
  • 电子表格 (小数据的时候,Excel确实很方便)
  • 矩阵编程
  • MATLAB (与上一章一脉相承)
  • 多媒体编程
  • 软件工程
  • Essays (关于其他方面的一些小短文)