本記事では、上記のような疑問を解決します。
この記事を書いている私は、業界歴10年を越えた現役のシステムエンジニアです。
今回は私の経験を基に、プログラミングを学習していくときに大切なことをご紹介していきます。
もしかすると、今現在に勘違いしたまま進めている人もいるかもしれませんので、初心者の方はぜひご覧ください。
プログラミング学習で覚えるべきことは3つあります
プログラミングにおいて学んでいかなければならないことは3つあります。
下記のとおりです。
- プログラミング言語の文法
- アルゴリズム
- ライブラリ、フレームワーク
プログラミングは、「プログラミング言語を覚えればOK」と思いこみがちですがそうではなく、他にも覚えていくべきことがあります。
次から具体的に説明していきます。
プログラミング言語の文法
プログラミング言語のルール部分ですよね。
例えば、下記のような感じ。
- 変数定義の書き方
- 分岐処理の書き方
- ループ処理の書き方
- などなど
これらについては、プログラミング言語ごとにルールが決まっているので、それに従う必要があります。
「プログラミングを勉強する」っていうと、この「プログラミング言語の文法」のことをイメージする人が多いと思います。
そして、プログラミングは「プログラミング言語の文法を覚えておしまい」ではないことを理解しておかなければなりません。
なぜならば、文法を覚えて初めてスタート地点に立ったイメージになるからです。
覚えた後にプログラムを組み立てていき、やりたいことを実現していく必要があるからです。
文法を覚えたあとは、以降で出てくる2つのことを勉強していきましょう。
アルゴリズム
アルゴリズムとは、「手続きや手順」のことです。
プログラミングの文法(ルール)を学んだあとには、それら分法を使い処理を組み上げていくことになります。
これらの処理の順番や後続のことをアルゴリズムといいます。
プログラムによってやりたいことが1つあったとしても、それを実現する為のアルゴリズム(処理手順)は複数あります。
そして、このアルゴリズムこそがプログラミングをする人の腕の見せどころとなります。
なぜならば、アルゴリズムによって、処理速度の速いものや処理の中身が分かりやすいもの、ムダがないもなど様々になるからです。
アルゴリズムは、プログラミングをする上で、「1番重要で1番おもしろい」ところになります。
正直なところ、このアルゴリズムの部分はプログラミングというよりは、その前工程の設計段階で決まってしまったりしまいます。
ですが、全部が全部ではないので、よりよいアルゴリズムというものを意識し、プログラムを組み立てて行く必要があります。
ライブラリ、フレームワーク
「ライブラリ」、「フレームワーク」とは、なにか分かりますでしょうか。
ライブラリとは
ライブラリとは、他のプログラムから呼び出されるために用意された「便利な部品」です。
プログラムで実現していきたいことを、1つ1つキーボードで入力して組み上げていくことは大変なので、そういったときに便利な部品を呼び出して、処理を任せるわけです。
ライブラリは、「便利なプログラムが集まったファイル」と覚えておけばOKです。
アプリケーションフレームワーク
アプリケーションフレームワークとは、プログラム処理の「枠組み」です。ただ単に、フレームワークと呼ぶ場合が多いです。
世の中にはさまざまなシステムがありますが、システムに必要な一般的な機能が予め枠組み(雛形プログラム)として用意されたものになります。
たとえば、データベースにリクエストを投げ、希望した情報を抽出する処理などがそれに当たります。
プログラミングをする人は、データベースに接続するプログラムなどは意識する必要がなく、「どんな情報を抽出するのか」という部分のみプログラムするだけでよいのです。
ライブラリやフレームワークの種類、使い方を覚える
あんな処理をしたい、こんな処理をしたいといったときに、こんな「ライブラリがある」などを理解していおくと大変便利です。
そしてどのようにライブラリを呼び出しすれば良いかも理解しておく必要があります。
ただ、仕事の場合だと使って良いもの/ダメなものが決まっていますので、その都度使い方を覚えておけば良いと思いです。
フレームワークの場合は、このシステムではこのフレームワークを使うなど決まってしまっていますので、従うしかありません。
しかし、メジャーどころのフレームワークは覚えておくと、良いです。
なぜなら、採用試験のときにも「○○を使ったシステム構築を△年、経験してきました。」と話ができるからです。
いろんなプログラムを読むことで学びがあります
プログラミングを学ぶためには、「他の人のプログラムをたくさん読む」ことも役に立ちます。
なぜならば、「きれいなプログラムの書き方が分かる」からです。
きれいなプログラムの書き方が分かる
いろんなプログラムを見ていると、「見やすいな〜」だったり、「見づらいな」だったりいろいろ感想を持つ場合があります。
そのときになぜ見やすいのか、なぜ見づらいのかを考えてみると良いです。
大抵の場合は下記の場合に、見やすいと感じると思います。
インデントが整っている
見やすいプログラムは漏れなく、インデントが揃っています。
そのため、IF文の中やループ処理の中に囲われている範囲をすぐに把握することができます。
ソースコード上のコメント
ソースコード上に適度に説明コメントが記載することも大切です。
全部のプログラムソースに書くわけではありません。ポイントとなる箇所にコメントを記載すればOKです。(逆にコメントを書かなくても分かるようなソースコードを書けたらすばらしいですが。。)
こちらについてもいろいろなプログラムを見ることで、どのようにコメントを書くと良いのかを掴むことができるようになるので、参考になるかと思います。
処理の共通化などが正しくされていて無駄なソースがない
きれいなプログラムの場合、処理の共通化などもきちんとされています。
念の為ですが、処理の共通化とは下記のようなことです。
例えば、「クラスの人別に国語、数学、英語、理科、社会の5教科の平均点」を求める処理を入れたい場合、下記のような処理を組むことができます。
処理①:Aさんの平均点を求める計算処理を実施
処理②:Bさんの平均点を求める計算処理を実施
処理③:Cさんの平均点を求める計算処理を実施
ここで計算処理を共通化した場合には、下記のようになります。
処理①:Aさんの平均点を求める計算処理(Aさんの点数を渡し、処理④を呼び出し)
処理②:Bさんの平均点を求める計算処理(Bさんの点数を渡し、処理④を呼び出し)
処理③:Cさんの平均点を求める計算処理(Cさんの点数を渡し、処理④を呼び出し)
処理④:平均点を求める処理
こうすることで、平均点を求める処理を複数箇所(処理①、処理②、処理③)それぞれにコーディングする必要はなく、処理④にのみ処理を書いておけば良いので、メンテナンスもしやすいです。
※例えば、平均点を「小数点第一位まで算出する」という処理から、「小数点第二位まで算出する」に変更が入った場合には計算処理が「処理④」のみであれば、そこだけ変更すれば良いので、簡単です。
まとめ
本記事の振り返りです。
- プログラミング学習とは3つの理解が必要(言語の文法、アルゴリズム、ライブラリやフレームワーク)
- いろんなプログラムを目にすることで、学べることも多い
本日はここまでです。どなたかの参考になればと思います。