プログラミングは、現代において最も汎用性の高いスキルのひとつです。会社のウェブサイトを作成できることから、リダイレクトエラーを簡単に修正する方法を知っていることまで、これらのスキルは雇用主にとっても、自分自身にとっても、さまざまな面でかけがえのないものになります。しかし、今のままでは最高のプログラマーにはなれません。プログラマーとしてのスキルを向上させる方法を学ぶには、この先を読んでください。
1
問題を明確に分析する
2
その問題をどう解決するか、よく考える。
3
完全な要件を集める。最終製品がどのような目標を達成する必要があるのか、ユーザー層は誰なのか、時間をかけて書き出してください。この段階で考えを明確にすることで、後々の時間を大幅に節約できる。
4
徹底的な実装計画(またはモデル)を書く。
- 小規模で自己完結的なものであれば、基本的なフローチャートや簡単な方程式で済むかもしれない。
- 大規模なプロジェクトの場合は、作業をモジュールに分割し、以下を検討するのに役立つ:
- 各モジュールが実行しなければならないタスク
- モジュール間のデータの受け渡し方法
- 各モジュール内でのデータの使用方法
- 要件の収集と計画は面倒で、そのままコーディングに入るよりずっと楽しくないかもしれないが、デバッグに何時間も費やすのはもっと面倒だ。時間をかけて、プログラムの流れと構造を前もって正しく設計しておけば、コードの最初の行を書く前に、目標を達成するためのより効率的な方法を見つけることができるかもしれません!
5
コードを自由にコメントする。コードに説明が必要だと思ったら、コメントしましょう。各関数の前には、引数や戻り値について1~2行記述しましょう。コメントには、「何を」よりも「なぜ」を書くようにしましょう。 コードを更新したときは、忘れずにコメントを更新しましょう!
6
変数には一貫した命名規則を使いましょう。そうすることで、それぞれの変数の種類と、その変数の目的を把握しやすくなります。これは、単に x = a + b * c よりも入力が多くなることを意味しますが、コードのデバッグや保守がずっと簡単になります。よく使われる慣例として、
ハンガリー記法がある。 例えば、整数変数の場合はintRowCounter、文字列の場合はstrUserNameとします。命名規則は何でもかまいませんが、一貫性があり、変数名が説明的であることを確認してください。(下記の警告を参照)。
7
コードを整理しましょう。コードの構造を示すために、視覚的な構造を使用します。例えば、条件(if,else,...)やループ(for,while,...)の中にあるコードブロックをインデントします。また、変数名と加算、減算、乗算、除算、さらには等号(myVariable = 2 + 2)などの演算子の間にスペースを入れてみましょう。コードがよりエレガントになるだけでなく、プログラムの流れが一目でわかるようになります。(インデントに関するヒントは後述する)。
8
すべてをテストする。まず、各モジュールを単独で、通常予想される入力と値を使ってテストします。次に、あり得るがあまり一般的でない入力を試します。こうすることで、隠れたバグを洗い出すことができます。テストにはコツがあり、練習を重ねることで徐々にスキルを上げていくことができます。次のようなケースを想定してテストを書きましょう:
- 極限:極端な場合: 正の数値の場合はゼロや予想される最大値を超えた値、 テキストの場合は空文字列、そしてすべてのパラメータに null を指定します。
- 意味のない値。エンドユーザーが意味不明な値を入力するとは思わなくても、とりあえずテストしてみましょう。
- 正しくない値。除算で使われる値にゼロを使ったり、正の値が予想される場合や平方根が計算される場合に負の数を使ったりします。入力タイプが文字列の場合、数値でないものを入力すると、数値として解析されてしまいます。
9
練習、練習、練習。プログラミングは停滞する学問ではない。常に学ぶべき新しいことがあり、そしておそらくもっと重要なことは、常に学び直すべき古いことがあるということだ。
10
変化に備える。現実的な作業環境では、要件は変化する。しかし、要件が明確であればあるほど、また実施計画が明確であればあるほど、計画不足や誤解の結果として変更が生じる可能性は低くなる。
- あなたは、コードを書き始めるかなり前に要件文書や実装計画を提示することで、プロセスの明確性を向上させるために積極的な役割を果たすことができます。そうすることで、あなたが作成しようとしているものが、実際に求められているものであることを確認することができる。
- プロジェクトを一連のマイルストーンとして構成し、ブロックごとにデモを行い、マイルストーンごとにプロセスを管理する。どの瞬間にも考える必要があることが少なければ少ないほど、明確に考えることができる可能性が高くなる。
11
シンプルに始めて、複雑さを追求する。複雑なものをプログラミングするときは、まず単純な構成要素を揃えて適切に動作させるのが効果的だ。例えば、画面上にマウスの方向に追従し、マウスの速度によって形を変える、進化する図形を作りたいとします。
- まず、正方形を表示し、マウスに追従させることから始めましょう。
- 次に、正方形の大きさをマウスのスピードに関係させます。つまり、スピードからシェイプへのトラッキングを単独で解決します。
- 最後に、実際に扱いたいシェイプを作成し、3つのコンポーネントを組み合わせます。
- このアプローチは、各コンポーネントがそれ自身の自己完結したブロックにある、モジュラーコードの記述に自然に適している。これはコードの再利用(例えば、新しいプロジェクトでマウス・トラッキングだけを使いたい場合など)にとても便利で、デバッグやメンテナンスがとても簡単になります。
この記事は、CC BY-NC-SAの下で公開されている「 プログラマーとしてのスキルを向上させる方法 」を改変して作成しました。特に断りのない限り、CC BY-NC-SAの下で利用可能です。
コメント
最新を表示する
NG表示方式
NGID一覧