プログラマyasuhoの隠れ家

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

プログラミング学習に潜むワナとは

 とにかくインターネットと一緒に歩んできた僕にとって、ITスキルはすなわち力であり、むしろITスキル以外は何の価値も持たないもの、と思えるほど脅迫的な観念にとらわれていた。入ってくる情報はさらに増えていった。Cができるのは当たり前、Ruby on Railsがアツい、JavaPHPはもちろんできるよね、MySQLは当然使えるよね、もちろんHaskellSchemeObjective-Cもやらなきゃね……何一つできないのに、習得すべき言語だけがどんどん増えていく。

僕はもうプログラミングしなくていいんだ

この感覚は何となく分からないでもない。1995年あたりだと、まだコンピュータを使う=プログラミングをするという風潮がけっこう残っていた頃。そんな強迫観念を抱いても不思議じゃないと思う。

ふと思った。この方は残念ながらプログラミングを楽しむことは出来なかったみたいだけど、こんな気持ちの人は今でもけっこういるのかもしれない、と。

まず前提として

プログラミングを楽しめないと、たぶん厳しいんだろうなってこと。

ぼくがプログラミングを始めたのは80年代前半だったんだけど、最初から楽しかった。当時はまだコンピュータは一般的なものではなく、それを使うには特殊技能を要求されると思っていた。でも実際はそうじゃなくて、プログラミングは単純なロジックの積み重ねからできていることが分かった時「ぼくにも出来そう!」って思って、がぜん楽しくなってきたんだ。

ぼくにとって、とにかくプログラミングは楽しかった。でも、プログラムを作って動かしても、あまり楽しくなかったとしたら。「自分の思い通りにプログラムが動く」っていう、プログラミングの楽しさの根幹そのものが楽しめなかったとしたら、その人にとってプログラミングは苦行でしかないのかもしれない。

でも本当にそうなのかな。もしかするとやり方が悪いだけかも、かも…

今思えば

まだコンピュータが単純だった頃にプログラミングを始められたのは、とても幸せなことだったと思う。ぼくが最初に使ったコンピュータは電源投入直後からBASICが起動されて、10 PRINT "BAKA ";:GOTO 10とか打てば、延々とBAKAが出力させることができた(笑)よく分からなくなったら、リセットボタンを押せばいい。なんて幸せな環境だったんでしょう :)

1995年にWindows 95が登場したあたりから、ソフトウェアはそろそろブラックボックスになり始めていた。たかがHello worldを出すためだけにウィンドウを作って、メッセージループを処理しないといけないとしたら「プログラミングとは、なんて面倒なんだ!」と思ってしまったかもしれない。

コンピュータが単純なロジックの積み重ねから成り立っているということは、裏を返すと、複雑な処理をするには多くの単純なロジックが必要であることを意味している。実はプログラミングは面倒なものなんだ。特にGUIを持つプログラミングは面倒になる傾向がある。

プログラミングを楽しむにはいかに本質じゃないところの手を抜くかということに尽きるんだけど、不幸にして本質じゃないところに多くの手間のかける言語環境を最初に選んでしまった人は、楽しくなる前にイヤになってしまったかもしれない。 

入門書とかもね

気をつけないとただの言語解説書だったりするわけですよ。こうなるともうプログラミングを楽しめるはずの人でも苦行になっちゃうかもしれない。

ぼくの場合、正直言語の入門書もマニュアルもあまり読まないんだ。最初のさわりをちょこっと読んだら、後は分からないことがあった時のリファレンスとして使うことが多い。というより、読んで理解するほど賢くないといった方が正解だと思う(笑)読んでるだけじゃ楽しくないし。

つまり

プログラミングを学ぼうとすると、けっこうワナがいっぱいあるわけです。近くに何かあった時すぐに教えてくれる詳しい人がいるのが一番なんだけど、なかなかそんな人はいないわけで。

「プログラミングを学ぼうと思って本を読み始めたけど、面白くない」「優しい本のはずなのに、何言ってるのか分からない。オレ、才能ないのかな」なんて思ったあなた。そう思ったら、別の本を探してみよう。別のやり方を試してみよう。単に自分に合ってないだけ、ってパターンが多いのよ :)