Perlとの出会い、そして。

Perl入学式に参加する前後とこれからについて書いてみようと思います。

出会い前(新人の頃、2006年)

大学では、建設系の学問を修めて、卒業後はそっち系のコンサルタントに就職しました。

大学では、現場でデータとって分析したり、FortranやC/C++を使って非圧縮性流体の解析をやってました。

コンピュータリテラシ的な授業ではさっぱりで、正直プログラムは嫌いでした。 でも、微分方程式を数値的に解けるようになってから、流体の基礎方程式であるナビエストークスの方程式が面白くなり、 実務上もプログラムが大事であることがわかって、プログラムを書くことが大好きになりました。

会社に入ってからも、似たようなことをやってましたが、コンパイル言語だけではなくて、 スクリプト系の言語も使ってみたいなと思い、Rubyの本を読んだりしてました。

仕事では、数値解析をやることがありますが、コンサルタントがメインですし、 数値解析やったり、そのためのプログラムを書いてもあまり評価はされない感じでした。

一番評価されるプログラムはエクセルVBAでした(笑) おそらく多くの非IT部門がメインの会社がそうかと思います。

出張(2011年)

会社で2ヶ月ほどの海外出張となりました。 日本と違い規則正しい生活ができましたが、平日の夜や休日はやることがありません。 (発展途上国の田舎だと本当に何もありません) 仕方ないので、オライリーの「初めてのPerl」をiPadで読んでました。 読み物として面白いのですが、Perlがなぜかしっくり来ませんでした。 おそらくコンテキストの部分だと記憶しています。

そうこうしてるうちに、「ローカルのエンジニアに、日本の検討方法を説明してくれ」と現地の所長に言われました。 簡単に言えば、拡散方程式を解く話になるのですが、C++で書くのもつまらんなと思い、違う言語を使うことにしました。

Perlという手もあったのですが、結果Pythonで書くことにしました。 コンクリートの解析なので、力学の計算も含まれているのですが、それなりに勉強になりました。

帰国後(2011年〜2013年)

Pythonが結構使えることがわかったので、数値データの可視化の部分で利用してました。 matplotlibが便利で、コンター図やベクトル図を書いてました。 ただし、計算負荷が大きいものはFortranかCでした。

転職(2014年はじめ)

思うところがあり、転職しました。ベンチャーですが、科学技術計算を生業としてプログラムを書ける会社です。 プログラムを書くことがメインとなったのです。 主な変化点を挙げると以下のようになります。

  • 自分がやりたいことを中心に据えられた。
  • 残業が減った。
  • 給与も減った(えっ?)。
  • 時間ができた。

Perl入学式に参加(2014年6月頃)

転職して時間作れるようになったし、 新たに勉強しようと思い、ネットで探していると、「Perl入学式」の文字が・・・。

気づいた時には、第2回からだったのですが、資料が整っていることもあり、 第1回の資料を見てPerl入学式に必要な環境は整えられました。

ところで、仕事では数値計算をやるのですが、速度が大事です。 一方で、数値計算をやるために必要なパラメータの設定等は、プログラムを走らせる前にテキスト等の形式で用意します。

正直、FortranやCでテキスト処理を行うのははきついのです。 それまではAWKなんかで処理をしたりしていました。

そこで、Perl入学式参加にあたり、もっとテキストデータをPerlで処理することを目標にしました。 (自分の中の目標を持つことは大事です)

以上の目標を持ってPerl入学式に参加することにしました。

参加して、@papix校長はじめ、サポーターの皆さんの手厚い指導のもと、 「Perlって面白いな」と感じました。

Perl入学式に参加して得られた事を挙げると以下のようになります。

  • 最近のPerlの書き方やルールを知る事ができます。書籍でも得られますが、情報が古い事があります。現役の方の情報を得られるのは有用です。

  • テキスト処理で重要な正規表現、そして柔軟なデータ構造を表現できるリファレンスは、大きな収穫だったと思います。正規表現は他の言語(というか、ある種「正規表現」という言語?)にも活かすことができます。リファレンスは面倒くさいと思われる方もいらっしゃると思いますが、Perlの一番面白く、柔軟性を持たせる機能だと感じ、Perlが好きになった理由の一つです。

  • サポーター含め、私と同じように生徒して参加してある方との出会いは刺激になりました。みなさん、様々なバックグラウンドをお持ちでありながら、Perlを勉強する機会に恵まれるのは、やはり、Perlという言語、そしてPerl入学式が非常に優れている証明になるのかなと思います。

  • 練習問題が出題の後、答え合わせは講師のコーディングになります。勉強になるのは、講師の方のコーディング環境です。私はEmacsを使うことが多いのですが、シェルとVimの環境もやはり速いなと思い、多少?環境も整えたりました。Perlとは異なりますが、プログラムの環境を自分で調べて整えるのは大事だなと改めて感じました。

  • 私自身、Webに猛烈な興味があるわけではなかったのですが、Perl入学式を経て、興味を持つようになり、Webと科学技術計算をどうやって上手く繋ぐべきか考えるようになりました。

  • @htk291さん曰く、「飲み会が本番です」

最近(2015年〜)

今年度に入り、新しい会社で働くことになりました。

Perlを使う会社ではないですが、やはりプログラムを書くことも、コンサルティングをすることも評価してくれる会社です。

給料は上がって、時間は若干作りづらくなりましたが、バランスはちょうどいいかなと思ってます。

今年に入って印象的なことは以下のようになります。

  • 最初で最後のYAPC2015に参加しました。正直さっぱりわからんことも多かったですが、参加されている方が楽しんでおり、何より他言語だろうが、Perlと関係なかろうが、発表されていることに驚きました。Perlコミュニティの良い意味での緩さがすばらしいと思います。「私、Perl全くわかりませんけど」で始まる発表が許されるのはおそらくPerlだけなんだろうなと勝手に思ってます。

  • 少し先に進めるために、「よなべPerl」という勉強会にも参加させていただいてます。@hakata_oyukiさん(福岡でのPerl入学式も関わっていらっしゃいます)が主催されてますが、Webやデータベースに関わる所も勉強になります。日下部さん(あっ!)流もわかります!

  • 吉祥寺.pmにも一度だけ参加させていただきました。発表したいな思いますが、なかなか・・・。時間を作りたいですね。上半期だと可能かなと思ってます。

  • 2度目の入学をしています。1度目で気付かなかった所(特にリファレンスとMojoの部分の説明の難しさ)に気づいたり、自分が忘れている事項に気づきます。ちょうど復習になるのでしょうか。

まとめ

Perlと出会い、Perl入学式に参加してプログラムを書く行為の第2歩が整えられた気がします。Perlに限らなければプログラムを書く行為をして、給料をもらうことはやっていたのですが、 Perl入学式で得られたPerlそのものの知識、出会いを通じて、幅が広がったなと思います。

プログラムを書く、ということ一つを取っても、様々な分野があると思います。インフラに携わる方、Webに携わる方、組み込みに携わる方、私のように科学技術計算に携わる方、その他、私が想像できない分野でプログラムを書かれている方もいると思います。また、プログラム書くことはしない方もいらっしゃると思います。

その中で、新しい1歩、新しい2歩を踏み出してみたいという方は、Perl入学式に参加されてはいかがでしょうか?