Raspberry Pi & Python 開発ブログ ☆彡

Raspberry PiとPythonの基本的な使い方をわかりやすく解説。初心者、入門者必見!!

信じるべきものは何なのか。本?Web?

f:id:raspberrypi:20220216165112j:plain

ブログ管理者のP.Hです!

今回は、コーディングをして困った時に、疑問点を解消する方法について書こうと思います。 調べ方を間違えて、間違った情報をもとにコーディングをしてしまうほど無駄なことはありません。

これから書く内容が大原則ですし、プログラマであれば避けては通れない道でしょう。

自分で調べて解決できれば中級者

困ったときに他人に聞かないと解決できないようでは、初心者と言われても仕方ありません。 試行錯誤し、自分で調べて疑問点を解消できるようになると、自分だけで解決できるため、 やる気があればどんどん成長してきます。

困る時は下記の2つのパターンが考えられます。

  1. pythonの構文の書き方やpythonが提供しているクラスの使い方がわからない
  2. 自分で考えた設計通りに動かない

2の場合は、再度コードをよく見直したり、デバック実行して解決していきます。 今回説明したいのは1の場合についてです。これから書く内容は基本的なことなのですが、 これをぜひやってほしい理由を記載したいと思います。

何が正しい情報なのか。本?Web?

何か困ったらまずWebで検索すると思います。私もそうです。 ただ、この時情報が間違っていないか判断する必要があります。 それは以下の理由からです。

  1. 単純に作成者が間違った内容を記載している
  2. バージョンアップにより情報が古くなり、最新版に対応していない

1はWebの場合に多いです。2はWebでも本でも可能性があります。 特にpythonのような比較的新しい言語ではバージョンアップはよく行われるので、 注意しなければなりません。

では絶対に正しいものは何か?

では、絶対に正しいものは何なのでしょうか。それは下記のpythonのドキュメントです。 日本語に訳されたドキュメントもありますが、バージョンが少し古い場合がありますので、 注意してください。

https://docs.python.org/3/

Webや本はこのドキュメントを日本語で例や参考事例を追加して、わかりやすく解説しているだけです。

また、誰かが作ったモジュール(クラス)やもたいていドキュメントやクラスリファレンスがあります。 ほとんど英語で書かれていますが、モジュール(クラス)を使う時はこれを読む必要があります。

英語が読めずに挫折してしまう人が多い

ここで問題になるのが、ドキュメントはほとんどの場合、英語で書かれているということです。 そもそも初心者の頃はプログラムのこともよくわかっていないのに、それを英語で読まないといけない。。 難しくて、心が折れそうになりますね。

Webの翻訳機能や日本語で翻訳されているサイトがあれば、参考にしましょう。 だんだん英語にも慣れてきますし、プログラムの知識も向上してくるので、 少しずつ理解できるようになってきます。また、調べているモジュール(クラス)を動かしながら、 ドキュメントを読むとさらに理解しやすいでしょう。

ドキュメントを読んでほしい理由

例えば、Queueというモジュールがあります。

queue --- 同期キュークラス — Python 3.10.0b2 ドキュメント

Web等ではメインの使い方の説明しか書いてありません。ほとんどの場合はこれで十分なのですが、 ドキュメントを読むと、いろいろなオプション(キーオブジェクト等)についても記載があります。 Queueクラスにはいろいろな機能が備わっているのに、Web等では基本的な説明しか書いていないことがほとんどです。

ドキュメントを読むことで自分の知らなかった使い方に気づくことができるのです。 自分でプログラムを作ろうと思っていた機能が既に備わっている!なんていうこともあります。 ドキュメントには例題のコードが記載されている場合もありますし、自分の成長につながる要素が多いのです。

また、他人が作ったモジュールを使う時、ドキュメントを読んでから必ず使うようにしてください。 ドキュメントには使い方や注意事項等、大事な情報が記載されています。


いかがだったでしょうか。参考書を買うより、pythonのドキュメントを読む方が勉強になると 思った方もいるのではいでしょうか。次回はクラスについて記事を書こうと思います。

ドキュメントのチュートリルの箇所にクラスについて記載がありますので、読んで見ると勉強になるかもしれせん。 わかりにくい気もしますが。。

9. クラス — Python 3.10.0b2 ドキュメント

今回は以上になります。