こんにちは、Pythonエンジニア育成推進協会 顧問理事の寺田学です。私は試験の問題策定とコミュニティ連携を行う立場です。
昨年12月に「Pythonとデータ分析で初学者から中級者になるためのセミナー」を開催しました。これは当協会初のオンサイトイベントで、食事付きの懇談会も実施しました。
いろいろな方に参加いただき、非常に楽しい時間を過ごすことができました。
さて、そのイベントでいくつかの質問をいただきました。同じような疑問を抱えている方もいると思いましたので、ここでお答えしたいと思います。なお、質問文の一部は変更をしています。
■初学者が抱える悩み
Q. 学習をするうえでのとっかかりや、何をしたらよいか迷っています。また、実務につながるイメージが付きません。
なにか作りたいものや、便利にしたいことはありませんか?
例えば、Excelの表を自動生成するとか、データ分析をしてみるとか。
自身がこれを便利にしてみたいというモチベーションから何かを見つけて、自動化でもWebでもデータ分析でもなんでも良いので何かを作って見るところから始めると良いと思います。
特に、RPAのような自動化に取り組むのはどうでしょうか?
普段からExcelなどで計算してるものがあれば、それをpandasに置き換えて、自動化してみるのもいいかもしれません。
Pythonは汎用的な言語なので、多くのことが実現できます。その反面、何をしたら良いのかわからないということが発生すると思います。
スクリプトレベルのアプリケーションを作って見るところからやってみることをお勧めします。
もし、データ分析で実力を付けたいのであれば、Kaggleのデータを使って実装したり、Kaggleで他の実装を見てみるのも勉強になると思います。
その経験を元に、自身でアクセス可能なデータ(例えば、万歩計の集計やヘルスデータなど、他には気象データは公開されています)をグラフ化するなど、分析していくと面白いと思います。
Q.学習のモチベーションの維持や目標設定が難しいと感じています。
自動化など、一つずつ挑戦できる部分を増やしていくのが良いかと思います。
できることが増えると、それを繋げて大きなアプリケーションが作れます。
まずは、できることを増やしていく、作りたいものに向かっていくのが良いかと思います。
他には、AIなどがこれだけ騒がれているので、LLMなどの生成系AIの勉強をするのはどうでしょうか?
LangChainを使えば、さまざまなLLMを試せますし、ChatGPT APIも使えます。この世界はこれからだと思うので先取りと思って自己学習するのはどうでしょうか?
Q.レベルの合う書籍を見つけるのが難しいのですがどうしたら良いでしょうか?
書籍やドキュメントは無数にあり、すべてを知ることは出来ませんので、自分にあった適切なレベルの書籍を見つけるのは非常に難しいです。
学習方法もさまざまなのですが、大きな本屋で、じっくりと時間を掛けて見ていくのは良いかと思います。または、レビューしているサイトや知人にお勧めを聞けると良いかなって思います。
Q.自由にインターネットに接続できる環境がありません。Pythonは使えますか?
ネットワーク無しで、Pythonのライブラリをどうインストールするかという問題は乗り越える必要はありますが、インストールさえできれば、ネットワークが無くても、コーディングができます。
Pythonでコーディングできるようになると、DXや自動化、RPAに繋がっていきます。
これらをモチベーションに、自身でできることを増やしていくのが良いかと思います。
Q.一緒にPythonを学ぶ仲間が欲しいのですが、どうすれば増やせますか?
一緒に勉強したり、相談できる仲間を作るのは非常に難しいことだと思います。しかし、仲間ができると学ぶ意欲の継続ができ、相談できることで学習が進みます。
まずは、近くでやっているPythonのコミュニティに参加してみましょう。多くのコミュニティは新しい仲間を求めています。参加して自分に合わないと感じたなら、別のコミュニティを探せば良いですし、楽しかったら何度も参加しましょう。そのうち、お互いに顔と名前を覚えていくことができれば、より楽しくコミュニティに参加できるはずです。
できれば、顔を合わせやすい近隣でやっているコミュニティに参加するのが良いと思いますが、近隣で見つからないということならオンラインで参加できるコミュニティに参加してみてはいかがでしょうか。
■IDE/ライブラリに関連した質問
Q. 環境整備やIDE(エディタ)に、おすすめはありますか?
VS CodeやPyCharmなどのIDEをお勧めしています。
特にこだわりが無いのであれば、無料で使えるVS Codeが良いと思います。私自身もVS Codeメインで使っています。
VS Codeはプラグインが豊富で、Pythonのサポートも充実しています。さらにJupyter notebookのPythonファイル(ipynbファイル)も直接編集することができます。
特に困っていないのであれば、VS Codeを使い続けていいと思います。
以下の記事も参考にしてみてください。
Pythonのおすすめ開発環境ver.2023
Q.pandasなどのライブラリの使い方が難しいと感じていますが、何か解決策はありますか?
pandasは、Rのデータフレームを元にしているので、Pythonの言語仕様や考え方と違う部分があります。
pandasは1つのツールとして成り立っている大きなライブラリなので、pandasに慣れていくしかありません。
他のライブラリについても同様のことが言えますが、ライブラリで何ができるのか、そのライブラリを使うメリットが感じられるなら、積極的に使えるライブラリを増やしていくのも、Pythonの活用に繋がっていくと思います。
まずは、1つずつライブラリの使い方を覚えるしか無いと思います。
Q.インストールなどでつまずいたりしますがどうしたら良いでしょうか?
インストールなどの環境構築は一つの難しい分野です。コンピュータを使う上では避けて通れない部分です。
環境構築で止まってしまうと、プログラミングの楽しさに到達できないので、Google Colaboratoryなど出来上がった環境で学習するのも良いかと思います。”
■Pythonを使う時のコツに関連した質問
Q.データを綺麗にするコツがあれば教えてください。
データを綺麗にするのは、本当に大変なことです。メソッドや関数を覚えて行くしか無いです。
最初はこれらの機能を知るのが難しいので、知っている道具(例えば、for文とか)で置き換えて、愚直に処理を書くことから始めるのをお勧めします。
愚直だとしても、コードが書けたなら、今度はそのコードをより良くするにはどうするかを考えます。
より良いメソッドや関数がないかを調べて使えるようになると次からはより良いコードが書きやすくなっていくと思います。
Q.書いたコードやスクリプトが動かなくなることがあり、メンテが大変です。どうしたら良いでしょうか?
プログラムを安定的に動かすのは大変なことです。イレギュラーなデータが入力されたり、周辺の状況が変わってしまうことで動作しなくなることは仕方ないことだと思います。
メンテナンスしやすいコーディングをすることや、コメントやドキュメントを残すこともお薦めです。
それでも、動作しなくなった時に時間が必要なのは事実です。一緒にメンテナンスできる人を増やすなど、今あるコードを一緒に読みながら、説明しつつ、一緒に学習していくのはいかがでしょうか?”
Q.GISやOCRの実装をやってみたいけどどうすればいいですか?
GISやOCRは、さまざまなライブラリが存在し、Pythonで扱えるものが多くあります。たくさんあるライブラリを試しながら、ネット検索などで評判を見ながら、実際に手を動かしてコーディングして試しながら、できることを増やすのが良いかと思います。
GISならpandasを拡張するGeoPandas から始めるのはどうでしょうか?
OCRならTesseract や、Googleなどのサービスを利用する方法もあります。