chroju.dev/blog

the world as code

2016年総括 - 技術者って何なのかやっと理解した

2016年も終わるので振り返ります。ポエムです。今年はなんというか、技術者として自分が何をすべきなんだろっていうのがやっとなんとなくわかってきたかなという年でした。

元々SEとして4年間、小規模なシステムのおもりをしてExcelと格闘する日々を過ごしていた自分なので、技術的な部分でだいぶコンプレックスがあったし、とにかく勉強しなきゃみたいな焦りをずっと抱いていたんですけど、転職して1年半ぐらい経過してようやくそういう焦りが落ち着いた気がします。今年は業務上必要なことを遅延評価で学習することが多く、あまり自分のやりたいものを作ったりなんだりっていうクリエイティブっぽい感じにはなれなかったんですけど、いわゆるシステム運用ってなんなんだ、エンジニアってどこまで知識や技術を広げるべきなんだっていう全容がやっと見渡せて、自分の位置づけがわかってきたように思う年でした。

とか言ってしまうとだいぶ抽象的ですけど、具体的にやったのはMySQL中心にRDBMSの理解、Linuxでよく使われるBINDやsquidのようなOSSの習熟、AWSの利用とホワイトペーパーからのベストプラクティス習熟、Infrastructure as Code等DevOps周りの導入検討といったところでした。6年目でやることかこれみたいのも入ってますけど、Windowsだけの世界でずっと生きていたというのもありますし、遅かったかもしれないけどなんとかこう、スタートラインには立てたのかなと。学習はほぼほぼ本を読む、ブログを読むというところに特化していて、図書館もよく使いました。都内だと広尾の都立中央図書館がすごい技術書の蔵書量ですね。オライリーに限れば日比谷図書文化館にも結構ありますが。あとは勉強会を必要に応じて月に1回ぐらいのペースで。手を動かすより読む場面の方が多かったかもな、というのは若干反省点。基礎的な内容だろうと恥ずかしがらず、習得したらアウトプットしたいものです。

でー、基礎的、具体的な技術の土台ができてくるとメタな視点を持てるようになるもので、先の見通しがクリアになってきたかなと。『情熱プログラマー』の「1つのテクノロジーに投資するな。ベンダー中心にキャリアを考えるな」という記述にだいぶ影響受けまして、これまでは「技術学習」となるとプロダクトと相対する形がほとんどだったわけですけど、技術は手段に過ぎない、何のためにその技術を選ぶのか、みたいなことをやっと考えられるようになってきました。ミッション的には自分はビジネス的価値を直接生み出す、いわゆるコーディングをする人間というよりは、ビジネス的価値を産んでくれるコードをつつがなく動かす、運用効率を最適化するというところにフォーカスしたいという思いが強くなってきていて、そのためにどんな技術を選べばいいのかなというのをよく考えます。よく言うDevOpsとか、今年流行ったSREに思いとしては一番近いでしょうか。まだまだ未熟なので、そういう方面でバキバキバリュー発揮したいですね。特にDevOpsとかは文化的、コミュニケーション的な側面が強く、純粋に技術極めりゃいいってより組織論とか社会科学的なアプローチが必要だったりするし、そのへんもっと頑張りたいなと。。

あとあと、これまでは技術をインプットするという方向性が強かったんですけど、技術者という枠組みの中にいるのであれば「提供する」側にはそれなりに寄与したいなとも思うようになってきました。なんか今まではLTをする(そういえば今年やっと初LTしました)、GitHubでプルリクを出すみたいなのは自分の価値向上のためだとばかり思ってたんですけど、見方を変えれば技術者コミュニティというもっと広い場所に対する価値向上の意味もあるわけだよなと。特にOSSへのプルリクやらコミットというのは、誰かがそれをしてくれなくてはこれだけ便利な世の中は現状存在していなかったはずというわけで、これまで受けてきた恩恵を少しでも返す努力したいなと。そのためにはコードを読めて書けなくてはならない、もっと手を速くしたい。会社への寄与、自分の価値向上だけではなくて、業界全体に対して自分がやれることというのを意識したいなと思う。

はい、というわけで技術者として冷静になれたというのが今年だろうと思います。自分が何のために技術者やってんだってのをやっと考えられるようになった。ウェブを見てると新しいことやらなきゃいけない、かっこいいことやらなきゃいけないみたいに焦りますが、そうじゃなくて自分ができること、求められていることを的確に提供できるようになりたい、そのために必要な知識や技術を、的確な速度でキャッチアップしているエンジニアになりたいですね。来年はもっとコードを書く、それも汎用的に使える、きちんと公開して他の人の役にも立つようなものを書く、それが技術者としての責任でもあるかなと思います。