生物学とプログラミング・プログラマー

この記事では生物学研究者からみたプログラミング、プログラマーについて書いていきます。

どちらかというと生物学の学生を読者に想定して書いていきますが、プログラマーや情報系の学生で他分野に興味ある人にも読める内容だと思うので、ぜひ読んでいってください。



生物学からみたプログラミングスキル

生物系の人間から見ると、プログラミングのスキルというのは魅力的です。生物学は他分野と比べて、専門知識・スキルがキャリア形成で役立つことが少ないのですが、その理由はシンプルに「競争相手が多いわりにニーズ(就職先)が少ない」からです。アカデミアでも民間企業でも「生物学だけ」ではキャリアを進める難易度が高いので、「生物学+α」で何かほかのスキルを身に着けることが重要であり、この、+αとなる有力候補がプログラミングスキルだと私は思ってます。

バイオインフォマティクスという分野が確立されているくらいなので、敢えて生物系の人に説明するまでもありませんが、ヒト細胞では1細胞当たり30億塩基対のDNAがあって、そこから多様な形式での遺伝子発現があり、さらに細胞間の情報伝達、神経のネットワーク化などを考えると、複雑さ無限大で、その総体が人体です。これらを研究対象とする際、手作業だけではできることが限られてくることはなんとなくわかると思います。

また、生物を数理的に理解しようとする試みが基礎生物学の分野では広がっており、情報系の研究者やプログラマー人材が求められています。古典的な分子生物学の手法で特定遺伝子の機能解析する時代はほとんど終わっており、これから生物学出身者が生物学オンリーで研究者になるのはますます困難になると思います。反対に、生物学は他分野のスキルを求めているので、他分野からの転向は歓迎される傾向があります。


プログラミングスキルはコスパが良い

生活するためにはお金を稼がなくてはいけません。個人的には、理系スキルの中で最も換金性・即金性が高いのがプログラミングスキル、逆に最も低いのが生命科学系のスキルだと思います。具体的に言うと、半年から数年のプログラミング経験で時給数千円で働くことは可能ですが、生物系では何年たってもそのレベルには到達しません。

そもそも研究者として一人前扱いされるのが大学院博士課程の修了時なので、若くても27歳です。生物学研究で身につくスキルで汎用性のあるものもありません。生物学が役立つのは生物学をやっている会社、つまり製薬会社など一部に限られます。一方、プログラマーのスキルはほとんどすべての会社(例:パソコンのある会社)で役立ちます。このコスパの良さはずば抜けていると思います。お金を稼いで生活する、という観点では、生物系を習得する際のコスパの悪さが際立ちます。



生物学とプログラミングの違い

上述したように、生物学と比較したプログラミングスキルのコスパの良さは、その即金性・汎用性に由来するのですが、これらの違いを生み出す理由を挙げておきたいと思います。

1つは、単位作業にかかる時間の違いです。生物学では「生きもの」を扱うのでどうしても1実験のペースが遅くなってしまいます。研究スキルの向上は、実験を組んで、失敗して、試行錯誤の中で達成できるものだと思いますが、1実験に(例えばマウスが疾患を発症するまで半年とか)長期間かけていては、自分の中のPDCAのペースも遅くなってしまいます。この1サイクルの長さは結果として論文執筆のペースの遅さにも繋がり、生物学の研究者が一人前扱いされるまでに時間がかかる理由のひとつだと私は考えています。

もう1つは、事業にかかる資金の違いです。これも生物学では「生きもの」を扱うことに由来していると思います。実験場所は指定のバイオセーフィティレベルが要求されますし、生物由来の実験試料(酵素など)は一般にとても高価で、一回の実験で数万円使うのもざらです。パソコン一台あれば仕事を受注できるプログラマーとは大きく異なります。

他に、際立つ生物学の特徴は「得られる結果がしばしば曖昧」という点だと思います。依然として生物や細胞内の事象はブラックボックスのところが大きいので、未知のちょっとした条件の違いによって、得られるデータが変わってきたりします。つまり、再現性を常に疑わなくてはいけません。本質的に、機械対象のスキルとは異なっています。


今日の愚痴は以上です。

プログラミング言語としては、研究目的で始めるなら、perl, R, Pythonなどが多いです。身に着けると換金性が高いのは、HTML/CSSとか、ウェブ系だと思います。