見出し画像

大学でコードの可読性について講演した話


講演内容

先日、出身研究室(情報系)にて、コードの可読性について講演させていただきました。内容は、コメントと命名と型を利用してソースコードを過不足なく表現しようということ、認知負荷を減らすため面倒ごとはシステムに押し込むこと、さらに生成AIをどう活用しているのか、という話をしました。可読性とは言いつつ、本題としては、人間が注力すべきことに注力しよう、という内容です。後半の生成AI関係は前半との関連もあり面白い展開ができたと思います。後半は実演しながらの講演なので、スライドだけでは内容がわからない部分もあるかもしれません。

動機

講演背景は僕の経歴に関係します。僕は会社に入社して、4年間の研究(データサイエンス)経験をしたのちに、ソフトウェアエンジニアに転身しました。その後、内製化チームを立ち上げてコア領域のシステムを開発して今に至ります。僕の強みというと、アジャイルで内製化した経験を持った上で、博士課程の研究をしてきたということです。つまり研究(情報系)に対し、アジャイルにおける経験をどう活かせるのか、自分の経験した範囲で理解しています。

内製化チームで働いている間、業務は継続しながら博士課程に進学しました。社会人かつ博士という扱いです(この時は死ぬ程忙しかったのでそれもまた近々記事で触れたいです…)。その際、内製化経験で得たプログラミングに関する様々なノウハウや考え方がとても役にたちました。
具体的には、VScodeの拡張機能や単体テスト、依存性逆転やDDD、アジャイルのマインドなど全てが研究をする上でチートスキルのように役立ちました。そして思ったのは、自分が学生だった頃にこんなことを知っていたらめちゃくちゃ効率的に研究できたのに、ということです。
SpellCheckやFormatter、Linter、Ryeなどの単純な機能ではありながら、コーディングにおいてはとても大きな効果があります。しかしこういった観点は大学で研究している段階では、学生はあまり触れることがありません。

これは非常にもったいないことです。一度、教授と懇親会で話した際には、博士課程にストレートで進むか、企業に進んでから博士課程に進むのか、どちらがいいか?と聞かれた際、企業での経験があれば研究の幅や考えも柔軟にできるから良いです、と答えたのですが、教授はちょっと残念そうな反応でした。
大学側からすると、やはりテーマを修士で一度切ってしまうことがネックなのかもしれません。その時に僕が思ったのは、僕みたいに社会人経験の有効性を実感したのなら、その内容さえ学生に共有すれば、ストレートに進学したとしても僕が得たメリットも享受できるのではないかということです。そういった思いがあり、今回は学生向けに、テストや設計の話をあえて出さずに、可読性に特化した内容にまとめてお話ししてきました。

講演のアンケートやその後の雑談を通して分かったのは、VScodeの拡張機能やGithubの便利機能などについて、やはり全然知らないことがおおかったということです。なので、話を聞いてすぐにでも導入してみたいという声もあり、とても好感触でした。

また、どうすればコーディングをうまくできるかという悩みを持っている博士課程の人もいて、いろいろな議論をしました。主としては、自分が実装したコードをメンテナンスするのが一番良いという話をしました。忙しいのはわかりますが、リファクタリングから逃げずに自分のコードと対峙すると、とてもよい学習機会となるという内容でした。あとは他のOSSのソースコードを読んだり、設計に関する本を読むことも有効だという話もしました。実際に僕もOSSを作る際には、有名な他のOSSを一通り読んで実装しました。

所感と次に向けて

講演していて思ったのは、学生と話すとき、大学の研究の考え方も理解できるし、開発の考え方やスキルも理解しているので、良い感じにシナジーのあることを伝えられたんじゃないかと思いました。

意外だったのが、アジャイル開発について知りたい、という学生が多かったことです。これはもっと企業に入社して興味が湧くものと思っていました。次はその観点も含めて講演に盛り込んでいきたいと思いました。

学生は複雑な処理を実装することはできています。ただ、どうしても煩雑で変更に弱いコードになっており、課題を感じているようでした。良いコードを書くためにどうしたら良いかという悩みに対して、いつか応えたいと思ってます。できれば、ワークショップなど通してモブプロの経験やテスト駆動開発などのプラクティスも経験させてあげたいなとか、一緒に簡単なシステムを開発してみるなどもやってみたいです。

また、テストや設計に対しては学生に対しては馴染みがなさすぎると思い説明しませんでしたが、この辺りをうまく紹介したり活用してもらえるようになれないかなと考えています。

僕個人としては講演のためにいろいろ考えをまとめることで勉強になりましたし、知らないことを知れてよかった、という学生の方の声を聞くのがとても嬉しかったです。こういった活動は継続的に行っていきたいです。
もし興味がある方がいましたが、メールなりなんなり連絡いただければと思います。よろしくお願いいたします。




この記事が気に入ったらサポートをしてみませんか?