その疑問に対して、一般的な例を示してやることはできるだろう。例えば、関数の引数をポインタにすれば、それが示す値を関数内で変更して返すことができるし、処理速度的にもメモリ消費量的にも効率的である。この生徒もポインタの原理が理解できているのなら、そのメリットを頭では理解できるだろう。
しかし、彼にとって本当に必要なのは、そのような言葉による説明ではない。自らがそれを経験することである。彼自身がポインタの「必要性」を感じてみなければ、本当の意味で理解したとはいえないだろう。
もちろん、それはポインタの問題だけではない。「プログラミングは体で覚えろ 」にも書いたように、実際に何度もプログラミングをしてみなければ、プログラミングの技術は身につかない。
★
自らプログラミングをしようとすれば、原動力となる明確な「目的」、「動機」が必要である。ただ漠然と「プログラミングをしたい」と思うだけでは、何をしたらいいのかわからないだろう。プログラミング言語の文法やライブラリの使い方のような「技術的知識」を詰め込んだとしても同じだ。とにかく、「こんなプログラムを作りたい」といった動機がなければ、プログラムは書けないのである。
ブログを書くことを考えてみよう。ブログのサービスに登録し、「文字装飾の方法」や「リンクの仕方」を勉強しても、それだけでは記事は書けない。何かを「誰かに伝えたい」とか、「記録として残しておきたい」といった、書くための動機がなければ、何も書けはしない。
むしろ、何か書きたいことを書いているうちに技術力は後からついてくる。「この言葉を強調したい」と思うからこそ、文字を太字にする方法を学ぶのだし、「紹介したサイトを見てほしい」と思うからこそ、リンクの仕方を覚えるのである。ブロガーにとって、「ブログの書き方を学ぶ」ことは目的ではない。ブログを書くための手段にすぎないのだ。
プログラミングでも同じだ。「こんなプログラムが欲しい」、「こんなプログラムを作りたい」といった気持ちこそが、プログラミング技術を上達させるのである。
★
初心者プログラマには、とにかく「実際に使える」プログラムを作ってみて欲しいと思う。ゲームやジョークソフトでもいい。斬新なものである必要はない。大切なのは、自分が「面白い」とか「便利だ」と思う題材を選ぶということである。
「動機」は、誰かが与えてくれるものではない。そういう意味では、誰かに課題として与えられた題材よりも、自分で考えた題材のほうがいいだろう(もちろん、与えられた課題を面白いと感じればそれでもいいのだが)。プログラミングを仕事にすれば、顧客からの「要件」だとか設計者からの「仕様」という形で、(自分にとっては)つまらない題材が与えられることになる。せめて、今のうちに自分が面白いと思うものを作ってみようではないか。
■関連記事
・ポインタという考え方
・プログラミングが好きですか?
・プログラミングは体で覚えろ
C言語ポインタ完全制覇
posted with amazlet
on 06.10.16
前橋 和弥
技術評論社
売り上げランキング: 7,246
技術評論社
売り上げランキング: 7,246
おすすめ度の平均:
やっと見つけたマトモな本理解があやふやな方へ
本当のプログラムを意識するようになる。
熱狂する社員
企業競争力を決定するモチベーションの3要素
企業競争力を決定するモチベーションの3要素
posted with amazlet
on 06.10.17
デビッド・シロタ スカイライトコンサルティング
英治出版
英治出版