第3講:HTML,CSSの次は?→ 「そこにプログラミング言語が313語あるじゃろ」

プログラミング言語は、時代の後押しもあり、学びやすいものから学ぶのが鉄則です。
「一成れば、一切成る」なので、まず一つをマスターすれば、他もわかってくるからです。
「その最初の1つがわからへんねん!」という場合は、
プログラミング言語を「なんとなくやりたいこと別」に、4種類に分けたので、それから選んでみてください。

***

こんにちは。

フレッシュネスバーガーでフライドチキンのプレーン2個だけ食って帰る、黒田道哉です。

糖質はあんまり摂らないようにしています。
糖化は老化」ですからね!

 

プログラミングへの誤解あるある

あなたは今から本格プログラミングを学んでいかれるわけですが…

こんなイメージお持ちじゃないですか?

 

黒の画面に白や緑の文字で、謎の英文を打ち込むと、
いきなり画面が、雪崩のようにブワーっと文字を表示し始めて…

ピコン!

と音が鳴ると同時に、

 

絶対に侵入不可能と言われていたはずの金庫が「ガッコン!」と音を立てて開いちゃう…!

そんなイメージですかね?笑

 

もちろんあれは演出です。
(でも、LinuxってOSを使うときは、エンジニアの脳内はそんなふうになってるはずです。笑 成りきってます。笑)

 

 

実は、ホンモノのエンジニアは、そういう慎重な場面ではキーボードをカチャカチャと使うことは、ありません。

なぜなら、「リハーサルして上手く言ったときのコード」をコピペするからです。w

エンジニアは、重要なものはコピペするんですよ。笑

そのコピペももちろん、Ctrl + C からの Ctrl + Vです。
キーボードは2回しか鳴りません。

そんなの地味すぎて映画にできませんから、多少の誇張はしゃーないですね。

 

えーっと。。。
あぁ、プログラミングって何?ってハナシでした。

 

プログラミング言語はカンタンになってきている

プログラミングというのは、

「コンピューター君にお願い事をする」

ことです。

  • 「OK, google! 1+1は?」
  • 「Hey, Siri! あのフォルダのcsvデータ読み込んどいて!」

みたいなもんですね。

 

ただし、困ったことに、

エンジニアさんは人間語(たとえば英語・日本語)しかわからず、
コンピューター君は機械語(“3D 12 1F”みたいな、16進数という数)しかわかりません。
(もっというと、電流の有る/無しで表現する2進数しかわかりません。)

 

 

そこで、人間側が歩み寄っていくわけですね。

一生懸命、機械語を勉強したり、
「人間にもわかるような機械語」を作ってみたりしています。

この、「人間にもわかるような機械語」ってのが、最近どんどん増えてます。

プログラムの門戸を広げたいということもあってか、
人間側に寄せまくった、人間にわかりやすい機械語ができてきています。

人間側に寄せまくったプログラミング言語を「高級言語」と言います。
逆に、コンピュータ側に寄せたものを「低級言語」と言います。

 

学びやすいのは良いことですよね。

…でも!

それは人間の悪いクセ。

霊長類最強とか思ってしまう驕りと、他者を平気で犠牲にする思考が出ている!!!(大げさ)

 

「は?それのどこが悪いねん?コンピューターには人格ないからエエやん!」

 

…と思いますか?

ところがそうもいかんのですねぇ。

「コンピューターちゃんにも人格があるんや!」とかいうヤバそうな理由ではないですよ。

実は、

人間にわかりやすい高級言語でお願い事をすると、
コンピュータ君の反応速度・処理速度が落ちていく

からダメなのです!

 

そりゃそうです。

人間にとって学びやすい、わかりやすいということは、
コンピュータ君にとってはわかりにくいのですから。

 

近年は機械の処理速度自体が上がってます。
それでもやっぱり、
機械語に近い方が処理が早いことは変わらず、
そして処理は遅いよりかは早いほうが良いわけです。

 

 

スマホをいじっていても、処理速度が遅いとイライラしますよね?

例えばこんな風に…

 

 

道を歩いてたら…えっ!こんなとこで芸能人が街ぶらロケやってる!

(うわ!本物やん!スマホのカメラで撮ろう!)

とおもって、
急いでスマホを取り出して操作したのに、なかなかアプリが出てこない!

 

おいっ!

はよはよはよはよ!!

 

 

あ〜。芸能人御一行、行っちゃった。

くそー!!!!
せっかくのチャンスが!!!!!

 

そんなとき、ダ●ョウ倶楽部の上島さんがハンチング帽を投げつけるかのの如く、スマホを路上に投げつける!

 

「遅い!訴えてやるっ!」

 

 

 

ん〜。

あるあるですねぇ〜。(ない)

 

 

このように、
やっぱり処理速度は遅いよりも早い方がいい。

遅い高級言語よりも、早い低級言語のほうがいいわけです。

 

しかし!!!

だからといって、
いきなり背伸びして、
難しい低級言語から学ぶ必要はありません。

 

低級言語から入って挫折して、道を閉ざしてしまうよりかは、
高級言語で挫折せずにプログラムを学ぶほうがよいです。

 

 

おっと、大事なことを言いました。

もう一回言っときましょう。

 

低級言語から入って挫折して、道を閉ざしてしまうよりかは、
高級言語で挫折せずにプログラムを学ぶほうがよいです。

 

 

一成れば、一切成る。

という言葉があります。

 

Done is better than Perfect.
(完璧より、完了。)

という言葉もあります。

 

カンタンな言語でいいから一つの言語を「完了」させてしまって、
何か創ってみたり、他の言語に展開していったりするほうが絶対におすすめです。

 

 

 

「ゴタクはええからオススメ言語教えろ!」

という声が聞こえてきそうです。

みていきましょう。
具体的には、どんな言語があるのでしょうか?

 

2020年現在なんと、313の言語があるそうです。(wikipedia「プログラミング言語一覧」より)

どひゃーーー!!!

こ、国連加盟国(193ヶ国)よりも断然多い!

 

プログラムの世界は、地球よりも広かった…。(うまいこと言った!)

 

 

もちろんこれら全てをマスターする必要は、ありません。

1つか2つだけ、完全に自由に書けるようにして、
たまに使うような言語は、Googleと二人三脚で書ければ大丈夫です。

1つマスターすれば他の言語を読んでも、
基本文法とか、何をやってるかとか、だいたいわかるようになりますから。

 

 

文法として、共通のフレーズが使われていたりしますしね(後日お話しますが、if文とかfor文とか)。

313全ては列挙できませんが、有名ドコロを「完全主観」でご紹介しようかと思います。

勝手に4グループに分けました。

 

Web系、組み込み系、Apple系、データサイエンス系です。

やりたいことに合わせて、選んでいただければ、
素敵な未来とマッチングするはずです。

何もやりたいことがない場合は…、
どの言語が初心者にとってベストっぽいか考えながら、読んでみてください。

 

Web系言語

Webサイト全体を構築する。
HTML、CSSとセットで使われることが多い。
(HTML、CSSはデザイン言語であり、プログラム言語ではない。)

・JavaScript(じゃばすくりぷと)

JSとも書く。じぇーえすとも言う。

決して「じゃば」と略してはいけない。

決して「じゃば」と略してはいけない!!(今回のジョークの伏線)

 

歴史ある言語で、結構しぶとく生き残っている。
使っている人が多いから。
多分これからも絶滅しなさそう。

 

・PHP(ぴーえいちぴー)

PHPを書く人を、
PHP + erということで、PHPer(ぺちぱー)と呼ぶ。
ユーザーはJavaScriptよりもちょっと少ないかな?

 

・Ruby(るびー)

Ruby on Railsというフレームワークが有名。
「設定より規約」という逆転の発想に、中級者は面喰らう。
しかし、コレを使えば、
一瞬でwebアプリケーションがつくれてしまうという、効率MAXな言語。

 

 

 

組み込み系言語

Web系と違って、
電子レンジとか洗濯機とかに「組み込まれて」使われることが多いやつら。

・C言語(しーげんご)

プログラミング界のイエス・キリスト
ポインタあたりで挫折する人多し。

進化系にC++(しーぷらぷら)、C#(しーしゃーぷ)がある。
CからC++、C++からC#と、「+」の数が2個ずつ増えているというテキトーな命名
低級言語代表。
malloc()とか使えるようになると、本格派。

 

 

・Java(じゃば)

Cの生まれ変わり。
Web系としても使える万能プレイヤー。
ただし動作速度は早くないので、ゲームはコレではつくらない。
音ゲーとかレーシングゲーとか作ると、クレーム殺到するはず。

【重要】JavaScriptと間違われると激怒する。

 

 

 

 

Apple系言語

iOSのアプリを作りたい場合なんかはこれで書く。
いずれもC言語が親。

appleのPCでしかプログラミングできない。

 

・Objective-C(おぶじぇくてぃぶ しー)

旧Apple系。
かつてiOSのアプリはこれで作られていたが、今も残っている模様。

 

・Swift(すうぃふと)

新Apple系。
Apple的には、Objective-Cから乗り換えさせたい様子だが…。

 

 

データサイエンス系言語

統計処理の扱いに強い。
そのため、
ビッグデータ、機械学習、ディープラーニング、AI関連の現場で使われる。

・R(あーる)

データの可視化に強く、研究向き。
超絶便利な電卓

 

・Python(ぱいそん)

爆裂人気の言語。

使用者数が多いため、
ライブラリ(≒便利グッズ)を作っている人が多く、
困ったときは、ググれば大抵なんでも出てくる。

至れり尽くせり。
個人的、高級言語代表

 

 

 

 

 

以上が有名言語です。

「これががいいかなー」っていうの、ありましたか?

であれば、
その言語の名前を覚えて、今すぐ本屋へ行ってパラパラめくってみてください。
今すぐ、その言語が使えるスクールをみてみてください。(この記事からだと嬉しいです)

勢いのあるうちに行動しないと、火が消えますからね。

 

ちなみに…。

かつては、
「低級言語で、様々な言語の生みの親」なC言語が入門言語でした。

では、
、プログラミングをゼロから学ぶならどれが良いと思いますか?

 

ポイントは繰り返しお伝えしてきた

「一つの言語を学べば他も大体わかるので、まず一つをマスターする」

という点です。

一成れば、一切成るの発想ですね。

 

答えは….

 

 

次回!

次回予告

日本が世界に誇る天才がいます。

人工知能、自然言語処理の研究のため、
イェール大学→カーネギーメロン大学と渡って研究されていた方です。

そんな天才のインタビューを読み解けば、

今学ぶべきプログラミング言語として、●●が最強であることがわかるはずです。

第4講:初心者が選ぶべきプログラミング言語はダントツでこれ
Pythonがオススメな理由は、 <1> 技術の進化による処理速度の高速化 <2> 衆知が利用できる <3> データを扱える人間の価値が高まっているからです。 YouTube, InstagramもPythonを利用していますよ! *** ...

 

 

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

「JavaとJavaScriptが同じ」と言うのは、

「ハムとハムスターが同じ」と言ってるようなものだ。

 

 

お前誰やねん?シリーズ

(つづき)

高校では、ガチ目な憧れのダンス部に入りました。

独学で「事前学習」していた私は、仮入部の時点で
ダンス部専用体育館が沸いてしまうほど上手かったです。笑

普通は全く何も知らない状態でダンス部入るんですよね、みんな。

そこで倒立はできるし、ウインドミル(2年生でも出来ない人いる)はできる、
そんな1年生が入ったらもー、JK達きゃーきゃーです。w

そうなるともう毎日、む〜ちゃくちゃ楽しかったです。

だって毎日2時間も、ピチピチJKsに囲まれてダンスができるから!笑

 

 

 

 

 

…とか言ってますが、結構ガチな部活で、もう戻りたくないほど大変でした。

夏休みなんか、8時から8時まで練習です。笑

なんで、こんなに練習できたかというと、
優秀なコーチがいたからなんです。

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

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


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

(続く)

 

 

次の講座へ

第4講:初心者が選ぶべきプログラミング言語はダントツでこれ
Pythonがオススメな理由は、 <1> 技術の進化による処理速度の高速化 <2> 衆知が利用できる <3> データを扱える人間の価値が高まっているからです。 YouTube, InstagramもPythonを利用していますよ! *** ...