(第23回)「プログラミングやりたくない!」〜下から目線のコーディング武者修行〜
〜最初の言語はRubyにする?Pythonにする? 初心者にオススメの言語は◯◯!の巻〜
「プログラミング言語はどれを学習しようか?」
Ruby? Python? それともJavaScript?
どれも「初心者にオススメ!」と言われるものですが、実はもっと初心者向きの言語がありました。
日本語です。
「日本語って、プログラミング言語じゃないじゃん!」
と思いがち。たしかに「日本語で命令」しても、コンピュータは動きません。
でもちょっと考え方を変えてみると、そもそもプログラムは、”sequence of instructions”のことだそうです(Charles Severance師匠いわく)。「やることを順番に並べたもの」の意味。
「やることを順番に並べたもの」であれば、別に日本語で書いてあっても問題なし。現に、「料理のレシピ」とか「洗濯機の使い方」だって、みんな「やることを順番に並べたもの」という意味では立派なプログラム。
ということは、「やることを順番に並べたもの」であれば、別に日本語でもOKなはず。
もっというと、「やることを順番に並べたもの」が明快な日本語で書いてあれば、それをプログラミング言語で「書き直す」(or翻訳)するのはさしてムツカシクないはず。
実際、コンピュータはキカイ(モノ)なので、そこの部分は動かせない。となると、キカイの上で実行するプログラミング言語はどれもある程度似たり寄ったりに。
なので、あんまり馴染みのないプログラミング言語をどうした、というより、「日本語でキチンと手順を整理して書く」方が、初心者的には良いのではないのかと思ったり。
知ったようなことを言ってきましたが、「日本語でプログラムしてみる」という考え方は、実のところ山本貴光さんの『世界が変わるプログラム入門』から教わったのでした(^∇^)。
(山本貴光、『世界が変わるプログラム入門』、ちくまプリマー新書、2015年)
「プログラミングやろうかな、やらないかな」と『関白宣言』(©︎さだまさし)ばりに考えてたところだったので、「日本語でプログラムすればよい」という発想に目からウロコ。
これだー!と思ってイキオイこんで新書を手に取ったものの、一冊読み切るのに丸々1ヶ月以上かかってしまう…。゚(゚´Д`゚)゚。
「日本語しか使わないのに、なんでこんなに”プログラミング”って大変なんだろう?」
とシミジミすることしばし。
爾来幾星霜(*ウソ、実質丸2年)、今の今になって思い返すと思い返すと、プログラミングがメンドイ理由について閃くものが。
コンピュータは「省略しない」が、ニンゲンは「省略する」
プログラミングをやって誰しも感じるのが、「コンピュータの融通のきかなさ」。
コンピュータさんは、「てきとー」とか「だいたい」とか「なんとなく」が一切わからないので、ぜんぶをいちいち指定してあげなくてはいけない。
指定だけならまだしも、ちょっとした打ち間違いでもすぐにストップ。最初の頃、CSSで「;(semicolon)の打ち忘れ」に気づくのに何時間かかったかなぁ…(遠い目)
なにかと融通が効かないコンピュータさんに対して、ニンゲンはとにかく「色んな手順を省略できる」のが大きな強み。
自転車だって、最初は転んだりヨロヨロしながら練習を重ね、脳みそにバランス感がインプットされると、スイスイと走っていけるように。
練習する
↓
やり方を覚える
↓
考えなくてもできるようになる
というのが、ニンゲンの大きなスキルなんじゃないかと。
ところがコレ、さっきのコンピュータさんに向き合うと、
「日常生活では考えてない手順を思い出さないといけない」
ハメに。これが困る。
例えば「お風呂に入る」なんていうのも、考えてみれば色んな手順を踏んでいるけれども、ふだんは全然意識しない。
前に芥川龍之介の書簡集を読んでたら
「風呂に入るのは簡単だが、風呂に入るところを文章にしようとすると、これがなかなか難しい」
というくだりがありました。「たしかに!」と納得したので、よく覚えてます。
「プログラミングが難しい」と感じるのは、こういう
「日常生活では意識せずにやっていること」を「いちいち手順としてコンピュータに教えてあげなくてはいけない」
ことにあるんじゃないでしょうか。
もちろん、コンピュータさんは「単純作業」の「繰り返し」と「記憶すること」が何より得意なので、
いちど手順を決めてあげれば、あとは何度でもやってくれる
のが強みではあるんですが…
あとは日本語(母語)でプログラムするにしても、
「誰が」「何を」「どうした」
という、いわゆる「5W1H」を網羅しておく必要があるので、これも人によってはムツカシイと感じる一因かも…
とかくコンピュータさんは、ニンゲンとやることなすこと正反対なので、せめて導入くらいは「日本語でプログラム」するのがよいのではと思ったり。
自分ではやったことないですが、
自分の書いた「日本語プログラム」を、誰かに「プログラム言語として書き直してもらう」
経験をすると、きっと得られるもの多そう。
Before/Afterじゃないけど、「こうなるんだ!」というお手本があったら、グン!と上達が早まる気が。
ーーと、以上のようなことを考えたので、「日本語でもプログラムできる」けれど、それがムツカシイと感じるのは「日常生活で無意識にやってる手順を意識するから」なのではと思ったのでした( ´ ▽ ` )ノ
この記事が気に入ったらサポートをしてみませんか?