プログラマーの繰り返し:同様の問題を解決することが重要な理由





翻訳者から:今日初心者デベロッパーのAmy Haddad による記事を公開しています。 プログラマーがすでに解決された問題に戻るべき理由を説明します。



多くの開発者が同じアドバイスを与えています。常に新しい経験と知識を得るために、できるだけ多くの問題を解決してください。 コードで問題を解決すると、新しいことを学び、既存のスキルを向上させることができるため、これは良いアドバイスです。 しかし、繰り返しも重要だと考えています。同じ問題をさまざまな方法で解決できます。 また、このような繰り返しにより、プログラマーはスキルを向上させるという形で利益を得ることができます。



Skillboxの推奨事項: 2年間の実践コース「私はPRO Web開発者です。



「Habr」の読者には、「Habr」プロモーションコードを使用してSkillboxコースに登録すると10,000ルーブルの割引があります。


わからないことを知る



初めて問題を解決できたとしても、これで問題に再び対処できるわけではありません。



1つのライブラリとそのエラーの状況を覚えています。 私はこの問題を何とか解決しましたが、長い間行き詰っていました。 しかし、数日後、私は再び同じ問題に遭遇し、すでに最初の解決策を忘れていました。 そのため、この場所をすばやくすり抜けて進むのではなく、再び時間を費やす必要がありました。



それから、条件付きの演算子と関数をもっと使う必要があることが明らかになりました。 また、問題の研究がいかに重要であるかを認識しました。これにより、自分の知識をテストし、埋める必要のあるギャップを確認できます。



上記のように、バグのあるコードを操作すると、新しいエクスペリエンスが得られます。 クラスを勉強するときに、クラスの問題を解決できることは素晴らしいことです。 この場合、すべてが非常にシンプルに見えます。 しかし、近い将来これが私に起こったらどうなるでしょうか? この場合、以前に取得した新しい知識を取得したかどうか、または統合する価値があるかどうかを理解できます。



古い問題、新しい解決策



初めてタスクに取り組むときの自分の行動を覚えていても、2番目に、スキルを向上させるための新しい解決策を見つけようとします。 たとえば、ループを使用してコードの問題の1つを解決しました。 2回目に新しいソリューションを見つけたとき、コードはより論理的で読みやすくなりました。 問題の領域でそのボリュームを50%削減することができました。その結果、すべてがどのように機能するかを理解するだけでなく、プロセスのニュアンスも把握できました。



別の同様のタスクで、Loopはコードを減らして読みやすくしました。 しかし、「繰り返し」の一環として、私はそれなしで問題を解決しました-代替の解決策を見つけることができるように。



問題の研究は私の快適な領域から私を連れ去ったと言えるので、私は箱の外側を考え始めました。 このためにのみ、代替ソリューションを見つけることができました。



テストを書くことを学ぶ



Brian Hogan Exercises for Programmersによる本を読むのはこれが3回目です。 私は彼の例を分析し、新しいソリューションを見つけるたびに分析しています。 今回は、独自のテストの作成を練習します。



仕組みは次のとおりです。私は本からランダムなエクササイズを選択し、コードに座っています。 結果のプログラムをいくつかのファイルに分割し、それぞれが個別のソリューションを担当しています。 そして、テストを書きます。



最後に、私は最初にテストを書き、次にコードを書く方法を学びたいが、これはまだ来ていない。 現在、関数の作成と強調表示、ファイルのインポートを練習しています。



エクササイズを絶えず繰り返すことで、頭に置くパターンを作成できます。 さらに、新しい問題を解決するためのメンタルモデルとして使用できます。 ところで、私はジョージポールの本「How to Solve it」でこのアドバイスを見ました。 彼は、新しい問題を解決する際に、既存の経験とのつながりを探ることを勧めています。



「過去に同様の状況であなたを助けたものについて考えてください。 現在の問題でなじみのあるものを探し、あなたの経験を活用してみてください。」



ポールは正しい。 私は本当に新しいタイプの問題を解決するために以前の経験を非常に頻繁に使用します。 たとえば、最近アナグラムを使用しました。 そのとき得た経験の助けを借りて、現在の問題の1つを解決することができました。 前のタスクは簡単だったという事実にもかかわらず、新しいソリューションを見つけることができました。



問題を研究することは、プログラマーに多くの有用なことを与えます。 私たちは新しい概念を策定し、古い概念を強化し、知識ベースを作成します。それが作業の基礎となります。



Skillboxの推奨事項:






All Articles