もんが(なるーらぼ)

個人でプログラミングの学習サイト「なるーらぼ」を運営しています。
https://nalu-labo.amebaownd.com
PowerShell入門の電子書籍2冊も出版しています。
http://www.amazon.co.jp/dp/B017LJOCJ2

記事一覧(125)

プログラミングを勉強して、どんないいことがあるか一言で言える?

こんにちは!なるーらぼです。長らく更新をしておりませんでしたが、相変わらず息子へのScratch講座などは続けております。今回はなぜプログラミングを学ぶのか、という漠然としたことについて考えてみたことをお話しします。なぜ、プログラミングなのかつい先日、妻に聞かれて即答できなかったのが悔しい限りなのですが、みなさんは即答できますか?「プログラミングを勉強して、どんないいことがあるか一言で言える?」ここでいう「プログラミング」が何を指しているのかわかりませんし、「いいこと」についての定義も唐突でしたので文脈からの判断がつきませんでした。そこで、悩んだ末に「いろんな選択肢、可能性が広がる」と答えました。一応、妻は「あー、なるほどね」と言ってくれましたが納得している様子はありません。続けて妻が質問してきました。「何かピンポイントに、わかりやすい事例がある?」「例えば、そろばんなら頭がよくなる、とか。音楽なら情操教育にいい、とか」ああ、そういう話か…と思いましたが続けて考えてみることにしました。しかし、答えはありませんでした。ストレートにそう答えました。プログラミングした結果として、そろばんのように計算をすることもできますしプログラミング自体に計算、数学の要素を含むので包含したかたちになると考えられます。それに音楽も音を制御するプログラムをつくることになればもちろん包含してしまいます。書道や硬筆についても手書きアプリをつくれば包含してしまいますし、センサーを使えば身体を動かすこともできますよね…そうなると「これ」というものがないのではないかという話になってしまいました。得意分野を決めるものプログラミングにおいて、得意分野を決めるのは現実世界のどんな分野を記述するのにどのプログラミング言語が向いているかというだけにすぎません。元々は教育用に開発されたPythonもいまでは数学分野、統計、金融でも利用されますし、ウェブサービスもつくることができます。Linuxなどでは画面アプリケーションに利用されていますしソフトウェアの拡張機能としても利用されています。しかし音楽やアニメーションにはあまり使われていない印象を受けます。音楽では専門のプログラミング言語Maxがありますし、このサイトでも入門講座で公開していますSonic Pi(あれはrubyですけどね)もあります。アニメーションでは長らくFlash(ActionScript)が利用されてきました。もちろんそのほかのモノでも利用することができます。これはプログラミング言語とそれを取り巻く環境、エコシステムがどんなものがあるかによって決まる気がします。ですから、ピンポイントとなると特定のプログラミング言語といった環境に依存することになってしまいます。どの時点の勉強について話をしているかわかりませんが、小学生くらいだとするとScratchかな?となります。Scratchは科学技術計算などには向いていないでしょうが、ゲームやアニメーション、音楽をつくることはできます。さらにリミックス機能がありますし、そのコードは公開するとオープンになります。「これ」といったものを考えると、時期や用途によってさまざまな選択肢があります。妻が考えたことこの後、よくよく話を聞いてみると何かの雑誌かニュースを観たのでしょう。こういうことがあったので聞いてくれたようです。WordやExcelなどのように仕事で必要なら学ばなくても使えるようになるよね将来的にはプログラミングはできて当たり前になるのかなできて当たり前の社会では、プログラミングは何につかうようになるの?いま(こどものうちに)習っておいても英語と同じで活用しないと意味がないよね仕事で役に立つの?Scratchを仕事でつかうイメージないけど仕事で使わないのに(つまり役に立ちそうもないのに)習う理由はなんなの?それに、こどものうちから習うことが発達に良い影響を及ぼすのであれば、その根拠があるといいよねということでした。非常に素朴な疑問でありました。確かに、何に使うのか、どんなことに利用できるのか、そしてそのことを説明される妻のような方に、しかもその人が理解できる言葉で語らなければ納得感はありません。世界に通用する人材の育成が云々という話もありますが、じゃあ具体的にわたしの生活はどう変わるのよ?ということですね。大人が(あるいはプログラミングを既になんらか経験している方が)プログラミングを勉強しようとする方へすべきこと、できることは、だれかの質問に答えたり、読めない英語のサイトを日本語にしたり、「○歩動かす」のブロックがどこにあるかを教えてあげるなどです。それ以外には具体的な実例を示すことができるように自分の意見(プログラム)を持つべきです。そのためには、身の回りにあるちょっとしたことをもっともっとプログラムとして作成してコードを公開するべきなのではないかと感じたのでした。あっ、でもお仕事で書いたものはダメですよ…例えば…音楽を再生するプログラムでもいいでしょうし、テキストを入力するものでもいいでしょう。もちろん、「それ○○でできるよ」という言葉にめげてはいけません!以前からScratchからテキストベースのプログラミング言語へのジャンプを、大学などの研究機関(ハーバード大とかですかね)がどうやっているのか不思議だったので、調べてみたほうがいいかもしれません。大学生なのでスムースに移行できるんでしょうかね。また、プログラミング言語が英語主体なので大丈夫なのかな?日本語だと「なでしこ」のほうがスムースなのか、など実験してみないとわかりませんね。今回の件について、わたしの回答は学ぶひとに対してより多くの選択肢、可能性を示すことができるであり、その実証のためには既にできるひとがコードを添えて実例を示せばいいでした。あとは、よりたくさんのユーザーと会話できるために日本語と英語かな…

仕事でなくても大人がプログラミングを学ぶべき理由がある

こんにちは!なるーらぼです!相変わらず土曜日の午前中に息子へScratchでプログラミングを教えていますが、今回もまた所感をまとめてみたいと思います。大人が学ぶべき3つの理由いまのところ子供がプログラミングを学ぶ理由としてよくあるのは次のうちのどれかではないかと思っています。授業の一環として子供の興味、趣味で習い事として授業では図工などのひとつになるのだと推測するのですが、息子に聞くとパソコンの授業も時折あるそうで、ここは各学校の裁量に任せられているのだと思います。うちの息子は2つ目の理由で、興味があることについてプログラミングで解決する方法を提示した結果として、わたしの自己流、独学(+調べつつ)で学んでいます。最後の習い事としてというのは、昨年くらいから唐突にテレビなどでもニュースで流れるようになったもので、そろばんや英会話なんかと同じ雰囲気(実際は異なると思いますが)で学校の授業プラスアルファという感じでしょう。一方、大人の場合はフリーランスや独立を考えている方が仕事の道具として学ぶことが多いと思います。HTML、CSS、JavaScript、PHP、rails、Java、Objective-C、などなど…これらはそれぞれWEBアプリを開発するためか、スマホアプリを開発するために利用されるものです。ですから大人向けのものはそういった手に職を求めていることが多いと思います。わたしは実際にScratchをやってみたところ、大人も学ぶべきではないかと考えました。

Groovyについて感じること

こんにちは!なるーらぼです!わたしがシステムエンジニアをしていたころからお世話になっているプログラミング言語がいくつかありまして、本サイトではそうしたものもご紹介しつつ「便利なものがあるんですよ」というお話しもしたいと思っています。しかし、わたしがお世話になってきたものは日本では利用者が多くなくてGoogleなどの検索でもあまり日本語の情報がヒットしないということが多々あります。そういうわけで、拙著をお買い求めいただいている方もいらっしゃるということではありますが。Groovy先月からApache Groovyの入門講座を公開しました。人気のあるGitBucketに比較して、驚くほど人気がありません…これは検索性のよくない名称だからかもしれません。まずApacheというのがもともとは世界的に利用されているウェブサーバーの名称でもありますし、Groovyって…音楽やアートなどでも頻繁に利用されるキーワードです。ここへ「Programming language」などとキーワードを付加して検索される方がどれくらいいらっしゃるでしょうか?GroovyはJavaで記述、開発されたプログラミング言語であり、スクリプトとして即時実行することもできる優れたものです。コンパイルは必須ではありませんし、いろんなツールの糊(のり)の役目も果たしています。しかし現状で最も有名なものがGradle(ぐれいどる)であり、まだAndroidアプリのビルドに使われ始めたくらいの印象しかありません。書籍についてもGradleは大きな書籍が出版されましたが、本体のGroovyは日本語ではおそらく1種類しかありません。