第4講:初心者が選ぶべきプログラミング言語はダントツでこれ

Pythonがオススメな理由は、

<1> 
技術の進化による処理速度の高速化
<2> 衆知が利用できる
<3> データを扱える人間の価値が高まっているからです。
YouTube, InstagramもPythonを利用していますよ!
***

こんにちは。

人混みが嫌いなので、主な活動時間は夜になる、黒田道哉です。

月を見ながら、「千と千尋」のハクが名前を思い出すシーンの曲を聞いて歩くのが好きです。
ちなみにそのシーンのセリフ全部暗誦できます。笑

なぜ初心者にオススメな言語がPythonなのか?

前回は、313語のプログラミング言語のうち、重要なものをピックアップしました。

その中でもオススメなのは

Python

なんです。

なぜPythonをオススメするのか?というのが今回のテーマです。

いきなり結論を言いますけど、理由として一番強いのはやはり、
【学びやすい】ことです。

 

プログラミング言語はどんどん高級言語化(前回のポイント)しています。
高級言語は、わかりやすい反面、処理速度が落ちるのでした。

そんな欠点があるのに、なぜ高級言語化がトレンドなのでしょうか?

 

理由1:技術の進化

理由の1つは、技術の進化です。
技術の進化により、高級言語でも処理速度が出せるようになっているからです。

最近、SiriちゃんやAmazonエコーのような賢いロボットが、
売り物として市場参入しだしたのも、これが理由だと言われています。

私が、天才だと思っている日本人がいます。

フルブライト奨学生としてイエール大学の大学院へ行き、規定の半分!の期間で卒業された、

日本が誇る天才・苫米地英人博士です。

彼はこう言います。(難しいなと思う単語は飛ばしても大丈夫です)

 

https://tocana.jp/2016/12/post_11513_entry.htmlより

確かに、僕らが1980年代に研究してた時と比べると、今のCPUは1億倍速い。

1億倍早いCPUだったら、当時からある色々な知識処理のモデルを同時に100個ぐらい並列で走らせることができる。

ディープラーニングの方も、理論そのものは80年代に僕らが作ったものから変わっていない。

「CPU」とか「ディープラーニング」とか、
もしかするとちょっと見慣れない単語かもしれません。

要はこういうストーリーです。

1980年代には、機械学習の理論自体はもう、研究者によって用意されていた。
しかし、コンピュータの計算性能・速度が追いつかず、使い物にならなかった。
まさに、机上の空論。
それが近年の技術の進化により、計算性能があがり、実用化出来るようになってきた

机上の空論を実現できるだけのパワーが養えたわけですね。

 

このストーリーが、プログラミング言語についても言えるわけです。
「高級言語で少々時間がかかるようでも、進化した計算性能でカバーできるじゃん?」と。
(もちろん、遅さが致命的になる世界もありますけど。身近な例で言うとレーシングゲームとか音ゲーとか。)

 

「計算性能でカバーできるなら、そしてそこまで速度を求めないのであれば、
処理速度よりもわかりやすさをとっても良いじゃん?」
ということで高級言語化が進んでいます。

 

他にも、需要に対して供給が追いついていない、という状況もあると思います。
学校でプログラミングを必修化させるくらいですからね。
とにかくわかりやすくして人口を増やそう、と。

 

話をPythonに戻しましょう。

 

理由2:わかりやすく設計され、人口も多いので教えてもらいやすい

プログラミング言語には設計者がいます。
(ちなみに、Pythonではありませんが、Rubyは日本人の「まつもとゆきひろ」さんが創られたんですよ!)

彼らは

「シンプルでわかりやすい言語をつくろう!」
「1つのことを、何通りでもかける自由な言語をつくろう!」

というような、様々な思想をもっています。
Pythonは前者のシンプル明快派です。

そして、Pythonコアなユーザー達は、その前者の思想に共感している人です。
そういう人たちが作り上げる言語なので、わかりやすいのです。

そのおかげで、学習人口が増えています。

学習者が多いというのは、それだけ教えてもらいやすいということです。

まずは学習人口の多さを確認しましょう。

http://pypl.github.io/PYPL.html によると、
2020年2月現在、

Pythonがダントツで、シェア29%

です。
(26.1%を越えているので、ランチェスター戦略で言う「強者」ですね。)

ただし、注意点があって、このシェアは実際のユーザー数ではありません。

このサイトの情報を読んでみます。
英語なんで、「意訳」をつけておきますね。

The PYPL PopularitY of Programming Language Index is created by analyzing how often language tutorials are searched on Google.

→このプログラミング言語の人口ランキングは、何から算出されているかというと、その言語の解説情報がググられている頻度です。

 

The more a language tutorial is searched, the more popular the language is assumed to be. It is a leading indicator. The raw data comes from Google Trends.

→ある言語の解説情報が検索されればされるほど、その言語は人気だと言えます。(解説情報ということは)これからの流行を読む指標ともいえます。このデータは「グーグルトレンド」の最新情報を参照しています。

 

If you believe in collective wisdom, the PYPL Popularity of Programming Language index can help you decide which language to study, or which one to use in a new software project.

→もし衆知を利用するのであれば、このランキングで「どの言語を勉強するか」、「どの言語で新プロジェクトを立ち上げるか」を決めると良いでしょう。

***

ん〜、元の英文の語順に近い日本語訳でありながらも、
自然な日本語であり、なおかつなるべくカタカナ語を使わない。

我ながら、素晴らしい翻訳です。笑
(「衆知」って良い日本語ですね。)

グーグル翻訳さんには、まだ負けませんね。笑

…あっ、自慢で脱線してしまった!ごめんなさい!w

何が言いたかったかというと、

人口が多いと言うことは、
「衆知を利用する」という意味でも、
おすすめです

ということですね。

見ず知らずの優秀な人と協力しやすい環境が整っているということです。

 

たとえば…

英語の勉強をしていたとしましょう。
その途中、質問をしたくなったとします。

そんな時は、その辺の人に訊いても答えが出ると思います。
少なくとも、東大のキャンパス内で歩いてる人に訊けばほぼ100%、
答えが得られるでしょう。

でも

それがアラビア語の質問だと、そうは行きませんね。
東大のキャンパス内でもなかなか答えを得られないはずですよね。

それは、アラビア語を学んでいる人が少ないからです。

 

もちろん東大のキャンパスにはアラビア語の教授も居られるとは思いますが、数は少ないですよね。

 

以上の理由から、前回の講座も読んだけど、どれにしようか決めきれない。

という方には、Pythonをオススメしています。

次回予告

「さぁ、Pythonを始めよう!」

と思った初心者を襲う最大の壁って何かわかりますか?

これは、プログラマなら誰もが声を揃えて言うことなんですよね。

まずはその壁が何なのか知っておくことが大事です。

もちろん、解決策もご紹介します。

第5講: ホ●エモンも苦心した!プログラミング初心者”最大の壁”あるある
プログラミング最初の壁は何と言っても、環境構築! この作業は本職もイヤがって押し付け合うほど、メンドーくさくて意味不明です...。笑 でも、この講座を読んだあなたは、もう環境構築ごときで挫折する必要はありません! *** まずは用語集から!...

 

 

おまけ1:エンジニアになるためのユーモラスな基本用語集

【OS】(おーえす)

パソコンの宗教のこと。
Windows、macOS、Linux、Chrome OSなどが有名。

特にMac信者は、
開祖スティーブ・ジョブズのカリスマ性によって熱狂的であり、「マカー」と呼ばれる。

人間と違い、パソコンにはOS(宗教)がないとピクリとも動かない。

 

【Linux】(りなっくす)

コアなエンジニアに好まれるOS。
開祖は、リーナス・トーバルズ。

マウスなどを使って視覚的に操作(GUI)することもできるが、
黒い画面に、文字(コマンド・命令文)を打ち込むだけで操作するのがクール。

映画に出てくるハッカー(正確にはクラッカー)キャラが使ってるっぽいのは大抵これ。

 

低スペックなPCでも動くので、
古いWindowsPCをLinux化してサクサク使う玄人が多い。

 

【システム】

ルールに基づいた世界のこと。

 

【エンジニア】

システムの創り手のこと。

 

【SE】(えすいー)

システム・エンジニアの略。
ルールに基づいた世界(システム)を創る人のこと。
建物で言うと、建築家・デザイナー。
上流工程を担当する。

システム中でのルールの整合性を保つため、ロジカルな思考が要請される。

 

【PG】(ぷろぐらまー)

システムを創り上げる作業のうち、コードを書く作業を担当する人。
建物で言うと、大工。
下流工程を担当する。

仕事の半分はググること。
意外と、キーボードを打つことは少ない。

 

おまけ2:今日のエンジニアジョーク

 

 

おまけ3:お前誰やねん?シリーズ

(つづき)

優秀なコーチのおかげで、
うちの部活は、日本トップレベル・世界大会レベルまで引っ張り上げていただくことができました。

この経験で、学んだことがあります。


独学で苦労
した時期があったからこそ、ハッキリわかったんですが…。

 

 

一気に成長するには、素晴らしいコーチに、直接、引っ張り上げてもらうのが一番

 

ということです。

画像3

一人で練習するのも良いことです。

手探り感がまた楽しかったりします。

 

でも、

きちんとした人に引っ張り上げてもらう方が

スグ結果が出るという意味でも、姿勢を学ぶという意味でも、

良いですね。

より一層楽しくなります。

 

そして、高校時代を卒業し、某国立大へ。

ここでプログラミングと出逢います…。

(続く)

 

 

次の講座へ

第5講: ホ●エモンも苦心した!プログラミング初心者”最大の壁”あるある
プログラミング最初の壁は何と言っても、環境構築! この作業は本職もイヤがって押し付け合うほど、メンドーくさくて意味不明です...。笑 でも、この講座を読んだあなたは、もう環境構築ごときで挫折する必要はありません! *** まずは用語集から!...