Special
» 2019年10月16日 10時00分 公開

プログラミング言語で「会話」ってできるんですか? 女子大生、多すぎるプログラミング言語に困惑

たくさんプログラミング言語が喋れたらバイリンガルじゃん!

[中山彩歌,PR/ねとらぼ]
PR
女子大生、はじめてのプログラミングを学ぶ

前回までのおさらい

 プログラミングの「プ」の字も知らないし、書いたこともない。挙句の果てには、「デスマーチ」をプログラミング用語だと勘違いする、とんちんかんな女子大生。そんな彼女のもとにやってきたのは、超おおらかなエンジニアの舘さん。今回は初心者がつまづきがちな「プログラミング言語の種類の多さ」について、引き続きゆる〜〜く教えてもらいました。

中山彩歌

女子大生、はじめてのプログラミングを学ぶ

IT企業で働く父を持つ大学1年生。ねとらぼ連載「女子高生、『はじめてのパソコン』を買う」でITリテラシーがあんまり高くないことが判明し、おとぼけ回答を連発。その実績(?)を買われて今回の生徒役に抜擢された。もちろんプログラミングの知識はゼロ。


舘勇紀

女子大生、はじめてのプログラミングを学ぶ

大手電機メーカーでキャリアを培い、現在はフリーランスのエンジニアとして活躍。Webアプリの開発などを行うほか、プログラミングのオンラインレッスン「CodeCamp」の講師も務める。二児の父で初心者にもていねいに伝えるレッスンに定評がある。


プログラムとオルゴールは要するに同じメカニズム

 なんとなくプログラミングというものが、薄く、淡く、かすかに分かってきたが、いまいち抽象的過ぎて理解が追いついていない。舘先生、今日もよろしくお願いします!


女子大生、はじめてのプログラミングを学ぶ

そもそも、プログラミングが登場したのっていつ頃なんですか?


女子大生、はじめてのプログラミングを学ぶ

1960年頃には今のプログラミング言語に近いものができてきましたね。昔のコンピューターって総重量30トンくらいある、化け物レベルの重さだったんですよ。


女子大生、はじめてのプログラミングを学ぶ

さ、30トン? 象何頭分……?


女子大生、はじめてのプログラミングを学ぶ

すごいよね(笑)。一番原始的なプログラムで言うと1800年代には作られているんです。それは「パンチカード」という紙に穴を開けて情報を記録するもので……。


女子大生、はじめてのプログラミングを学ぶ

紙に穴? それがプログラミングなんですか???


女子大生、はじめてのプログラミングを学ぶ

あっ、また難しい話をしちゃった。そうだ、オルゴールってポチポチがついていて、それがピンをはじくと音が鳴ってメロディーが流れ出す仕組みですよね。あんな感じの仕組みです。


女子大生、はじめてのプログラミングを学ぶ

オルゴールもプログラミングと関係してるんですか? 似ても似つかないじゃないですか!


女子大生、はじめてのプログラミングを学ぶ

してるんですよそれが。昔のコンピュータはオルゴールの仕組みによく似ていて、紙に穴を開けて、その穴が開いているところの位置で機械を制御していたんです。


女子大生、はじめてのプログラミングを学ぶ

んんん? 穴が開いてるだけで機械が動く???


女子大生、はじめてのプログラミングを学ぶ

オルゴールも、突起の位置が少しずれるだけで、違う音が流れたり、テンポが早くなったりするわけです。少しのずれで正しく音楽が流れなくなるでしょ。


女子大生、はじめてのプログラミングを学ぶ

ふむふむ。


女子大生、はじめてのプログラミングを学ぶ

それと同様今のプログラミングも、書き方を間違えると機能しません。それを突起や穴ではなく、プログラミング言語で書いたのが現代のプログラミングってこと。


女子大生、はじめてのプログラミングを学ぶ

おお、なるほど! イメージ湧きました! オルゴールと一緒って結構原始的なんだなー、プログラミング!


女子大生、はじめてのプログラミングを学ぶ

そうそう。オルゴールはあくまで例えなんだけど、原理としてはそれと同じなんです。


女子大生、はじめてのプログラミングを学ぶ オルゴールで考えたらちょっと分かったかも!

TwitterがRubyからJavaに移ったのってなぜですか?


女子大生、はじめてのプログラミングを学ぶ

オルゴールって言われたらなんとなく分かるんですけど、プログラミング言語ってなんか超たくさん種類がありますよね。


女子大生、はじめてのプログラミングを学ぶ

そうですね。


女子大生、はじめてのプログラミングを学ぶ

それが分かんないんですよ。何が違うんだか分からないし。


女子大生、はじめてのプログラミングを学ぶ

なるほど。彩歌さんって、Twitterやってますか?


女子大生、はじめてのプログラミングを学ぶ

やってますよ。なんなら毎日いじってるくらいなんで。


女子大生、はじめてのプログラミングを学ぶ

Twitterって、今や世界的な大きな会社になっているんですけど、会社を起こした当初は日本人のまつもとゆきひろさんが創ったRubyってプログラミング言語を使ってたんです。今は違う言語に変わってるんですが、当時日本のプログラマーの間だと結構話題になって。


女子大生、はじめてのプログラミングを学ぶ

へー。るびーっていうのは聞いたことないですけど、じゃば? っていうのは聞いたことありますよ。もちろん、意味は分かってないですけど。


女子大生、はじめてのプログラミングを学ぶ

お! まさにTwitter社が、Rubyから乗り換えた言語が、Javaですよ!


女子大生、はじめてのプログラミングを学ぶ

えっそうなんですか!? やるじゃんあたし!


女子大生、はじめてのプログラミングを学ぶ

よりTwitterの目的に合う言語を、と考えてRubyからJavaに変えたみたいですね。


女子大生、はじめてのプログラミングを学ぶ とにかくRubyっていう言語とJavaっていう言語があるらしいっす!(精一杯の理解)

女子大生、はじめてのプログラミングを学ぶ

へーー。言語が変わるだけで何か大きく変わるもんなんですか?


女子大生、はじめてのプログラミングを学ぶ

けっこう変わります。例えば性能。今、Twitterを使っていてストレスを感じたことはありませんが、昔は投稿や検索をするのに時間がかかったりしてたんです。ユーザーにもっと便利なサービスを提供したいっていう思いで変えたんでしょうけど。


女子大生、はじめてのプログラミングを学ぶ

ほうほう。いいことじゃないですか、ユーザー思いで。


女子大生、はじめてのプログラミングを学ぶ

ただ、言語の乗り換えってまずやらないんです。お金もかかるし人手も必要になってくるしで、色々大変なんですよ。


女子大生、はじめてのプログラミングを学ぶ

そこまでの犠牲をはらってでも手に入れたい何かがあったんですか?


女子大生、はじめてのプログラミングを学ぶ

まさにそうですね。それが今日の本題。プログラミングって言語ごとに長所短所があるんです。


女子大生、はじめてのプログラミングを学ぶ

おっと、本格的な話になってきた……。


女子大生、はじめてのプログラミングを学ぶ 難しい話が始まったぞ……

女子大生、はじめてのプログラミングを学ぶ

Javaってプログラミング言語が、一番支持されている最大の理由が、どんなハードウェア上でも動くことです。


女子大生、はじめてのプログラミングを学ぶ

え、動かないこともあるんですか。……もしかしてですけど、MacとWindowsもプログラミング言語が違ったりします?


女子大生、はじめてのプログラミングを学ぶ

もちろん、違いますよ。


女子大生、はじめてのプログラミングを学ぶ

ええーー、言語多すぎでこんがらがるぅ!


女子大生、はじめてのプログラミングを学ぶ

そう思いますよね? だから共通で動いてくれるJavaに、エンジニアは飛びついたんですよ。


女子大生、はじめてのプログラミングを学ぶ

なら、もうJavaだけ覚えていれば何とかなりそうですね。


女子大生、はじめてのプログラミングを学ぶ

ただ、どのハードウェアでも動く反面、プログラムのスピードが遅いっていう短所もあるんです。速さが求められる場合は、違う言語を使う、とかそういう感じ。


女子大生、はじめてのプログラミングを学ぶ

え、でもTwitterはそのJavaに変わったんですよね。Twitterを使ってて、遅いって感じたこと一度もありませんよ?


女子大生、はじめてのプログラミングを学ぶ

Twitterはね、使われている言語は確かにJavaですけど、速くなるように、相当プログラマー達が頑張っているんです。「言語の性質+プログラムの組み方=そのプログラムの性能」になるわけです。だから慣れていないプログラマーが作るとおそらく遅くなりますよ。


女子大生、はじめてのプログラミングを学ぶ

ははーん、そこがプログラマーの腕の見せ所ってわけですか。


プログラミングで稼ぐ人の最大時給って……え! そんなにも!?


女子大生、はじめてのプログラミングを学ぶ

ちなみにプログラムって、言語ごとに定められたルールに従って書く作業だから、かなり“カッチリした人”の傾向が高いかな。それとは逆に、フラフラするきまぐれなタイプの人は少ない気がします。


女子大生、はじめてのプログラミングを学ぶ

へぇ、理系っぽいですねやっぱり。


女子大生、はじめてのプログラミングを学ぶ

もちろん個人差はありますけどね。ちなみに彩歌さんはどちらです?


女子大生、はじめてのプログラミングを学ぶ

完全に後者です!


女子大生、はじめてのプログラミングを学ぶ

連載終了になってしまう(笑)。


女子大生、はじめてのプログラミングを学ぶ

でもどちらかと言えばなんで(笑)。それよりも気になっていることがあるんですが、プログラマーのお給料っていくらくらいなんです?


女子大生、はじめてのプログラミングを学ぶ

ピンキリだけど、安くて時給2000円程度。優秀な人だと8000円以上もふつうにありますよ。


女子大生、はじめてのプログラミングを学ぶ

え、たっか!!


女子大生、はじめてのプログラミングを学ぶ

そこまでいかなくてもそこそこの腕になれば、5〜6000円は余裕です。


女子大生、はじめてのプログラミングを学ぶ

ひょえーーーーーー!


女子大生、はじめてのプログラミングを学ぶ プログラミングってすげー!

女子大生、はじめてのプログラミングを学ぶ

国の統計だとプログラマーの人手不足は現状でも数十万人にも及ぶらしいんで、身につけておくスキルとして狙い目ですよ。特に若者は大歓迎ですし、パソコン1台でできるので副業にも向いてます。どうです、彩歌さん?


女子大生、はじめてのプログラミングを学ぶ

ううむ、プログラマーも視野に入れるかー。


本音を聞かせて! 舘さんはどうしてプログラマーになったんですか?


女子大生、はじめてのプログラミングを学ぶ

そもそもなんですが、舘さんはどうしてプログラマーになったんですか? 相当なきっかけがない限り、「プログラマーになろう!」なんて思わないのかなーと。


女子大生、はじめてのプログラミングを学ぶ

中学生の頃に学校にパソコンが導入されたんですよ。当時、男子は興味津々で、「こんな世界があるんだ!」って思ってプログラミングに興味を持ち始めたんです。


女子大生、はじめてのプログラミングを学ぶ

ひょえー、あたしは高校までパソコン持ってなかったのに。


女子大生、はじめてのプログラミングを学ぶ

中学生のとき、BASICってプログラミング言語を使って、クラスメイトとゲームを作ったんです。今みたいに凝ったゲームじゃなくて、もっとすごく単純なものですけど。


女子大生、はじめてのプログラミングを学ぶ

中学生男子が好きそうな遊びですねー、なんか想像つきます。


女子大生、はじめてのプログラミングを学ぶ 男子ってゲームとか好きだもんねー(ちなみにあたしはファミコンも見たことないです)

女子大生、はじめてのプログラミングを学ぶ

そのときすごくワクワクしたのが私の原体験ですね。今でも鮮明に覚えています。


女子大生、はじめてのプログラミングを学ぶ

その経験がなかったら今は違う職についていたかも?


女子大生、はじめてのプログラミングを学ぶ

ですね。あの当時、パソコンが私に与えた影響はとても大きかったです。だから今もプログラミングに関する仕事もしていれば、自分でプログラミングを書くこともあるくらい。


女子大生、はじめてのプログラミングを学ぶ

今はインターネットが普及しすぎて、そこまで影響力を感じないのは、やっぱりあたしも現代っ子なんだな。


女子大生、はじめてのプログラミングを学ぶ

それですよ。今や、小学生もスマホ1台与えられる世の中になっているんで、プログラミングを勉強する価値とか新鮮さは見えづらくなっている気はしますね。


女子大生、はじめてのプログラミングを学ぶ

確かに……。公園に来てる小学生たちが無言でスマホの画面を見ている光景とかを見ると、「いや、ならわざわざ集まらなくてもよくない?」とか思っちゃいます。


女子大生、はじめてのプログラミングを学ぶ

2020年から、小学校でプログラミングに関する授業も始まりますけど、そういう部分も教えてほしいですね。プログラミングって便利で楽しいものですから。


プログラミング言語で会話ってできるんですか?


女子大生、はじめてのプログラミングを学ぶ

ところで「プログラミング言語」って言語って言ってますけど、会話とかできるんですか?


女子大生、はじめてのプログラミングを学ぶ

か、会話?


女子大生、はじめてのプログラミングを学ぶ

例えば、「今日の昼飯どうするー?」「じゃあ今日は寿司にするか!」的な感じで。


女子大生、はじめてのプログラミングを学ぶ

それは無理があるかな(笑)。言語と言っても全体像とか完成図がある上でそれを組み上げていくパズルのピースみたいなものなので。


女子大生、はじめてのプログラミングを学ぶ

なんだー。言語と言われると、文系だとどうしても「言葉」のイメージがありまして。


女子大生、はじめてのプログラミングを学ぶ

意味合い的には、数式が近いかな。旅行のプランを立てるときに、「何時」「飛行機」「アメリカ」に行くとか、そういうことを決めるためのものって感じです。


女子大生、はじめてのプログラミングを学ぶ

うーむ、日常会話みたいに言語として話せたら面白いのに。


女子大生、はじめてのプログラミングを学ぶ

発想は面白いですけどね(笑)。ちなみにプログラミング言語で使うのは、ifとかcatchとかの中学レベルの英語なので慣れてしまえばそんなに難しくはないですよ。


女子大生、はじめてのプログラミングを学ぶ

へー。英語だと単語、熟語、文法とかを学びますけどプログラミング言語だと何を勉強すればいいんですか?


女子大生、はじめてのプログラミングを学ぶ

どのプログラミング言語もまず覚えるのは文法ですね。何を作るかによって使う言語が変わりますけど基本は文法。


女子大生、はじめてのプログラミングを学ぶ

言語って何種類くらいあるんですか?


女子大生、はじめてのプログラミングを学ぶ

いくつだろう……。Webページを書くための言語がHTMLやCSS、AndroidはJava、iOSはswift……50とか100とかあるかもしれないです。


女子大生、はじめてのプログラミングを学ぶ

うわー言語量が半端ないな。舘さんは何言語使えるんですか?


女子大生、はじめてのプログラミングを学ぶ

数えたことなかったなあ。まあ10言語はできますかね。


女子大生、はじめてのプログラミングを学ぶ

え、うわ、10カ国語喋れるのと同じですよね。ちょーバイリンガル(※)じゃないですか舘さん!

(※編注 バイリンガルは「2言語」なので正しくは「マルチリンガル」ですね)

女子大生、はじめてのプログラミングを学ぶ

そうかな(笑)。といっても、言語によってはパターンが似ているので、1つ覚えると同じ感覚でさくさく覚えられますよ。


女子大生、はじめてのプログラミングを学ぶ

それでもリスペクトだな〜。やっぱり多い方がすごいんですか? 俺は10言語できるぜ、的な?


女子大生、はじめてのプログラミングを学ぶ

いやぁ、それは場合によりけりで例えばゲーム業界は全くの逆ですよ。1言語をペラペラになる勢いで極める方が伝説のプログラマーみたいになったりしますし。隅々まで知っている人とそうでない人とでは、できる内容が違うので。


女子大生、はじめてのプログラミングを学ぶ

へーー。じゃあこの世で一番使われているプログラミング言語って何なんです?


女子大生、はじめてのプログラミングを学ぶ

あ、それはもうC言語が圧倒的に多いです。歴史が長くてさまざまなところで使われているので。


女子大生、はじめてのプログラミングを学ぶ

ほう、しぃーげんごなんですね〜(よく分かってない)。


女子大生、はじめてのプログラミングを学ぶ

そうなんです(よく分かってないな)。


女子大生、はじめてのプログラミングを学ぶ よく分かってなくてすいません

結局どれから学べばいいの?


女子大生、はじめてのプログラミングを学ぶ

いろいろ教えてもらったんですけど、結局あたしは何から学ぶのがいいんですかね〜。


女子大生、はじめてのプログラミングを学ぶ

そうですねえ、まずは彩歌さんがなじみのあるものから入るのがいいかもしれません。


女子大生、はじめてのプログラミングを学ぶ

ホームページを作るのもプログラミング言語ですか?


女子大生、はじめてのプログラミングを学ぶ

お、それはHTMLというプログラミング言語ですよ!


女子大生、はじめてのプログラミングを学ぶ

そうなのか! 前にわけのわかんない文字列をカタカタいじってサイトの更新してるところを見たことがありますよ。


女子大生、はじめてのプログラミングを学ぶ

じゃあ次はHTMLで彩歌さんの簡単なホームページのようなものを作ってみましょうか。実際に形になるところを見たほうが理解しやすいと思うので。


女子大生、はじめてのプログラミングを学ぶ

いよいよプログラミングが始まるのか……。


女子大生、はじめてのプログラミングを学ぶ

今回は結構多くのことを学んでもらったかと思いますが、どうです、プログラミングに対して興味の度合いは。学ぶ前をゼロだとしたら、今は何点になりましたか?


女子大生、はじめてのプログラミングを学ぶ

100点満点中ですか?


女子大生、はじめてのプログラミングを学ぶ

そうです。正直に、辛口で構いませんよ。


女子大生、はじめてのプログラミングを学ぶ

うーーーん、12点!


女子大生、はじめてのプログラミングを学ぶ

だいぶ上がった! ……と思っていいのかな?(笑)


女子大生、はじめてのプログラミングを学ぶ でも舘さんと話すのは楽しかったですよ!

今回の「女子大生から一言!」

女子大生、はじめてのプログラミングを学ぶ

 今やっと「よいこらしょ」と腰を上げた程度の理解でしょうか。前回は、何も見えなかったプログラミングのイメージが、やっと薄く見えてきた気がします。

 と言っても、まだプログラムを書けるわけではないしパターンも文法もさっぱり。おそらく、プログラミングの0.4割程度しかまだ理解し切れていないと思うので、それはこれからですね。この先、長い旅になると思いますが、ちょっとだけお付き合い願います(笑)。


次回予告

まだまだプログラミングがどういうものか分かったような分からないような状態の女子大生。もう実際に触ってみたほうが早い(かも)! ということで次回ははじめてのホームページ作りにチャレンジします。

Copyright © ITmedia, Inc. All Rights Reserved.


提供:Sky株式会社
アイティメディア営業企画/制作:ねとらぼ編集部/掲載内容有効期限:2019年10月22日