???
作業した、くらいしか書くことないので、最近の自分の位置と転職〜今について振り返ってみる。
すきあらば自分語り、だが自分の事を語る以外にこのブログの存在価値はないので許されたい。
そもそも、わざわざ作曲の修士まで出ておいて、しかも先生方に大変お世話になって講師までさせて貰っていたのに転職したのは、単純にもっと技術力が欲しかったからだった。
独学の限界を感じたし(実際のところ、独学に限界はないのでこれは単純に自分の限界だと思うけれど)、同居人とやっていた仕事の方も行き詰まったので、自分の作りたいものを作るためには技術力が必要だ、これは多分お金にもなるし、今頓挫しているサービスを実現するためにはもうそうするしかないのではないか、となったわけだった。
実際どこに限界を感じていたかというと、アーキテクチャやWEB FrontendとWEB Backendの連携、DB周りなんかの扱いについてだった気がしている。
その辺りははっきりしないし、はっきりしていたら多分独学でもうちょっとなんとかなっていただろうと思う。
本はこの時期に結構買って読んだし、PythonやJavaやScalaのWEB FWは齧ってみたけど(FlaskとかPlay2とかSkinnyとか、あと怨霊ルズ、出たてのSwiftもちょっと触ったしCocos2Dとかもいじってみた)、正直チュートリアル以上のものは出来なかった。
この時期にこそアーキテクチャの本を読むべきだったんだと思うんだけど、そういう概念を「アーキテクチャ」と呼ぶ事自体をあまり理解していなかったように思う。
直後にレイヤードアーキテクチャやクリーンアーキテクチャが流行ったので、タイミング次第ではもっと早く辿り着いていたかも知れない。
が、本を買ってもこの時期だと読み切れていなかっただろうな、という気もする。
オープンソース読む系の本も、基礎知識が足りなすぎて何書いてあるか全くわからなかった。
とりあえず1ページでGoFとPOSAとJ2EEの簡単な説明が書いてあって、この本読む前に理解してね、みたいな事が書いてあった。
何言ってるかわからんってなって終わったが、今見返すと超良書。少し古くなってはいるけど。
これを最初から全部わからない単語を1個1個調べて読んでいくことが出来たら、独学でも全然大丈夫だったんだろうな、とは思う。
転職してから暫くは、そこそこの量のそこそこの構造を持ったソースを読む機会に恵まれたので、本で読んで知っていたはずなのに全然理解していなかった単語の意味が繋がってとても気持ちがいい時期が続いた。
最初にちゃんと勉強した言語がScalaだったのでJava 1.4とかを書くのは結構苦痛だったけど、作業自体は移植やらもうロジックが具体的な数式として表現されているものの実装やらみたいな簡単な仕事ばっかりだったので特に作業に問題はなかった。
移植時に勝手に関数を切り分けて増やしたり結合したり、クラスを増やして構造ごと変えてしまったりと原型がわからなくなるくらい弄り回しても何も文句を言われなかったのも、今になって思えばとても有り難かった。
(僕ならこれまで就職もせずフラフラしてましたとか言ってる謎の未経験者に、最初からそこまでの自由を与える勇気はない。なんか今になってめっちゃ感謝の念が湧いてきた。今度お礼言いに行こ…。)
で、色々(C# (ASP), PHP, 全文検索エンジン(ES, Solr), REST(Like) API、Web Crawler & Scraper, Node.js(Express), Docker, 証明書周り, クラウド(VM, Storage, Serverless, コンテナ周り)とかをちょっとずつ触るなどが)あって、今のプロジェクトになって長いが、なんか最初に知りたかったことはもう大体知っている気がする。
(あ、でもフロントエンドは全く触る機会がなかったので全然できる気がしない。VueとReactは少し触った。本当に少しだけ。CSSはわからん。)
勿論知るにつれて知らない事が同じだけ増えているので全然追いつかないのだけど、そろそろ初心に立ち返って作りたかったもの作る時期では?と思うと、これがまた、なんというか、正直あんまり難易度が変わってない気がしてしまう。
アーキテクチャによる見通しの確保や、各種原則の適用でおそらく複雑性はかなり軽減できると思うのだけど。
なんだろう?いや、でもやっぱり作りかけのものは一旦放置して最初から組み立て直してみるべき時期だよな。
うーん、何か変わったんだろうか。
やってみないとわからないな。