ショートカット
ファシリテーター × あり方
コーディングの向こう側
Hello, ANOTHER world!
オブジェクト指向のはなし
プログラミングのはなし
C言語実力診断クイズ
eSkillBooks
Hello, ANOTHER world!

プロローグ

初めに作ったプログラムが "Hello, world" だったという人は多いと思います。私も、初めて画面に表示された文字をみたときは感動したものです。でも、今思えば "Hello, world" は細かい部分がずいぶん省略されていて、とても不完全なものでした。当時はまだプログラム初心者だったので、ただ「理解したつもり」になっていただけでした。
確かに、初めて習うときはある程度ごまかしであっても「理解したつもり」まで到達することが重要だと思います。しかし、正しい理解をしないままでいるのは良くないですね。
「正しい理解」というのは、「正しいイメージ」ということです。コンピューターの中で何が起こっているのか知るということです。変数や関数はどこにあるのかとか、コンパイラが警告を出しているのにどうして動くのかとか、ポインタはどうなっているのかとか、そういうイメージが頭のなかに浮かぶかどうかということです。
次に挙げるのは、あるC言語の入門書から抜き出した "Hello, world" プログラムを少しアレンジしたものです。これは、初心者には分かり易いかも知れませんが、「悪い例」です。
main()
{
     printf( "Hello, world!\n" );
}
何が悪いか考える前に、とにかくコンパイルしてみると警告メッセージがいくつか表示されることがわかるでしょう(古いコンパイラでは警告レベルを上げないといけないかも知れません)。警告にはもちろん意味があります。そして、「正しい理解」すなわち「正しいイメージ」があれば、それらの意味も明確にわかるはずです。
たとえば、 main 関数のプロトタイプは規格で決まってます。しかし上のプログラムではそれとは違うプロトタイプで書かれているので警告が出るわけです。
それでも、このプログラムは動作するでしょう。「動作すればいいではないか」と言う人もいるでしょう。しかし、それは誤りです。もっと大きなプログラムを作るときや、チームを組んで開発するときには「動けばいいや」では上手く動きません。基礎ができていないからです。
基礎だから簡単とは限りません。実際、コンピューターの基礎は結構難しいでしょう?プログラミングの中級者・上級者こそが、本当に基礎を学ぶべきなのです。

("Hello, ANOTHER world!" は2001年11月から2002年11月にかけて作成されたコンテンツです。)