暇な人はやってみるといいプログラミングの万能練習法 は良いトレーニングになる。

プログラムを自ら書きたいと思う人って、与えられたメニューをこなすだけの人間ではないと思うけどハッカーを目指している人には UNIX の勉強にもなるんじゃないだろうか。というわけで、実際の練習メニューは以下の通り。

  1. プログラミング言語を選択する
  2. 書いてみようと思う POSIX のコマンド を決める
  3. man をはじめとするマニュアルを読んでコマンドの仕様を理解する
  4. 設計する(初回のコーディングと同時進行はやめたほうがいいかも)
  5. コーディング
  6. テストする。設計とコーディングの反復。
  7. 終了

C 言語で書いたならテストのあとにオリジナルのソースを読んで答え合わせするのですが、必ずしもオリジナルのコードが正解とは言い切れない。

自分が書いたプログラムが仕様どおりに動いているならアルゴリズムの違いなどは気にしなくていいと思う。 だけど突き詰めれば処理速度の問題が出てきたりするので 比較する ことが勉強になるのだ。

コーディングのトレーニングと同時に、以下のような知識や技術も身に付く。

  • man が読めるようになる
  • POSIX のコマンドを覚える
  • ソースコードを読む力が身に付く
  • UNIX の勉強

事前に UNIXの設計思想 について知っておくと設計の参考になる。

おすすめ書籍『プログラミングテクニック―UNIXコマンドのソースコードにみる実践プログラミング手法』

補足

POSIX とは

e-words.jp より:

IEEEによって定められた、UNIXベースのOSが備えるべき最低限の仕様のセット。

POSIX のコマンド(仕様書には Utilities とある)は http://www.opengroup.org/onlinepubs/009695399/idx/utilities.html で見れる。ただしこのページはフレームで分割されたページから抜き出した URL なので文書本体 http://www.opengroup.org/onlinepubs/009695399/ も見ておかないと意味がわからない。 http://www.unix.org/version3/apis/cu.html もあったが、先に挙げたページより古いようなので見比べて使うのがよろしいかと。

現在は UNIX 98UNIX 03 と呼ばれる仕様が、UNIX を名乗りたいときに従うべき仕様(慣習)である。UNIX 03 の仕様は IEEE Std 1003.1 である。また、IEEE Std 1003.1 は ISO/IEC 9945:2003 でもある(歴史的な事情で?ややこしい)。 UNIXの規格について というページが参考になる。

UNIX 03 の仕様書を見るにはユーザ登録が必要。 https://www2.opengroup.org/ogsys/catalog/x03xy HTML と PDF バージョンがある。

余談だが、2007年10月にリリース予定の Intel ベースの Mac OS X Leopard は UNIX 03 に認定 された。


最終更新日: 2009年05月04日(月) / カテゴリー: プログラミング・ソフトウェア開発


Back to top