プログラミングのはじめ方

まず私のことを少しお話しします。
元々はwetの人間で、解析などとはほぼ無縁(せいぜいちょこっとExcelなどで検定をする程度)でした。
※しばしばこの業界の人は実験をする人をWet、解析などPC上で作業する人をDryと表現します。

実際にプログラミングなどを勉強し始めたのもこの会社に入社してからになります。
ではそんな私がどのようにして勉強したかを少し書かせていただきます。

Hello World!
勉強編(先輩の講義と自主勉強)

「プログラミング言語習得」
バイオインフォマティクスは塩基配列など文字列を扱うことがとにかく多いです。
そのため文字列処理が得意なPerl言語を習得することにしました。
そこで参考にした本は次のものになります。

Perl_book1
Perlの絵本

いろいろな本が世の中には出回っているのですが、
やはりシンプルでわかりやすいのがよかったです。
ただはじめに正規表現で、ん?ってなり、
そして案の定hashで一度躓き、その次にリファレンスで引っかかりましたよ(笑)
まさに王道をたどっています。

Perl_book2
バイオインフォマティクスのためのPerl入門

ちょこっとコマンドが分かってきたら実例を示してあるこの本で勉強しました。
この本は絶版になっているので、私は先輩にもらったのですが、現在もAmazonなどには中古で一応出回っているようです。
この本は解説、実例、テストを網羅してあり、かつテストの解説(スクリプト)もネット上に落ちているのでそれを見ながらほぉ、こんな書き方もあるのかと勉強しました。実際に使えるスクリプトがかなり入っているので、辞書みたいにして使ってました。大抵の解析はこれらを組み合わせることによってできてしまうと思います。
この辺りからEcripseを使ってスクリプトを書くようになりました。
どうしても最初のうちは括弧を閉め忘れたり、セミコロンを忘れたりしちゃうんですよね。さすがに今はvimとかSublime textとかでべた打ちですが。
あとネットで「Perl+なんかのコマンド」っていう検索は何度もしました。
大体は特定のサイトばかり当たってきます。検索上位にくるのはやはり分かりやすい!
実践編(OJT)

「経験に勝るものなし」

しばらくするとお客様のもとに先輩と同行して、案件を先輩が受けそれについて解説してもらい、実際にスクリプトを書くというOJTに移りました。はじめのうちは、作ったスクリプトが必ず無限ループをするという、今ではすごく恥ずかしいことをしていましたが、そのうち慣れてくるといつの間にかそこそこ書けるようになりました。
やはり実践は大事です。

「一つそれなりに習得した言語を作れば応用が利く」

R言語に手を出したのもこの辺りからです。作図などの必要に迫られて・・・。
ただベースとなる言語を一つやっておくと「これはPerlのこの表現ね」と置き換えられるようになるので、Perlじゃなくてもいいので何か一つはそれなりに書けるといえる言語を持つといいと思います。

「他の人が書いたスクリプトを見て参考にしよう」

ネット上に転がっているのでもいいですし、近くにできる人がいるならその人のスクリプトを見せてもらうといいと思います。
私の場合は同じ動作をするスクリプトを私が書いたものと先輩が書いたものを比較したり、レビューしていただくといった機会があったため、そこでかなり学べたと思います。実はPerlは可読性が低い(どんな書き方をしても結構流れてしまうため他の人のスクリプトが読みにくい)ので、結構意地悪をする先輩もいました(笑)。ですので皆さんは可読性の高いスクリプトを書くよう心がけましょう。あまり難しいコードを書くとあとで自分でも読めなくなるので注意してください。