プログラムの組み立て方 できない人がやっていないこと

こんにちは、トミセン(@tomisenblog)です。

多くの書籍や学習サイトで学んだ後にはプログラムの基本は理解しているんだけど、

「プログラムを読めるんだけど、書けない。」
「どうしたら、プログラムが書けるようになるの?」

書籍や学習サイトには答えが無くて、迷ってしまいがちです。
また、意外に分かりやすい情報が見つからなくて思ったより時間がかかってしまいますよね。

今回はそんなお悩みを解決します。
ずばり!「プログラミングの組み立て方」についてご紹介します。

それでは一緒に学んでいきましょう!

この記事がおすすめな人
  • プログラムが組み立てられない理由が知りたい
  • プログラムを組み立てられるようになる方法を知りたい
目次

プログラムとは?

命令を順番に書き出したもの

プログラムとは、簡潔に言うと「コンピュータへの命令を順番に書き出したもの」です。

そもそもコンピュータは命令した通りにしか動きません。
例えば「ペットに餌をあげておいて」と言えば、人間であればなんとなく予想して行動することができます。でもコンピュータには想像する力がありません。

「どの器で」「どのペットフードを」「どれくらいの量で」「どこに置く」と一つ一つの動きを順番に説明する必要があります。これをコンピュータにもわかるように命令にしていく作業が「プログラミング」です。

プログラムがイメージできたので、組み立てられない理由を説明していきましょう。

どうしてプログラムが組み立てられない?たった1つの理由

プログラムの組み立て方を知らない

プログラムの組み立て方を知らないからプログラムが作れないんです。

多くの書籍や学習サイトではプログラミング言語の文法を教えることはあっても、プログラミングの組み方を教えてくれません。

たいていの場合、変数の説明から始まってif文・for文、メソッドの作り方などを順番に勉強していきます。見本のとおりに書けば「こういう動きをする」ということを繰り返しているだけで、ただの暗記と変わりません。それでは文法を覚えることはできても、プログラムが組めるようになるわけではありません。

学校の英語の勉強で考えてみてください。少しの単語を覚えて「This is a pen.」と語順を覚えても、すぐに英語でコミュニケーションはできませんよね?プログラムも同じです、すぐにはプログラムが組み立てられません。

「文法を覚えなくていい」と言っているのではありません。文法が分からない人がプログラムを組めるということは絶対にありません。ですが文法を丸暗記したところでプログラムは組めません。

学校で覚えたたくさんの文法を組み合わせることで、言いたいことが英語で表現できるように、覚えたプログラムの文法を組み合わせることで、初めてコンピュータにさせたいことが伝えられる命令(=プログラム)を組み立てることができるようになります。

プログラムの組み立て方がわかる3つの方法

プログラムを分解して考える

プログラムは分解して理解してください。

なぜなら、細い単位に分解できないのにきちんと組み立てられるはずがないからです。
最小の単位に分解できないと余計な部分が必ず残ってしまいます。その状態でプログラムを組み立ててみても、思った通りには動いてくれません。多くの場合は期待はずれな動きをするか、必要のない処理が入り込んでしまいます。

プログラムは徹底的に分解してから今度はそれを組み立てていくの繰り返しです。

勘違いして欲しくないのは、プログラムを分解するのは最初から順に一つ一つを丁寧に追っているわけではないことです。経験あるプログラマーは、必ず斜め読みしています。どういうことかというと、いきなりプログラムの最初から順番通りに分解して考えていくわけではありません。それでは効率が悪すぎます。

必ず全体の流れを理解してから、必要な部分を細かく見ていくようにしてください。

具体的には、処理のスタートから終了までの処理に文章でいう目次をつけていくイメージです。
実際のプログラムではこんな感じです。

public void Main()
{
    BeforeProc();

    MianProc();

    AfterProc();
}

こんなプログラムがあると思ってください。
わざと分かりにくいメソッド名にしていのもありますが、なんだか分かりにくいですよね。

そういうときは、処理に目次(説明)をつけていきます。次のソースを見て下さい。

public void Main()
{
    // 入力チェック
    BeforeProc();

    // データ更新
    MianProc();

    // 画面リロード
    AfterProc();
}

すごく分かりやすく感じませんか?

ここで重要なのは、メソッドの中身もざっくり見ることです。100点満点の正解にしようとしないでください。細かく見て時間を使ってしまうのではなく、「だいたいこんな感じかな」のイメージで大丈夫です。

キレイにメソッド化されていないソースの場合は、その処理の最初に説明をつけてあげれば同じように理解しやすくなるはずです。

ポイントをまとめておきます。

ポイント

  • 全体像をつかんで、対象をざっくり見極める
  • 対象を最小の単位に分解する

そうすることで、不明な部分を整理することができで、プログラムをキレイに組み立てることができるようになります。

あわせて読みたい
プログラミング初心者脱出のためのソースコード修正のコツ こんにちは、トミセン(@tomisenblog)です。 ソースコードを修正する時に、あなたは何から始めてますか? 「とりあえず、ソースコードを確認だ!」と、いきなり作業を始...

頭の中でデバックできるようにする

プログラムを頭の中で追えるようにしてください。

頭の中で整理できていないのに、理解できているとはいえないからです。例えば経験あるプログラマーは、一通りのコーディングが終わるまでデバックしなくても問題ありません。

プログラミングを書きながら、変数にはどんな値が入って、このメソッドを通ると値がこう書き変わって、このfor文のなかでこういうデータが作られる、そういう処理のイメージがデバックしている時のように頭の中で再現できるからです。

それが本当にプログラムを読めているということです。「なんとなく」や「わかったつもり」ではなく、頭の中で再現できるほど理解しているということです。だから、ロジックの必要な部分だけ利用して、組み替えてることもできるようになります。

プログラムが組み立てられない人にコードについて質問すると、自分が書いたコードの処理が分かっていない場合があります。あちこちからコードを集めてきて、意味が曖昧なままコピペするから、加速度的に分からない部分が増えていって、どう動くか想像できないプログラムが組み上がってしまう。もはやモンスターのようなソースです。

そうならないためには、最小の単位からでいいので頭の中で実行するようにしてください。
「変数にセットされている内容なら分かる」、「for文なら分かる」、「メソッド単位なら分かる」からのスタートで大丈夫です。少しずつ大きくしていけばいいんです。

頭の中で実行できない部分が見つかれば、それが自分が理解していない部分です。IDEを使ってデバック実行して確認してみてください。理解すれば、次からはそこも頭の中で実行できます。

ポイントをおさらいです。

ポイント

  • 処理をデバックしている時のように頭の中で再現できるようにする
  • 最小の単位から初めて、少しずつ範囲を広くしていく

繰り返しているうちに必ずできるようになって、後輩に「頭の中でデバックできなきゃ!」なんて言う時がちゃんときます。

手を動かし数をこなしていく

1度や2度やればいいわけではなく、手を動かして繰り返し数をこなしていくことが必要です。

なぜなら、繰り返さなければ、身に付くはずがないからです。
スポーツで考えてみれば分かるはずです。1度や2度できたからって、「もう完璧!」とはなりませんよね? 次の時にはもう感覚を忘れてしまって、「あれ、できないんだけど・・・」なんてことに必ずなります。身に付けたかったら「体が覚えるまで繰り返し練習」しなければいけません。

プログラムも同じです。頭が覚えて無意識にできるくらいまで繰り返し練習が必要です。プログラムを分解して考えること、頭の中でデバックできるようにすることを繰り返し、繰り返し行ってください。

書籍や学習サイトの丸写しや暗記は意味がありません。コードを読んで、分解して、自分で組み立て直してを繰り返してください。すぐにデバック実行せずに、頭の中でプログラムを動かしてから、分からないところだけをデバックで確認してください。そうしないと練習にはなりません。

命令のスペルや文法のミスの大半はコンパイラが指摘してくれますが、ロジックのミスは上手く動かないことで確認していかないと分かりません。繰り返していくうちに、プログラムの組み立て方が身に付いてきます。

ポイントです。

ポイント

  • 無意識にできるくらいまで繰り返し練習する

組み立てて、ダメで、考えて、また組み立てて、またダメで。それでも考えて・・・。そんな一見無駄に見える繰り返しこそ、着実な実力となって自分に返ってきます。

※無料のプログラミングスクールという近道

それでも難しいなら、最初の基礎ベースを身につけるためにプログラミングスクールを使う方が早いかもです。TechAcademyは1週間の無料体験があるので、これを使ってプログラミングの基礎を学ぶのもありですね。
» TechAcademyの無料体験はこちら

まとめ

プログラミングの組み立て方は、プログラミングで誰もがつまずくポイントです。すぐには解決ができませんが、繰り返していれば、必ず組み立てられるようになります。

もしうまくいかないなら、つまり論理的思考の考え方が足りてないのかもしれません。論理的思考については、機会を見つけて記事を書きたいと思います。

プログラマに自信が無くてがスキルアップするための方法を知りたい方は「初心者プログラマがスキルアップするための方法」をどうぞ。

それでは、また。

こちらの記事も読まれています!


 

\ エンジニアで人生変えるなら /

  •  有名スクールを現役エンジニアが3つに厳選!
  •  あなたに合ったおすすめのスクールを紹介!

 

TECH CAMP エンジニア転職」…39歳まで転職保証されるスクール!
TechAcademy Pro」…現役が講師のコスパ最強オンラインスクール!
DMM WEBCAMP COMMIT」…給付金の対象講座もある実力派スクール!

よかったらシェアしてね!
目次
閉じる