プログラマの隠れ里 〜プログラミング初心者のサイト〜
[Contents]

- トップページ
- 自己紹介
- ダウンロード
- プログラマ度診断
- リンク

- ゲストブック
- 質問BBS

[Programming]

- VB 2005
- C 言語
- アセンブラ
- Windows
- Win2K Apache
- Java3D
- ヒント
- 書籍紹介

プログラミングのヒント

ちょっとしたヒントです。 参考にしてね。(プログラマへの道は険しい……)


01 : わからないことがあったらとりあえず調べてみる

これはとても重要なことです。自分で調べる方法になれない限り、プログラムはうまくならないといっても過言ではありません。自分で経験をつまない限り、ヘルプファイルの調べ方もなれません。どうしても分からなくて他人に聞く場合は、問題の前後関係と主語と述語を明確にしましょう。あくまでも他人に聞くのは、最終手段と考えておいた方がいいでしょう。(時間がない場合は別)


02 : プログラムを自分で書いてみる

プログラミングがうまくなりたいと思うなら、プログラミングを実際に書いてみることが非常に重要です。ときおり本を読んだくらいで、プログラムができると誤解している人がいますが読むのは誰でもできます。そんなことを言うのであれば、わたしはもう 10 冊くらい読んでいます。一番重要なのは、プログラムを書いて実際に走らせることです。そうしないとプログラミングのコツは絶対に身につきません。どんなにくだらないプログラムでも、書いていかないことにはプログラミングはうまくなりません。参考書に載ってある例題くらいは、全部作れなきゃいけませんが、できることなら全部おぼえてしまったほうがいいですね。


03 : 標準的な関数はおぼえておく

標準関数ぐらいはおぼえておきましょう。そうしないとプログラミングに時間がかかるばかりか、つまらないバグに悩まされる原因になります。単に関数の使い方がわからなかった程度のバグで、何時間もすごしてしまうとどうにもこうにもやりきれなくなるものです。メモリ取得だったら、malloc free だけじゃなく、calloc realloc くらいちゃんと思い浮かぶようにしときましょう。C++ の場合は、new delete 演算子ですよね?


04 : News Group / メーリングリストを利用する

News Group / メーリングリストを利用するという手は非常に有効な手段です。自分よりはるかにプログラミングができる人がいるので聞いたら解決しないことはないでしょう。しかしながら時々ちょっと意地悪な人もいるので注意が必要です。結構初心者的な質問でも丁寧に答えてくれますよ。お勧めのニュースグループはとしては、fj.comp.lang.c++,fj.lang.c++,microsoft.public.jp.visualc, fj.os.ms-windows.programming など。もちろんいきなり聞くのではなくて、あらかじめ自分で調べてみてからにしましょう。(調べもしないで聞くのは、結構疎まれます。)

ときどき、質問する立場なのにものすごいえらそうな人がいますが、あれは傍から見ていてあまり気持ちのいいものではありません。質問に答えてくれる方はわざわざ心配して調べてくれる人もいるので、必ず感謝の念を忘れないように。ニュースグループ・メーリングリストといえども公的な場所なので立場をわきまえましょう。

あたりまえのことですよね。でも時々いるのですよ。フレンドリーと傲慢を勘違いしているのでしょう。そういう方たちは、大体反発にあってやり込められていきます。それを見るのも面白いのですけどね(笑)

  1. ニュースグループ・メーリングリストの書き方で必ず書かなければならないこと
  2. 名前・あいさつ (これは絶対書きましょう)
  3. 用件・質問 (2つも3つもいっぺんに聞かないこと「1メール1質問」。
    また長たらしく書かないこと。簡潔にわかりやすく。)
  4. 資料  (プログラムとか開発環境。質問の後につけること。)
  5. 署名  (もしあったらつけましょう)

もちろん、冗談やチャチャはこの限りではありません。メールはテキスト形式で送り、絶対HTML形式で送らないこと!

  1. レス(フォロー)の仕方
  2. 問題が解決したときは必ず報告する。感謝も忘れないこと。
  3. 重要そうな1つのフォローに、自分のレスをまとめて返すこと。
    (他人のフォローの度にいちいちレスを書かない-資源の無駄)
  4. 他人のメールの引用は、必要最小限にすること。(多すぎると論旨がわからなくなる)
  5. キレたりしないこと。(口論になっても、公共の場なんだから取り乱さないこと。)

僕もはじめの頃はよく叱られました(笑)。とりあえず上のことは守りましょう。


05 : 有用なコメントを入れておく

コメントについては、第3者がみてもわかりやすいコメントを入れておきましょう。関数の説明だったら引数の意味と戻り値の意味を記述しておいたり、関数の中で使ったアルゴリズムを簡潔にわかりやすいように記述しておきましょう。特にプログラムの中で重要な意味をなす変数などの説明は重要です。しかしコメントは長すぎると理解の妨げになるばかりか、プログラムの全体像を把握しづらくなるので注意。


06 : 他人のプログラムを読む

他人の作ったプログラムを読むということは、非常に重要なことです。他人の作ったプログラムの中には自分の持ってないテクニックなどがたくさん凝縮されている場合があります。多くの人のプログラムを読んで使える技術を身に付けていきましょう。一般的に言って技術は盗むものです。


07 : どの言語をやればプログラムはうまくなるか

言語によってプログラミングスタイルがちがうので一概には言えませんが、とりあえず一つの言語がうまくならない限りほかの言語もものにならないでしょう。もちろんおぼえやすさとかもありますが、一つの言語を極めるくらいの意気込みがなかったらどれをやってもいっしょです。だから Visual Basic からはじめてもぜんぜん問題ないと思います。ときどき Visual Basic だからといって馬鹿にする人がいますが、開発の早さとわかりやすさから言えばあれは群を抜いています。既存のコンポーネントを使ってプログラミングをする場合など、非常に強力な開発環境です。実際のプログラミングで Visual Basic で用が足りるのがほとんどです。Visual C++ はプログラムを高速には知らせたいときに用いるのがベストですね。


08 : いきなりプログラムを書かない

ある程度考えもまとまらないで、プログラムを書かないほうがいいでしょう。そういう形でかかれたプログラムというのは、多くの場合破綻します。まずは紙か何かに大雑把な仕様を書いた方がいいです。実際にプログラムを書いて走らせるのは、その後ということになります。プログラムを書いた後も、文章と同じように何回も見直して校正しましょう。保守点検もプログラマの重要な役割です。書きっぱなしにしておくのは、一番よくありません。


09 : 主要なアルゴリズムを記憶しておく

「アルゴリズムなんて、本で調べればいいじゃないか」という意見が出そうですが、その調べる時間が無駄なのです。それだったら、あらかじめおぼえておいた方が絶対いいに決まっています。基本的なアルゴリズムは覚えておきましょう。例題プログラムもおぼえられたら、おぼえた方がいいでしょう。


10 : モジュール化する

モジュールとは、密接に関連する機能を集めた関数群のことをいいます。ある程度大規模のプログラムなら、モジュール化をして開発をしましょう。関連する機能の関数群を一つのファイルにまとめたりすることで、保守管理しやすいだけでなくプログラム構造が把握しやすくなります。これをさらに推し進めたのが、一度は聞いたことがあるでしょう OOP (Object Oriented Programming ; オブジェクト指向プログラミング) です。(といっても、モジュールがOOPに含まれるという意味ではない。)


11 : 英語に慣れておく

プログラム関係の主要な文章は、ほとんど英語でかかれていますので英語に慣れておいた方がいいでしょう。
これについては、一朝一夕に身につくものでないので、日々訓練することをお勧めします。
とはいうものの、技術系の文章というのものは小説のように難解ではなく、恐ろしく簡単な英語でかかれているのでそれほど難しくもありません。よく出てくる英語を覚えてしまうのもひとつの手です。

例:

identifier (N) 識別子、ID
specify (V) 指定する > specification (N) 指定
following (N) 次に示すもの
associated with A (ADJ) Aに関連した
retrieve (V) を取得する
remark (N) 特記、詳細
state (N) 状態
development (N) 開発・ (ADJ) 開発の
getting started さあはじめよう!

などなど。出てくる単語はそう多くはありません。日本語訳を見るよりも原文に当たった方がはるかに分かりやすいこと多々あります(マジで)。
追記ですがプログラミングで language といえばプログラミング言語のことを指します。自然言語を指してないので注意。


12 : あせらず確実に

なんといっても、プログラミング言語を勉強する上で、あせってはいけません。ゆっくりとしかし確実にものにしていけばいいのです。今分からないことでも、時期が来れば自然とわかるようになるものです。もし分からないことがあったとしても、それは時期じゃないと思って保留にしておきましょう。


13 : わからなくなったら必ず紙に書いてみる

プログラムを組んでいてわからなくなったら必ず紙に書いてまとめてみましょう。物事を整理することで、見えなかったものも見えるようになります。もちろん、あらかじめ作っておいたプロットを見直すのもいいですね。わからないまま進めようとすると、ほとんどの場合破綻します。「急がば回れ」の精神です。


14 : 大きいプロジェクトは細かく区切る

何か自分でプログラムを作ろうとするときに、必ず細かく問題を細分化しましょう。「複雑→細分化」のプロセスはプログラムを作成する上でとても大切なことです。初心者は大概の場合これができません。初心者の方は「細分化のやり方」がわからないので、うまくプログラムを作ることができないのです。
だから、必ず「紙に書いて」、「細かく問題を細分化」しましょう。たとえば、データ管理プログラムを作るとしましょう。これについては次のように細分化できますね?

  1. データを管理するモジュール
  2. インターフェース(ユーザーとのビジュアルなデータ交換)
  3. インターフェースとデータ交換するモジュール(別になくてもいい)

さらにデータを管理するモジュールにしてもいくつかに細分化できますよね?こういう感じで問題を細分化して、地道にプログラムをしていきましょう。これが一番確実な道で、保守もしやすいです。もちろん単純なプログラムを作る場合にはその必要はありません。

Copyright 1999-2005 けんいち All Right Reserved. V6PJ.