スキルアップについて考えてみた
はじめに
私はフロントエンドエンジニアとして働いていますが、フレームワークは使えるようになったけれど、その先の成長が見えないなと感じることがあり、その原因を探るべくClaudeに壁打ちをしながらまとめました。
なぜスキルアップが止まるのか
動くものを開発できる段階から長期的に価値を提供し続けられるソフトウェアを開発できることへのステップアップが難しいからではないかと考えます。
正解や方向性が明確でないため難しい
プログラミング言語などをベースに道具の使い方を学習をしていけば一定のものを作れるようになると思います。
なぜプログラミング言語をベースに学習すると学びやすいのかというと、数学の公式を覚えることと同じだと考えています。公式を覚えると公式を当てはめながらパターン問題が解けるようになるのと同様に、プログラミングでもある程度モノを作れるようになります。
これは「What」が明確にあり、私たちが何を覚えたら良いか方向性が明確に分かるためだと考えられます。
しかし、公式を覚えただけでは応用問題を解けないのと同様に、「Why」も非常に重要です。なぜこの場面でこの公式を使うのか、なぜこの形の公式なのかなど。
この「Why」の学習は「What」と比較して「何をすべきか明確でない」、論理的思考や理解への不確実性などが伴うため、ハードルが上がり意識的に取り組む必要が出てきます。
ここでは「何をすべきか明確でない」というハードルについて考えていきます。Whyの学習が明確でない根本原因として下記が考えられると思います。
- 問いの設定自体が難しい
What学習では「Reactを覚える」という明確な対象がありますが、Why学習では「何について『なぜ』を問うべきか」から考える必要があります。そもそも「良い問い」を立てることが高度なスキルだと考えられます。 - 文脈依存性の高さ
アプリの規模、チーム構成、技術的制約によって変わります。一般化された「正解」が存在せず、常に「この状況では」という前提条件付きになるため、学習の道筋が描きにくいと考えられます。
優先度が低い?ため難しい
ユーザーはソフトウェアの良し悪しを基本的にはUI(機能要件)からでしか判断ができません。
よって、より良い非機能要件は長期的に価値を提供し続けられるソフトウェアを実現するには欠かせないことではありますが、開発としての優先順位としては機能要件に注力し、非機能要件が後回しになってしまうことに繋がりやすいのかなと思います。
Why学習を進めるために
具体的な行動は人それぞれなので考え方のところを書き出します。
日常の小さな判断を問いに変える
「なぜこの変数名にしたのか」「なぜこのコンポーネントに分割したのか」など、普段何気なく行っている判断を意識的に言語化する習慣をつけます。
これは、自分自身の判断だけではなく他者の判断においても活用できます。
「正解探し」から「選択肢の理解」へ
「正しいアーキテクチャは何か」ではなく、「それぞれの選択肢にはどんなトレードオフがあるか」を理解しようとする姿勢が大切です。正解を求めるのではなく、判断材料を集める考え方にシフトします。
まとめ
今回はスキルアップが止まる根本原因は、「What学習」から「Why学習」への転換と考えて記事を記載してみました。
結論としては自分にできることから少しずつ始めるということになりますが、習慣化することが大事なんだろうと思います。
Discussion