面白いプログラムを作ろう | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

私の職場では、社員採用時の入社前研修として、C言語を教えている。講師をしている後輩社員によると、プログラミング初心者の生徒から「ポインタの仕組みは理解できましたが、何のためにあるのか分かりません」というような相談があったそうだ。

その疑問に対して、一般的な例を示してやることはできるだろう。例えば、関数の引数をポインタにすれば、それが示す値を関数内で変更して返すことができるし、処理速度的にもメモリ消費量的にも効率的である。この生徒もポインタの原理が理解できているのなら、そのメリットを頭では理解できるだろう。

しかし、彼にとって本当に必要なのは、そのような言葉による説明ではない。自らがそれを経験することである。彼自身がポインタの「必要性」を感じてみなければ、本当の意味で理解したとはいえないだろう。

もちろん、それはポインタの問題だけではない。「プログラミングは体で覚えろ 」にも書いたように、実際に何度もプログラミングをしてみなければ、プログラミングの技術は身につかない。


自らプログラミングをしようとすれば、原動力となる明確な「目的」、「動機」が必要である。ただ漠然と「プログラミングをしたい」と思うだけでは、何をしたらいいのかわからないだろう。プログラミング言語の文法やライブラリの使い方のような「技術的知識」を詰め込んだとしても同じだ。とにかく、「こんなプログラムを作りたい」といった動機がなければ、プログラムは書けないのである。

ブログを書くことを考えてみよう。ブログのサービスに登録し、「文字装飾の方法」や「リンクの仕方」を勉強しても、それだけでは記事は書けない。何かを「誰かに伝えたい」とか、「記録として残しておきたい」といった、書くための動機がなければ、何も書けはしない。

むしろ、何か書きたいことを書いているうちに技術力は後からついてくる。「この言葉を強調したい」と思うからこそ、文字を太字にする方法を学ぶのだし、「紹介したサイトを見てほしい」と思うからこそ、リンクの仕方を覚えるのである。ブロガーにとって、「ブログの書き方を学ぶ」ことは目的ではない。ブログを書くための手段にすぎないのだ。

プログラミングでも同じだ。「こんなプログラムが欲しい」、「こんなプログラムを作りたい」といった気持ちこそが、プログラミング技術を上達させるのである。


初心者プログラマには、とにかく「実際に使える」プログラムを作ってみて欲しいと思う。ゲームやジョークソフトでもいい。斬新なものである必要はない。大切なのは、自分が「面白い」とか「便利だ」と思う題材を選ぶということである。

「動機」は、誰かが与えてくれるものではない。そういう意味では、誰かに課題として与えられた題材よりも、自分で考えた題材のほうがいいだろう(もちろん、与えられた課題を面白いと感じればそれでもいいのだが)。プログラミングを仕事にすれば、顧客からの「要件」だとか設計者からの「仕様」という形で、(自分にとっては)つまらない題材が与えられることになる。せめて、今のうちに自分が面白いと思うものを作ってみようではないか。





■関連記事
ポインタという考え方
プログラミングが好きですか?
プログラミングは体で覚えろ



C言語ポインタ完全制覇
C言語ポインタ完全制覇
posted with amazlet on 06.10.16
前橋 和弥
技術評論社
売り上げランキング: 7,246
おすすめ度の平均: 5
5 やっと見つけたマトモな本
5 理解があやふやな方へ
5 本当のプログラムを意識するようになる。


熱狂する社員 企業競争力を決定するモチベーションの3要素
デビッド・シロタ スカイライトコンサルティング
英治出版