このブログを見た方は、Pythonをお勧めされた or 勉強したいけど、何から始めていいか分からない。。。、といった方だと思います。そのような方向けに、本サイトではPythonについて1から10まで解説していきます。
Python について
Python が人気な理由
Python は IT エンジニアが使用する言語の第一位に君臨しています(2023年時点)。
Python はなぜこんなに人気なのでしょう?様々な要因が挙げられますが、主に3点の理由があります。
- 可読性(コードが読みやすい)
- あらかじめ用意されているプログラミングコードや特定のアプリケーションの土台が整っており、かつそれらが扱いやすい。(専門用語で言うと、ライブラリとフレームワークが充実している)
- 様々なパソコンで実行可能(クロスプラットフォーム)
可読性
まず可読性ですが、他言語と比較して本当に可読性が良いのか確かめてみましょう。
例として、 「100 + 200」のプログラムを C 言語と Python 言語で作成します。
C 言語で作成すると以下のようになります。
#include <stdio.h>
int main(void) {
int num1 = 100;
int num2 = 200;
int num_sum;
num_sum = num1 + num2;
printf("%d", num_sum);
return 0;
}
Python 言語で作成すると以下のようになります。
def main():
num1 = 100
num2 = 200
num_sum = num1 + num2
print(num_sum)
if __name__ in "__main__":
main()
こちらの 2 つのコードを比較すると、 Python の方が複雑な定義をしなくていいため、可読性が増していると考えられます。
ライブラリとフレームワークの充実
ライブラリとフレームワークが充実していることを、料理で例えるなら、調味料、食材とそれらを使ったレシピが自動で出てくるキッチンを、掃除することなく、毎日自由に使える状態、といったイメージでしょうか。
料理を作るときに面倒なことは、今日作る料理を考えること、食材を買いに行くこと、食事後の掃除、3点です。上記で例えたキッチンであれば、面倒な点が解消されているため、快適に料理をすることができます。
ライブラリとフレームワークが充実していることと、快適なキッチンの例は非常に似ています。
他言語では、図を描写する、Excel, Wordを開くといった作業を自分でプログラムしないといけませんが、Pythonでは、他人が書いたプログラムを読み込むだけで、これらの作業を行うことができます。
クロスプラットフォーム
「クロスプラットフォーム」について説明する前に、「クロス」と「プラットフォーム」について説明します。
「プラットフォーム」はOSのことを指す場合があります。Windows, Linux, Android などのことです。またアプリケーションの実行環境や、プログラムの実行する環境などが挙げられます。詳しくは以下のサイトを参照にしてください。
環境についてはこちらのサイトを参考にしてください。
「クロス(cross)」は様々な意味を持つ単語ですが、「雑多、交差」といった意味も含んでいます。
以上の二つを踏まえると、「クロスプラットフォーム」は、雑多なOS、交差するアプリケーションの実行環境や、プログラムの実行する環境、といった意味でしょうか。複数のOSでアプリケーションやプログラムを実行できるといった意味になりそうです。
実際に、「クロスプラットフォーム」の意味は、異なるプラットフォーム上で、同じ仕様のアプリケーションを動かせるプログラムのことです。
Python は本当にプログラミング初心者向けの言語???
なるほど、Pythonが人気である理由は分かりました。また、可読性が高く、扱いやすいことを考えると、感覚的には初心者向けである印象を受けます。確かにその印象は正しく、現役のプログラマーの方もプログラミング初心者の方が最初に勉強する言語としてお勧めしています。
ここまで聞くと、Pythonはプログラミング初心者向けの言語であると言えそうです。筆者も実際にそう信じていましたし、学校で勧められるまま、Pythonからプログラミングを始めました。
しかし、1年間勉強した後でも筆者のプログラミング技術が向上することはありませんでした(外部から来たプログラミングのプロから、本当に勉強したことがあるのか疑われるレベル)。筆者が直面していた問題は主に3点です。
- 他者が書いたコードが読めない。
- 自分が書くコードがあっている自信がない。
- どういう処理を行えば、目的のコードを書けるのかわからない。
始めは筆者自身の学習不足、能力不足だと考えていました。しかし、周囲も全く同じ状況だったこと、後輩からの質問対応をしていても同上の問題が多く散見されたことから、筆者自身の問題ではなく、Python自体が原因ではないか、と考えるようになりました。
以上の過去を踏まえて申します。Pythonを用いた勉強では、プログラミングのスキルアップを行うには限界があります。これはどの言語にも共通しているかもしれませんが、Pythonではそれが顕著に表れる、ということです。
この最大の理由は、Pythonだとアルゴリズムや基本的なことを考える量が減少するためです。ライブラリが充実していることや可読性が高すぎること、これはPython最大の利点であり、魅力であることは疑いようがないのですが、アルゴリズムや本来考えるべきルールを考える機会を減らすことを意味します。自分で考える機会が減るということは、本来必要な学習量を減らすことを意味するので、他言語でプログラミングを学んだ場合と比較して、上達は遅くなると考えられます。このため、「プログラミング能力の向上」という目的達成には大きな遠回りをすることになります。
しかも、プログラミング初級者にとって不幸なことに、大半の Python 入門は「プログラミング初級者にとっての入門」ではなく、「プログラミングをやったことがある人向けの入門」であることが多いです。理由は様々あると思いますが、Pythonは1990年代に主流になったことを踏まえると、現在働いているプログラマー(40-50代)は別言語の勉強をしている可能性が高いため、詳細なプログラムについての説明が要らなかったからだ、と筆者は考えています。
Python から「適切に」プログラムを学ぶために
さて、以上のように読んでいくと、Pythonってホントに初心者用の言語なのか?、と疑問に思う方もいるかもしれません。結論から言うと、Pythonはプログラミング初心者向けの言語です。なぜなら、Python は読みやすいからです。専門書でも、漫画で描かれてあると読みやすくなって、内容を理解しやすくなるように、プログラムも読みやすい方が、内容を理解しやすくなります。
それでは、Pythonでプログラミング能力を向上させるにはどうすればよいのか。答えは簡単です。プログラミングで一般的に定義されているルールは何か、なぜそのような記述を行う必要があるのか、この2つをPythonの勉強に組み込めばよいのです。料理本の手順通りに料理を再現すれば、誰でも同じ料理を作れるように、適切な手順を踏んでPythonを勉強すれば、プログラミング能力を向上させることは可能です。
以上を基に、筆者はPythonでプログラミング能力を向上させる手順を作成しました。2023年現在、以下の手順を考えております。
- パソコンについて学ぼう
- Python 言語を学ぼう
- アルゴリズムを組もう
- ライブラリを使おう
- 様々なプログラミングを書いてみよう
必要であれば、変更するかもしれませんがご了承ください。
それでは以下の記事から、Pythonからプログラミングの勉強を始めていきましょう!!!
[広告]
個別指導のパソコン教室が作った初心者に超やさしいパソコンの本
Echo Buds (エコーバッズ) 第2世代 – アクティブ ノイズキャンセリング 付き完全 ワイヤレスイヤホン with Alexa