multiplus

気まぐれに書評とか。

今年度はどうしようか、という話

新年度にもなりましたので、ちょっと書評以外の話を書いてみようと思います。(先輩のブログを久々に覗いたら、なんか書いてあって真似しようと思った)

私は新卒でついに「とりあえず3年」の3年目に突入してしまい、一方で自分の思い描いていた3年後と現状とにあまりに乖離がありすぎて、これからの人生どうしようか・・・というのが本気で定まっていないのでちょっと不安を覚えております。キャリアの計画、ですね。

そもそも就活中は戦略系のコンサルになるものばかりと思っていまして、入社後もパワポと向き合う生活を送る予定だったのですが、なぜかEclipseと黒いコンソール画面、そして数式の列と向き合う日々を送っています。あれ、おかしいな・・・

ただ、キャリアというのは自分で築くものという側面がある反面、ある種の運命的な出会いや偶然、そして流れによって決まるものだとも思っています。

計画的なキャリアを描いてそのレールに乗るのも確かにすばらしいことだとは思いますが、私は、残念ながらこれまでの人生が計画通りに進んだ試しがないので、そういうご縁にはどうやら恵まれていないようです。なので、今この瞬間に解決すべき課題を黙々と解決しつつ、時間を見つけてそういった運命的な出会いがあるよう、アグレッシブに外の世界に顔を出していくつもりです。

一方で、今この瞬間に集中するために、自分自身の課題を整理しようかなと思っています。先輩のフォーマットをパクりつつ、整理していきます。

  1. 現状の自分のスキルセットと傾向
  2. 今年度学ぼうと思っていること

1. 現状の自分のスキルセットと傾向

言語

比較対象をJavaとして、現状それに比べて自分自身がどれくらい上手にその言語を扱えるかを書きます。普段はJavaを使って、金融系のシステムを作っています。リスク管理が専門で、並行処理とかその辺を丁寧に考えながら実装しています。よくある設計思想なども駆使しつつ、どういった実装がより複雑な金融の事象を簡潔に表すことができるか、をよく考えていますね。

  • Java: ★★★★★
  • HTML: ★★★★★
  • CSS: ★★★★★
  • JavaScript: ★★★★☆
  • Ruby: ★☆☆☆☆
  • Python: ★★☆☆☆
  • C++: ★★☆☆☆

フレームワーク・ライブラリ

基本的に内製のフレームワークを使っているので、これといって経験があるわけではありませなん。そこがある意味弱みなのかもしれません。

  • Spring Bootを使って、Webアプリを作ったことがあります。
  • Railsは最近ちょびちょびいじってます。
  • jsだと、durandalとVue.jsをいじったことがあります。ES6で書けます。

その他

  • Jenkinsの設定とか
  • パフォーマンスチューニングをして5分かかってた処理を30秒にするとか
  • 最近はメモリとかそういうのの勉強してたらいつの間にかアセンブリ言語いじりはじめるなど
  • IllustratorPhotoshopがそれなりに使える。大学時代にWebデザイナーのバイトをしていた経緯がある。
  • したがって、デザイン〜フロントエンド〜バックエンド、くらいまではまあまあできると思われる。
  • 一方で、インフラ系の経験がまったくないので、サーバーをどう構築するとか、ネットワークがどうとか、そういった部分には無知。

どちらかというと、物事を深く理解したいタイプみたいで、「変数って何?」とか、「hashCodeには慣習的に31などの素数を用いるけど、なぜ素数を用いるの?」といったことや、「System.out.printlnはどうやってコンソールに文字列表示を実現しているの?」などがわりと気になって仕方ないタイプです。

大学の頃は真逆で、むしろ知識を仕入れることの方に喜びを感じていたタイプでした。なので、手広く何かをやることが多かった用に思います。

それゆえ、これまでのキャリアではとりあえず1つの言語を深く追求してきました。1つの物事を深く追求する、というのは私自身が大学時代からずっと感じていた課題で、意識的にそうしてきた、という背景があります。

あと、UX/UIには結構うるさい。

2. 今年度学ぼうと思っていること

っていうか、健康面ですね。去年は私生活がわりとボロボロだったので、今年はまず私生活の立て直しからスタートかなと思っています。

私の場合は、仕事上は今求めている(求められている)ことは、1つの機能をバグなしで最速で完成させること、なのでそれを達成するために、JUnitをちゃんと書くとか、バグを減らすために複雑な物事を単純に表現できるアーキテクチャを考えるとかそういったことを学ぶことをメインに考えています。

個人としては、ライブラリの作成とかフレームワークの作成とかに1つ興味があります。残念ながら、力量不足もあってフレームワークを作る側にはなかなか回れそうにありませんが、フレームワークを作ることにとても興味があります。サーバー、と言われたら、サーバーを使いこなすことよりもむしろ、サーバーを作ってみたいと思ってしまうタイプです。なので、プログラマの役に立つライブラリを作ってみたい気持ちはありますね。

もう一つは、UX/UIを考える側に興味があります。最近、簡単なWebアプリをいくつか作ってみたのですが、やはり動くだけのものには興味がないようです。このボタンの動きが、とか、このコンポーネントの位置が、とかそういうのをどうしても凝りだしてしまうようです。やるんだったら、UX/UIはこうするから、中身はあと作って!みたいな立場がいいのかもなあ・・・実装するのはちょっとめんどくさい・・・この辺はデザイナーの性が出てしまうのかもしれません。

ライブラリ作成者としての軸と、UX/UIを決めるみたいな立場(これ、なんていうんだろ)の軸の2つに今は興味があって、そのどちらに足を突っ込むかはわからない、という現状ですかね。学ぶだけは自由なので、当面はこの2つ+仕事に必要なものを学んでいく感じでしょうか?

あと、転職したらきっと気が変わるので、もうちょっと腰を落ち着けて考えてみようかと思います。書いてて思ったけど、今後学びたいこととか、ありすぎて逆に整理がついてませんでした。