エンジニアとして必要な能力は多岐にわたりますが、最近特に重要だと思うのは、ドキュメントを読む習慣を持つことだなーと思いました。
最近の体験
ChatGPTの登場により、わからないことがあればすぐにChatGPTに尋ねることが多くなりました。しかし、必ずしも正確な答えが返ってくるわけではありません。
Pythonのibis-frameworkの例
直近の経験として、Pythonの新しいライブラリであるibis-frameworkを使って条件付きカウントを行いたい場合についての話です。ChatGPTから返ってきた答えは、フィルタしてカウントし、元のテーブルにジョインするというものでした。しかし、そのコードはパフォーマンスが非常に悪かったため、ドキュメントを確認したところ、count
関数にwhere
引数を入れられることがわかりました。
# ChatGPTから返ってきたコードの例
filtered_table = table.filter(table.column == 'value')
counted_table = filtered_table.group_by(xxx).aggregate(cnt=_.count())
result_table = table.join(counted_table)
# ドキュメントを確認して改善したコード
count_result = table.group_by(xxx).aggregate(cnt=count(where=table.column == 'value'))
ChatGPTの限界
これは、ChatGPTが使えないという話ではなく、例えばノウハウが溜まっていなかったり、破壊的な変更が起きたライブラリには弱いという実感を得た話です。このときに重要なのは、ドキュメントを読み、それを存分に活用できる人材であることだと感じました。
結論
結論として、ドキュメントはしっかりと読んで理解するべきだということです。これにより、最新の情報を得て効率的に問題を解決することができます。
特にノウハウがたまっていない事象に対する(今のところは)人間のアドバンテージなので、ドキュメントを読む習慣を持つだけで差別化できるとも言い換えられると思います。
追記
この文章を書きながら思ったのですが、ライブラリのドキュメントをChatGPTに読み込ませたら、もっと正確な答えが返ってくるかもしれませんね。今度試してみます。