Hello world, Hello programming
大学3年生の9月、所属していた生命理工学専攻で唯一コンピュータのみを使用して研究している研究室に入った。 もともと大学を選ぶときに情報系と生物系で迷うくらいにはコンピュータには興味があったので、両方触れて楽しそうだったのが理由の1つだ。
研究室に入ってからまずやったことはPerlという言語によるfor文やif文といった基本的な概念のレクリエーションだ。 その後、好きなプログラミング言語を使用してある論文の数式に基づく計算を行うツールを実装する課題に取り組んだ。
レクリエーション中、希望者はサーバーのOSのインストールとセットアップを任された。
私は面白そうだったので希望し、CentOS 7 のインストールとセットアップ作業を行った。
いままでパソコンと言えばノートかデスクトップ用途でしか使ったことがなかったので、 黒い画面で ssh
で離れた場所から操作する体験はとてもクールで新しい世界に思えた。
Vimを使い始めたのもこの時期だ。今ではすっかり相棒になっている。
ターミナル画面でコマンドラインインターフェスを操作する操作方法も、シンプルでわかりやすく、非常に気に入って卒業論文もVim,LaTexで書いた。
最初のプログラミング課題の話に戻ろう。 今となってはあまり理由を覚えていないが(速度が早いイメージとかそんなものだったように思う。)、C言語を選んだ。 当時の研究室ではPerlユーザーが大半で、先生も10年前に書いていたとかでC言語を使う先輩は誰もいなかった。 ひたすらメモリの動的確保の方法や文法をググり、なんとかプログラムを完成させた。
課題を終わらせたら次は卒業研究に入る。そこでは主に解析目的でプログラムを用いる。 私はメモリ管理の面倒さに、次はPython3を使うことにした。 Python3はメモリ管理は自動でやってくれ、型すら動的にやるのでコードの記述量がCの時より段違いに短くて済む。 これはとても便利で、手作業でやると1時間かかる作業がちょっとプログラムを書けば5分で終わったりする。 プログラムによる作業の自動化、効率化がとても好きになった。
半年ほどPython3を使ったあと、同じく動的型付け言語のJuliaという比較的新しい言語を使ってみた。 これは実行時コンパイル(JIT)をするので、場合によってはC言語並みに速い。 気に入って使っていたが、当時はパッケージ周りが未成熟だったためPython3に戻ることになった。
大学院に進学後、ベンチャー企業のインターンでGo言語を使うことになった。 この言語はC言語のように型があるし、Pythonのようにfor文でスライスの要素をとりだすこともできる。今までやっていた言語の経験から、とても速く手に馴染み、お気に入りの言語になった。 また、インターンではGCPなどのクラウドインフラを触り、そのAPI操作でインフラを操作できる柔軟さに感動を覚えた。
そして今、私は主にAWSやGoを使うバックエンドエンジニアとして働いている。 今でも黒いコンソール画面、Vimを愛用しているし、自動化や効率化が好きだ。 エンジニアとしてはバックエンド、インフラ寄りでやっているが、その方向性はだいたい大学、大学院時代に定まったように思える。
もし何か質問やフィードバックがありましたら、 @biosugar0 までお願いします。
2019-12-31