AI時代、入門エンジニアは結局どの言語を勉強すればいいのか

AI時代、入門エンジニアは結局どの言語を勉強すればいいのか

はい、どうもこんにちは佐藤です!

「エンジニア入門って、結局どの言語を勉強すればいいの?」

先日、友人と飲んでいたらこの質問をされました。エンジニアあるあるの、永遠に答えの出ないやつですね。

これまで銀行案件・基幹業務系を長くやってきて、いろんな言語を触ってきた私の結論を先に言いますね。

気になった言語は、全部やれ。

……って言うと身も蓋もないので、「じゃあ最初の1本目は何がいいの?」にちゃんと答えていきます。その理由を書いていきますね!


AI時代、言語特性の差はどんどん消えていく

まず大前提から。

AI が当たり前にコードを書く時代になって、「言語ごとの細かい特性」を人間が暗記している価値は、正直どんどん下がっています。

文法の細かい違い、標準ライブラリの使い方、お作法。こういうものは AI に聞けば一瞬で出てきますよね。だから「この言語の文法に詳しい」こと自体は、もう強い武器ではなくなってきたのです。

では、何が残るのでしょうか?

残るのは アーキテクチャの考え方 です。どう責務を分けるか、どうデータを設計するか、どう変更に強い構造を作るか。これは言語が変わっても通用する、移植可能なスキルなのです。

つまり最初の1本目は、アーキテクチャの考え方が体に染み込む言語を選ぶのが正解。そう考えると、私はやっぱり Java を推したくなります。


理由その1:クラスで「カプセル化」が体で分かる

Java を推す最大の理由はこれです。

Java はクラスが中心の言語なので、嫌でも「カプセル化」の概念に向き合うことになります。private で隠す、public で公開する。この境界を引く感覚が、書いているうちに自然と身につくのです。

カプセル化って、ドメイン駆動開発( DDD )をやるうえで必須の考え方ですよね。データと振る舞いをひとつにまとめて、外から勝手にいじれないように守る。この感覚がないと、いくらフレームワークを覚えても設計はうまくなりません。

ここで JavaScript や Python と比べてみましょう。

これらの言語は private の縛りがゆるいです。Python のアンダースコア( _ )なんて、ただの「触らないでね」というお願いでしかありません。技術的には外から普通に触れてしまう。

縛りがゆるいと、何が起きるか? カプセル化を破っても動いてしまうので、体感として学びづらいのです。コンパイラに怒られて初めて「あ、ここは隠すべきなんだ」と気づく。Java のこの厳しさは、入門者にとってはむしろ優しさなのですよね。


理由その2:ORM で DB 設計の解像度が上がる

次の軸は、データベースです。

業務アプリを作るなら、結局いちばん大事なのは DB 設計だったりします。ここの解像度を上げるには、ORM がしっかり使える言語を選びたい。

ORM を触ると、自然と「リポジトリパターン」や「アクティブレコード」といった設計パターンに出会います。テーブルとオブジェクトをどうマッピングするか、データ取得の責務をどこに置くか。こういう引き出しが増えていくのです。

ここで面白いのが、言語やフレームワークによって選べる設計の幅が違うということ。

  • PHP の Laravel だと、Eloquent でアクティブレコードに寄っていきます
  • Python の FastAPI だと、SQLAlchemy でリポジトリパターン寄りになります

どちらも素晴らしいのですが、ある程度「型」が決まってしまうのですよね。

その点 Java はどうでしょうか? JPA / Hibernate もあれば MyBatis もあり、リポジトリパターンもアクティブレコード的な書き方も選べる。自由度が高くて、潰しが効くのです。フレームワークに決められるのではなく、自分で設計を選ぶ経験ができる。入門の1本目としては、この幅広さがありがたいと思いませんか。


理由その3:単純に「案件の場数」が圧倒的

ここはもう、身も蓋もない現実の話です。

いまの SIer の状況を見ると、Java の案件数は圧倒的に多い。経験値を稼ぐ、場数を踏むという観点では、これがめちゃくちゃ効いてきます。

単価だけで言えば、正直 Go のほうが高くなる傾向はあります。新しくて、書ける人も少ないですからね。

でも入門者が最初に欲しいのは、高単価よりも 経験の絶対量だったりします。いろんな業務ドメインに触れて、いろんな設計の現場を見る。その回数を稼げるかどうか。場数で考えると、やっぱり Java に分があるのですよね。


でも、本当に伝えたいのはここから

……と、ここまで散々 Java を推してきました。

でも、よく考えてみてください。こうやって「PHP はこう」「Python はこう」「Go はこう」と比較できているのは、私がいろんな言語を実際に触ってきたからなんですよね。

最初から「Java が正解」だと分かっていたわけではありません。あれこれ寄り道して、比較して、初めて「入門ならこれかな」が見えてきたのです。

だからこそ言いたい。

「どの言語が一番いいか」を考え込んでいるうちは、まだエンジニアになれていません。

そこで立ち止まる人より、「次はこれ触ってみよう」「お、この言語面白そう」と道草を食う人。寄り道をためらわない人。そういう人が、結局いちばん伸びていくのです。

言語選びは、スタートを切るための口実くらいに思っておけばいい。大事なのは、選んだあとに何本も寄り道できるかどうかなのですよね。


というわけで、AI 時代の入門は「まず Java、でも最終的には全部やれ」って話でした!

あ。正確には、1本目で迷う時間を最小化して、2本目以降の寄り道を最大化しよう って感じですねっ。

Java を推したのは、カプセル化と DB 設計という「移植可能なスキル」が最短で身につくから。でもそれはあくまでスタート地点です。そこから先、気になった言語に手を出し続けられる人だけが、本物のエンジニアになっていきます。

なんの言語がいいか悩んでいる暇があったら、とりあえず1本書き始めちゃいましょう。そして気が済むまで道草を食ってください。それがいちばんの近道だよ!

この記事をシェアする