今回の記事では、再生医療(工学から)の研究に携わる研究者として、喉から手が出るぐらいプログラミング技術を欲し、現在Pythonを学習している理由についてアウトプットします。
そもそもバイオの人間がプログラミングとか必要か?と思う方は多いかもしれません。
もしくは、このAIにたくさんの仕事が奪われると言われているご時世では、当たり前と感じる人もいるかもしれません。
その中で、私が8年間の研究生活を迎えるに当たって、必要だと感じる能力の一つがプログラミングでその中でもPythonでした。
そのなぜプログラミングなのか、なぜPythonなのかということを考えて実行してみた経験を書き留めます。
長いので結論を先に述べると。
研究を遂行する上で必要だけれど、存在しないツールを自分の手で作れるようにしたいから!
になります。
なぜプログラミングなのか
まず、なぜ「プログラミング」の能力が必要なのかということについて語っていきます。
私が8年間の研究生活を通して研究遂行に必要だと感じる能力は下記の3つです。
- 研究を組み立てて実行する能力
- 論文を読んで情報整理する能力
- 自分で実験道具を作る能力
もちろん、この他にも、後輩の指導能力であったり、ディスカション能力、コミュニケーション能力、文章能力なども必要不可欠ですが、今回は自身の研究を遂行するための能力について触れていきます。
このなかで、自分で実験道具を作る能力というものが、研究の分野において重要かつ所持している人が少ない能力だと感じました。
この実験道具といっても様々で、実験結果を得るためのツール、得られた結果を解析するためのツールなど様々です。
実験結果を得るためのツール
この中で、実験結果を得るためのツールは非常に存在感が大きいです。
しかし、このツールはツール自身が独自性(オリジナリティ)が大きい反面、一般的ではないため、実験結果についての妥当性を示す必要が大きく労力がかかることや、他の人に受け入れられにくいというデメリットを持っています。
しかし、できればその分野で独走することができるので是非とも欲しいところではあります。
この実験結果を得るためのツールを作るために必要な能力とは、
- 原理原則を理解する能力
- 機械・装置を組み立てる能力
だと思います。
この2つ目の機械・装置を組み立てる能力を細かく見ると
- 物体を組み立てる技術
- 組み立てたものを制御する技術
という項目に分かれます。
そして、この組み立てたものを制御する技術というものの一つがプログラミングになります。
得られた結果を解析するためのツール
次に、得られた結果を解析するためのツールは研究の効率化に非常に重要です。
解析ツールがないと
- そもそも解析できないから結論づけるデータにならない
- 得られるデータ量が多いと解析ばかりで研究が進まない
という事態に陥るのは明らかです。
バイオ関連ではデータ解析として、MATLAB、R、ImageJ、LabVIEWをはじめとしたツールが主に使われています。
(他にも、顕微鏡会社の解析ソフトやそれに特化した画像解析ソフトなどもたくさんあります。そしてLabVIEWは解析もですが制御の方が有名でしょうか。)
正直、学生が卒業論文のための実験であれば、各ソフトの自分の目的の部分だけ教えてもらって使うだけで十分です。
しかし、がっつり研究の分野で生きていこうとするとこれまでのツールでは対応できないものがたくさん出てくるのが現実です。
これまでにないものを作る・発見しようとしているので当たり前ですが…
その時に、必要なのがプログラミングだと感じました。
プログラミングは必須!?
ということで、研究の世界でどんどん新しいことを行なっていこうとすると、自分で研究に合わせたツールを生み出さなければいけません。
そのツールとして
- 実験結果を得るためのツール
- 得られた結果を解析するためのツール
の2つをあげました。
どちらにも共通して必要な能力としてプログラミングが必要だなという考えに至ったので、プログラミングを習得しようということが大きな理由です。
なぜPythonなのか
プログラミングの能力が必要だと感じて、色々手を出してきました。
具体的には、C言語、Java、Rなどです。
しかし、これらの言語の習得は結局挫折してしまいました。
理由としては
- 何に使うか明確でなかった
- 正直難しくて面白く感じることができなかった
という恥ずかしい理由でした。
そこで、改めて目的を洗い出してみました。
- 研究に必要なツールを作る
- 科学系に向いている
- 無料でできる
- 初心者にも親しみやすい
ということで、この条件で向いている言語を調べてみました。
【2018年版】初心者はどの言語が良い?おすすめプログラミング言語ランキングTOP10
上記のページで「どうもPythonがよいのでは?」ということで早速取り組んでみましたと。
実際にトライしてみて思ったことは、私にとっては非常に馴染みやすいものでした。
噂に聞いていた通り、シンプルなコードで科学系の情報も結構ヒットするし、教科書も豊富でした。
また、「研究に必要なツールを作りたい」というモチベーションが強く、何としてもやり抜くという気持ちもあったため、自分の中ではものすごいスピードで成長できた気がします。
なんなら、当初の目的であったツールはすでに満足のいくレベルで完成してしまいました。
これから取得したい能力
プログラミングについては上記のように、スタートは切って目的もあり、走れているので、多少挫折はあっても進み続けることができそうです。
そして、今私がプログラミング以外の能力で欲しいと思っている能力としては、「ハード(装置)」を作る能力になります。
やはり研究はデータを「取得」して「解析」が重要なので、プログラミングによるソフトウェアだけでなく「ハード(装置)」まで研究に合った実験結果を得るためのツールを自分で作ることが必要だと思います。
ここまでやってからが本当の研究者としてのスタートだと私は思っています。
コメント