ほそながい生活を求めて

細く長くご飯を食べるために…

エンジニアとしてあまりこだわりがないのは強みかもしれない

 ポエム。自分のITエンジニアとしての強みについて考えていました。アプリケーションもインフラも本職として扱っていたことがあるから、レイヤ7から2まで普通の理解があって、基本的にどのレイヤでも何とか対応できることだと今までは言い張ってきた気がします(レイヤ1には自信がない)。しかし、最近転職を考えて少しだけ面接なんかを受けているうちに、技術へのこだわりのなさが最大の強みかもしれないと思い始めました。エンジニアとして面接に行っても、プロダクトやロール自体に関する質問はするんですが、要素技術的な質問をすることがあまりないことに気が付きました。敢えて言うなら、スキル的に選考条件を満たしているかの確認をする程度な気がします(満たしていなくても、入る前に最低限キャッチアップできると思いますとか言っておけば案外パスできるものだったり・・・。嘘ではない!)。

まず言語は何でもいいです。あえて言うならシンプルという理由だけでGolangが好きですが、COBOLを書いたこともあるし、自社フレームワークとかいうスパゲッティー(これ以上のクソ環境は後にも先にもないはず)を弄っていたこともありますし、PL/SQLをコネコネしていた時期もあります。インフラは物理でVMを動かしていようがコンテナを動かしていようが、物理じゃなくてAWSを使っていようが興味ないです(処理的に必要であれば気にしますが)。フロントエンドはJqueryだろうがVueだろうが何でもいいです(フロントエンドエンジニアとして働いたことがないのですごく適当に言っています)。天才が考えた技術思想や概念にしたがって扱えば大抵はうまいこといくわけなんで、公式ドキュメントを読んで、それこそチュートリアルどおり扱うことが重要だと思ってます。

こんな感じですが、エンジニアとして面接に行っても基本的にトントン拍子で選考をパスしていると思います。世界的企業から年俸提示を受けたこともあります。ちなみにその時は矢継ぎ早に技術的な問題を出されたので、流石にエンジニアっぽく受け答えをしていたんじゃないでしょうか。しかし一般的な流れに沿って普通に答えただけです。

そして、私の書くコードは恐ろしく普通だと思っています。IQ105くらいの人が書いてそうなコードと言うとわかりやすいでしょうか(ネットのIQテストによれば私のIQは125らしいが)。特に難しい抽象化をすることもなく、普通にif文とfor文を使い、それなりにわかりやすい変数名をつけ、適度にモジュール分割をするだけです。ちなみにコードを書くスピードもいたって平均的だと思ってます。

よくよく考えてみると、思い当たることがありますね。たとえばLinuxカーネルglibcとかのソースをちらっと読んでみると分かる(内容が分かるとは言っていない)のですが、処理自体の難しさはあるにせよ、かなり普通のコードが書かれてます。結構真面目に、あえて我々凡人でも追えるレベルに作られているのかもしれないと思ってます。だって高度な抽象化とかされちゃうと私ふくめ普通の人が読めなくなっちゃうじゃないですか!世の中は駒としてはあくまでも普通の人を求めているんじゃないだろうか。

というわけで、オブジェクト指向わかんねえええええ、抽象化うげえあああああああとか思っている方も、こういう人間がいるということでご安心ください。やってれば徐々に分かってくるとおもいます(私は全然分かってないですが)。というか話の趣旨が変わってしまいましたね。要素技術のこだわりも、抽象化へのこだわりも似たようなもんで、どっちにもこだわりがない人間でもなんとかなるよ!!!って話でした。

以上です。