Python
2021.09.15
【5分でわかる】Pythonとは? できることや学び方、オススメ書籍などをわかりやすく解説
2021.11.11
Pythonとは?

1.Pythonとは

Python(「パイソン」と読みます)はオランダのITエンジニアであるグイド・ヴァンロッサム氏が1990年ごろに開発したプログラミング言語です。それから進化を重ねて今に至っています。文法がシンプルでプログラミング初心者にも理解しやすいのが特徴です。

最初に学ぶプログラミング言語としての人気が高く、機械学習やAIに関するライブラリが豊富に用意されているので、近年のAIブームで一躍脚光を浴びました。

主にAI分野から使われだしたPythonですが、Web、数学、事務処理などにも使えること、またその記述の簡単さから、今は大変な人気を獲得しています。

実際、マイナビが実施した「2021年ITエンジニアが学びたいプログラミング言語」ではJavaを押さえて1位となっています。

2021年 ITエンジニアが学びたいプログラミング言語、第1位はPython|マイナビ

2.Pythonの人気が高い理由

①シンプルな文法であるため開発効率がよい

PythonはJavaなどの他の言語よりも少ないコードで処理を実現できます。そのため、より少ない工数で効率的にシステム開発ができるようになっています。

例えば、「テキストファイルa.txtの内容を一行ずつ画面に表示する」というコードを考えると、Pythonでは」

#ファイルを開く
f = open('a.txt')
#一行ずつ読み込み、画面に出力
for line in f:
    print(line)
#ファイルを閉じる
f.close()

ですが、これがJavaだと

import java.io.File;
import java.io.FileReader;

class ReadTextFile{
  public static void main(String args[]){
    //ファイルオブジェクトの生成
    File f = new File("a.txt");
    //FileReaderオブジェクトの生成
    FileReader fr = new FileReader(f);

    //ファイルの内容を一時的に記憶する変数(型はint)
    int c;
    //ファイルが終端に達するまで1文字ずつ読み込み、画面に出力(改行文字はそのまま改行として出力される)
    while((c = fr.read()) != -1){
      System.out.print((char)c);
    }
    //FileReaderオブジェクトを閉じる
    fr.close();
  }
}

とまあ、なんとも長いコードになってしまいます。しかもクラスが2つも出てきて、初心者にはとても難しく感じます。(なお、ここでは簡単のため、両方ともエラー処理を省きました)

実際の開発現場では、ログやJSONやXMLといったテキストファイルを処理する場面はとても多く、PythonとJavaのこの差は容易に開発効率の差になります。

②プログラミング初心者でも習得しやすい

上記のように、Pythonは少ないコードで処理を実現できます。また、直感的に理解できる文法です。

多くの言語は{}がプログラムのまとまりです。ところが、Pythonは「インデント」がプログラムのまとまりとなっています。「インデント」とは、行頭を決まった字数(通常4文字単位ですが、自由に決めることができます)字下げして、同じ位置から始まる部分をまとまりと見なす、という仕組みです。

そのため、プログラミング初心者にとっても、構造を理解しやすくなっています。上記のコード、JavaとPythonとどちらが構造を理解しやすいかと言えば、Pythonでしょう。

③AI開発などのデータ処理システムとの相性がよい

AI開発では機械学習や深層学習(ディープラーニング)といった技術を使います。Pythonには「NumPy」や「SciPy」といったAI・機械学習関連のライブラリが用意されています。

またデータベース処理や画像処理に関するライブラリも提供されています。ですので、これらの技術を使うWebサービスの開発や画像処理サービスの開発との相性がよいのが特徴です。

機械学習、深層学習や、Webシステム、画像処理で扱うものは大量のデータです。データを処理するのには処理しやすいライブラリが提供されていないといけません。それらのライブラリが提供されているPythonは、データを処理するシステムに最適なのです。

一昔前のC言語の開発だと、低レベルのデータ処理を自前で開発する必要がありました。そこを開発する必要のないPythonは、より高レベルの「このデータをどう活用するか」というロジックに開発を集中できるので、いわば開発時の雑念が消える形となり、データ処理システムとの相性が良くなっています。

④Webフレームワークが充実している

Pythonはライブラリが豊富なだけではなく、Webフレームワークも提供されています。


フレームワークとは、「ひな型」のようなもので、基本的な型はフレームワーク側で用意されていて、開発者は細部をチューニングしていくだけで目的のシステムが出来上がるように用意された仕組みのことです。


著名なフレームワークとしては「Bottle(ボトル)」、「Django(ジャンゴ)」、「Flask(フラスク)」、「Pyramid(ピラミッド)」などがあります。このうち特に著名なのは「Django」と「Flask」ですが、「Django」は中規模~大規模のWebシステムに、「Flask」は小規模のWebシステムに向いています。



3.Pythonでできることや事例

①Webサービスやアプリケーションの開発

Webフレームワークを有効活用することで、Webシステムの開発を効率よく行うことができます。たとえば上述の「Django」にはWebシステムに不可欠のユーザー認証やセッション管理、データベースへのアクセス、画面出力、管理画面などの機能が標準搭載されています。基本的にはこれらの機能をカスタマイズするだけで、Webシステムが完成します。


実際、多くのWebアプリケーションがPythonで開発されています。代表的なものは下記です。

・YouTube

・Instagram

・DropBox

②AI開発

PythonはAI開発と相性がよいため、さまざまなAI開発のプロジェクトに活用されています。複雑で大規模なデータの計算処理が必要となるAI開発では、Pythonの持つデータ処理ライブラリが必要不可欠なのです。


たとえばGoogleが開発しているオープンソースライブラリである「TensorFlow」や、Facebookが開発している「PyTorch」など、Pythonで使えるライブラリは多数提供されています。


Pythonで開発されたAIとして、代表的なものには下記があります。

・ロボットPepperの感情認識AI

・メルカリのAI出品機能

③データ解析

ビッグデータの解析にもPythonの活用が効果的です。上述の通り、Pythonにはデータ解析・分析のためのライブラリが豊富に用意されているからです。


著名なライブラリとしては大規模なデータ処理に優れている「Numpy」や科学技術計算に適したライブラリである「SciPy」などがあります。これらは通常のWebシステム開発などでも頻繁に使います。計算が格段に楽になるからです。


Pythonのデータ解析を使った代表的なサービスとして、BIツールである「Tableau」が挙げられます。

このように、Pythonはさまざまな分野で活用されています。ここに挙げたサービスをどれも聞いたことがない、という人はまずいないでしょう。



4.Pythonエンジニアの年収やキャリアプラン

①Pythonエンジニアの平均年収

転職サービスを手がけるレバテックキャリアが発表しているPythonエンジニアの年収を見ると、Pythonのプログラマで300~500万、データサイエンティストで600~1,200万、AIエンジニアでは600~1,000万となっています。


またPythonエンジニアの平均年収は400万~850万となっており、他言語のエンジニアよりもやや高くなっています。

②Pythonエンジニアのキャリアプラン

上述の通り、PythonはAI開発やデータ分析と相性がいいです。そのため、プログラマからスタートし、データサイエンティストやAIエンジニアといった専門職を目指すことで、年収アップが期待できます。

また、ITエンジニア一般に言えることですが、マネジメントスキルを磨けば、大規模プロジェクトのプロジェクトマネージャなどのより上流工程に携わることも可能です。今IT業界ではエンジニアはいてもマネージャはいないという状態が続いていますので、プロジェクトマネージャは引っ張りだこなのです。当然年収もアップしますし、求人も多くあります。

参考:Pythonエンジニアの年収が高い理由は?年収アップの方法も紹介

5.Pythonの学習方法や学習に必要な時間

①Pythonの学習方法

上述の通り、Pythonはプログラミング初学者でも学習しやすい言語なので、書籍等を使い独学で学ぶことも可能です。すでにプログラミング経験があるエンジニアなら、実務を通して学ぶこともできるでしょう。

ただし、より効果的効率的に学ぶなら、Pythonを学べるe-ラーニングを活用するのがお勧めです。e-ラーニングでは、開発に必要な実践的なスキルを短期間で身につけることもできます。

②Pythonの習得に必要な時間

Pythonの習得に必要な時間は独学がe-ラーニングかによって大きく異なります。まず独学の場合ですが、プログラミング初心者だと半年から場合によっては数年といったこともあります。学習に時間が取られる上に、開発現場で使える実践的なスキルとなるとなかなか独学では身に付かず、実際に開発業務を開始してから初めて学ぶ、ということにもなりかねないのです。

e-ラーニングを活用する場合は、2~3ヶ月で必要なスキルを身につけることも可能です。サポート体制がしっかりしていれば、独学よりも壁に引っかかりません。独学だと壁に当たると挫ける場合が往々にしてありますが、e-ラーニングは独学に比べれば壁を乗り越えやすいです。



6.注目を集めるPythonの資格試験

Pythonの資格試験には「一般社団法人Pythonエンジニア育成推進協会」が運営する「Python3 エンジニア認定基礎試験」と「Python3 エンジニア認定データ分析試験」があり、累計で1万人以上が受験しています。

Pythonは今後ますます開発現場からの需要が伸びることが予想されるので、今のうちから資格試験を受けておくのもPythonエンジニアとしてのキャリアアップに有効です。



7.Pythonを学ぶのに役立つ入門書籍

Pythonを学ぶのに役立つ入門書籍を紹介します。

Pythonチュートリアル 第3版(オライリージャパン社)

https://www.oreilly.co.jp/books/9784873117539/

Pythonによるあたらしいデータ分析の教科書(翔泳社)

https://www.shoeisha.co.jp/book/detail/9784798158341

これらは上述のPythonの資格試験のテキストとなっている書籍です。



他には

スラスラわかるPython(翔泳社)

https://www.shoeisha.co.jp/book/detail/9784798151090

ゲームセンターあらしと学ぶ プログラミング入門 まんが版こんにちはPython(日経BP)

https://www.nikkeibp.co.jp/atclpubmkt/book/20/P88820/

独学プログラマー(日経BP社)

https://www.nikkeibp.co.jp/atclpubmkt/book/18/C92270/

などがあります。


Pythonを学ぶならトレノキャンプで!

トレノキャンプではPythonを実践的に学ぶためのコースを、オンラインで提供しています。オンデマンド配信なので、いつでも好きなときに受講が可能です。講座の詳しい内容は下記のバナーをクリックしてご覧ください。

この記事をシェア
おすすめの受講コース
  • データ分析シリーズ① AI数学 ~文系でも理解できる!高校から始めるデータ分析、AIのための数学~
  • データ分析シリーズ② ~Pythonプログラミングの基礎と図形描画~
  • データ分析シリーズ③ ~Pythonライブラリの実践活用~
  • Pythonを動かして理解する機械学習 ~回帰と分類~