大学に遊びに行ってきた

大学の恩師2人を訪ねた。近況を報告しつつ、AIが取り巻く新しい時代や教育について意見交換をしてきた。もちろんAIの流れは大学にも来ていて、学生もAIを巧みに利用してさらなる成果をあげるグループとAIに振り回されているグループで二極化しつつあるようだ。コロナ禍の影響からか以前に比べてリアルでのコミュニケーションに難を抱える人が多く、指導教官もいかに学生を卒業させるかについて悩んでいるとのこと。いっぽうで字面もあってかいまだにコンピュータサイエンスは高校生に人気らしく、新しい学生は次から次へとやってくるらしい。

私の時代には大学院への進学率は40%くらいだったが今や80%にものぼる。卒業後は大手企業へ就職するのだが、この大手は必ずしも日本の大企業ではなく、今やよく聞くようなIT企業のことを指すようだ。AIコーディングはイチからものづくりする能力や記憶力の低さという課題はありつつも、プログラミング能力だけで言えば修士レベルに達しているので、うまく使い分けているとのこと。先生たちも仕事の持ち帰りをしないようになってきて、学習と成果のバランスに苦慮している様子。

マイクロライブラリを作った

JavaScriptでコードジェネレータ用のライブラリを作った。以前作ったJANコード検証・生成ツールの機能を切り出したもので、特定の桁を固定したりランダムにしたりしつつ、総当たりのコードを生成できる。

const { Random } = globalThis.DGen
const gen = new Random('abc').pulse()
    .product('xy')
    .product('12')
for (let i = 0; i < 10; i++) {
    gen.next() // => { done: false, value: [...] }
}

内部的にはIteratorインタフェースを継承した反復処理になっていて、遅延評価的に値を取り出すことができる。実装に際してはRustのiterモジュールを参考にしている。個人的にイテレータはとても心惹かれる機能のひとつだ。

近年になってJavaScriptもIteratorを導入こそしたものの、C#やRustのようなイテレータ操作はあまり見られず、for文やスプレッド演算子くらいの利用にとどまる。従来の .filter() や .map() で事足りるし、同じ結果が得られるのなら記述量を増やすほどのことではないのかもしれない。

異動先は建設現場

NHKで“異動先”は建設現場 AI時代の配置転換が配信されている。ここで取り上げられているRIZAP社ではAIの普及に伴って過剰になった人員を再教育して、内装工事業の現場担当にする動きがあるようだ。「いい人がいない」と言われるこの時代においては、余った人間を解雇して新しく採用するよりも、人となりがわかっている社員を再教育する流れは理にかなっている。

結果的に当人にとってはその異動が追い出し行為だと受け取られてしまうかもしれないが、転職活動をしたとて、採用を絞る傾向にある今の市場では厳しい戦いを強いられかねない。会社に食らいつかなくてもいいくらいの強みを持ちたいが、ほとんどの人間はそうもいかない。エンジニアも同様で、AIの登場によってシニア級が数人いればよくなってしまったので、安泰という言葉はすでになく、実力主義の生き残りをかけた戦いがすでに始まっている。