プログラミングのロジックが思いつかない。コードは少し読めるようになったけど、まだ自分で考えて書くのは難しい。ロジックの考え方のコツとかあれば、教えて欲しい。
こんなお悩みにお答えします。
この記事で解説する「プログラミングのロジックが思いつかない原因と鍛え方3つ」をお読みいただければ、実践で役立つプログラミングのロジックを考えるコツがわかりますよ。
実際に僕は現役の開発エンジニアで、頻繁にロジックを考える機会があります。プログラミング言語の資格「JavaGold」も保有しているので、これからお伝えする情報の信ぴょう性はあるかと。
プログラミングのスキルを高めて市場価値を上げたい方は、ぜひ最後まで読んでみてください。
プログラミングのロジックが思いつかない原因
まずはプログラミングのロジックが思いつかない原因をみていきましょう。
ロジックが思いつかない原因はいくつかありますが、主に以下が原因であることが多いです。
- 思考停止でコピペしている
- ロジックを考える経験が少ない
- 手順を間違えている
原因1:思考停止でコピペしている
1つ目の原因は、思考停止でコピペしているからです。考えなしにコピペばかりしていると、実力が身につかないんですよね。たとえば、処理の流れを人に説明できるくらいまで理解し、コピペすればスキルは身につきます。
- 良い例:コピペしたプログラムが何をしているのか人に説明できる
- 悪い例:コピペしたプログラムが何をしているのか人に説明できない
コピペ自体は悪いことではないです。大事なのは「理解してコピペしているかどうか」です。
何も考えずにコピペするのは、単純作業と同じなので、なかなかスキルが身に付かないんですよね。なので、ロジックを考える力もつかないのです。
原因2:ロジックを考えたことがあまりない
ロジックが思いつかない2つ目の原因は、ロジックを考えたことがあまりないからです。たとえエンジニアとして「実務経験を積んでいる」と言っても、ロジックを考える機会がなければ、もちろんロジックを考える力は身につきにくいです。
ロジックを考えるのが上手いプログラマーは、頭がいいからロジックが思いつくのではありません。ロジックを考えたことがたくさんあるから、すぐに思いつくんです。
たとえば、あなたはサッカー少年だとします。今まで試合には出たことがなく、練習ではいつもリフティングばかりしていました。その状態で試合に出てゴールをたくさん決められるかと言われると、難しいですよね。
プログラミングも同じです。考えもなしにコピペばかりしている人と、実際にロジックを考えながら開発している人とでは、もちろん後者の方がロジック力は向上します。
ヘルプデスクが多くて開発の機会が少ない場合
とはいえ、現状の会社でヘルプデスクばかりさせられていたり、開発の機会がない方がいるのも事実です。その場合は現場を変えるなどの対策をする必要があります。
以下では、ヘルプデスクはスキルが身につかない理由を解説していますので、よければ参考にしてみてください。
原因3:実装の手順を間違えている
3つ目の原因は、実装の手順を間違えているからです。実装手順を間違えると、なかなかロジックが思いつかないです。
例えるなら、実現したいことを言語化せず、ふわっとした状態でコードを書こうとすることですね。いまから何をどのように実装したいのかが明確でなければ、ロジックが思いつかないのも無理はないです。
具体的な実装手順の考え方は次以降で解説しますね。
プログラミングのロジックの考え方と3つのコツ
ここからはプログラミングのロジックの考え方をご紹介します。コツがわかれば、ロジックを考えるのはそこまで難しいものではありません。
以下の3つが考え方のコツです。
- 実装したいことを順序立てる
- ひとまずコードを書いてみる
- 仮説と検証を繰り返す
考え方1:実装したいことを順序立てる
まず実装したいことを順次立ててみると良いです。プログラミングのロジックは、順次立てて考えることがポイントです。
たとえば、以下のように手順を組み立てると良いですよ。
- 実現したいことを言語化する
- 「1」の内容をもとにコメントを書く
- コメントを元にコーディングする
上記の通り。
では、もう少しわかりやすいように、次で具体例をあげていきますね。
具体例:会員情報を保存する機能の実装
あなたは、とあるWebアプリの開発を担当しています。そこで会員情報を保存する機能を実装してと頼まれました。
そこであなたは、以下のようにロジックを考えます。
- 手順1:HTMLで画面に会員情報の入力フォームを実装する
- 手順2:HTMLとCSSで保存ボタンを実装する
- 手順3:保存ボタンのクリックイベントをJavaScriptで実装する
- 手順4:保存ボタンがクリックされたらサーバサイドで会員情報を受け取る処理をJavaで実装する
- 手順5:受け取った会員情報をデータベースに登録するためにSQLでInsert文を書く
- 手順6:登録した会員情報を取得して画面に表示する
上記の通りです。ポイントは、シンプルに箇条書きで書くことです。実装手順を言語化すれば、あとはそれに沿って実装するだけです。
0から自分でロジックを考えるのが難しいなら、他に参考になりそうなコードがあれば、参考にしながら手順を組み立てるのと良いですね。
細かいif文の条件とか、for文のなかの処理とかは実際にコードを書きつつ、わからなければググったりChatGPTに質問したりしながら進めていけばOK。これの繰り返しです。
ロジックは「頭の中だけで考えないこと」
ロジックを考える際は、「頭の中だけで考えないこと」がコツです。ロジックが複雑なものほど、頭の中だけで考えると思考がぐちゃぐちゃになってまとまらないからです。
たとえば僕は、実装したいことはエクセルやメモ帳などに書き出してからコードを書くようにしています。
もちろん現場には基本的に設計書があるので、設計書通りに実装するのが基本です。ただ設計書がなかったり、あったとしても使い物にならない時もあります。そういった場合は、まずは自分で何をしたいのかを言語化すると良いですね。
考え方2:ひとまずコードを書いてみる
考え方1で説明した、実装したいことを言語化できたら、あとはコードを書いてみましょう。実際に書いてみることで、プログラムが動くかどうかがわかります。
もしプログラムが動かないなら別の手法を試すなど、次の手を考えることが可能です。
プログラミングはトライアンドエラーです。たとえロジックが思いついたとしても、一発でコードを書いて動かすのはなかなか難しいです。
「ロジックが思いつく→コードを書く→エラーが出る→エラーを解消する→動く」
上記の通りです。
考え方3:仮説と検証を繰り返す
仮説と検証を繰り返すと良いです。なぜなら、プログラムは一度書いただけで正常に動作しないこともあるからです。仮説を立てるときは、「自分の中で根拠を持った上で立てることがポイント」です。
- 問題点:会員情報を画面にうまく表示できない
- 仮説:フロント側の処理の記述が間違っている可能性が高い
- 仮説の根拠:DBから会員情報は取得できているのことはサーバサイドのデバッグで判明しているから
- 検証:フロントの画面表示処理のコードを修正
仮説は闇雲に立てるのは一か八かの運頼りになるので、スキルが身きません。仮説は経験値が多ければ立てやすいですが、初心者は経験が少ないので立てにくいと思います。その場合は、ググりながら立ててみるといいです。
上司に聞ける環境にいるのであれば、「自分の考えが正しいかどうが」を聞いてみるのも一つの手段です。自分なりに根拠を持った上で、仮説検証を繰り返してみてください。
プログラミングのロジックの鍛え方3つ
プログラミングのロジック力は数をこなせば上達します。ロジックを効率よく鍛える方法もありますので、そちらについてもご紹介しますね。
結論として、以下を意識すれば、効率よくロジックを鍛えられますよ。
- 処理を人に説明できるようにする
- ものごとを論理的に考える
- コードを書ける環境に身を置く
鍛え方1:処理を説明できるようにする
1つ目は、プログラムの処理を説明できるようになることです。プログラミングをする際は、常に自分が実装している箇所は、他人に説明できることが大事です。
人に説明できるようになると、コードを読む力が向上します。コードを読む力が向上すると、同時にコードを書く力を鍛えられます。
たとえ簡単な改修案件で他の類似機能からコードをコピペすれば一瞬で終わるようなものでも、きちんと処理を理解してコピペするだけでもロジック力は鍛えられます。
あえてコピペせずに自分で考えて書いてみるのも練習になりますね。
ロジックを考えるには、プログラムを読む力と書く力の両方が必要です。なので、プログラムの処理の流れは人に説明できる状態にしておくと良いですよ。
鍛え方2:ものごとを論理的に考える
2つ目は、日頃からものごとを論理的に考えることです。プログラミングは順序立てて考えていくので、論理的思考力が必要だからですね。
たとえば、いままで当たり前だと思っていたことを、あえて「なぜそうなるのか?」と考えてみたり、知っていたつもりの言葉の意味をあらためて調べてみたり。そうすると意外と「なるほど!〇〇だから△△だったのか!」と腑に落ちることが多いです。
そもそも論理とは、筋道を立てることです。よくある例で「AならばB、BならばC、AならばC」というのがありますよね。「〇〇だから△△」というように、理由とセットで考える習慣を身につけていきたいですね。
論理的思考力が向上すれば、プログラミングのロジックを考える際に活かせます。
鍛え方3:コードを書ける環境に身を置く
結局のところ、プログラミングは日頃からコードを書いている人が上達します。でも現場によってはコードがなかなか書けないところもありますよね。
実際に僕は会社員エンジニア時代は30名くらいのSIer企業に所属していましたが、ヘルプデスクが多かったり、やっとコードが書けると思いきや数行修正するだけの簡単な改修で終わったりと、なかなかコーディングができませんでした。
僕はエンジニア歴一年半でフリーランスに転向したのですが、これはコーディングをしたかったからです。今ではほぼ毎日プログラミングをする機会があります。おかげでロジック力が身につきましたし、給料も倍以上上がったので、一石二鳥です。
頻繁にコードを書ける環境に身を置けば、効率よくプログラミングのロジック力を鍛えられます。今の環境でコーディングする機会が少ないのであれば、他の案件にシフトできないか会社の上司に相談してみたり、あるいはフリーランスになってコーディングが多そうな開発案件を選ぶのも得策ですよ。
フリーランスに興味のある方は、下記でおすすめのフリーランスエージェントをまとめているので、ぜひ参考にしてみてください。
プログラミングは量をこなせば上達する
プログラミングのロジックが思いつかない原因と、鍛え方について解説しました。
ロジックが思いつかないのは才能やセンスがないのではなく、一言で言うと経験不足なんですよね。プログラミングは「量」をこなせば上達します。
才能やセンスは、多少は関係あるかもしれませんが、凄腕のプログラマーたちはみんな最初からプログラミングができたわけではありません。目標に向かってコツコツ積み上げられるかがポイントです。
ぜひ本記事で解説した内容を、実践してみてくださいね。