読者です 読者をやめる 読者になる 読者になる

プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

コンピュータの仕組みを学ぶにはどうしたらいいの?

さすが古くからコンピュータに親しんでいらっしゃる、すがや先生!本質を掴んでいらっしゃいますね :)

- 子供がプログラミングする意味についてどう思われますか。

 論理的に考えられるということと、仕組みを理解できるということが大事ではないかと思います。問題解決というか物事を判断して実行するときには、論理的に考えて冷静に行動すべきときがいろんな局面であるでしょう。また、物事のブラックボックス化に甘んじるのではなく、中身を理解することも重要です。例えば、Javaプログラミングでもライブラリを使うだけではなくて、その中身も理解しておくべきだと思います。そうでないと、いざというときに応用が利かないと思います。そもそも私自身、仕組みが見えないと嫌なんです。

(3/3)子どもたちにプログラミングを教えよう!イベントレポート - 自分が楽しい世界を知らせたくて描いた『こんにちはマイコン』:ITpro

子供達がプログラミングを学ぶ上では、両方学んだ方がいいと思うのだけど、前者はともかく、後者はなかなか難しいかなあ。

プログラミングの本質であるアルゴリズムや論理的な思考力という意味では、scratchとかがいいと思う。小学校四年生の息子にscratchを消化したら、ちょこっと説明しただけで基本的なところは出来るようになってしまった。きっと感覚的に覚えられる世代なんだね。いいなあ、脳みそが柔軟で :)

さて

コンピュータの仕組みとなると、どうだろう。昔はプログラミングの本の最初の方には必ずコンピュータの原理の説明がしてあって(今も書いてある本はあるけど)プログラミングを学ぶと、自然に学ぶことができた。ハードウェアが今よりずっと単純で分かりやすかったことも良かったのだと思う。BASICからI/Oを叩いて動きを確かめるなんてことも簡単にできた。基本的にコンピュータはハード/ソフト含めて全部自分の手のひらの中にあった、または個人でどうにか出来そうと思わせるぐらいコンパクトだった、というのは大きいと思う。

今はハードウェアもソフトウェアも高度化した。今のコンピュータは抽象度が上がり、中身は完全にブラックボックスだ。とてもじゃないけど、個人で簡単にできそうってレベルじゃない。今やアセンブラですら書いた通りのバイナリコードにならない…

プログラミングに限らず、コンピュータの動作原理を理解するには実践あるのみだと思っている。本を読んで完璧に理解したと思っても、実際に動かしてみると想像をつかなかったことが起こる。そこで初めて本に書いてあった「なんでこんな注意が書いてあるんだろ」が実感できる。いや、書いてないことの方が多いだろう。そういうことを繰り返すことで、初めてコンピュータは理解できるものだと思っている。

今コンピュータが学べそうなのは

Arduinoとかかな。でもLEDを光らせるぐらいだとちょっと地味すぎるし、とっつきも悪い気がする。IchigoJamあたりはいい線いってる気がするけど、ちょっと大きなプログラムを作るには容量が足りないかな。いずれもハードウェアに詳しい人のオモチャで、初心者が気軽にという感じじゃないんだよな。

そういう意味で

昔のパソコンの復活を希望します。

それが言いたかったんだろうって!?そらそうよ。yasuhoの脳みそは8bitで出来てるんで、しょうがないっす :b

なぜ今の子供達は忙しいのか

いいなあ、ボクも学研本社に訪問してみたい!

「いやね、そもそも今日なんでお邪魔したかと言いますと、友だちと飲んでる時に『学研ってあったよねー』『科学と学習の付録、おもしろかったよね』みたいな話になったんですよ。で、思ったんですよ。あれって、モノづくり系エンジニアさんたちの思考の原点だったんじゃない?って。子どものころから、実際にモノに触れることで発想が豊かになったんじゃないかと。けれど、調べてみたら2010年に休刊してて……! ぼくが将来、子どもできたら絶対学研取ろうって思ってたのに……!」

「科学と学習」の付録を学研本社で見せてもらったら、懐かしすぎて泣きそうになった | i:Engineer

今の自分があるのは学研の科学のおかげと思っている私にとって、この記事は科学と学習が休刊する経緯とか分かって、よかったです。

「あのような対面販売が世の中に受け入れられなくなったんですよね。インターホンが普及して『学研です』って言っても『いりません』って、ドアも開けてくれなくて時代遅れになっちゃった」

それは確かに今の時代キビシイかもしれない。ボクの場合、学校の体育会で販売されてたんだよな。それこそ今じゃ絶対ムリ…

「あと大きいのが、子どもがみんな忙しくなったっていうことですね。みんな塾に行って、スイミング習ってっていう。雑誌を読んだり、付録で遊んだりする暇がないんですよね。そんななかで、科学と学習って、読めばテストの点が上がるっていう性質のものではないじゃないですか。遅効性といいますか」

それは言えてる。今の子供、みんな忙しいもんね。うちの息子にも、もっとLEGOやscratchなんかで遊ばせてあげたいんだけど、いろいろ忙しいんだよなあ…

もっとも、塾に忙しい子供は学研の科学が全盛期だった当時も一定以上いたんだけどね。でも、当時は学校から帰ってくるなり外に出ていって、暗くなるまで友達と遊んでるっていう子供の方が多かった。ぼくもずっと学研の科学で遊んでるってことが出来たし、小学生の頃は塾にすら行ってなかった。まあ今になって勉強してなかったツケが回ってきてるわけだが(笑)

なぜ今の子供達は忙しいのか

ボクなりにその理由を考えると、子供の将来に対する親の危機感の違いじゃないかと思う。

高度成長期からバブル前に育った子供の親たちには、子供の将来に対して不安どころか自分たちよりいい未来しか想像できないって感じの人が多かったと思う。「勉強ができなくたって、この子なりにどうにかなるさ」って会話もよく聞いたしね。ぼくは工業高校を出て就職したんだけど、当時の学校には企業からの募集が山のように来ていて、就職に対する不安なんて全然なかった。

対して、今の時代はボクが言うまでもなく。キビシイ時代だよね…

そういう親が感じている危機感や緊張感って、子供に伝わる。いや、親の方から積極的に子供達へ伝えることも多いと思う。そうすると、子供達は自らが忙しくなって行かざるを得ない。自ら科学や技術に触れる機会が減っても仕方ないよね。

とはいえ

最近はscratchなどを使ったプログラミング講座も流行ってるみたいだよね。雑誌の付録は難しいかもしれないけど、別の形で子供達が技術に触れる機会が増えていってほしいと願う。

プログラムが書けるようになるまで - yasuhoの場合

うんうん、分かんないよね。どの本を選べばいいのか、実は私もよく分からないのよ^^;

入門書「この言語の入門書であって他の言語がある程度分かる前提で説明していきます」


なんでどれもこんなんなんだよ
説明で使われる単語単語が分からねーよ
初めは一々ググってたけど効率悪すぎるしね

ぼく「プログラミングの勉強する為に入門書でも買ってみるか」 : IT速報

プログラミング言語の入門書って、その言語に対する経験が初心者で、プログラミングは知っている前提っていうのが多いんだよね。プログラミングそのものを学ぶには、何か一つの言語を題材にした、初心者向けに教える本を読むのがいいと思うんだけど、そもそもどの本を読めばいいのか分からない。

本当は「プログラムはなぜ動くのか」みたいな、基礎的な原理を最初に学ぶのがいいのかな。でもそれって、最初に読むには退屈だと思うんだよな。ある程度プログラムを作ってみてから読んだ方が、腑に落ちていいかもしれない。

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

入門書に限らないんだけど

技術書を読む上での一番の問題は、本が自分の興味レベルにあわせてくれないこと。当たり前なんだけどさ。自分の知りたいことが自分の持つ知識レベルで書かれているのが理想なんだけど、本の方から自分にあわせてはくれないからね。結果として、自分が本に合わせなくちゃいけなくなって、疲れちゃう。

ぼくの場合、分からないところは読まないことにしてる。分からないところを頑張って読んだって苦痛だし、頭に入ってこない。とりあえず先に進んで「あ、あれはそういう意味だったのか」って分かったら元に戻る。

本は

主に言語の概要を理解するためと、リファレンスとして使ってる。

個人的にはプログラミングの技術は手を動かさないと理解できないものだと思っている。分厚い「プログラミング言語Java」を読んだらJavaでプログラムが書けるようになるわけじゃない。

プログラミング言語 Java 第4版

プログラミング言語 Java 第4版

まずは本の最初を読んでみて動かし方が分かったら、実際にコードを書いて動かしてみる。まずはサンプルから初めて、とにかくいろいろ書いてみる。

実際に書いてみることで、本には書いてなかった疑問がいっぱい出てくる。そうしたら本に戻る。それでも分からない時はgoogle先生に聞いてみる。これを繰り返すことで、その言語らしいプログラムが書けるようになっていく感じ。ぼくはそうやって覚えた。いつもそんな感じ。

昔の人間だからかなあ。昔から本を読むことは苦手で、実際に実践で使わないと覚えられない。なので、これはあくまで一例ね。

一番いいのは

近くに教えてくれる人がいることなんだよな。誰かいないかなあ^^;

仕事の仕方は教えてもらえるけど、技術は教えてもらえない

「職人」が具体的にどういう仕事なのか明かされていませんが、相談者さんは職人の「仕事は教えない」は嫌がらせではないかとも考えています。現代的にいうとパワハラですね。回答者からは、この意見に賛同する声が相次いでいます。

職人の「仕事は教えない」は嫌がらせなのか? 「技術は食い扶持。盗むしかない」との反論も : ネトウヨにゅーす。

そもそもこの話がソフトウェア業界のことかどうかすら分からないけど、業種に限らず、よくありそうな話ではある。

私の経験では

「教えない」というような極端な例は見たことがないなあ。質問する前に調べもしない人に対して「自分で調べてごらん」って、やんわり言うぐらいのことだったらよく見るけどね。

優秀な人は大抵忙しくて、ゆっくり教えるヒマなんてない。そもそもそういう人は誰かに教えてもらうなんてあまりしたことなくて、自分で必要なことを学んでいったという人だから優秀なわけで、自分ではない人がどう学んだらいいかなんて分からないし、教えられない、といったところじゃないかな。人によっては「教えてくれない」って思うかもしれないね。

多くの技術者は教えることが嬉しいのよ。なので、教える人が喜ぶような聞き方をすると、どんどん教えてもらえるようになって、仕事も振ってくれるようになっていくんじゃないかと。

ただ、一つ思うのは

仕事の仕方は教えてもらえるけど、技術は教えてもらえないってこと。要求をスマートに実現する設計力。シンプルでパワフルな実装力。難解な問題を解決する分析力。そういった技術者として資質は、自分で磨いていくしかないんじゃないかな。ていうか、自分で書いてて心苦しいわ(笑)

お互い、頑張りましょう^^;

最近「子供にプログラミング教えてよ」と言われるのです

オバマ政権が、米国のコンピューターサイエンス教育に40億ドルを投入することを約束した。米政府を支え、後押しするのは、大手テック企業の数々だ。未来のテック業界を導く才能を育てるために、ホワイトハウスとシリコンヴァレーの連携がますます強まろうとしている。

シリコンヴァレーは国の「コンピューター教育」を導けるか « WIRED.jp

我が国でもぜひコンピュータ教育に、もっと力を入れて欲しいものですな :)

最近、コンピュータ教育を子供の頃から始めるべきかどうかという議論をよく目にするね。scratchなどを使った小学生向けのプログラミング講座も盛況みたい。

ぼくがわざわざ言うまでもなく

コンピュータスキルは英語と並んで、今の子供達が大人になった時の必須スキルになっていると思う。日本語の読み書きや基本的な数学と同じく、アドバンテージにすらならず知っていて当然のスキルになってるんじゃないかな。全員がプログラマになれってことじゃなくて、最低限知識としてのコンピュータハードウェア/ソフトウェアを持つ必要があるんじゃないかと。

もう何度も引用してるけど、Sony Historyにあるように、天然資源が少なく、人口が多いわが国の将来はすべての日本人が科学技術に関心を持ち、これを盛り立てていくことにかかるのだと思う。そして現代においてモノ作りとは、ハードウェア+ソフトウェアとほぼ同義だよね。

将来はこれがもっと加速していくと思う。作る人も、それを売る人も、コンピュータを知っていて当然の時代になってるんじゃないかと思うんだ。

嫁さんからも

「子供にプログラミング教えてよ」と、最近よく言われるんですよ。でも息子は絶対にプログラマにはさせないんだって。夜帰ってこないからだってさ。かなりブラックのイメージが強いようだな(笑) まずこのへんのイメージから変える必要があるかもね。

さようならsoftbank,こんにちはUQ mobile / インプレッション

長年愛用してきたSHARP 005SHですが

シャープ SoftBank 005SH ブラック

シャープ SoftBank 005SH ブラック

先日これに乗り換えました。

キャリアはこれです。

いわゆる、格安スマフォ/格安SIMってやつですね。

きっかけは

これでした。

周波数の有効利用による安定した品質かつ快適な通信サービス提供のため、1.5GHz帯におけるLTEサービスの提供開始および1.7GHz帯におけるLTEサービスの拡大を順次実施します。
LTEサービスの拡大に伴い、一部3Gサービス(1.5GHz帯/1.7GHz帯)を順次終了します。

一部3Gサービス(1.5GHz帯/1.7GHz帯)提供終了について | 通信・エリア | モバイル | ソフトバンク

005SH, 古い機種ではあるものの、フルキーボード付きでとても気に入っていたのですが、さすがにAndroid 2.3ではアプリも対応しないものが多いので、限界を感じてはいました。バッテリーがそろそろヘタってきたこともあり、まあいい機会だったかなと。

で、新しい機種を探していたのですけど、どの機種にしたにせよ月額料金があり得ないほど高額だったので、softbankを諦めることに。今までは3Gの月額5,000円ぐらいのプランだったので、余計高く感じました。どのみち通話はほとんどしてなかったので、大手キャリアをやめることに迷いはなかったですね :)

なぜarrowsなのか

最初はNEXUSとかいいかなと思ってたんだけど、意外と高い。個人的には30,000ぐらいに抑えたいと思ってたのと、バッテリーの持ちが良いという評判だったので、arrows M02にしました。

本当はもっと小さい、4inchぐらいのが欲しかったんだけど、既に市場には5inch+のものしか見当たらず。arrowsは5inchの中でもコンパクトに感じるところもよかったな。将来DoCoMo系のMVNOに乗り換えたとしても使えそうだったし。

最新のハイエンド機に比べるとパフォーマンスは劣るらしいけど、元々5年前のスマフォだった私には全く無問題 :)

なぜUQ mobileなのか

ズバリau系のMVNOであり、速度が速くて安定してそうだったから。DoCoMo系の方がエリアが広いかもとは思ったけど、まあ大丈夫かなと。

プランはデータ3GB+音声通話。3Gとはいえ、今まで1GB制限で半分ぐらいしか使わなかったので。

乗り換えは

思ったより簡単でした。softbankに電話してMNP予約番号を取得し、それをUQ mobileのウェブサイトに入力して契約手続き。SIMが送られてきたらarrowsに挿して手順通りに操作すれば乗り換え完了。

使えない期間もなく不便はなかったです。使えない期間があるかどうかはMVNO業者次第のようですが。

乗り換え後、005SHはWiFiすら使えなくなり、あっという間に文鎮化。カメラは使えたので、息子のオモチャになりました(笑)

arrowsについて

バッテリーの持ちは素晴らしいです。朝充電池から抜いてから夕方までで、90%ぐらいのまま。家でしか充電しなくなってしまいました。以前はずっと充電してたので、これは嬉しいですね。

とはいえ、アプリの無駄な通知や必要のないデバイス/機能は全てOFFにしてます。こういうのは、たぶんこれからも必要。

パフォーマンスは素晴らしい。まあ以前はTwitterアプリを起動するだけで数十秒かかってたから、あまり参考にはならないと思うけどね。

UQ mobileについて

元が3Gな上に本体自体が遅かったので、あまり比較にならないと思うけど、速度に関してはうわさ通り素晴らしいです。朝夕でも遅く感じることは全く無し。動画再生とかはほとんどしてなくて、twitterとかウェブを閲覧する程度だけど。

利用開始初日、大したことしてないのに、いきなり50MBものデータ通信が行われて一瞬焦ったけど、初日以外は1日平均30-40MBで安定していて一安心。ぼくの使い方なら月に3GBでも余裕だな。もっともアプリのダウンロードとかパケットが大量に飛びそうなことは意識的にしてないので、3GBで十分かどうかは使い方によると思う。

なぜ初日だけ大容量通信をしたのかは不明。アプリの自動更新っぽいので、OFFにしといた。

ちなみにエリアだけど、私の生活圏内で圏外になることはなかった。

総合的に考えて

満足度高いですね。Androidもバージョンが上がって、かなり使いやすくなってます。特に電源管理まわりのきめ細かさはワタシ好み :)

願わくばフルキー付きのSIM free機種が出てほしいけど、ムリだろうなあ。出たら速攻で乗り換えるのに。フリック入力は相変わらず慣れません(笑)

とはいえキーボード以外は特に大きな不満もなく、快適です。長く使っていきたいな。

突然ですが

昨年、今まで勤めていた会社を退職しました。1月からは新しい職場で働きます。

会社に問題があったわけではなく、むしろ開発者の理想に近い環境でした。それならばなぜ転職を決意したのかと言えば、新しいチャレンジをしたかった、ということになります。

私もすでに50を越え、今までの職場がたぶん最後だろうと思っていました。そんなある日、とある方から新しい会社を紹介されます。前述のようにとてもいい職場だったので、転職に関しては大変悩みました。でも最終的には新しいことをしてみたいという気持ちが強かったので、転職を決意しました。

辞めたことに後悔はありませんが、不安がないといえばウソになります。でもかつてないほど変革の時を迎えているこの業界において、安定など望めるでしょうか。加えてあと10年も働けないであろうこの年齢では、何かを変えるチャンスにはそうそう巡り会えるとは思えません。というより、このチャンスを逃すべきではないと思いました。だから、今はワクワクする気持ちの方が強いですね。

なかなか更新されないブロクですが、本年もどうぞよろしくお願いします。