この記事では初心者がPythonでWeb開発をするメリット・デメリットを解説していきます。
この記事でわかることは、
- 初心者がPythonでWebサービスを開発する際
- Pythonのメリットデメリット
- 機械学習のトレンドと将来性がわかる
ということについて、解説していきます。
そして特典パートでは「技術トレンドの捕まえ方」というのを、解説していきます。
これを読んでいただくことで、将来自分が学ぶべき技術はどれなのかというのも予測がしやすくなります。
ぜひとも最後までご覧ください。
動画でご覧になりたい方はこちら
このサイトは、独学でWebサービスをリリースした僕が、
- プログラミングスクールに通わず
- ゼロから自分のサービスを運営してみたい
方を応援するサイトです。
Pythonが人気な理由
まず前提条件として、Pythonが人気な理由っていうのは、実はあるんですよ。
本屋でこれでよく見ますよね。
- こう平積みされていたりとか
- Pythonでできるほにゃららとか
いろいろあると思うんですけど、この原因としては、少し前のAIブームが火付け役なんですよ。
これ残酷な真実なんですけど、本屋さんで流行っているものが、いいものとは限らないんです。
出版社も商売なので、売れるものを出そうとします。
そうすると、
- 少し前のAIブームが人気になってから
- そのAIに絡んでいるPythonが売れるだろう
って予測して、いっぱいPythonの本を出しているんです。
初心者の方がWebアプリ開発を学ぶにあたって、Pythonが必ずしも向いているというわけではないんですけど、
にしても「これ万能を考えを煽りすぎだよな」というの、めっちゃ良く感じます。
Pythonを使うメリット3選
では本題に入っていきましょう。
Python をつかまずメリット3つ、あげていきましょう。
メリット① 機械学習と連携しやすい
Pythonを使うと、機械学習と連携しやすいです。
Pythonと機械学習が、なぜ関連があるのかというと、例えば
- ディープラーニング
- 画像認識
という、そういうものを学習させるための、ライブラリですね。
誰かが作った便利なパッケージソフトが、Pythonであることがほとんどなんです。
なので、何か機械学習のコードを書こうと思うと、
- Pythonを使って
- 既に作られたライブラリーをインポートして使う
というのが、メインの使い方になってきます。
巷では
- AIというと
- Pythonが出てくる
わけですね。
最初からPythonを知っていると、機械学習も学習しやすくなるというのが、メリットの一つ目です。
メリット② 誰が書いてもコードの質が保たれる
メリットの2つ目は「必ずコードの質が保たれる」ということです。
(上の図で)2行目に入るときに、スペースが入っていると思うんですね。
そして3行目には、さらにスペースが入っているというのを「インデント」と言ったりするんですけど、
Pythonは、こういったインデントを、必ず均一に保つ必要があります。
もし、均一に保てなかった場合はエラーになってしまいます。
誰が書いても、ある程度同じようなコードになるので、誰が書いても高い質が保たれる、というメリットがあります。
メリット③ 極めると高年収が期待できる
Pythonのメリット3つめ「極めると年収が高くなる」という事です。
Webアプリの言語では、Pythonは2番目に年収が高いんですね。
ただし
- 案件が少なくて
- 機械学習との組み合わせが前提で
この年収であるということが、このグラフでは示されています。
そういった点は注意です。
しかし
- 機械学習
- Web開発
両方できる人になれば、あなたの年収というのは上がることは間違いないので、
頑張れば年収が上がる、というメリットがあります。
これが、僕が考える、Pythonの3つのメリットでした。
機械学習(AI)の気になる記事 10年後にはいない
最近、こういう気になる記事を見つけまして、番外編ですが、ここで挟んでいきたいと思います。
ちょっと、センシティブな感じですよね。
「機械学習エンジニアは、10年後に存在しないだろう」
これ、どういうことだろう・・・ってすごい気になったので
- 英語版
- 日本語版
両方見て、まとめてみました。
記事内容・簡単にまとめ
本当に簡単にまとめると、近い将来、機械学習分野というのは
- 本当に先進的なことをやる研究者ポジション、もしくは
- 機械学習もできるWebエンジニア
どちらかに両極端に分かれていく、という内容でした。
そして研究者ポジションというのは、
- 数学
- 統計学
様々な知識を持った博士課程を出た人が付くポジションに、なっているみたいです。
これは、アメリカの方の話ですね。
そして逆に、Webエンジニアの方というのは、
- ある程度そういった機械学習の知識をかじった上で
- すでに他の人が作った、機械学習モデルを使える
もしくは
- コーディングなしで、Pythonのコードを書かなくても AIをつけるサービス
- データさえ渡せばAIが出来てしまうサービス
っていうのもできているので、
そういったものをWebアプリに組み込むエンジニアという、
両極端に分かれていくだろう、ということなので、
中途半端な機械学習エンジニアというポジションも、なくなるだろう、というような記事でした。
Pythonのデメリット3選
続いて、Pythonのデメリット3選です。
「Pythonって、あんなに色々できる感じがあるのに、デメリットあるの・・・」と思った方、実はあるんです。
デメリット① PHPやRubyに比べると日本語情報が少ない
初心者が独学でWeb開発をしようと思うと、残念ながら
- PHP
- Ruby
に比べると、日本語情報が少ないんですね。
Python自体は、昔から存在していたんですが、
2018年くらいから、日本でだんだんと使われるようになってきました。
そのため、
- まだまだ出ていない情報も多いですし
- エラーは基本、原語でググる必要
があります。
そうするとやっぱり、初心者の方にそういったプログラミング学習+英語学習というハードルが増えてしまうという、デメリットがあり、
2018年からだんだんと増えてきているので、まだまだ仕事も少ないというデメリットがあります。
デメリット②文法チェックが厳しい
二つ目のデメリットは「文法チェックが厳しい」ということです。
こちらはメリットで紹介したコードの質が保たれる、の裏返しでありますが、
必ずインデントを揃えないといけないので、
このインデントが1個でもずれた場合、上図にあるようなエラーが出て、プログラムコードを実行することができません。
こういった些細な問題でエラーになってしまうのが、結構、初心者の方にとっては、ストレスになるのでは・・・というふうに、考えています。
デメリット③ いきなり機械学習を入れると挫折しやすい
そしてこれも、機械学習を入れる裏返しではあるんですけど
- 機械学習
- Webアプリ開発
ってそこそこ違う分野なので、初心者にはちょっと荷が重いかな・・・という風に感じています。
例えば画像認識例は、犬とネコを分けるだけであっても、
- かなりの数の犬とネコの画像を集めて
- AIに学習させる必要があるので
そういったデータ集めという、余計なタスクが入ってきてしまうので、
どっちつかずになってしまう可能性が高いかな・・・という風に感じました。
メリットとデメリットは表裏一体
ここでちょっと皆さん考えてほしいんですけど、今まで話してきた通り、実はメリットとデメリットって、表裏一体なんですよね。
もちろんPythonにはいっぱいメリットはありますけど、その裏側としては、やっぱり今、紹介したみたいなデメリットがあるので、
何事も、
- 良いところだけ見るんじゃなくて
- その良いところの裏返しには、どういったものがあるんだろう
というふうに考えていただくと、いろいろな判断を間違えにくくなります。
ぜひとも「裏側」を考えてみてください。
Pythonの代替言語
Pythonはちょっとデメリットが多い、という話だけしていても良くないので、
代替言語としてはこのようなものがあります。
- JS
- Ruby
- PHP
- Go
機械学習とWebアプリ開発、両方やると挫折しやすいので、例えば
- JavaScriptで、オールラウンドに全部開発してしまう
- 情報の多いPHPやRubyで、まずばWebアプリ開発に集中する
- ちょっとモダンな言語を入れたいというのであれば、Go言語でWebアプリだけを開発してみる
という風な、こういった代替言語がありますので、
今の話を聞いて、Pythonはちょっとやめておこうかなぁと思った方は、
この4つの中から選んで頂ければいいんじゃないかな・・・というふうに、僕は思っています。
まとめ
まとめです。
1.機械学習にチャレンジしてみたい人は、Pythonを選ぶと良い
2.情報と仕事というのはまだまだ少ないので、もし機械学習は一旦外して、Webアプリ開発の勉強に集中したいというのであれば、先ほど紹介した「代替言語」の方から選択して勉強してみてください。
3.機械学習はやっぱりトレンドというものにかなり影響されているので、そういったものを見極めて、将来を選んでいくというのを、お勧めしております。
特典パート
特典パートとして「ガードナーのハイプ・サイクル」というものを紹介します。
もしかしたら、このような図を見たことあるかもしれないんですけど、
アメリカの調査会社ガードナーが毎年出している、新テクノロジーのサイクル・・・ハイプ・サイクルという風に名付けているんですけど、その2020年のものを持ってきました。
- 縦軸:市場の期待感ですね。わぁ!すげーってなっている感じの
- 横軸は:時間が経過していくと、どういう風に進んでいくか
というのを示しています。
なんでもそうなんですけど、2年ぐらい前にAIブームが来た時って、
- 「おお、AIが来た、すげーぞ!」
- 「何でもAIが代替しちゃうぞ!」
みたいになってたと思うんですけど、今はどうですか?
そうなってますか?なってないですよね。
何でも新しい技術というのは、
- 最初に「ぶわーっ」と盛り上がって
- だんだん現実が見えてきて
- 実用化されていって
- 落ち着いていく
というサイクルをたどります。
こういった「ガードナーのハイプ・サイクル」というものができています。
このサイクルを見ると、
- 今、自分の興味のある技術
- 将来の知識として、投資したい技術
というのを、見極めることができますので、
市場に参入するタイミングなんかも非常にわかりやすくなります。
このガードナーのハイプ・サイクルが毎年出ているので、ぜひとも参考にしてみてください。
今、 AIはどこにいるかというとは、かなり落ちてきたところですよね。
やっぱり、すべてのことをできるわけじゃなくて、AIでできるのは、とある仕事の一部分です、
という風に落ち着いてきて、
- だいぶ用途が限定されてきたので
- 今落ち着いた段階にいます
というような状況になっています。
こういった状況を見た結果で「今AIに全振りするのは、僕は新しくないのではないかな・・・」という風に考えています。
チャンネル登録お願いします
最後までお読みいただき有り難うございました。
独学でWebサービスを開発運営してみたい方は、「Youtubeチャンネル」チャンネル登録をして、ぜひ次の動画をお待ちください。
これからは、もう少し具体的なWeb開発をするにあたって必要な知識、設計などを、どんどん出していきたいと思います。
今後ともよろしくお願いします。