プログラマyasuhoの隠れ家

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

プログラムが書けるようになるためには

プログラミングを始めようとして何度も挫折した。
教えるプロみたいな人に教えてもらっても駄目だったし、尊敬している人に教えてもらったけどやっぱり駄目だった。
才能以前なんだろうな。必死さが足りないって言われた。でも必死になるってどういう事なのか全然判らない。

どうやら「プログラミングを学ぼうとして挫折している人」と「プログラミングがある程度出来る人」の間にはマリアナ海溝のように深くて太平洋のように広い谷が広がっているらしい。fizzbuzz 問題のページによればこれは世界的な問題である。で、この谷は越えられないかというと、そうでもない。自分自身これを経験したし、大抵のプログラマは多かれ少なかれこれを経験しているだろう(みんながみんなではないだろうけど)。

はてなダイアリー

今のご時世、プログラムの勉強する良い教材っていうと、根本的にはGUIの機能を排除していて、さらにモチベーションを維持できそうなものがいいかなと思っています。

プログラミングを学ぶということについて - GBA homebrew日記


ぼく自身は最初からプログラミングにあまり抵抗がなかったので、実はよく分からないのですけど、たしかにプログラミングにすんなり入っていける人とそうでない人はいるようです。


でもそれはプログラミングが特別なことってわけじゃなくて、何にでもあることのような気がする。たとえば勉強だって数学が得意な人、国語が得意、楽器が上手、運動が好き、上手に工作ができる、などなど、人によって得意分野って違うよね。好みによるところも大きいと思う。その世界にすんなり入っていけるかどうかって、理屈じゃなくて感覚なんじゃないかな。


なんか終わってしまったよ(笑)


どうすればプログラムが書けるようになるかは分からないんだけど、もしそれが学び方の問題から行き詰まっていたり、ちょっとしたことから壁を突破できないのだとしたら、すごくもったいないことだと思う。そこでプログラミングに興味が持てるようなヒントを書いてみる。もしも参考になれば嬉しいな。

いろいろな言語を試してみる


気に入ったプログラミング言語が見つかるまで、いろいろ試してみましょう。


プログラミング言語には得意分野があります。それと同じように、その言語が好きかどうかは個人の好みに合うかどうかも大きいと思うのです。書いてて何か楽しくなかったり、苦痛を感じたりしたら、他の言語を試してみましょう。言語の将来性とか拡張性とかよりも、自分の感覚を重視するといいと思います。


ただ、どの言語も慣れるまでは面倒な部分がありますので、ある程度は付き合ってみる必要があるかも。

作りたい機能に集中できる言語を選ぶ


自分の作りたい機能に集中してプログラミングできる環境を選びましょう。


自分が思っていることを文章を書くようにそのまま表現できないのがプログラム。なので、自分がプログラムで実現したいことが最短で実現できる環境が望ましい。もしも不幸にしてプログラミング言語が不得意な分野に当たってしまうと、本質的ではない部分に多くの時間を使ってしまう可能性が高くなります。まわりに詳しい人がいるのであれば「こんなことをしたいんだけど、どんな言語を使えばいいかなあ」と聞いてみるのもいいでしょう。

最初から多くを望まない


最初は単純なプログラムを作り、徐々に機能を追加していきましょう。


プログラムは作り始める前から「あれもしたい」「これもしたい」と考えるもの。しかしあまりにも機能が多いと作るのがだんだん面倒になってきてしまいます。まずは本当に実現したい機能に絞ってプログラミングを行うことで達成感も得られるでしょう。

プログラムが書けるようになるためには


プログラムを書くための秘訣。それはプログラミングを楽しいって感じられるかどうかだと思う。


プログラミングは実はとても面倒なものなんです。この面倒さも楽しみの一つではあるのですが、多くの人がプログラム作成をあきらめる原因の一つになっているような気がします。


それはある程度経験を積んだプログラマにとっても同様。プログラミングを楽しむには、この面倒さに対していかに手抜きをするか、ということに点に尽きると思います。手抜きというと悪いイメージがあるかもしれませんが、要は効率よくプログラムを作る手段の一つ。効率が上がれば、プログラミングはどんどん楽しくなっていくと思うんです。


それでも「プログラムを作るのはどうも苦手」っていう人も多いと思う。もしどうしても楽しむことができないのだとしたら、残念だけど縁がないのかな。楽しくないことを続けたって、つらいだけだから・・・


けど、少しでもこれを楽しいって感じる人が増えてくれたら。感覚を共有できる人が多くなってくれたら。こんなに嬉しいことはないね。