目的
- 新卒1年目エンジニアがこれまで触れたことのない技術を目の前にして何を思ったのか、何をしたのかを知ってもらう
- 同じような1年目のエンジニアや、それを教育する立場の人たちにとって何か参考になれば嬉しい
前提
入社前のプログラミング経験(時系列順)
- Ruby on Rails
- 簡単なCRUDのアプリケーションを作成したことだけある
- Railsの勉強までにHTML/CSS/JavaScriptの知識はさわりだけ
- Vue.js(JavaScript)
- 開発のアルバイトの際に初めて触れる
- コンポーネント間のイベント・データの受け渡しに当時かなり苦戦
- 最後の方はなんとなく読めるようになってきていた
- Swift
- 開発のアルバイトで少しだけ触れる
- 型をちゃんと定義するありがたみを少しだけ知る
入社当初のPJで使用されていた技術
- React(TypeScript)
- Laravel(php)
- Inertia.js
- (とてもざっくりいうと)LaravelのbladeでのHTMLの描画処理をまるっとReactやVueなどのモダンなフロントエンドフレームワークに置き換える技術
上記を見てわかるように、入社当初に渡された技術にはどれも直接的には触れたことがありませんでした。
しかし直属のOJTのような方はおらず、ある程度自力でやっていかなくてはいけないという状況であったため、キャッチアップもある程度自分で行う必要がありました(技術研修的な側面も含んでおり、決して完全に放り投げられていたわけではないので悪しからず)。
この状況でどのような勉強をしたのか・なぜその勉強をしたのか、などを記録しておくことで新人エンジニアの空気感だったりを感じていただければと思います。
技術ごとに何を思ったのか・何をしたのか
React
思ったこと
- Vueを触っていたことで抵抗感は薄かったものの、当初は値が更新されるタイミングに困惑した
- Vueの方が
mounted
、beforeUpdate
など実行されるタイミングがわかりやすいと思っていた
- Vueの方が
やったこと
- シンプルにReactの公式チュートリアルを熟読した
- おそらくVueの下地がなかったらいきなり公式のチュートリアルを読むことはできなかったかもしれない
(実際Vueを最初に勉強した時には公式チュートリアルの用語の意味がわからずに挫折しています)
- おそらくVueの下地がなかったらいきなり公式のチュートリアルを読むことはできなかったかもしれない
Reactの公式チュートリアルは個人的にめちゃくちゃわかりやすく書かれていたと思います。
ここまで丁寧なチュートリアルがあるのは珍しいんじゃないかと思っています。
Reactの勉強としてはこれだけで、自分で試すみたいなことはあまりしていませんでした。
代わりに日々の実装の中で疑問に思ったらチュートリアルに戻り、わかった気がしたらまた実装にあたり、もう一回読み返してみたり...を繰り返していました。
結果としてベーシックなReactについてはなんとなく読める・実装できる、というところまで行けたんじゃないかと思っています。
TypeScript
思ったこと
- 元々Vue.jsはJSで書かれていたものを触っていたが、実行してみて期待される結果が入っていない、ということが多かった
- 実行前に目に見えてわかるエラーをあぶり出すことができるのはめちゃくちゃありがたいと思っていた
やったこと
-
プロを目指す人のためのTypeScript入門を読もうとした→挫折しました
- 中盤にかけてかなり詳しく型注釈・型推論などの仕様を説明していたが、しんどくなってしまって途中で辞めてしまった
- Kindleで読んでいると分量が多く感じてしまいきつかった
- そろそろもう一回読み直して見てもいいのかもしれない
- 中盤にかけてかなり詳しく型注釈・型推論などの仕様を説明していたが、しんどくなってしまって途中で辞めてしまった
- ブルーベリー本は挫折したので代わりにサバイバルTypeScriptを読んだ
- 「実務でサバイブできるようにする」ために作られているだけあり、TypeScriptのポイントが簡潔にまとまっている
- 大抵詰まった時にはこれを読むことで解決できた
Laravel
思ったこと
- できることが多すぎて追いきれない
- 基本的な処理は簡潔に書けすぎて、逆に怖い
- 本当にこれだけでいいの?感
やったこと
-
Laravelリファレンスの日本語版を一部読んだ
- 各機能の使い方を読みつつ、重要そうなセクションにまとめられている「サービスコンテナ」や「ファサード」ってなんだろうっていうのを何回もやっていた
- リファレンスを読んだだけではLaravelのコアな部分が全然伝わって来なかったので、以下のような記事をはじめ少しでもヒントが得られそうなものはとにかく一度目を通した
Inertia.js
- Inertiaについては、実務で使う中で使い方はわかるが、実際どんな作りになっているのかはあまりわかっていない
- React、Laravelという両者にまたがった技術がどのように実現されているのかを今後調べて記事にもする予定
最後に
色々読んでみたはいいものの、正直まだ自分の中では有用性を感じ取れていない部分や仕組みを理解しきれていない部分があります。
技術を使いこなすのだけでもとても大変だと思うのですが、純粋な興味と、色々できることが増えるかもしれないという期待もあるので
これからもどう使うのが良いのか、なぜそういう仕組みになっているのか?を深めていけたらと思っています。