Pythonを学ぼう(初心者におすすめ)
Pythonでできること!
活用方法から学習方法まで徹底解説
今回は『Pythonって何?という人』『Pythonは触ったことがない初心者』でも理解できるように、Pythonを使ってできること、Pythonの言語を使用して作成されたサービス・事例、Pythonを使用する仕事、Pythonの学習方法を解説していきます。
「AIに使われている」ということで大きく話題になっているPython。でも具体的にPythonはどんなことができるのか、イメージが掴めていない方も多いのではないでしょうか?
そこで今回は『Pythonを触ったことがない初心者の方』でも理解できるように、
・Pythonを使ってできること
・Pythonの言語を使用して作成されたサービス
・Pythonを使用する仕事
・Pythonの学習方法
を解説していきます。
Pythonを使ってできること
Pythonは1991年に開発されたスクリプト言語です。元々は限定的な処理しかおこなえない言語でしたが、現在はあらゆるシステムやアプリを開発できる汎用的な言語となっています。
次のような開発がPythonを使って行うことが可能です。
Webサイト作成
もちろんPythonでも、Webサイトを作成ができます。
例えば、PythonにはDjangoなどWebアプリのフレームワークが実装されています。PythonのWebフレームワークの中でもDjangoは有名で、フロントエンド部分からデータベース接続の部分まで必要なものが全部揃ったパッケージになっています。
私もDjangoを使用しています。
AI(機械学習・深層学習)
Pythonで今一番注目を浴びているのが人工知能や機械学習の開発ですSciPy、NumPyなどの科学技術や数学、統計用のフレームワークが充実しているだけでなく、TensorFlowやPyTorch、Chainerなどのディープラーニング用の有名ライブラリも複数あります。
TensorFlowはGoogle社が、PyTorchはFacebook社が開発しています。そしてChainerは日本の企業であるPreferred Networks社が開発していたものの2019年に終了してしまいました。どれもニューラルネットや機械学習などが直感的に扱えますね。
ゲーム制作
Pythonでは、2Dのレトロゲームや3Dのゲームも開発ができます。
PythonにはPygameというゲーム開発用ライブラリや、Cocos2dという2Dゲーム開発用フレームワークなどがあります。
Pygameは、断続的ながらも20年近く開発が続いているライブラリです。近年はUnityなどの台頭により、導入している企業は多くないといわれていますが、情報も多く、簡単なブロック崩しなどのゲームであれば、数百行のコードで書けてしまう簡便さもあり、依然として人気があります。
Cocos2dも10年以上開発が続いているライブラリで、こちらは2Dに特化しています。PythonだけでなくC++やJava、JavaScriptなどにも移植され扱えることから、こちらも人気の高いライブラリです。
Web上の情報収集ツール
「クローリング(URLのリストを元にHTML情報をプログラムで取得してくること)」や「スクレイピング(取得したHTMLから任意の情報を抜き出すこと)」という技術を用いて、例えば株価情報の最新値を自動で定期的に収集するなどの操作がPythonは可能です。有名な技術としてSeleniumがあり、これを用いることで情報収集やブラウザ操作やフォームにテキストを入力することが可能になります。
ブロックチェーン開発
Pythonはブロックチェーンのようなフィンテック業界の基幹技術にも用いられています。
主要ライブラリであるhashibというハッシュ関数を備えている点、HTTPリクエストを操作できる点、数値計算ライブラリが豊富である点という3つの理由からPythonが用いられることが多いといわれています。
データ処理・分析・解析
Pythonの強みとして、数値計算能力と連携可能なシステムの多さが挙げられます。
例えば大量にあるデータベースのデータを内部計算して読みやすい行列表に計算したり、膨大なエクセルのデータを開かないで目的のデータのみ抽出して別アプリにコピーしたりする柔軟なデータ処理が可能です。
また数値計算を効率的におこなうNumPy、データ解析支援機能のPandas、配列や行列の演算をするSciPyなど、ライブラリも充実しています。上述したAIの有名ライブラリの多くがPythonで動作しているのは、こうしたデータ処理、分析、解析用のライブラリが充実していることに起因するといわれています。
Pythonでできないことは?
Pythonは、AIやWeb製作などいろいろな開発に用いることができる言語です。しかし、できないこともあります。上手に洗濯していきましょう。
Windowsなどのデスクトップ系アプリの開発
Windows系のデスクトップアプリの開発は苦手としています。もっともPythonでは不可能ということではなく、あくまでC#のほうが向いています。
C#はマイクロソフト社が開発しています。そのためWindowsアプリの開発に向いており、多くの現場ではWindowsデスクトップアプリの開発の場合はC#を選択します。
スマホアプリの開発
Pythonはスマホアプリの開発を苦手にしています。もちろん、開発不可能ということではなく、Pythonでアプリ開発すること自体は可能です。
しかし、Android/iOS共に2020年現在ではメジャーなライブラリは多くないのが現状です。そのため、あえてPythonではなく、Kotlin、Java、Swift、C#(Unity)などで開発する企業が多いといわれています。
高速処理を求められる開発
高速処理を求められる開発もPythonには不向きです。例えば、複雑な処理が求められる巨大なゲームや、基幹システムなどのスピードが重視される開発では、どうしても処理速度が遅くなってしまいます。
C言語より早くなる場面はあるものの、計算速度を重要視するのであれば、C言語やJava、C++といった言語で開発した方が良いといわれています。
Pythonを使って作成されたサービス
Pythonの強みがわかったところで、実社会ではどんなサービスで用いられているのか見ていきましょう。ここからは実際にPythonを用いているサービスを一覧にして紹介します。
Pythonを使用する仕事
Pythonを活用する仕事の種類としては下記主にが挙げられます。
・人工知能(AI)エンジニア(AI、機械学習の技術を利用したサービス開発など)
・Webアプリケーションエンジニア(Webサービスメディアのシステム開発など)
・データサイエンティスト(Webサービスのデータ分析など)
Python初心者の学習方法
Pythonは難しそうなイメージを持たれる方もいるかもしれませんが、実は初心者にはわかりやすい言語になっています。
Pythonを学習する方法としては「書籍独学」「オンラインサイト」「プログラミングスクール」の3種類が挙げられますが、この中でも特に「オンライン学習サイト」は最近無料で基本的な部分を学習できるサイトが増えているためおすすめです。
こういったオンライン学習サイトで概要をつかんでから、興味の出てきた分野について書籍を買ったり、足りない分野を学ぶためにスクールを使って学習したりする流れが最も初動コストがかからずに、かつ体系的にPythonを学ぶことができるでしょう。
Pythonを学ぶことができる学習サイトには、下記が挙げられます。