初心者を卒業!現役が教えるプログラミング上達方法

のえる のえる 2019.09.04

みなさん、プログラム書いてますか?

 

今回は今までの経験から、プログラム初心者の方の上達のコツを書いていこうと思います。

 

ただ 上達 には色々な意味があると思いますが、
この記事では コピペを卒業し、自分で”見やすい”プログラムを書いていけるようになる とします。

 

また、既にプログラムをがっつり書いている方も軽く目を通してもらうと、参考になることが書いてあるかもしれません。

はじめに

まずはじめに 見やすいプログラムに100%の正解は存在しない ということを述べておきます。

 

これは複数の要因がありますが、プログラム言語開発環境、果ては状況によって変わってしまうものだからです。

 

「うちの会社ではこう書いてる」と言っても、他社では「こっちの書き方をしているから直してくれ」と言われるくらいです。

 

ですので、初心者の方は 共感・納得できるものから取り入れてみる くらいの感覚で少しずつ取り入れていってみてください。

 

一気に上達は難しいと思いますが、確実に一歩ずつ上達に近づいていくと思います。

補足

例題はPHPという言語で書かれていますが、本質はどの言語でも基本的に同じです。

環境編

タブとスペース(半角/全角)を混在しない

開発をしているとき、みなさんはタブ、スペースのどちらを使っていますか?
どちらを使っても間違いではありませんが 混在させること は避けた方がいいです。

 

これの理由は 可読性(読みやすさ)が落ちる可能性がある からです。
これは タブの表示が一定とは限らない ためです。
下記に具体例を見てみましょう。

 

タブ1つで半角スペース4つと設定されているエディタの場合

 

では別のエディタで開いてみましょう。

 

タブ1つで半角スペース2つと設定されているエディタの場合

 

ファイルBのプログラムで、ファイルAの中身を読み込んで使用する時、それぞれの文字コードが異なると読み込んだデータが破損した扱いになってしまう事があります。

 

データが破損する=読み取れない となってしまいますが プログラム自体には問題がない ため、問題解決時に不要な時間がかかってしまいます。

 

プロでもこの手の問題解決には時間がかかるため、初心者のうちから文字コードを統一するクセをつけましょう。

エディタのカラーテーマを設定する

メモ帳などの白背景+黒文字でももちろん動きますが、プログラムのミスにつながります。
具体的には 入力ミスに気付きにくくなる という問題があります。

 

ですので、下記のように定数化や変数化しておくことが望ましいです。

書き方を統一する(コーディング規約を作る)

たとえば 定数はすべて大文字変数はキャメルケース など、プログラムの書き方を一定に保っておくことで プログラムの読みやすさ(可読性)と管理・修正のしやすさ(保守性) が上がります。

キャメルケースは、複合語をひと綴りとして、要素語の最初を大文字で書き表すことをいう。
キャメルケース – Wikipedia –

 

悪い例

 

では、きれいに直していきましょう。

 

良い例

コメントを書く

プログラムが書けるようになると 書くことに精一杯 になり 他人が読むことを意識しない プログラムが出来上がります。

 

この時、大事なことは 明日の自分は他人 であり 他人が自分と同じだけプログラムが読み書きできると思わない ことです。

 

私は仕事で様々な言語や現場を経験しましたが、コメントが書けない人が本当に多いです。
コメントは自分のためではなく他人のため に残すものと考えましょう。

 

コメントを残すことで プログラムを読まなくても何をしているかがザックリとわかる ようになります。
逆に 何をしているかよくわからない となってしまうコメントはNGです。

スコープの範囲を小さく保つ

ここで言うスコープとは 変数の有効範囲 のことを指します。
このスコープの範囲を大きくしてしまうと、思わぬところで不具合が発生してしまう原因となります。
どういうことか、例を見ていきましょう。

 

この例のように短いものではほとんど発生しませんが、プログラムが肥大化していくほど、この問題にぶつかる可能性が大きくなります。
こういう事故にあわないためにも、スコープの範囲を意識し、可能な限り小さく保つように意識しましょう。

 

先ほどのプログラムは下記のように直すとスコープの範囲が小さくなります。

 

調べる力が付いたら、次は自分でプログラムを書きましょう。

 

具体的には コピー&ペーストしたプログラムを1行ずつ調べていく ということが良いと思います。

 

プログラムの詳細を調べていくことで、その命令は何をしているのか・何ができるのかをゆっくり自分で咀嚼(そしゃく)できます。
咀嚼した後、今度はコピー&ペーストをせず、自分の力でプログラムを書いてみましょう。

 

その際、わからない場合は 各言語の公式ドキュメント(マニュアル) を見るようにしましょう。
何故なら インターネットにアップされているプログラムが正しく動く保証はない からです。

 

ここまで出来た時が本当の意味での プログラムを理解した ということだと思います。

記事執筆時点での各言語の公式ドキュメント
C 言語リファレンス – Microsoft Docs –
C# リファレンス – Microsoft Docs –
C++ 言語リファレンス – Microsoft Docs –
PHPマニュアル – PHP –
Python 3.7.4 ドキュメント – Python –

アノテーションを使い分ける

アノテーションとは、一言で言うと 注釈 です。
プログラムを書いている時 「メモを残しておきたい」 「ここは後で修正しよう」 といったことがあります。
そんな時、すべてコメントで書くのではなく、アノテーションを使いましょう。

アノテーションとは、「注釈」という意味の英単語で、ITの分野ではデータやプログラムの中に特殊な記法を用いて埋め込まれた付加情報のことをこのように呼ぶことが多い。
アノテーション – T用語辞典 e-Words –

 

悪い例

 

良い例

 

ただし、間違っても どれを使えばわからないから全部TODOにしちゃえ といったことはご法度です。
アノテーションの意味がなくなってしまいますからね。

 

アノテーションについてはよくまとめられているサイトもありますので、一読されてみてはいかがでしょうか?

TODO: 以外のアノテーションコメントをまとめた – Qiita –

「かっこ良い」より「わかりやすい」を優先する

他人のプログラムを見ていると 「かっこ良い書き方だな」 と思うことがあるかと思います。
しかし、そのかっこいい書き方のプログラムは果たして読みやすいでしょうか?
例を見てみましょう。

 

悪い例

 

これはもっとわかりやすくした方が良いです。

 

良い例

これで初心者が見てもわかりやすいif文になりました。
また、どうやってテストをすれば良いかも一目でわかります。

 

どれだけかっこ良いプログラムを書いても利用者には全然伝わりませんので、プログラムにカッコ良さは二の次というわけです。

 

カッコ良いプログラマとは、カッコ良いプログラムが書けるのではなく 「不具合を出さないようにプログラムを作る」 人のことではないでしょうか。

さいごに

ここまで長々と書きましたが、すべてを実践する必要はありません。
最初に書きましたが 共感・納得できると思った事 から始めてみると良いと思います。

 

カッコ良いエンジニアを目指していきましょう!

スポンサーリンク

POPULAR

のえる

書いた人

のえる

Full-stack Developer / Guitarist