Pythonでできることは?
PyQでPython学習中のヒラノです。
Pythonって最近名前はよく聞くけど、一体何ができるのよ?って思う方も多いと思うんですよね。
今後、義務教育にプログラミング学習が組み込まれる予定で、これからの時代はプログラミング言語は必須スキルと騒がれています。
2020年から小学校でプログラミング教育が必修化へ!今までの流れをまとめてみた
最近ではすでに小学生からプログラミングで社会問題に立ち向かっている子もいます。若いって素晴らしい。
「お母さんを助けたい」 社会課題に向き合う小学生プログラマーたちが集結
うちでもゲーム好きの息子にプログラミング学習ゲームであるCode Combatを教えたら案外ハマっていて、これはなかなかいいんじゃないか?って思ってみたり。
私が以前挫折したRuby以来にプログラミング学習を再開しようと思った時、最初は何から入ればいいのか検討もつきませんでした。
プログラミング言語といっても両手に収まらない数があるんですよ。。どれやったらいいのよって感じです。
とりあえずパっとみただけでも200種もある、、、↓
これだけ種類が多いプログラミング言語の中で、単純にトレンド的な目線でPythonを選ぶ方もいるでしょう。使ってる人が多くなってくればそれだけ需要も多くなります。
ただ、流行りだけではまずモチベーションが続きませんよね。プログラミング言語の選び方って、結局自分が何を作りたいのか?の一点です。
なので、Pythonで何ができるのかがわかればやりたい事も見えてくるはずです。
今回はPythonで一体何ができるのか?何が得意なのか?について初心者にもわかるようにクローズアップしてみました。
Pythonを使うとスクレイピングでネットのデータを取得することができる
Pythonといえばまず挙げられるのがスクレイピングです。
私もPythonを使う上でメインの目的がこのスクレイピングだったりします。
Pythonでなくてもスクレイピングはできますが、Pythonにはライブラリといって便利なソフトが凄腕プログラマーや研究者によってネットにちらばっていて、無料を使うことができます。
私も勉強をしてスクレイピングしてみましたが、一発で欲しい情報が手に入るのでめちゃくちゃ便利でした。今後も活用していきたいと思う技術です。
とりあえずPythonの初歩を学習して、スクレイピングしてみたいって思ったらDAIさんのnoteがオススメです。
PythonでAPIの技術を使ってAmazonなどのデータを分析できる
Pythonを使うと、『API』と呼ばれる技術でサイトやアプリに公式にアクセスすることができます。
『API』というのはサイトやアプリに公式に情報のやり取りができる専門の関所のようなものです。
例えば、Pythonを使ってAmazon APIで商品情報を検索して価格情報やセール情報を取得したりといったことができるようになります。
これにより、自分の好きなブランドごとのランキングを作ったり、値段別に並べたりすることが可能になります。
Pythonからラズベリーパイを使ってロボットを作ることができる
電子工作の分野でラズベリーパイという小さなPCが巷で流行っています。
ラズベリーパイを使うと、例えばセンサーを使って気温を計測したり、ロボットの関節を動かしたりと物理的な部分も楽しむことができます。
AI搭載のホームスピーカーを使ってちょっとした日曜大工程度で家の中の快適さをラズベリーパイでアップするなんてことも可能です。
手軽なのでお子様のプログラミング教育にもオススメ。
Python=機械学習ができる
Pythonでできることで一番有名なのは機械学習です。
Wikipediaさんによると、
機械学習(きかいがくしゅう、英: machine learning)とは、人工知能における研究課題の一つで、人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のことである。
つまり、人間と同じ学習能力を機械で再現しようってことです。このまま進歩していったらもはや人間そのものになるのではないでしょうか。
細かい部分ではいろいろあると思いますが、大まかに機械学習=人工知能といっても過言ではないです。
で、この機械学習には主に2つありまして、まず教師あり学習です。
教師あり学習(Supervised Learning)は、学習データに正解ラベルを付けて学習する方法です。例えば、花の名前を教えてくれるAIを作るのなら、学習データ(画像)に対して、これは「バラ」、これは「ボタン」というようにラベルを付けて学習させます。
つまり、最初から一定の情報を与えてくれた上で学習していく感じ。
で、問題は教師なし学習。こちらはちょっと謎です。
Web上の画像や動画をラベルなしで1週間読み取るうちに、AIが自律的に「猫」というものを認識するようになりました。これは、幼児が毎日いろいろなものを見るうちに、自然と「こういうものが猫ってものか」と認識してゆくのに似ています。
言ってることはわかるんですが、「んで、それはどうやってやってるのだ??」と、初心者の私にはちょっと理解ができませんでした。これから猛勉強して理解を深めていこうと思ってます。
まあとにかくPythonは機械学習に向いてます。もちろん他の言語でもできないわけではないんですが、Pythonにはライブラリといって後付けできる特殊技能みたいな物がいろいろとリリースされています。
そういった世界中の数学やプログラミングの天才たちが考えたアルゴリズムをネットからすぐに、しかも無料で使えるものが多かったりするので凡人には本当にありがたい限りです。
Pythonには機械学習向けのライブラリが多数あるので、機械学習をやるときに効率が良くてメリットがでかいってわけです。だからみんなPythonに夢中な近年になっているんですね。
PythonでWebアプリも作ることができる
Web系アプリって憧れますよね。なんか華やかな感じで。
まあいろいろと大変そうではありますが、人に見せた時の「おおっ」感は大きいんじゃないかと思います。
Webアプリを制作するのに使うプログラミング言語ではRubyはよく聞くんですが、PythonはあんまりWeb系で使われてるって聞いたことがありませんでした。
調べてみると、どうやら海外ではインスタグラムとかで使われているそうな。あとは超有名所だとYoutubeとかもですね。
というわけで、アプリなどのWeb系サービスでもPythonが使えるそうなので調べてみました。
Techacademyさんによると、
日本では、Webサービスの開発言語としては長らくJava、もう少し軽量なところでPHPが主流でした。その後、Ruby on Railsが結構採用され、Node.jsが流行ったりして現在に至っています。
Pythonは、日本では主にデータサイエンスのツールとしての認識が強い印象です。またWebスクレイピングでも使われていますね。
Webサービスとしては、Djangoという軽量な良いフレームワークもあるので知っておくと良いかもしれません。
Djangoを使うとPythonでWebサービス作りやすいよって感じです。
とはいえ、日本ではRuby、アメリカではPythonみたいな流れはもうちょい続きそうな予感です。
paiza開発日誌さんのDjango2.1入門: 初心者でも10分でWebサービスを作れる!PythonフレームワークDjangoとPaizaCloudの使い方が気になるのでそのうち環境作って写経してみようかな。
Pythonを2ヶ月独学してみてできることがわかってきた
私はまだPythonをはじめて2ヶ月目の新人ですが、いろいろ調べるうちにPythonでできることがだんだんわかってきました。
まあ、わかったからといって使いこなせるわけではないのですが、どんな分野が得意なのかわかるだけでも自分の作りたいものが見えてくると思います。
私の場合はWEB上にあるデータを分析するために、スクレイピングの技術を便利ツールとして使っています。
やはり、スクレイピングがしやすいというのはPythonの大きなメリットの一つです。
とりあえず軽めのデータから入って、何度かやってみてまた新しい事へのチャレンジの繰り返しといった感じです。
そのうちAmazonやツイッターのAPIを使ったデータ分析などやってみたいなあと目論んでいます。
あと、初心者でPython学習したい人、この指止まれ的な募集してます。
Python学習のモチベーション継続が難しいので仲間を募集することにした
世界に散らばるニートなみんな、待ってるぜ。