| Top Page | プログラミング | PIY 目次 | 前へ | 次へ |

Program It Yourself 

3:勉強することがら

プログラミングの勉強とは,具体的になにを勉強することなのでしょうか.

3.1 道具の使い方

まず最初に,プログラムを書くための道具や走らせるための道具の使い方を 覚える必要があります. OSや処理系によって用意されている道具はさまざまですが, はじめてプログラミングを勉強しようという場合, この部分は簡単なのにこしたことはありません.

Perl,Ruby, Pythonといったスクリプト言語の場合, ふつうのテキストエディタと,コンソール (Unixの仮想端末やWindows のDOS窓)の使い方さえ知っていれば じゅうぶんです(必要な知識はごく少し). たとえば test.plというファイル名の Perlのプログラムを書いたら
perl test.pl
と打ち込むだけで実行できます.

いっぽう,VisualC++という処理系+開発環境を使って C++ でGUIプログラムを 書こうとすると,そもそもどこまでが道具の使い方の問題で,どこがC++の勉強で, どこがオブジェクト指向の概念の問題で, どこが VisualC++固有のライブラリの使い方で, どこが ウインドウシステムの問題で, どこが Windows という特定のOS に固有の問題なのか, 最初はとまどうことが多いでしょう. Visual Basic や Delphi でも同様の難しさがあります (もちろん,努力で克服可能ですが).

3.2 プログラミング言語の文法

プログラミングの勉強と聞いてまず考えるのはこれですね. 外国語の文法に比べれば,プログラミング言語の文法はずっと簡単です. 不規則なルールもありません.

最初からすべてを暗記する必要はありません. こんなことが表現できる文法があったはずだよなあ,とあとで思い出せる 程度に記憶にとどめておけば,必要なときに必要なことを本で調べたり, 前に書いたプログラムを読み直したりすればそれでよし.

プログラムを書く経験を重ねるとともに,頭に入っている情報が増え, いちいち本で調べることが減っていき,作業の能率も上がっていくでしょう. 何も見ないで書けるようになると,プログラムを書くことが億劫でなくなります.

3.3 プログラミングの基本的なお作法と定跡

言語ごとに,その特性を生かした慣用句的な書き方がいろいろあります. 定跡のようなものです.これは,本を読んだり人の書いたプログラムを見たりしながら 徐々に覚えましょう. 定跡の知識が増えるとともに,スマートで,「らしい」プログラムが 書けるようになります.

そうした言語依存の知識のほかに,どの言語を使うにしても共通して守ったほうがよい ルールがいろいろあります. 読みやすく,間違いが混入しにくく,あとあとの改造もしやすい プログラムを書くため に,プログラマーたちが蓄積してきた知恵です. 変数の内容が分かるように変数名をつけろとか, 各行の頭下げ(インデント)は制御構造に対応させろとか, さまざまなものがあります.

そんなことに無頓着でも,使い捨てのごく短いプログラムを書くには あまり困りませんが,ちょっとまとまったプログラムになると, 身動きならなくなることがままあります. バグとり(間違い探し)も,あとのメンテナンスも大変です. よいプログラムが書けるように,意識的にお作法を学びましょう.

プログラミングの教科書では,たいてい,行儀のよいプログラムの書き方に ついて述べた部分あります. また, 参考書のページ にあげた「プログラム書法」は,お作法のよい教科書です.

3.4 アルゴリズムとデータ構造

アルゴリズムとは,なんらかの目的を達成するための計算処理の手順です. どんなプログラムも,なにかの目的があって,そのための計算手順を 表現したものですから,そのままひとつのアルゴリズムを表現してるとも 言えます.

ところで,いろいろな場面で出てくる一連の処理手続きのパターンがあります. たとえば,たくさんのデータの中から一番大きなものを探すとか, 大きさの順にならべるとかいったパターンは頻出します. 先人が知恵をしぼってくれた結果, そういう目的を効率よく実現するためのアルゴリズムがいろいろ考案されています.

賢いアルゴリズムを使うことで,効率の悪いアルゴリズムを使った場合よりも 何倍も何十倍も,ときには何百倍も計算が速くなることもあります. よいアルゴリズムを考える・選ぶことはとても大切です. そのとき,せっかくの先人の努力の成果を活かさない手はありません.

計算中に必要なデータをどのような形で管理するかも, 分かりやすくて効率もよいプログラムを書く上で重要です. 配列,ハッシュ(あるいは連想配列,あるいは辞書,あるいはマップ),リスト, 木構造など,基本的なパターンを勉強したうえで,その場,その場で いちばん適した構造を選べるようになると,プログラムが書きやすくなり, 全体の見通しもよくなります.

プログラミングの教科書のサンプルプログラムの中にもアルゴリズムや データ構造の例がいろいろ詰まっています.自分でプログラムを書くときに 活かせるように,便利そうなものは頭の隅っこに入れておきましょう. また,アルゴリズムやデータ構造そのものの参考書もたくさんあります. プログラミング学習の最初の山を越えて,さらにもう一歩先に行きたかったら, ぜひ積極的に勉強しましょう.


| Top Page | プログラミング | PIY 目次 | 前へ | 次へ |