Pythonの基礎学習のすすめ

こんにちは、Pythonエンジニア育成推進協会 顧問理事の寺田学です。私は試験の問題策定とコミュニティ連携を行う立場です。

私がよく聞かれる質問の中に、「基礎の学習は本当に必要か?」というものがあります。

もちろん基礎は学習しておいた方が、その先に進むほどより便利でお得であることは間違いありません。

ただ、プログラミングの学習をする際、目的を持たずに基礎をただ学習するだけとなると、モチベーションの維持を含めて大変になりますので、まずは目標を定めてから基礎をどこまで学習していくかを考えていかないと、なかなか長続きしません。

ただそれは目的があれば基礎の内容が頭に入りやすいということになります。

そこで今回は基礎を学習する意味と、Python周辺において基礎知識がどう役立つか、基礎が身についているかの確認に利用できる基礎試験とデータ分析試験についてお話したいともいます。

■どんな分野でも基礎があるだけでより良く使いこなせるようになる

どの分野においても基礎は重要です。では基礎を学び、身に着けているということが非常に役に立つ場面はどういったものがあるでしょうか。イメージをしやすいようにいくつか例を挙げてみたいと思います。

例えば英語。

専門職としてではなく、あくまで簡易的に英語を扱う場合であれば、アルファベットや基本的な文法、単語を知っていれば、すべての文法を覚えずとも知っている単語や言い回しを駆使してある程度の会話や文章の読み書きが可能です。

もし会話やより高度な文章を書きたいのであれば、それだけで満足にできるものではありませんので、そのギャップを埋めるための学習が必要になります。

ただ、今は自動翻訳機能が非常に発達しているので、それを頼るというのもありだと思います。

ですが、自動翻訳は一昔前に比べれば誤った回答は減ったとはいえ、稀に間違った回答が提示されることがあるため注意しなくてはなりません。そのため、自動翻訳が出してきた答えが正しいものであるかを判断できるよう、基礎となる部分を習得しておくのは大切と言えます。

一方で、動作させる方法さえ知っていれば、基礎を知らずとも使えるものもあります。

例えば車やバイク。それらがどうできているかという仕組みを知らなくても操作方法を習得すれば利用できます。ですが、車やバイクに興味を持ち、その仕組みをより詳しく学ぶことで、車を使う目的に応じて、より良い選択をすることが出来るようになりますし、誰かにアドバイスをもらう際にも適切な情報を相手に渡すことで、最適な情報をもらいやすくなります。

こういったことはPythonのプログラミングにおいても同様です。

表面的な仕組みや使い方を知っているだけでも、ある程度のレベルは利用できますし、より内部を詳しく学んでいけば、より効率的で最適なプログラミングをすることもできます。

基礎をどこまで学んでいくかは自分で考えて決めることではありますが、基礎を深く学べば学ぶほど、最適な書き方、使い方ができるようになることは確かです。

■Python学習は基礎と実践を繰り返すのがおすすめ

さて、Pythonの基礎学習を進めるにあたっては、ただ学習するというよりは、それをどういったシーンで使いたいのか(例:●●をするツールを作りたいなど)という目的がある方がどんな学習が必要なのかが見えてきますし、入りやすいと思います。また、それが学習のモチベーションとなり、基礎や文法、単語を覚え直すといった基礎的な学習を苦にならずに続けられるのではないかと思います。

ただ、基礎や文法を学習した後に、いざ作りたいものを作ろうとしてもそこに乖離があることがあります。その時は一度基本に戻り、また作るというのを繰り返していくと勉強がはかどりますし、より楽しく学習を続けられるのではないかと思います。

Pythonの学習手段としては、教科書やその他の参考書を中心にされる方もいれば、認定スクールに通われる方もいます。

ある程度学習が進むとPythonでのプログラミングとはこういうものだという全体像をとらえられるようになり、何ができるのか、それをするにはどうすればいいのかと言ったことが分かるようになります。その段階になっていれば仕組みが分かれば部分的な改造や工夫を難なく行えるようになっているはずです。

■Python知識のチェックは基礎試験とデータ分析試験で

さて、ある程度のPythonの雰囲気がとらえられるようになった時点で、自身がどれだけPythonの基礎を身に着けているのかを確認するために利用できる試験が、当協会で提供しているPythonの文法の基礎知識を問うものである「Python3エンジニア認定基礎試験」と、Pythonを使ったデータ分析の基礎や方法を問う試験である「Python3エンジニア認定データ分析試験」です。

試験の難易度に関していえば、きちんとPythonの基礎を理解していないと合格できませんが、普段からPythonを活用している人にとっては多少主教材の内容を確認すれば簡単に合格できるようになっているというレベル感です。

特にデータ分析試験においてはPythonの基本的な部分に加え、数学やNumPy、pandas、Matplotlibなどのライブラリの使い方、機械学習の仕組みや手法なども問われるものとなっており、表面上触っているだけの時とは違う学習が必要です。

合格できるほどになれば、Pythonによるデータ分析への理解が深まっていることは確かなので、雰囲気が分かってきたという人はぜひ一度受けてみて、どこまで理解できているかの確認に使ってみるのもおすすめです。

基礎試験、データ分析試験ともに、合格できても、Pythonプログラマーとしても、データ分析エンジニアとしても急に活躍できるというレベルには簡単には到達しないと思いますが、基礎が身についていることを確認できれば自信にもつながりますのでぜひチャレンジしてもらえればと思います。

■Pythonの技術があればより効果的にChatGPTを活用できる

ところで、昨今、生成系AIが非常にブームになっており、AIがプログラムコードを出力してくれるようなものが増えていますが、その中でも特にChatGPTは毎日のように活用している人もいると思います。

ChatGPT自体はOpenAI社が作成した機械学習モデルとWeb UIで成り立っているサービスですが、これ自体はオープンソースではありませんので、内部的にどのような形で成立しているのかはわかりません。

ただ、論文などのある一定の情報は公開されていますので、内部実装の実体はわかりませんが、内部の仕組みはある程度推理できるようになっています。

例えばデータ分析試験でやるような行列演算や数学的にはこうなっているはずだ、論文を見るとこうだと推察できるというようなものですが、そうした内部的な仕組みを知っていることで、ChatGPTの利用においてもより良い結果が作り出せることができるようになっています。

私自身もChatGPTをたまに使用しますが、AIが出してきたコードをそのまま利用できるとはあまりなく、あくまでヒントとしての利用を前提としています。なぜそのまま利用できないことが多くなるのかと言えば、プログラムを自分で1から考えながら作るのとは違って、AIにやりたいことを説明する必要がありますが、その提示する条件をできていることから、できていないことまですべてを適切に伝えきることが難しいためです。

さらに、回答の中から上手く必要な部分を取捨選択して利用することになるのですが、その取捨選択においても基礎がないと見極めることもできません。

もちろん、ChatGPTも今後どんどん性能が上がっていくはずですので、日本語を上手く使えば理想に近いコードを作り出してもらうことはより容易になっていくと思います。ただ、人間の要求もそれに伴ってどんどん高くなっていくと思いますので、ChatGPTが出す汎用的な回答と自分たちの情報を上手く組み合わせていく必要が出てきます。

PythonはChatGPTのような大規模言語モデルとの相性が非常に良いので、Pythonの知識と技術があれば、より活用しやすく、便利になっていくと思います。

■さいごに

Pythonはオープンソースソフトウェアであるため、中身を完全に覗き見ることが出来ますし、改造も可能です。もちろん改造できるようになるには相応の学習が必要になりますので、なかなか思うようにはいかないと思いますが、仕組みを知っていることで工夫が生まれたり、既存のシステムを部分的に改造できたりと言ったことができるようになりますので、挑戦し甲斐がありますし、結果も表れやすい言語なので楽しんで学習を続けられるのではないかと思います。

公式からもPythonのサンプルコードはたくさん開示されていますので、ぜひいろいろなものに挑戦していってもらえればと思います。

また、今回例に挙げたChatGPTなどのあらゆる便利なツールですが、それらを正しく効果的に使うには、それが正しいかものであるかを判断する基礎学力と経験が必要といえますし、それがあるだけで出来ることがガラッと変わります。だからこそくじけずに基礎を学んでいってほしいなと考えています。

PAGE TOP