病みつきエンジニアブログ

機械学習、Python、Scala、JavaScript、などなど

25歳になった / 労働についてのあれこれ

もう誕生日から2ヶ月経つが、8月末に25歳になった。
お祝いを頂いた方、本当にありがとうございましたm(_ _)m

ちょうど今年は転職した“転機”で、転職して一段落経ったし、最近思ったこととか、気持ちの変化とか書いてみようかなと思う。

アプリのサーバーサイドを作って思ったこと

この半年間、NewsDigestというアプリのサーバーサイドを作ってきた。
そこで得た結論を言うと「アプリを作る上で、フロントエンドエンジニアが一番偉い」だ。

アプリの品質・面白さをコントロールする上で、最も直接的に影響があるのは、UI/UXだと思う。
いろいろ施策を毎日考えるが、「サーバーサイド不要でできる施策」はたくさんあるが「フロントエンド不要でできる施策」はあまり多くない。
どんな施策を考えても、結局フロントエンドエンジニアが作ってくれなきゃ何もならないのだ。。。

そもそも、この2016年において、フロントエンドエンジニアがウェブのバックエンドを“書かずに作る”方法はたくさんある。
ParseとかFirebaseとかのmBaaSを使えば良い。
実際NewsDigestでもParseを使っているので、僕のようなサーバーサイドエンジニアがやっているのは「配信アルゴリズムエンジニア」だ。
フロントエンドエンジニアが「Webの仕組みがわからないのでできない」という壁はあまり高くない。

だからそのうちフロントエンドをまたやりたいな、というのは正直思ったりする。何年後でも。
でもKotlinのプロジェクトが良いな。笑

5年後価値のあるエンジニア

「5年後、価値のあるエンジニアは誰か」という問題は難しい。

5年前を思い出してみると、AWSは今ほど使われてないし(公開されたの2006年だって!)、Dockerも存在しない。Sparkもないらしい。
GoやNodeは一応あるが、Scalaや関数型も今ほど流行ってないし、ECMAScriptの状況も全然違っただろう。
サーバーレスなんて言葉もなく、RX系もそんなに流行ってないだろうな。知らんけど。

5年後、「Webアプリケーションを作る」という言葉が示すものは、少なからず変わっているだろう。

自分の場合は、答えを出すのをやめたけれども、考え続けてはいる。

ベンチャー機械学習分野を活用すること

機械学習が“最近”コモディティ化して、個人がやりやすくなった、というのはやっぱり誤っていると思う。
今も5年前も、適切な問題設定をすれば、sklearnやらを使って問題を解くことは可能だったはずだ。
ちなみにTheanoも5年前からある。

「適切な問題設定があれば、一定の問題を、一定の品質で、既存のモデルで解く」
そのラインを超えた先、というのは何なんだろう? と、ずーっと考えていた。

一つは、大規模な学習、具体的に言い換えるとディープラーニング系のトピックを追うことだろう。
ただし「大企業が」「大規模なデータで」「大規模なインフラで」というのが大抵の枕詞だ。
(※少年ジャンプと同じように、3つのキーワードが揃わなくても良い)
他に、最新の手法を作っていく、というのもあるだろう。

そしてもう一つ、「ビジネス要件を理解し、新しい問題設定を作る」 というのがあると思う。
例えば出会い系サービスで「人工知能」を活用するとしたら、学術分野では決して出てこないような案や仮説・手法が出てくるだろう。
そのような洞察は、機械学習分野への知見だけでなく、ビジネスへの深い理解から来る。
ただし、ビジネス理解を突き詰めても、必ずしも学問的・技術的に新しいものは生まれるわけではない。

自分が、自社が、前者と後者どちらで行くのか、というのは考えた方が良いと思う。

労働において重視するものの心境変化

自分はもともとエンジニアとして「機械学習」とか「データ」のドメインに張りたかったというところで会社を選んできた。
ベンチャーを主戦場にしてね。

今、転職して、それなりに好き勝手やってるんだけど(分類サーバーとかログ基盤とか作ってる)、どっぷり浸かるほどやれてるわけではない。
転職直前の方が時間比重的には多いと思う。
かと言ってそこに大きく不満があるかというと、そうでもない。

そのことに気づいて、改めて、なぜ機械学習/データ分野をやるべきだと思ったのか、というのを考え直して見ると、 「難しい問題を自分の武器で解き、市場で希少価値のあるエンジニアになりたい」ということだったんじゃないかと思う。
(もちろん、単純に面白いからっていうのが一番大きいけどね。減ったけど、今でも公私で論文読むし)

「難しい問題を自分の武器で解く」を高めるために、もっと高度な手法、もっと大規模な手法、という風に手を伸ばしていくことも必要だと思うんだけど、 自分個人は、ビジネス理解を深めたり、あの手この手を考えて、それが必ずしも「高度」じゃなくても解決していくことに、面白みを感じてしまった。
それはもはや「エンジニアとして『機械学習』とか『データ』のドメインに張る」ということによる高みではない。

勉強からのドロップアウトとも怠惰とも言い換えられて、それで良いのかという悶々としたものはある。
週末・業務後に勉強したりいろいろ試したりするけど、あんまり身が入らない感じもあって焦っている。

まあ、かなり悩んでいたり焦っているけど、別の楽しみを見つけたのが今の状態、というところ。
一言で言えばたるんでるけど、楽しいので、なんとも言えない。
「技術的・学術的高み」と「ビジネス理解から来る課題解決」をうまく結び直すのが、今後の自分の宿題なんだろう。

Webエンジニアの職種を変えるとしたら

僕は結構映画が好きだったり、テクノロジー系イベント(VRとかDMM.planetsみたいな)行ったりするんだけど、 テクノロジーで人を感動させるのってすごいなーと思う。
Computer Vision系の研究とか見ると、本当にすごい(ディズニーとか)
Perfumeのライブ行ったことないんだけどすごそうだし。

だからもし職種を変えるとしたら、テクノロジーで人を感動させる仕事をやりたいなと本気で思ったりする。
もしくは同人でやるとか。
数年後にはVRコンテンツをインディーズが作れるようになって、いろいろ変わっているだろう。 (Unityの無料化とかUnreal Engineとか、ここ数年だしね)

大学院に行きたいなと思ったことがある話

自分は学部卒なんだけど、特定の学問を“修了”できなかったこととか、ちゃんと勉強しなかったこととか、学部時代の研究への心残りとかがいろいろある。

会社員になってみて気づいたのは、自分は学生時代に「プロセス」を全く知らなかった。課題解決的な思考方法というのが全くなかった。
あと9時に起きるという習慣も、勉強する習慣もなかった。とにかく怠惰だったな。苦笑

逆に、会社員経験を経てから学生に戻れば、学問とは別の“武器”を持った上で戦えるのかな、とは思う。

決して今ではないんだけど、ある程度人生に余裕ができたら進学したいな、というのは一つの選択肢として思っている。

次の転機

次の転機は、漠然と「5年後」だろうなと思っている。

会社は今のx倍になっているだろうし、事業は変わっているかもしれないし、自分の立ち位置は随分と変わっているだろう。
そのとき残るのか、転職するのか、起業するのか、入学するのか。
何か1つまたは2つを、明確に“選択”することになるだろうなと思うけど、選択はきっとポジティブな理由だろう。

最近見たもの

最近のオススメで言うと、

の3点、ご査収ください。

ライトノベル原作しばらく見てなかったけど、面白かったな。

今期は亜人が楽しみなのと、テラハ新シリーズが楽しみです。

最近買ったもの

最近買ってよかったなと思うのは、

  • ケルヒャーの高圧洗浄機・・・水回りの掃除が楽になります
  • ルンバ

あたりかなぁ。今は乾燥機付き洗濯機を買いたいけど、家の蛇口が低くてダメ。

終わりに

随分と長く、面白くもないポエムを書いてしまった。

また半年後か1年後ぐらいに、いろいろ心境変化があるだろうし、言語化できたらまた書こうかな。

おわり。