プログラミングを学ぶ際にPythonを選択する人が増えています。私自身、その選択肢はおすすめできると思っています。
プログラミング自体が今後の世の中で必要になってくるスキルだと思っていますので、できるならできた方が良いと思っていますが、「できる」に求めるレベル感は人それぞれです。個人的にはプロレベルとまではいかずとも、プログラミング自体の考え方や仕組みを知っていて欲しいと思っています。
そこで今回は、初めてプログラミングに触れる人が、Pythonを学習するときに理解しておいた方がいいことについてお話したいと思います。
■プログラミングの難しさを乗り越えた先
今の世は、スマホを手に持ち、LINEなどのアプリケーションを使ったり、Webを使って情報を調べたり、といったことが当たり前に行われています。これらのツールはプログラミングによってできていますし、さらにその裏側では、サーバなどのデータの蓄積や処理をしているものがたくさん存在しています。
そうして出来ているからこそ、アプリケーションや昨今話題のChatGPT、画像生成AIなどを実現することができています。
例えばLINEは、多くの様々な技術が使われることで成り立っており、プログラミング言語を身に着けたとしても、さらに別の分野の知識も必要になってきますので、なかなか一人で作ることは難しいツールです。
そのため、「LINEのようなものを作りたい!」と感じた人にとっては、それを作るまでに必要な周辺の知識を覚えるのが大変なので、到達までの道のりをより、遠く感じてしまうと思います。
ただ、「プログラミング」というものを多少知っていることで、今後、コンピュータやAIが発展してきたときに、それを実現するのに必要なことを理解しやすくなるのではないかなと思っています。
■プログラミング学習のコツ
さて、プログラミングを英語に置き換えて考えてみます。
英語は簡単な表現でも伝えられる部分はありますが、しっかりと意思を伝えるには、ただ単語を知るだけではきちんと話せるわけではありません。英語できちんと伝わるように話すには文法や慣用句が必要です。
プログラミングも同様に、文法や構文が重要になってきますので、まずは基礎を身に着けることが大切です。
ただ、これまでも何度か言ってきた通り、どんなものであっても、学び始めは何を言っているか分からないことは多々ありますので、学習のコツを知っているとスムーズです。
学習する方法としては大きく分けて2通りあると思います。
1つ目は、とりあえずまずは言葉やルールなどの知識をため込むことです。
2つ目は、すでに出来上がっているものを、改造しながら学ぶことです。
特に2つ目については、Webや書籍でサンプルが公開されていたり、すでに出来上がったツールが無料で公開されていることが多いので、求めるものと似たようなものを見つけ出すことが割と容易で、学習を進めやすいと思います。見つけたツールが多少、自身の目的のものとは違っていても、中身を見て改造してみるというのを繰り返すことで身についていきますので、割と学習の手段として効率的です。
もちろん、ソースコードを読むのは難しいと思いますし、自分が思っているものと違うということはあるかもしれませんが、これを楽しく思えるようになったら、今度は知識を身に着ける方にいけば学びやすくなるかもしれません。
逆に知識を身に着けてからアプリを改造するというパターンももちろん有効です。どちらから始めるのがいいかは人によりますので、向いていると思った方を試してみてください。
■Pythonプログラミング学習に入るときの大事なこと3つ
Pythonの学習に入るときに、優先して身に着けておいた方が良い大事なポイントを3つお話します。中にはPythonに限った話ではないものもありますが、Pythonを学習するときに、ぜひ意識して学習してみてください。
1.環境を用意する
これはPythonに限った話ではありませんが、プログラミングするには、動かすための環境を用意する必要があります。基本的にPCがあれば、プログラミングを勉強する環境は整いますが、用意した環境にPythonをインストールして、動かせるようにする必要があります。また、用意した環境の不具合が発生したときに、新たに環境を作る、整備できるというのはプログラミングをする上で重要な技術になります。ハードルが高いと思うかもしれませんが、ぜひ身に着けてください。
Pythonのおすすめ環境については、Pythonのおすすめ開発環境ver.2023という記事でまとめていますので、参考にしてみてください。
https://www.pythonic-exam.com/archives/5911
また、共有のPCなど、持っている環境によってはPythonをインストールしにくいという人もいるかもしれません。そういった人は、Google Colaboratoryというサービスを使えば、WebブラウザからPythonを操作することができますので、使ってみてください。オンライン上は、Google Colaboratoryに限らず、いろんな環境がありますので、探してみてください。
2.データ型を理解する
データ型という言葉は普段の生活に出てくることはありませんが、プログラミングの世界ではよく出てくる言葉です。これを理解できないと、プログラミングの次のステップには進むことはできませんので、データ型がどんなものであるのか、どんな意味があるのかというのはしっかり理解して、使いこなしていきましょう。
- データ型の種類と特徴
データの型には、文字を表す文字列型(str)数値型(intなど)、コンテナ型(リストや辞書)、日時型(datetimeなど)があります。さらにPythonの場合、数値型は、整数型と浮動小数点型の2種類に分かれます。
データ型に関しては、最初からあるものだけでなく、自身で定義することも可能です。
それぞれの型にはそれぞれの特徴があります。
例えば、足し算などの演算に関しては、数値型同士であれば計算ができますが、一方が文字列(文字列型で定義されている、半角全角に関係なく数字も含めて)の場合は足し算できません。文字列であれば、対象の文字列の何文字目を指定して取得することができます。
使おうとしているデータはどの型なのかを意識しながらプログラミングしていきましょう。
- コンテナ系データ型(リスト、タプル、辞書、集合)
Pythonでコンテナ系のデータを格納できるものの種類には、リスト、タプル、辞書、集合の4つがあります。この中で特に必須で身に着けたいのはリストと辞書です。
集合は和集合などの演算に用いられるものですが、演算を利用するときまで後回しで構いません。タプルも重要度はそう高くないので、必要になるまで一度忘れましょう。
残るはリストと辞書ですが、どちらを使えばいいのか、悩むことがあるかもしれません。
まず、リストは順番に格納されたデータ(データを順番に管理する)で、順番に使用していきます。一方、辞書はキーと値のペアのマッピングされているデータ(名前を付けて管理したいデータをオブジェクト化する)で、こちらはキーなどで取り出して使います。ちなみに、データが可変長に増えていくものはリストで扱います。
そして、リストと辞書を同時に使うこともできます。
例えば、Excelでデータを管理する際、先頭行に項目(ラベル)をつけることが多いと思います。
この時、データが1件であれば辞書のみで問題ありませんが、2件以上管理するのであればリストを使用します。単純にリストだけで管理するのでもかまいませんが、リストの中に辞書を入れることで、データをより使いやすくします。また、リストの中にリストを入れるということもできます。
ちなみにリスト型に後からデータを追加したい場合にはappendメソッドで行い、データを取りたい場合はfor文を使います。
3.文法・構文をいくつか覚える
絶対に覚えてほしいのはふたつです。
条件分岐文と、繰り返し処理です。
- 条件分岐文(if~else文)
if文で条件を分岐することで、データをどう処理するかを決めます。
- 繰り返し処理(for文など)
繰り返し処理には何種類かありますが、for文は覚えておきましょう。繰り返し処理では、リストからとってきたデータを順番に処理することができます。
if文と繰り返し処理を組み合わせることで、例えば、1~10の数値が格納されているリストの値を、奇数と偶数のリストに分けるといった処理を簡単に行い、結果を保持することができます(if文で偶数か奇数かを判定、繰り返し処理で1~10の数値を順番にif文に入れる)。結果を表示したいのであればprint関数を使えば表示できます。
処理したい内容によってはif文を使うより、高度なツールを使った方がより効率的に書くことができることもありますが、とりあえず初めて何かをするのであればif文やfor文から始めてみましょう。
■さいごに
ポイントを3つお話しました。初心者の方はまずはこの3つから取り掛かってみてください。
特にif文の挙動がどうなるのかを理解しておかないと、先には進めません。
基礎を知っていくことで、他にもある関数を知り、作れるという経験を積み、さらにその先に行くと、外部ライブラリを組み合わせたものを作ってみたくなるはずです。
そこまで行ければ、プログラムの中身がどういったものなのかがわかるようになりますし、Pythonへの理解が進むと思います。
もし、最初に何を作ろうか思い浮かばずに悩んでいるのであれば、とりあえずdatetimeを使ってみるのもいいかもしれません。
これを使うと、日数の計算ができますので、例えば、生まれた日から今日で何日・何週・何か月経ったのか、誕生日の曜日は何だったか、次の長期休暇まであと何日かなどを出すプログラムを作ることができます。
形はコンソールに表示する形でも、アプリケーションという形でもなんでもいいと思いますので、重く考えず、とりあえず自分にとって便利なものを作ってみましょう。
作ったものを発展し続けていけば、さらにその先にWebフレームワークやUIフレームワークを使ったWeb上のアプリケーションを作るというような次のステップに進むことができます。
フレームワークやライブラリの公式サイトや、誰かが書いたブログ、無料動画などは豊富に見つかると思いますので、読んで実践していくことで、理解できるようになりますし、知識も拡張していくことができるはずです。
私も大学初等レベルに向けたプログラミングの基礎の無料授業を動画として公開しています。
この動画では、オブジェクト指向の説明や、コマンドラインでQRコード生成するアプリを作ったり、サードパーティ製ライブラリを使ったりといろいろなことをやっています。前提とする環境はWindowsです。数学もおよそ中学レベルの内容で進めていますので、そう難しい内容はないはずです。
自分でコマンドラインを打ちながら学習できると思います。
動画自体は6時間ほどで、想定学習時間は20時間になっていますので、全部見るのは大変かもしれませんが、無料で見れますので、ぜひ受講してみてください。
https://platjam.jmooc.jp/230900730