練習は本当に唯一の方法ですが、それは証明を読むことによっても助けることができます。他の回答者が私が考えることができるすべてをカバーしているので、私は練習に触れません、それで私は読むことによって私が何を意味するかについて話すだけです。
教科書は「重要な」証拠を書くのがとても好きです。彼らはしばしば非常に強力なステートメントを証明し、本当に空想的であるため、それは非常に素晴らしいです。しかし、オリンピック選手をエミュレートして1日目から世界クラスの体操選手になることを学ぶべきではないのと同じように(おそらく背骨を壊すでしょう)、(最初は)本当に大きな証拠を読むべきではありません。私が役に立ったのは、通常は返却された宿題(私はあなたが学生だと思います)からの小さな証拠を読んだり、時には賢明な教科書を読んだりすることでした。
プルーフを読むことが役立つと思う理由は、学業プルーフの巨大な塊を構成する「トリック」または「アイデア」の小さなセット、およびさらに高度なものがあるためです。データ構造の品質と漸化式には、通常、帰納法による証明に関連する思考が含まれ、有限状態マシンでの計算可能性に関連する証明では、鳩の巣原理が使用されることがあります。まれに、対角化の概念が使用されます(非常にまれですが、心配する必要はありません)。そしてもちろん、他のほぼすべての証明は、矛盾による証明を使用します。他にも手に負えない便利なツールがあると思いますが、ぜひご理解いただければ幸いです。
いつ、どのように、そしてなぜある特定の方法で問題に取り組むのかを理解することは、実践と経験を必要とするものです。練習に加えてプルーフを読むことをお勧めします。これは、すでに遭遇した証明方法を使用する創造的な方法を示すことが多いためです。
最後に、最初にプログラミングを学んだのはいつかを覚えておいてください。どうやって良くなったの?私の意見では、物事を証明することと物事をプログラミングすることはそれほど異質ではありません。:)