研究室分属前にやっておくと得するかもしれないプログラミング言語

こんにちは

悟です。(@rxf7oqjSU4v473O

今回は、研究室分属前にやっておくと得をするかもしれないプログラミング言語について紹介します。ここでいうプログラミングはwebサイトやアプリといったものではなく、数式を書いてゴリゴリ計算させる数値計算のようなものを想定しています。

この記事は私の経験を元に書いており、情報系学部で習うであろうC言語やC#などは私が触れたことがないので書いていません。

ただ、講義で習う言語は研究室側もある程度使えることが想定されていると思うので、得をするかは微妙だろうという意味もあります。

プログラミングを習わない学部ほど勉強する価値がある

私は農学部ですので、ほとんどプログラミングをする機会はありませんでした。

講義で触れたことのある言語といえばExcelVBAぐらいで、当時は全く意味がわからずプログラミングにアレルギーが出そうでした。

しかし、研究室ではRやPython、MatLabなど私も含めそれぞれが勉強を重ね、使いこなしています。

情報系の学部でプログラミングができるのが当たり前かはわかりませんが、少なくとも農学部でプログラミングが出来ないのは当たり前に近いです。プログラミング以外に専門的に学んでいることがあるので、当然と言えば当然です。

ですので、抵抗なくコードを打ち込んで、数式を解いたりグラフを描いたり出来る人は、農学部では当たり前の専門性とプログラミングスキルの2つを持っていることになります。

それに、コンピュータ上で仮想的にシミュレーションができれば、実験のみに比べて研究の幅が格段に広がります。微分方程式や、変数がたくさん出てくる現象をコードに落とし込めるスキルがあれば、学習速度も理解度も向上し、まさにいいこと尽くめです。

ここでは、始めやすく理解しやすく汎用性の高い言語を紹介します。

MATLAB

1つ目はMATLABです。

MATLABはアメリカ合衆国のMathWorks社が開発している数値解析ソフトウェアです。主に数値解析や関数とデータの可視化、機械制御を含むアルゴリズム開発、統計処理、最近だと機械学習にも用いられていて、企業や政府、大学などを中心に工学・理学・経済学など幅広い分野で利用されています。

MATrixLABoratoryを略してMATLABと言うため、行列計算やベクトルなどに強く、C言語などよりも短時間で計算を行うことが出来るといわれています。

MATLABは基本的に有料で特別な処理をしたい場合には、拡張パッケージを購入する必要があります。しかし、メーカーではほぼ全ての企業が利用しているのでは?というほどメジャーで信頼のあるソフトです。

企業で使われているということは、当然大学の研究でも使われていて、理系の研究室に入ると、MATLABで色々な処理をするというケースも珍しくないと思います。研究論文でもMATLABを利用したものも多数存在するので、学術分野でも存在感のある言語になります。

有料とは言いましたが、学生ライセンスもあり、代替1万円程度で一般的なパッケージも含めて購入できます。もし行きたい研究室でMATLABを使っていたり、メーカーへの就職を検討している場合は、自腹を切って買ってしまうのもおすすめです。

Python

2番目はPythonです。

Pythonは機械学習やAIなどに関するライブラリが充実しています。また、以前に紹介したMATLABと違い、無料で使うことが出来ます。

Pythonは汎用性が高く可読性が高いため理解しやすい言語としても有名です。計算速度は速くありませんが、データ分析も出来るし、機械学習もできるし、アプリもできると、つぶしがきく言語と言えます。

書籍もネットの情報もダントツで多く、勉強も非常にしやすい点もおすすめです。

私自身も研究のデータ処理に利用しているのですが、エラーが出た時は調べるとほぼほぼ解決できますし、これから機械学習なども絡める可能性があり、その点も含めてもPythonをやっておけばOKという状況で非常に気持ちが楽です。

R

最後はRです。

Rはオープンソース・ソフトウェアで統計解析向けに利用される場合が多い言語です。研究分野での利用が多く、論文などでも活発に利用されています。

特に、統計分野などは、研究成果がそのままパッケージとして公表される場合が多く、最先端の技術や知見を利用することができます。もちろんMATLABやPythonでも実装することはできるのですが、簡単に利用できるのはRの最大のメリットです。

また、統計解析は分析ツールがありますが、Excelでやろうとするのは面倒ですし、大量のデータを解析するのも大変です。しかし、RであればExcelファイルをまるごと読み込んで解析してくれるので、できればかなりのアドバンテージになります。

ただ、言語の書き方は少し特徴的なので、汎用的ではないかもしれません。

まとめ

私の経験を元に、研究室に入る前にやっておくと得をするプログラミング言語を紹介しました。プログラミング言語は、ここに紹介した以外にもたくさんありますし、どの言語ができても得をすることは間違いありません。

その中でも、理系が研究活動を考えると少し専門的な言語である方が、活用する機会が多いとは思います。

ぜひ、自分が携わりたい研究に活用できる言語を学んでみて下さい。