こんにちは、ITベンチャー企業でプログラマーをしていたおしま狩人です。
プログラミングは2020年から義務教育に取り入れられるほどぼくたちの生活に浸透し始めていますが、
あなたがこれまでプログラミングについて勉強してこなかったのであれば
これからプログラミングできないと取り残される…?
と心配になっているのではないでしょうか。
しかし現状はネットで調べても、書店に行ってもPHPやJavaScript、CSS、Ruby…と非常に多くの言語があり、
試しにチラッと覗き見しても、まったくわからず諦めてはいませんか?
プログラミングでは、イメージを掴むことがとても大切です。
ということで、今回は最近注目度が上がってきているPythonというプログラミング言語でできること10つを紹介していきます。
実はぼくもPythonの言語に触れるのはこれからなので(簡単なコードはかけますが…)、Pythonを学んだことがないあなたと同じ目線で紹介していければと思っています。
なぜPythonなのか
Pythonが注目されている理由を3つ紹介します。
- これからの技術に最適な言語である…AI、機械学習、IoT、Webアプリなど
- コードがシンプルで開発スピードが早い…生産性が高い言語
- でもPythonを扱える技術者が少ない…需要と供給の原理で高単価・高収入になる
ざっとまとめるとこんな感じですね。
紹介した通り、Pythonはこれからの技術開発に最適な言語とされています。
ですが世の中にはJavaやPHPなどの言語を扱えるプログラマーが比較的多く、需要に対して供給が間に合っていません。
今後の伸びしろを考慮するとPythonを学んだ方が、費用対効果が高いといえます。
Pythonには豊富なライブラリが揃っている
Pythonがこれからの技術に最適であることと、生産性が他の言語に比べて高いという理由の裏づけにはライブラリの説明をする必要があります。
プログラミング言語のライブラリをわかりやすく例えると、レベルの高いポケモンをゲットできることと同じです。
マサラタウン(古すぎ?)を出発してすぐには、レベル5くらいのポケモンしかいませんよね。
目的が四天王を倒すことであれば、コツコツとポケモンを育てる必要があります。
ですが、最初から手持ちにレベル50のサンダー・フリーザ・ファイヤーがいたらどうでしょう。
四天王を倒すまでの時間はかなり短くなるはずです。
このように、ある程度の基礎体力やワザ(=開発に必要なコード)がマルッとまとめられているのがプログラミングのライブラリです。
Pythonには機械学習やIoT、スクレイピングなどに適したライブラリがあるので、生産性の向上に直結しています。
ライブラリと同義語でクラスということもあります。
Pythonでできること
Pythonでできる代表的なことは、以下の10つです。
- 機械学習
- ディープラーニング
- IoT
- ロボット制御
- Webアプリ
- デスクトップアプリ
- スクレイピング
- データ分析
- ブロックチェーン技術(フィンテック)
- 仕事の自動化(RPA)
機械学習
機械学習とは、機械にデータを読み込ませて(=学習)パターンや特徴を分析させることです。
Pythonにはscikit-learnやTensorFlowといったライブラリが用意されています。
機械学習をもっと噛み砕くと、ぼくたち人間が学習しているようなことを機械でも実現させようということです。
自転車に乗るためには、何度も挑戦してこけて、少し進んで、また転んで…
そしてある瞬間から自転車に乗れるようになったのではないでしょうか。
このような情報・データを機械に学習させて、パターンや特性を分析して有効活用していこうとするのが機械学習です。
ディープラーニング
ディープラーニングとは、ヒトの脳内にある神経回路のようなニューラルネットワークを多層的にすることで、機械自身が自ら正確かつ効率的な判断をすることができる仕組みのことを指します。
ニューラルネットワークとは、脳機能の特性のいくつかを機械上で表現するために作られた数学モデルのことです。
…これ以上説明するとややこしくなるので、つまりはヒトの脳内回路をマネしてプログラミングしたら、高性能な機械になったということですね。
ディープラーニングの技術は
- 音声認識(同時翻訳やSiriなど)
- 画像認識(病気判定技術など)
- 自然言語処理(Google翻訳など)
これらで使われています。
IoT
IoTとは、Internet of Thingsのことです。
世の中のあらゆるモノをネットと接続し、便利にしていく仕組みのことですね。
例えばあなたが帰宅することをスマホに伝え、帰宅したと同時にお米が炊けてお風呂が用意されていたらどうでしょう。
これらのことをPythonで実現することができます。(現に実用化されていますが)
難しい技術のようですが、raspberry piと呼ばれる割と安価なシングルボートコンピュータにpythonを用いて気軽に開発することができますよ。
ロボット制御
Pepperやドローンなどのロボット制御を、Pythonでプログラミングすることができます。
webアプリなどのPC上で完結するのではなく、実際に記述したコードが目の前でモノとして動くのはリアルで楽しいです。
これからはロボット業界も伸びてくるので、試しに安価なロボットを購入して遊んでみるのもありです。
Webアプリ
Webアプリケーションとは、ブラウザ上で様々なサービスを利用したり、コミュニティーに参加できるウェブサイトのことです。
アプリというとスマホにインストールされているスマホアプリを想像することが多いですが、ブラウザ(SafariやChrome)で利用できるウェブサイトのことをWebアプリケーションといいます。
YoutubeやInstagramはPythonでつくられたwebアプリケーションです。
WebアプリにはPython以外にHTMLやCSS、JavaScriptといったユーザーが見る画面をつくる言語と、データベースに情報を保存や更新するためのSQLという言語が必要になってくるので、複数名のチームで開発することが一般的です。
もちろん全部ひとりで開発することもでき、これら全ての工程を担うことが可能なエンジニアをフルスタックエンジニアと呼びます。
なんかもう、名前だけでカッコいいですよね。
名刺にフルスタックエンジニアって書いてるだけでモテる気がします。
デスクトップアプリ
デスクトップアプリケーションとは、PC上のさまざまな状況に応じてつくられたプログラムのことです。
誰でも使ったことのあるエクセルやワード、パワーポイントもデスクトップになります。
同じような作業を効率化させたい…
データを管理するための機能がPCに欲しい
といった場合にPythonでデスクトップアプリをつくることができます。
スクレイピング
スクレイピングとは、ウェブサイトのコンテンツから必要な情報を取得する手法のことです。
身近にあるスクレイピングに特化したサービスとしては、価格.comがありますよね。
いろんなウェブサイトの価格情報をまとめて比較できる、使い勝手のいいwebアプリです。
Pythonでは比較的簡単にスクレイピングを実装することができ、単純作業の自動化をすることが可能です。
単純作業を自動化できるメリットがありますが、対象のウェブサイトに大きな負荷を与えたり、許可されていないアクセスをすると違法となってしまう場合があるので、その辺りは注意してくださいね(`・ω・´)
データ分析
データ分析とは、2種類以上の情報を整理し、価値あるものを見出すための手法のことです。
機械学習やディープラーニングのとっかかりを掴むためのデータ分析をしたり、データの可視化をするためにPythonでは必要なライブラリが揃えられています。
データ分析って…難しそう
というイメージがありますが、
あなたの地域の地震が起こった回数と年、その規模などをPythonで可視化してみるなどの身近な分野から触れてみてはいかがでしょうか。
ブロックチェーン技術(フィンテック)
ブロックチェーン技術やフィンテックを、Pythonで開発することができます。
ブロックチェーンは革新的な技術ですが、ビットコインなどの仮想通貨 = 怪しいものとして捉えられていることが多いです。
大多数が興味を持っていない今が、この分野で先駆者となるチャンスだと思っています。
ブロックチェーンは、近未来をより健全な社会システムへと導くための必須な技術ですよ。
ブロックチェーンやこれからの社会システムをてっとり早く学びたいのであれば、お金2.0がおすすめです。
仕事の自動化(RPA)
RPA(Robotic Process Automation)とは、ホワイトカラー(頭脳労働者)のパソコン操作を自動化する手法のことです。
機械学習やAIとは区別されており、以下にその違いをまとめました。
- RPA…単純な作業を繰り返し実行
- AI、機械学習、ディープラーニング…データを分析し結果を出力
RPAは単純な作業の模倣にすぎませんが、AIやディープラーニングを取り入れると単純な作業を分析しパターン化してより効率のいい作業を提供します。
ですが、もちろんRPAの方が安価ですし、単純な作業であればRPAの速度や精度で十分とされています。
どうでもいいデータの入力や作業に時間を取られて、集中して取り組みたい仕事に取り組めなかった…
という経験、一度はあるのではないでしょうか。
ぼくも昔、漢字検定の採点業務をやったことがあり、その業務をどうプログラミングできるか考えながら採点ミスしていた経験があります。。
これからは仕事の自動化が進み、人間の脳がより活かされる分野が開拓されていくでしょう」。
このようなRPAというツールを、Pythonで開発することができます。
まとめ
以上、将来性の高いプログラミング言語・Pythonを学ぶとできること10つを初心者向けにまとめてみました。
ただ単にPythonでできることを羅列するのではなく、できること自体の説明が必要だったので文字数が多めになりましたが、いかがだったでしょうか。
あなたがPythonを学ぶためのきっかけや、実現したい分野を見つけるためのヒントになれたのであれば幸いです。
これら2つのサービスが、Pythonの初期学習にはおすすめですよ。
おしま狩人でした。