リファクタリングをPythonで実践!基本手法とコード例・注意点まで
- 1.Pythonとは
- 2.Pythonの人気が高い理由
- 3.Pythonでできることや事例
- 4.Pythonエンジニアの年収やキャリアプラン
- 5.Pythonの学習方法や学習に必要な時間
- 6.注目を集めるPythonの資格試験
- 7.Pythonを学ぶのに役立つ入門書籍
1.Pythonとは
Python(「パイソン」と読みます)はオランダのITエンジニアであるグイド・ヴァンロッサム氏が1990年ごろに開発したプログラミング言語です。それから進化を重ねて今に至っています。文法がシンプルでプログラミング初心者にも理解しやすいのが特徴です。
最初に学ぶプログラミング言語としての人気が高く、機械学習やAIに関するライブラリが豊富に用意されているので、近年のAIブームで一躍脚光を浴びました。
主にAI分野から使われだしたPythonですが、Web、数学、事務処理などにも使えること、またその記述の簡単さから、今は大変な人気を獲得しています。
実際、マイナビが実施した「2021年ITエンジニアが学びたいプログラミング言語」ではJavaを押さえて1位となっています。
本記事では、Pythonをはじめて学ぶ、あるいはプログラミング初心者のために、Pythonでできることや開発事例、Pythonエンジニアの年収やキャリアプラン、学習方法、学習に役立つ書籍などを紹介します。
出典: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;
import java.io.IOException;
class ReadTextFile{
public static void main(String args[]){
try {
//ファイルオブジェクトの生成
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();
} catch (IOException e) {
System.out.println("IOExceptionが発生");
}
}
}
とまあ、なんとも長いコードになってしまい、初心者にはとても難しく感じます。
実際の開発現場では、ログや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
・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://bookplus.nikkei.com/atcl/catalog/20/P88820/
独学プログラマー(日経BP社)
https://bookplus.nikkei.com/atcl/catalog/18/C92270/
などがあります。
Pythonに関連する記事
はじめでもわかる! Pythonの基本コードや構文を5分で解説!
Pythonの辞書(ディクショナリ)の基本。追加や検索、for文との組合せをコード付で解説
Pythonのリスト(list)の基本的な操作方法やメソッドの一覧をまるっと解説!
Pythonのクラス(class)の基本を徹底解説、具体的な書き方も
Pythonの関数とは?定義や呼び出し方法、引数、関数の一覧もご紹介
Pythonお勧めのライブラリ10選! 使い方やインストール方法なども解説
初心者向けにPythonのインストールから環境構築、動作確認までの手順をまるっと解説!
Pythonのprint関数の使い方! formatや改行、文字、数字、リスト、辞書、変数などまるっと解説
Pythonの演算子とは?優先順位やオーバーロードの方法も解説!
PythonのCounterとは?使えるメソッド、演算子まで徹底解説!
Pythonのfor文ループ処理の基本。If文やrange関数、while文との違いも解説
はじめてのPython。if文による条件分岐をサンプルコードつきでわかりやすく解説!