プログラマーにはそれぞれ独自のプログラミング方法があります。元の記事の著者である Ben Teese は、プログラマーとしてのキャリアの中で、より多くのことを考え、より多くのコードを作成し、より多くのテストを行うというコーディング プロセスについての洞察を獲得しました。ソフトウェアを構築するプロセスは継続的な学習プロセスであり、優れた戦略は計画、実行、反映の後に続きます。
プログラマーとしてのキャリアの中で、私は次のようなプログラムコーディングプロセスに出会い、この期間に他の多くの理論やアイデアにも触れましたが、これが私にとって最も適していると今でも思っています。
一般的なパターンは次のとおりです:
a: 少し考えます
b: 少しコーディングします
c: 少しテストします
もう一度来てください ステップ 1 に進みます
ステップ 1: さらに考える
キーボードのパチパチ音のリズムがプログラムの生産性のレベルを表していると考えている友人は何人いるでしょうか?もしあなたも同じように思っているなら、問題に遭遇したときに一度脇に置いて、冷静に考えてみてほしいと思います。
それについて考えているときにどこから始めればよいかわからないと感じたら、次のように自問してみてください。「具体的に何をしたいのですか?」 一旦冷静になれば、この質問に対する答えは、自分自身の方向性を定めたり、問題へのアプローチを再考したりすることにつながるかもしれません。
次に、次の質問について考えてみることをお勧めします。単純な問題を複雑にしたことがありますか? 問題に対して最も単純な解決策を使用しようとすることは、すべてのプログラマーが努力すべきことです。しかし、十分な知識がある場合、問題を解決するためにこのような単純な方法を使用するのはやりすぎでしょうか?このように考えてみると、最終的に私たちが直面するのは、ますます複雑化する問題の山なのかもしれません。考え方を変えてみてください。問題を解決するために単純な方法を使用した場合の最悪の結果は何でしょうか。問題を解決できないことより悪いことですか?引き返せない地点を超える方法を学ぶことが重要です。
したがって、問題に遭遇したときは、上記の質問を自分自身に問いかけてみるとよいでしょう。そしてボトルネックやジレンマに到達したら、次のステップへの移行を検討します。
ステップ 2: さらに実行します
パチパチ音を立てるキーボードのリズムがプログラムの生産性のレベルを表していると考えている友人は何人いますか?もしあなたもそう思っているなら、それを脇に置いて、問題に遭遇したときに冷静に考えてみてほしいと思います。
それについて考えているときにどこから始めればよいかわからないと感じたら、次のように自問してみてください。「具体的に何をしたいのですか?」 一旦冷静になれば、この質問に対する答えは、自分自身の方向性を定めたり、問題へのアプローチを再考したりすることにつながるかもしれません。
次に、次の質問について考えてみることをお勧めします。単純な問題を複雑にしたことがありますか? 問題に対して最も単純な解決策を使用しようとすることは、すべてのプログラマーが努力すべきことです。しかし、十分な知識がある場合、問題を解決するためにこのような単純な方法を使用するのはやりすぎでしょうか?このように考えてみると、最終的に私たちが直面するのは、ますます複雑化する問題の山なのかもしれません。考え方を変えてみてください。問題を解決するために単純な方法を使用した場合の最悪の結果は何でしょうか。問題を解決できないことより悪いことですか?引き返せない地点を超える方法を学ぶことが重要です。
したがって、問題に遭遇したときは、上記の質問を自分自身に問いかけてみるとよいでしょう。そしてボトルネックやジレンマに到達したら、次のステップへの移行を検討します。
ステップ 3: さらにテストする
正直に言うと、このステップはコーディングほど面白くないだけでなく、非常に面倒でもあります。
ただし、テストリンクがないプロジェクトの場合は、個人のオープンソースプロジェクトで実行することをお勧めします。テストなしでリリースされた場合、それを使用する勇気のある人は多くないからです。
煩わしいことに加えて、テストはコーディング プロセスの中で最も複雑な部分かもしれません。見たものがそのまま得られるプログラミングとは異なり、最適なテスト ソリューションを見つけるには 2 倍の労力がかかる場合があります。テストの特徴は不確実性が多いことです。
テスト駆動開発手法を採用している友人もいます。私の意見は、これは良いことですが、これを貫いてください。私の場合、アルゴリズムに重点を置いたプロジェクトの場合にも、このアプローチを使用します。
ステップ 4: もう一度やり直す
問題の解決は一夜にして達成されるものではないことが多く、ループとフィードバックが非常に重要です。ソフトウェアを構築するプロセスは継続的な学習プロセスであり、テクノロジーと問題解決能力を強化するために常に学習しています。良い戦略は、計画→実行→反映のプロセスに従うことです。
概要
上記は、コーディングプロセスに関する私の個人的な洞察の一部です。現在では、ますます便利な開発ツールが登場し、上記の4ステップのプロセスがよりスムーズになりました。ぜひ試してみてください。