まず私のことを少しお話しします。
元々はwetの人間で、解析などとはほぼ無縁(せいぜいちょこっとExcelなどで検定をする程度)でした。
※しばしばこの業界の人は実験をする人をWet、解析などPC上で作業する人をDryと表現します。
実際にプログラミングなどを勉強し始めたのもこの会社に入社してからになります。
ではそんな私がどのようにして勉強したかを少し書かせていただきます。
そのため文字列処理が得意なPerl言語を習得することにしました。
そこで参考にした本は次のものになります。
Perlの絵本
いろいろな本が世の中には出回っているのですが、
やはりシンプルでわかりやすいのがよかったです。
ただはじめに正規表現で、ん?ってなり、
そして案の定hashで一度躓き、その次にリファレンスで引っかかりましたよ(笑)
まさに王道をたどっています。
バイオインフォマティクスのためのPerl入門
ちょこっとコマンドが分かってきたら実例を示してあるこの本で勉強しました。
この本は絶版になっているので、私は先輩にもらったのですが、現在もAmazonなどには中古で一応出回っているようです。
この本は解説、実例、テストを網羅してあり、かつテストの解説(スクリプト)もネット上に落ちているのでそれを見ながらほぉ、こんな書き方もあるのかと勉強しました。実際に使えるスクリプトがかなり入っているので、辞書みたいにして使ってました。大抵の解析はこれらを組み合わせることによってできてしまうと思います。
どうしても最初のうちは括弧を閉め忘れたり、セミコロンを忘れたりしちゃうんですよね。さすがに今はvimとかSublime textとかでべた打ちですが。
大体は特定のサイトばかり当たってきます。検索上位にくるのはやはり分かりやすい!
しばらくするとお客様のもとに先輩と同行して、案件を先輩が受けそれについて解説してもらい、実際にスクリプトを書くというOJTに移りました。はじめのうちは、作ったスクリプトが必ず無限ループをするという、今ではすごく恥ずかしいことをしていましたが、そのうち慣れてくるといつの間にかそこそこ書けるようになりました。
やはり実践は大事です。
R言語に手を出したのもこの辺りからです。作図などの必要に迫られて・・・。
ただベースとなる言語を一つやっておくと「これはPerlのこの表現ね」と置き換えられるようになるので、Perlじゃなくてもいいので何か一つはそれなりに書けるといえる言語を持つといいと思います。
ネット上に転がっているのでもいいですし、近くにできる人がいるならその人のスクリプトを見せてもらうといいと思います。
私の場合は同じ動作をするスクリプトを私が書いたものと先輩が書いたものを比較したり、レビューしていただくといった機会があったため、そこでかなり学べたと思います。実はPerlは可読性が低い(どんな書き方をしても結構流れてしまうため他の人のスクリプトが読みにくい)ので、結構意地悪をする先輩もいました(笑)。ですので皆さんは可読性の高いスクリプトを書くよう心がけましょう。あまり難しいコードを書くとあとで自分でも読めなくなるので注意してください。