Pythonを学ぼう(初心者におすすめ)

Pythonでできること!

活用方法から学習方法まで徹底解説

 

f:id:shodai16:20210514111946j:plain

今回は『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++JavaJavaScriptなどにも移植され扱えることから、こちらも人気の高いライブラリです。

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言語JavaC++といった言語で開発した方が良いといわれています。

Pythonを使って作成されたサービス

 

Pythonの強みがわかったところで、実社会ではどんなサービスで用いられているのか見ていきましょう。ここからは実際にPythonを用いているサービスを一覧にして紹介します。

Youtube

Dropbox

Reddit

Instagram

BitTorrent

Bender

Anki

このように、Pythonは多くの有名サービスに用いられていることがわかります。

有名なサービスもたくさんありますね!!

Pythonを使用する仕事

Pythonを活用する仕事の種類としては下記主にが挙げられます。

人工知能(AI)エンジニア(AI、機械学習の技術を利用したサービス開発など)

・Webアプリケーションエンジニア(Webサービスメディアのシステム開発など)

・データサイエンティスト(Webサービスのデータ分析など)

マーケティングスクレイピング、画像解析、自動化などによる情報分析)

Python初心者の学習方法

Pythonは難しそうなイメージを持たれる方もいるかもしれませんが、実は初心者にはわかりやすい言語になっています。

Pythonを学習する方法としては「書籍独学」「オンラインサイト」「プログラミングスクール」の3種類が挙げられますが、この中でも特に「オンライン学習サイト」は最近無料で基本的な部分を学習できるサイトが増えているためおすすめです。

こういったオンライン学習サイトで概要をつかんでから、興味の出てきた分野について書籍を買ったり、足りない分野を学ぶためにスクールを使って学習したりする流れが最も初動コストがかからずに、かつ体系的にPythonを学ぶことができるでしょう。

Pythonを学ぶことができる学習サイトには、下記が挙げられます。

Progate

ドットインストール

PyQ

Udemy

Pythonを学ぼう!

f:id:shodai16:20210514111925j:plain

昨今のAIブームやこれからの未来を考えていく中で Pythonの技術は必須になってくると言えるでしょう。

初心者でも学びやすい言語になっているので、まずは Pythonを学んで他の言語を学ぶのも良いかも知れませんね。

独学で挫折しそうな方にはスクールをおすすめしていますので他記事を参照ください。

 

ちなみに

私は侍エンジニアさんにお世話になっていましたが、内容としてはテックキャンプさんがお勧めです。質問がすぐに返ってくる環境は羨ましいです。。。

 

プログラミングを学びたいけどどの言語を学ぶか迷ってる方は参考にしていてください。