プログラミングを始めよう(準備編)

スポンサーリンク
programming プログラミング

あえて、言わせていただくが、私はどちらかというと文系の人間だ。過去にはプログラミングは理系の分野という常識が存在していた。今から30年以上前の話で恐縮だが、当時書店で見るプログラミングの書籍と言えば、難しそうな長いプログラムコードが書かれているものがほとんどで、パソコンの勉強を始めたばかりの文系の私には理解が難しかった。それは、理系である程度プログラミングの知識がある人が対象となっていたためだった。それでも、私は自分でも理解できそうな書籍を選んでは挑戦と挫折を繰り返していた。しかし現在はどうだろう。インターネットが発達し、人工知能(AI)などの技術革新が進んでいる。情報の社会インフラが整備されてきた今日、もはやプログラミングは誰もが学んでおく常識と言える。書籍もプログラミング初心者向けのものが多数出版されている。

実際、国もプログラミング教育の重要性は認識していて、文部科学省のホームページには「プログラミング教育」のページが存在している。小学生からプログラミングの授業は始まっているのだ。とは言え、小学生がいきなりプログラムのコードを勉強するのではなく、プログラミング的な考える力を養うということになっている。物事にはやはり順番が大切である。

プログラミング教育:文部科学省

それでは、社会人で、かつプログラミングの経験がない方々はプログラミングにどう取り組んでいけばよいのだろうか。私のおすすめは、まずはプログラミングの言語を一つ選んで、定番のわかりやすい書籍で、その文法を一通り学んでからその言語でアルゴリズムについて少しずつ学んでいけばよいのである。

アルゴリズム 【algorithm】

アルゴリズムとは、ある特定の問題を解く手順を、単純な計算や操作の組み合わせとして明確に定義したもの。数学の解法や計算手順なども含まれるが、ITの分野ではコンピュータにプログラムの形で与えて実行させることができるよう定式化された、処理手順の集合のことを指すことが多い。

IT用語辞典 e-Words より

プログラミングは言語なので、もちろん文法で成り立っている。そして、その文法が分からないと前には進めない。そこで、数あるプログラミング言語の中で私が学んでおいて損はないとおすすめしたいのは、C言語とJavaである。さらにPythonも挙げておこう。ここで、注意点。C言語とJavaはコンパイラ言語、Pythonはインタプリタ言語である。下記引用参照。

コンパイラ言語とは、高水準プログラミング言語の分類の一つで、公式の、あるいは主要な実行環境がコンパイラ(compiler)であるような言語のこと。

コンパイラはプログラミング言語で記述されたソースコードを解釈し、実行可能な機械語(マシン語)などのコードに一括して変換するソフトウェアで、変換後のコードを元に実行可能ファイルを作成して実行される。記述したコードを実行に移すまでに手間や準備時間が必要だが、機械語への変換と実行が分離されるため、プログラムを少ない消費メモリで高速に実行でき、実行時にソースコードが不要(利用者へソースコードを提供しなくてよい)という特徴がある。
コンパイラ言語は言語の開発元が提供する公式の処理系や、広く普及している主要な処理系がコンパイラであるような言語を指し、機械語コードへ変換しながら同時に実行する「インタプリタ言語」(インタプリタ型言語)と対比される。
IT用語辞典 e-Words より

この分類そのものが重要ではなく、プログラムの実行の手順に違いがあるので注意が必要である。英語で例えれば、コンパイラは翻訳で、インタプリタは通訳である。

さて、おすすめの理由は、現在使われているプログラミング言語のほとんどはC言語を参考にして開発されている。そして、C言語を補完する形で発展したのがJavaである。また、近年、人工知能(AI)などの分野で注目されているのが、Pythonである。

とはいえ、やはりプログラミング言語を学んでいくのは、相当な時間がかかる。英語と同じである。気休めかもしれないが、C言語はアメリカ人が開発している。すでに英語を学んでいれば、C言語には英語のテイストが随所で感じられる。Cの文法も英語の一種と考えれば、C言語を英語と一緒に学んでいくのは理にかなっていると言える。

この章は最後にプログラムコードを紹介して終わりとする。以下は、C言語のプログラムコードである。コンパイルしてプログラムを実行すると九九の表が出力される。

C言語プログラミングについては、章を変えてさらに説明していこう。

/* 九九の表*/
#include <stdio.h>
int main(void)
{
    int i,j;

    for ( i = 1; i <= 9; i++)
    {
        for (j=1; j <= 9; j++)
            printf("%3d",i*j);
        putchar('\n');
    }

    return 0;
    

目の疲れに↓

コメント

タイトルとURLをコピーしました