新しくプログラミング言語を習得にはどれくらいかかるとイメージしていますか?
一ヶ月?数ヶ月?半年?
実は先月から新しく業務委託を始め、バックエンドエンジニアとして初めてgo言語を使ったサーバーの開発に携わり始めました。チームの皆さんの力とLLMの力を借りて、順調にgo言語をキャッチアップし、大体一週間くらいで読めるようになりました。
習得の定義の変化
新しいプログラミング言語の習得の定義自体が大きく違うと思っています。
以前だと「自分でそのプログラミング言語を書く」をゴールに習得していましたが、現在は「LLMが書いたコードを自分の指示通りかレビューできる」がゴールになっていると思います。
プログラミング言語を記述できる必要はなく、LLMが生成したコードの記法が正しいか、実行している関数は正しい関数をつかっているか?、N+1などはないか?などを見るのみになりました。
スマホが登場してからは、「日本語を鉛筆で書ける」必要はなくなり、「正しい文法、漢字を選べること」スキルになったことと似ていると思います。
流石に初学者は一週間は厳しいかな?
ただ、これは私がTypeScriptやC, Swiftなどを使って8年近くプログラミングに触れているからという部分もあると思います。
実際Go言語を勉強するときも、ベーシックな言語の仕様や書き方など勘所を抑え、クリーンアーキテクチャなどのある程度のベース知識があり、LLMには「TypeScriptを5年以上経験しているエンジニアがgo言語習得中」と言うコンテキストをつっこめるからこそのスピードな気がします。一方で初学者もLLMという先生が常についている状態だと思うので、驚異的なスピードで習得できるはずです。
エンジニアの仕事って何?
ここまでLLMが優秀だと、プログラミングに必要な時間はほぼないですが、その減った時間何に使うかがこれからの価値想像な気がします。
要件決め、詳細設計、実装、テストといった工程をみると、実装は大部分が自動化できています。テスト、詳細設計もきっと多くは決まりきったルーティンワークなので、ほぼ自動になるかと思います。一方、要件を決めることはサービスへの理解、会社の理解力が必要なので、ここは複雑度も高く、人間が向いている仕事に思えます。
まとめ
個人の妄想ですが、今後は1サービスを一人もしくは少人数で回すことできるはずです。
そうなると
- サービス志向
- フルスタック(一人でサービスを提供できる)
スキルが今後ニーズあると思います。