仕事で新卒向けのIT研修をしている私は、新卒エンジニアの研修において、最初からフレームワークを教えることに懐疑的な意見を持っています。
この記事では、フレームワークの使い方をひたすら教える教育現場のエンジニアたちがどうなっていくのかについて記述しています。
フレームワークの便利さがもたらす功罪
フレームワークは、開発を効率化するためのツールです。たとえば、Webアプリケーションを作る際にReactやVue.jsは、複雑なUI構築を簡単に実現できます。同様に、バックエンドではRuby on Railsなどがよく利用されます。
しかし、フレームワークを使うことで、HTTPリクエストやCookieの仕組みといったWebの基礎技術を理解しなくても、それらを扱えてしまいます。結果として、「なんかよくわからないが動く」という状態のまま進んでしまうのです。
Cookieの例: 基礎知識の欠如
たとえば、セッション管理のためにCookieを利用する場合を考えてみましょう。多くのフレームワークでは、Cookieの読み書きを抽象化し、簡単なAPIで操作できるようにしています。これは非常に便利ですが、一方で以下のようなことは理解しないまま進んでしまいます。
- CookieがHTTPレスポンスヘッダーの一部として送信される仕組み
- クライアントがCookieを自動的にリクエストに含める理由
- Secure属性やHttpOnly属性がセキュリティに与える影響
これらを知らずにアプリケーションを構築すると、セキュリティリスクを考慮しないアプリができあがります。新人エンジニアに基礎を教えないままフレームワークを教えても、ただツールが使いこなせるようになっただけにすぎません。
フレームワーク前提の教育がもたらす問題点
基礎技術の未理解
フレームワークに依存すると、HTTPやデータベース接続など、システムの基本的な仕組みを理解しないまま進んでしまいます。その結果、トラブルシューティングが困難になり、フレームワーク外の技術を学ぶ際に大きな壁に直面します。
フレームワークの寿命
現在人気なフレームワークも、数年後には使われなくなる可能性があります。基礎を理解していない場合、新しい技術への適応が難しくなります。
「ブラックボックス」の増加
フレームワークの内部ロジックが「ブラックボックス」と化し、「どうしてこのコードで動くのか」という疑問を解消できないまま進んでしまいます。この状況では、自信を持ってコードを変更したり拡張したりすることが難しくなります。
基礎技術を教えることの重要性
新人エンジニアには、まず以下のような基礎技術を教えるべきです。
- HTTPプロトコル: リクエストとレスポンスの流れ、ステータスコード、ヘッダー
- Cookieとセッション: データの保存方法、セキュリティ設定
- データベースの基本: SQLの書き方やトランザクション管理
- サーバーサイドの基礎: リクエストとレスポンスの中身や処理
これらを理解したうえでフレームワークを学ぶと、フレームワークがどのように基礎技術を抽象化しているのかが見えてきます。これにより、フレームワークに依存しすぎず、柔軟に技術を学び続ける力が養われます。
結論
フレームワークは便利な反面、基礎技術を理解しないまま使うことでエンジニアの技術力向上を阻害します。新卒研修では、まず基礎技術を徹底的に教え、その後でフレームワークを学ばせるステップを踏むべきだと考えます。