1

プログラミングスキルを上げたい大学生です。私には次の 2 つの道があります。

  1. オープンソース プロジェクトへの貢献
  2. codechef.com でパズルを解く

どちらに従うべきですか?

4

1 に答える 1

3

優れたプログラマーとは、自分の ACE (正確さ明快さ、有効性) を気にする人です。

  • 優れたプログラマーは、コードの正確さを気にします。簡単な部分は、「ハッピー パス」をコーディングすることです。これは、コードを設計および作成するときに常に念頭に置いているからです。しかし、提供された選択した実装の予期しない入力およびエッジ ケースの動作が提示された場合に存在する潜在的な例外パスについてはどうでしょうか? 時間をかけてすべてのコード パスを検討し、テストに時間を費やし、ピア レビューのためにコードを提出し、他者の提案を受け入れて適切な場合は変更を加えることによって、注意が払われます。

  • 優れたプログラマーは、コードの明快さを気にします。コードが適切に構造化されていて、表現力があり、Open-Closed Principle、Single Responsibility Principle に準拠しているかどうかにかかわらず、実行マシンはまったく気にしません。しかし、これらはすべて、バグを修正したり、動作を変更したり、機能を追加したりするために、後でコードを読んで理解する必要がある次のプログラマー、またはあなた自身にとって非常に重要です。

  • 優れたプログラマーは、コードの有効性を気にします。課せられたすべての制約を満たしていますか? パフォーマンスとスペースの制約だけでなく、エンド ユーザーに受け入れられるようにする側面、クライアント、上司、家族による開発とテストのタイムラインに対する要求も含まれます。プロのソフトウェア開発は、「NxN 行列の行列式を計算する」のような厳密に制限されたタスクではありません。多くの制約と要求があり、優れたプログラマーはこれらすべてに注意を払っており、特にすべての制約を完全に満たすのに十分な時間がない場合は、それらを管理するために最善を尽くします。

そう!オープン ソースか codechef かというあなたの差し迫った質問に答えるために、私は、オープン ソース プロジェクトに参加することで、優れたソフトウェア開発者になるためのより大きな機会が提供されると思います。気になるオープンソース プロジェクトを選んで、ACE に参加しましょう!

于 2012-09-07T00:39:27.303 に答える