こんにちは、Pythonエンジニア育成推進協会 顧問理事の寺田学です。私は試験の問題策定とコミュニティ連携を行う立場です。
Pythonを使えばいろいろなことが出来るため、昨今は学習する人が増え、Pythonのサンプルコードを見たり、誰かから話を聞いたりと情報収集する人が多くなっているように感じています。
そうした人の中には初めてのプログラミングを学習としてPythonを選んだという人もいると思います。
語学にしても、スポーツにしても、何かをはじめて学ぶときに、その学習や練習にどれほどの時間を費やせば、自分のものにできるのかというのは容易にわかるものではなく、そして、そう簡単に技量を得ることはできません。
今回はPythonを実務で問題なく利用できるための技量についてと、その技量を持つことを証明できる実践試験についてお話したいと思います。
■Python学習は基礎を押さえて実践を重ねるのが効率的
プログラミングに関していえば、ルールを覚えてコーディングすることを繰り返せば、自身の知識として習得できますが、実際にやってみるとそう容易いものではありません。ただ、最近ではネット上に様々なサンプルコードがあふれています。それらのコードを真似するだけでも自分の作りたいものを作ることができますので、利用する方も多いですし、そこを勉強のスタートにしている方ももちろんいます。
一方で、学校教育のように基礎を押さえて、順番に勉強し、実践的にしていくという手段をとることもあります。
ただ、この場合、「作りたいもの」という目標が定まらないままPythonの基本だけを学んでいくことになりますので、学習がはかどらないことはままあります。とはいえ、基礎を学ぶ中で、過去に自分が目にした特定のものが、どういった仕組みになっているのか、どうすれば実現できるのか、という事例を目にすることになりますので、そこではじめて興味をそそり、学習のモチベーションが上がることがあります。
私としては、後者の基礎を覚えたあとに、段階的により実践的にしていくという方がより学習効果を高めると考えていますので、おすすめしている方法です。
■ChatGPTなどのコーディングアシスタントAIとの付き合い方
さて、昨今、ChatGPTやGitHub Copilot(コパイロット)などのコーディングアシスタントAIが登場しています。
これらのツールにやりたいことを伝えると、ある一定のレベル感を持つ、それなりにいい感じのコードを出してくれます。Copilotは有料ですが、VS CodeやPyCharmなどのエディタに適切にセットアップをすれば、必要な数行のコードを返してくれます。
こうしたAIにコーディングをしてもらうにあたって、重要なポイントのひとつとして、自分のやりたいことを正確に伝えきるという点があります。適切な情報を正確に伝えきることで、AIから返されるコードの正確性は高くなっていくはずですが、実際のところ、投げかける人間側が正確に情報を伝えきれていない、もしくは正しく質問できていないという事が圧倒的に多いのです。
また、最近はプロの現場でも、コーディングアシスタントAIを使われることが徐々に増えていますし、私自身も、ChatGPTやCopilotを使っています。確かにアシストがあるのは楽ですし、割と適切なコードが出されていますので便利に使っていますが、これらを適切に使いこなすには、そこで何をしているのかを理解しないといけません。というのも、出されたコードの正確さがわかりませんし、それを判断しようにも時間がかかり、そして想定していないエラーがでることもあるからです。
そうなってくると、どうしてもコードを見て判断する必要があります。この時、コードを見たときに、その機能が問題ないものであるかを適切に調べられるか、または頭の中で判断できるかという問題がでてきますので、それをできる力を身に着ける必要があります。
■コードを正しく読み取り、知りたいことを調べられる技量を身に着けよう
こうした背景から、AIが出してきたものを、確認せずにそのまま利用することはやはりできませんので、出されたコードを確認するのはもちろんのこと、知らない機能をAIからおすすめされた場合にも必ず調べる必要があります。そうでないと、その先の工程に進んだときに何が起こるのかわからないという怖さがあるからです。AIがおすすめしてくれたから大丈夫だろうという前提で進めると、ブラックボックスとなって制御できなくなる可能性があります。
AIに完全にお任せしてコーディングをしてもらえる時代はまだまだ先であると言えますが、現時点でも、正確さはさておき、AIがコーディングを助けてくれるようになってきていますので、自分でタイピングする量というのはどんどん減っていくかもしれません。ですが、出てきたコードを見て正しいかどうかを判断するのは人が最適です。そして、判断する人の技術力が高いほどに間違いのないコードになり、より良いシステムが簡単にできるようになります。
この技術力を身に着けるには、先にも書いた通り、実践的なコードをより多く書いていくこと、パターンを把握すること、ライブラリなどの便利な道具をより多く知っていくことによって、上げていくことができます。
ちなみに、こういったことはAIが出してきたものに限らず、誰かのコードをレビューするのにも、チュートリアルなどに書かれているサンプルコードを理解するのにも、必要な技量です。昨今はレビューの仕方も変わり、相互レビューしやすい環境がととのったことで、適切にコメントしやすい状況です。一定レベルのレビューができるのであれば、できたものの品質向上にもなりますし、互いの勉強にもなります。
■実践試験は、現場で役立つ知識を持っていることを証明できる
当協会が提供している実践試験に関して言えば、標準ライブラリが中心の問題になっています。特に、よく使われる標準ライブラリの種類や使い方を理解していないと合格に到達できないレベルに設定されているため、実践で扱えるだけの知識を持っていることを証明することができます。
Pythonをしっかり学習し、日ごろから自信をもってPythonをしっかりと使えていると言える人であれば合格できるのではないかと思います。逆に実践経験なく、勉強だけしかしていないという人にとってはかなり難しいのではないかと思います。
また、実践試験に合格できるようなレベル感の人であれば、さまざまなコードを見ても、そこで書かれている機能はどういったものなのかが、すぐにわかるようになっているはずです。もしわからなかったとしても、書籍や公式ドキュメント、ネット上にある情報の読み解き方に慣れているはずなので、少し調べればすぐに理解できますし、コードを試すのも容易です。
自身のある方はぜひ挑戦してみてくださいね。
最後に、繰り返しになりますが、現時点ではAIが出してきたコードが適切なものであるかは、人が判断する方が圧倒的に早いです。そして、それなりに技術力、知識量を持った状態でコーディングに臨むことが、その判断力に差が出てきます。
Pythonの基本的な知識、実践で問題なく利用できる技量を身に着けることで、ChatGPTなどのツールと上手く付き合うことが出来、そして、より効率的な良いコーディングができるようになるはずですので、あきらめずに頑張って頂ければと思います。