はいどーも、まるです。
この記事では
プログラミングが出来るようになりたいけど、何からすればいいのかよく分からないという人向けに、独学からIT就職→フリーランスになった私がPythonを推す理由と、その魅力について紹介していきます。
所要時間は約5分です。
Pythonを学ぶならテックブーストがおすすめ!
プログラミング言語の種類はいくつある?
まず、プログラミング言語って沢山あります。実はその数、数千以上と言われています。ではそんな膨大な数の中から皆どうやって選んでいるかというと、
それはズバリ、、ニーズ(需要)です。
数千あると言いましたが、実際に仕事としてメジャーに使われているのは世界でもせいぜいニ十数個です。
幾つか例を挙げると,
- C/C++
- Objective-C
- C#
- Java
- Javascript
- PHP
- Ruby
- Python
- R
- Swift
- Typescript
辺りでしょうか。中には聞いたことあるものもあるかもしれませんね。
(よく勘違いされますが、htmlやcssは厳密にはプログラミングではありません。..が、今はへーそうなんだ程度で記憶に留めておくだけで良いです)
では何故、この中でもPythonがオススメなのでしょうか?
その理由は大きく3つあります。
未経験エンジニアにPythonをオススメする3つの理由
1.初心者に分かりやすい記述方式
Pythonは、プログラミング言語の中でもとてもシンプルな記述に特化しています。
例えばC言語で8行いるような記述も、Pythonは3行で出来てしまいます。
では、残りの5行はどこにいってるのか? 実はこれ、自動で判定してくれたり作ってくれてます。
元々、研究者などプログラングを生業としない方がすぐに使えるようにというニーズからPythonは生まれました。その為、何よりシンプルであることがPytnonicな(Pythonらしい)理念とされています。
A common neologism in the Python community is pythonic, which can have a wide range of meanings related to program style.
(Python – Wikipeadia)
同じ処理を他言語よりもに容易に、そして簡潔に記述できる。 それ故に、初心者であっても可読性の高い(シンプルで読みやすい)コードに集約されていく。 だからこそ、Pythonは入門にオススメの易しい言語と言えるのです。
2.AIや機械学習ライブラリの充実
最近巷でAIや、ディープラーニングといった言葉が話題ですよね。
実はこれ、Pythonで出来ちゃいます。というか、Python一強といえるほどの得意分野なんです。
プロの開発現場ではほぼほぼ、Pythonが使われています。 プログラミングにはそれぞれ得意分野のようなものがあり、C言語やJavaでAIを構築するのはかなり変態向け至難の業です。 ですがPythonだと、世界中でAIや機械学習の為のライブラリ(部品の集まりのようなもの)が提供されていて、意外と簡単に実装出来てしまいます。
これは私が以前作った「強化学習」と呼ばれる機械学習アルゴリズムを使用したもので、札束の位置をボールが嗅ぎ付け如何に早く「上場」エリアへ納めるかを学習させており、「試行錯誤しながら業績拡大を目指すベンチャー企業達の縮図」というアートになっています。(詳しくはInstaのハイライトに載せているので、興味ある人は覗いてみてください)
今後AIやディープラーニングといった技術は様々な分野での応用が期待されている為ニーズも鰻上りに高まってきており、Pythonは2020年の世界プログラミング言語ランキングで一位を獲得しています。(2021年現在も、TIOBEでは僅差にて2位を保持しつづけています)
その為、プログラングスクールなどでも「Python × AI」に特化したコースなどが近年登場してきています。
ではなぜPython一強なのかというと、前項で軽く触れましたが、Pythonを多くの研究者が使っていたからです。統計学や言語処理、果ては遺伝子シミュレーションからミサイルの弾道計算まで、様々な分野の学問に長けた人たちが多く使っていたからこそ、専門性が著しく進歩したのです。
その為、Pythonは統計や機械学習といった大規模データの分析は勿論のこと、自然科学系のライブラリも他言語に比べ圧倒的に充実しています。
今や文系の大学の研究室でも使われるようになってきているのは、このような背景があるからなんですね。
3.出来る分野が幅広い
先ほど述べたことと若干矛盾するように感じられるかもしれませんが、プログラミング言語毎に得意不得意な分野があり、特徴がある中でもPythonは特に応用が利きます。つまり、汎用性が高いのです。
以下に、Pythonで出来ること出来ないことをざっくりと紹介します。
Pythonが得意なこと
・Webサイト構築
・Webアプリケーション開発
・ブラウザーやExcel等PC作業の自動化(マクロ)ツールの作成
・機械学習(強化学習/深層学習)
・統計解析
・IoT(ハードウェア制御、組み込み開発)
・自然言語処理、形態素解析
Pythonが不得意なこと
・スマホアプリ製作
・コンシューマーゲーム制作(SwitchやPS5のようなゲーム機のコンテンツ)
・毎秒数千万以上のデータの双方向性リアルタイム大規模通信(0.001ms以下の遅延が問題になるような場合)
・家電機器等の超小型組み込み機器の開発(小型程度あれば開発可)
ぐらいでしょうか。
細部に分けるともっと色々ありますが、本記事は初心者向けということで厳密性は抜きにしてザックリと紹介してみました。どれぐらい色んなことが出来るようになるか、何となくイメージが湧いたかと思います。
そうです、つまり、Python一つ習得するだけで、様々なことが出来るようになるのです。
ちなみに”不得意なこと”の「リアルタイム遅延」と「超小型組み込み開発」はPythonが不得意であるというより、Pythonでいう機械学習のような他言語で最適化された言語があるという意味合いになります。むしろ、簡単なものであればPythonで作れてしまうのは他言語と比べるとメリットといえるでしょう。
以上3つが、私が実際に独学してきて感じた感想です。
正直最初にPythonを選んでよかったと、心から思っています。
PHPやRubyじゃ、こうはなれませんでした。
なので、自分の様にやりたいことが多く、欲張りなタイプにもPythonは非常にオススメであるといえます。
Instaに挙げているものも、大体プログラング言語はPythonで作っています。
オススメの学習スタイルは?
独学とスクール等どこかで習う。結論から言うと、どちらもアリだと思っています。
万人にとって必ずしもこれが正解、というものはありません。
独学とスクールのそれぞれのメリット・デメリットについては、以下の記事で解説しています。
ただ、最初に学ぶ前に一度スクールで話を聞いてみることをお勧めします。
エンジニア業界の人から直接話を訊くことで、現場でのニーズや言語スキル以外に求められることなどを、実際に感じることが出来るからです。
闇雲に着手する前にアドバイスを受けておくことで、自分のやりたい事に結び付かない技術の勉強などの、無駄な時間や労力を割かずに済みます。
最近は体験だけでなく、完全無料で学べるスクールも出てきているのでよかったらチェックしてみて下さい。
おすすめのスクールについては、以下の記事で紹介しています。
あとは、未経験からエンジニアになる為の学習の全体像(ロードマップ)は以下記事で紹介していますので、こちらも要チェックです。
君も今日から始めちゃおう!
Pythonは元々シンプルさを理念に設計された言語であり、その敷居の低さ故にエンジニアではない数学者や統計学者といった研究者にも好まれ、利用されていく中でライブラリが充実していき、今ではデータ解析やAIといった分野で群を抜いて優れるようになりました。
つまり、入門者に易しく、専門性も手にしやすい唯一無二の言語なのです。
しかし、技術の進歩にエンジニアの数が追い付いておらず、常に人材不足となっているのもエンジニア界の実情です。そして裏を返せば、就職先を選べる売り手市場であるといえます。
なので、この記事を読んで面白そう!と思った方は今日からPythonを習い始めちゃいましょう。
無料で学べて、その上自分で好きなものが作れちゃうようになるんです。
本当に恵まれた時代です。
人生は、一度きりしかありません。
やりたいことをやれる人生を過ごすために、今できることから少しずつ始めていきましょう!
まにゅまるスクリプトでは、
Pythonの独学を支援するコミニュティを運営しています。
やる気や見込みのある若者を対象に完全未経験からのサポートを行っており、
実務経験のあるエンジニアがメンターとして実践ベースのノウハウを伝授します。
プログラミング学習の一番の挫折理由は、
「質問できる環境がないこと」にあります。
本コミニュティでは、「自走していけるエンジニアの育成」を目的としており
ただ習って終わりではなく、エラーの解決方法の探し方など自分で考える力を養っていきます。
自身でWebサービスを実装、リリースすることで卒業となります。
興味ある方は、お気軽にお問い合わせください。٩(๑❛ᴗ❛๑)