プログラムを作る時には、いきなりどうコードを書こう?なんて考えたりはしません。
そんなことをしてもさっぱり思いつかないのは当然です。
まず最初に行う必要があるのが、作りたいものそのものの理解です。
自分が作りたいものはどんなものなのか?
どんな事ができて、どんな見た目で、どんな操作をして、それに対してどんな動作をするのか、等々、隅々までを理解し、それらを決定する必要があります。
例えば、お小遣い帳アプリを作るとして、まずは、お小遣い帳がどんな物かを知らなければ作りようがありません。
お小遣い帳とはどんな物で、どんな目的があって、それにどんな事を求めるのか等々を、具体的に書き出すのです。
その次に必要な物は、上で具体的なイメージとした、作りたいものを、今度は要素毎に分解してより具体的な物にしてゆきます。
まずは、どんな機能が必要なのか、具体的にしてゆきます。
お小遣い帳であれば、データを書き込める事が必要でしょう。書き込み機能が必要です。
さらには、記録として残らないと意味がありませんから、書き込んだデータを保存する機能が必要です。
保存しただけでは意味が無いので、読み込み機能も必要です。
紙の小遣い帳にはありませんが、残高を自動的に計算してくれる機能もあったほうが便利です。
さらに、書き間違った時の為に、データの削除機能や、書き換え機能も必要でしょう。
さらに、データに関しても具体化します。
記録したいデータには、どのようなものがあるのか?
日付と金額だけで良いのか、内容を自由に書ける欄は欲しいとか、ジャンルを登録できたほうが良いとか、いろいろあります。
そんな感じで、まずは荒く分解したら、次はその個々についてさらに分解を進めて解像度を上げてゆきます。
データを保存するって具体的にはどうするのか?
データベースを使うのか、独自のファイル形式を作るのか、テキストで書き出すのか等々
さらに、テキストで保存するならどんな形式で書き出すのか、ファイルの単位は?等々
それらをひたすら突き詰めてゆくと出来上がるのが、プログラムの仕様です。
まずはこの仕様を作ることが必要です。
これが出来てから、その仕様を実現する為にはどんな方法があってどんな手順が必要なのか?という話になります。
この方法の選定の中に、プログラミング言語の選定も含まれる事があります。
○○をするなら✕✕言語が向いている等があるので、目的が決まってから言語は決まります。
こうやって細かい細部の仕様と具体的な手順ややる事がほとんど決まって、
それからが、プログラミングのコーディングの出番です。
この段階になれば、やる事は細部まで決まっていますので、あとはそれをコードに翻訳してゆきます。
逆に言うと、この段階にならなければ、なんとなくで漠然とコードを考えたって分かるはずがないのです。
もちろん、必ずしもプログラミングの全てがこの手順に沿っているというわけではありませんが、作りたいものもよく分からずに、ぼんやりコードを考えても駄目なことには変わりません。
いきなりコードを書き出すような人は、経験と知識から頭の中でこれらのサイクルを超高速で処理しているので、
いきなりコードを書き始めたように見えるのです。
(そういうレベルの話じゃないだろ、ってのはひとまず置いといて)