プログラミング言語は、時代の後押しもあり、学びやすいものから学ぶのが鉄則です。
「一成れば、一切成る」なので、まず一つをマスターすれば、他もわかってくるからです。
「その最初の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言語が入門言語でした。
では、
今、プログラミングをゼロから学ぶならどれが良いと思いますか?
ポイントは繰り返しお伝えしてきた
「一つの言語を学べば他も大体わかるので、まず一つをマスターする」
という点です。
一成れば、一切成るの発想ですね。
答えは….
次回!
次回予告
日本が世界に誇る天才がいます。
人工知能、自然言語処理の研究のため、
イェール大学→カーネギーメロン大学と渡って研究されていた方です。
そんな天才のインタビューを読み解けば、
今学ぶべきプログラミング言語として、●●が最強であることがわかるはずです。
おまけ1:今日のエンジニアジョーク
「JavaとJavaScriptが同じ」と言うのは、
「ハムとハムスターが同じ」と言ってるようなものだ。
お前誰やねん?シリーズ
(つづき)
高校では、ガチ目な憧れのダンス部に入りました。
独学で「事前学習」していた私は、仮入部の時点で
ダンス部専用体育館が沸いてしまうほど上手かったです。笑
普通は全く何も知らない状態でダンス部入るんですよね、みんな。
そこで倒立はできるし、ウインドミル(2年生でも出来ない人いる)はできる、
そんな1年生が入ったらもー、JK達きゃーきゃーです。w
そうなるともう毎日、む〜ちゃくちゃ楽しかったです。
だって毎日2時間も、ピチピチJKsに囲まれてダンスができるから!笑
…とか言ってますが、結構ガチな部活で、もう戻りたくないほど大変でした。
夏休みなんか、8時から8時まで練習です。笑
なんで、こんなに練習できたかというと、
優秀なコーチがいたからなんです。
そのコーチのおかげで、
うちの部活は、日本トップレベル・世界大会レベルまで引っ張り上げていただくことができました。
この経験で、学んだことがあります。
独学で苦労した時期があったからこそ、ハッキリわかったんですが…。
(続く)
次の講座へ