tetsunosukeのnotebook

tetsunosukeのメモです

(職業としては)プログラミングを覚える以前に書き方を教えるべきじゃないかなあ。

最初のプログラムとして "Hello, world." は適切か?

まあ、教えるにあたっていろいろな側面はあると思うんだけど、とりあえず「職業プログラマ」になるんだったら、コメントの付け方から教えるべきだと思うのよ。


PHPだったらPEARとかで、

<?php
/**
 * PEAR, the PHP Extension and Application Repository
 *
 * PEAR class and PEAR_Error class
 *
 * PHP versions 4 and 5
 *
 * LICENSE: This source file is subject to version 3.0 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category   pear
 * @package    PEAR
 * @author     Sterling Hughes <sterling@php.net>
 * @author     Stig Bakken <ssb@php.net>
 * @author     Tomas V.V.Cox <cox@idecnet.com>
 * @author     Greg Beaver <cellog@php.net>

こんな具合に、最初の数十行はコメント。

関数だって、説明の方が実体より長かったりするじゃん。

    /**
    * If you have a class that's mostly/entirely static, and you need static
    * properties, you can use this method to simulate them. Eg. in your method(s)               
    * do this: $myVar = &PEAR::getStaticProperty('myclass', 'myVar');
    * You MUST use a reference, or they will not persist!
    *   
    * @access public
    * @param  string $class  The calling classname, to prevent clashes
    * @param  string $var    The variable to retrieve.
    * @return mixed   A reference to the variable. If not set it will be
    *                 auto initialised to NULL.
    */
    function &getStaticProperty($class, $var)

で、実際にコーディングするときも、仕様を先にコメントに書いて、実装するって言う方がTDDとかでも有用じゃないかと思うのです。というわけで、まずは仕様をコメントに翻訳(何)する能力をつけて、次にコメントの文法、各言語のコメントのしきたり(JavaDocとか)を学んで、それで動作の実体に進むのが、職業プログラマへの道として必要なんではないのかな...

と、学生あがりの人たちのコードを見て思うのです。