はじめに
最近は、勉強しやすい環境になったとはいえ
いろいろな技術を学んでいく必要が出てきました。
フロントエンド、バックエンド、ネットワーク、インフラ、クラウドなど
業務内容によりますが、やっておいた方がいいことはキリがないです。
特に若手の方は、すでに技術が成熟した環境から
キャッチアップをしていくので次のような壁にぶつかりがちです。
- とりあえず必要だから勉強している
- なぜその技術を選ぶか説明できない
- 新しい技術についていくのに精一杯
わたしもその1人ですが、プロになるためのWeb技術入門を読んでみて、
考え方が変わり技術の勉強が捗るようになりました。
それは、
「この技術がなかったら、何が困るんだろう?」
という、とてもシンプルな問いです。
本記事では、
技術が増えすぎて混乱している若手エンジニア向けに、
自分が実際に「理解が進んだ」と感じた学び方の視点を紹介します。
技術そのものの解説ではなく、
「どう向き合うと楽になるか」「どう考えると理解しやすくなるか」
というスタンスの話です。
技術の”背景”を知る大切さに気付いた話
最近、プロになるためのWeb技術入門を読みました。
この本の構成として、インターネットが発展してきた歴史をなぞりつつ、
どのような技術が生まれ、現代で活かされているかを解説されています。
この本を読んでいくつかの気づきがありました。
- IT技術の発展の中で流行り廃りがある。
- ある課題を解決するために新しい技術が生まれていく。
- 主流になっている技術はそうなっている理由がある。
その技術がなぜ生まれたのかという背景を知ることで
より理解が深まるのを感じました。
理解を深める難しさ
技術というのは何かの課題を解決するために生まれたものです。
今の流行っている技術は、すでに課題が解決された状態で便利なものとして紹介されます。
若手の方にとっては、それがあることが当たり前になり
目の前のタスクをこなすことで手一杯になります。
そうなると、
- なぜその技術が必要なのかがわからない
- 他の技術との比較検討ができない
- とりあえず使っている状態から抜け出せない
などの弊害が出てしまいます。
チームの戦力になるためにも、スキルアップしていくためにも
抽象度の高い意思決定には技術への深い理解が必要です。
では、どうすれば日進月歩な技術の発展についていけるのでしょうか。
「この技術がなかったら?」という問いから理解を深める
効率よく技術の理解を深めるためには、
それが生まれた背景や解決している課題を意識することが必要です。
しかし、そのために歴史から勉強しよう!となってもそんな時間はありません。
というわけで、技術を勉強するときに意識しておきたいのが
『この技術がなかったら何が困る?』です。
今勉強しているトピックがない場合の世の中を考えてみる(AIに聞いてみる)と
- イメージが湧いて定着しやすい
- 技術の特徴を捉えて比較できるようになる
- その視点だけ追加で調べれば時間もかからない
というメリットがあります。
例えばどのように考えたら良いでしょうか?
プロになるためのWeb技術入門の中でも、
SPA(Single Page Application)の例が紹介されていました。
詳細は割愛しますが、ざっくり解説すると
- SPAが出てくる前(なかったとき)の課題
- 画面遷移ごとにHTMLを読み込みしていた
- 表示に時間がかかってユーザー体験が落ちる
- 通信量が多くなる
↓
- SPAが解決する課題
- 変更が必要な部分だけ更新する
- スムーズな操作
- UIと状態を分離できる
※ SPAはすべてのケースで最適というわけではなく、
SEOや初期表示速度の観点ではSSRなど別の選択肢が取られることもあります。
はじめから流行っているからReactを勉強する!となっているよりも
なぜReactを選ぶのかがわかっていると質が高い設計、実装につながるはずです。
まとめ
最近は、新しい技術が次々と登場し、
「何を学べばいいのか分からない」「ついていけていない気がする」
と感じやすい時代だと思います。
ただ、少し立ち止まって今回紹介した視点を考えてみると
- その技術が解決している課題が見える。
- 似たような技術との違いがわかりやすくなる。
- 「なぜそれを選ぶのか」を自分の言葉で説明できる。
ようになるでしょう。(少なくとも理解度は上がるはず、、、)
「この技術がなかったら何が困る?」という問いを使うことで
”とりあえず覚える”状態から一歩抜け出して、技術の解像度を上げていきましょう。