【質問1】テーマをどうやって探せばいいか
これは凄く簡単です。
自分が欲しいものを作れば良いです。
なんか困っていることとか、こうしたら便利なのにというのを作れば良いです。
なんか難しそう?
そんなの関係無いです。
とりあえずやってみましょう。
技術が足りなければ調べればステップアップできます。
欲しいものが見つからない?
それは多分基礎知識が足りていません。
本の読み込みが足りないとか、プログラムの動きの理解が足りないとかそういうことだと思います。
その辺の知識が深まっていけば、あれはこう動いているからこういうのが作れるな、それならこういうことができそうだ、みたいなのを思いつくはずです。
【質問2】テーマが定まったら、いきなりコーディングではなく設計が必要です、どうやって設計すればよいか
悩む必要ありません。
あなたは顧客から依頼を受けてプログラムを作るプログラマではないのですから。
とりあえず作ってみましょう。
作りたい物が頭の中に浮かんでいるなら、それがどのような物なのかはあなたの頭の中にあります。
それはどうやって使いますか?
コンソールで操作しますか?Webアプリですか?スマホアプリですか?
コンソールじゃなくてスマホだなとか、Webアプリを作りたい!とか考えつくはずです。
それが決まったら、それに付いて学びましょう。
本で学んだ技術だけだと足りないかもしれません。
よくある事です。
足りない技術を学びましょう。
例えばWebアプリを作る場合、HTMLを学べばページが作れます。
複数ページでリンクを貼ってちょっと大きなページ構成にしたら、レイアウトが気になりだして、全部同じレイアウトにするのにCSSを覚え始めたりします。
その後は動きが欲しくなってJavaScriptを学んだり、もっと綺麗なレイアウトにしたくてCSSフレームワークを学んだり、データを保存したくなってバックエンド側の実装を学んだり、ユーザ認証がしたくなってDBに手を出したり。
何か作るっていうのはそんなもんです。
「文法を本で学んだだけ」の状態から先、どうすればいいでしょうか
しかし、制御構文の使い方やアルゴリズムを理解させるためものです。「ソフトウェアを作る」とは少し意味合いが異なりそう> です。
「本で学んだだけ」と書いていますが、演習問題すらやっていないようですね。
学んだというか流し見ただけと言えるので、テーマとか設計とか言っていないで演習問題やりましょう。
九分九厘学んでいません。
学んだ気になっている厄介な人になっているだけです。
道を歩いていて知り合いにばったり会った時に「最近プログラムの勉強始めたんだよ」と世間話に使える程度の知識しか無いと思います。
昔は「あ」すら書けなかったのに今書けているのは、鉛筆で「あ」と書いたからだと思います。
プログラムの演習問題はまさにそれなので、とりあえずやってみましょう。
大抵、頭の中で思いついている事をプログラムにすると、なんで動かないんだ?になると思います。
それを解決するのもプログラミングです。
とりあえず「あ」を書き始めましょう。