ホームページ  >  記事  >  検討すべき未解決の質問: プログラマーはプログラミング スキルを向上させるにはどうすればよいでしょうか?

検討すべき未解決の質問: プログラマーはプログラミング スキルを向上させるにはどうすればよいでしょうか?

伊谢尔伦
伊谢尔伦オリジナル
2017-07-14 10:06:091996ブラウズ

プログラミングスキルを向上させるにはどうすればよいですか?この質問は大部分が未解決の質問であり、IT 業界ではまだ統一された答えが存在しない可能性があります。学習スタイルや思考スタイルは人それぞれ異なり、心の中にある答えも異なる可能性があります。以下に、個人や Web ページの間でよく使われているビューのいくつかを要約し、プログラマーや開発者にいくつかの意見や提案を提供し、プログラミングを学習する友人たちの手助けをします。

検討すべき未解決の質問: プログラマーはプログラミング スキルを向上させるにはどうすればよいでしょうか?

1.計画

プログラミングの初めに、計画を立て、設計フレームワークを作成し、実装します。そして操作を繰り返します。コードを学ぶ最良の方法は、コードを書くことです。 失敗を通じて学習し、自分自身を改善し続けることができます。これは、プロジェクトを完了するために本を読むよりもモチベーションが高く、楽しいものです。設計段階では、モジュールとオブジェクト間の関係や相互作用、制御、データの流れなどの重要な詳細について考える必要があります。利用可能なパターンやベスト プラクティスがある場合は、それを使用してください。プログラムを設計するときは、まず、コード ブロック間の関係を明確にし、コード ブロックの構造をより合理的にするために、階層構造を明確にする必要があります。通常、1 つの作業は複数の大きなステップに分割され、小さなステップはさらに階層構造に分割されます。最終的なコード ブロックがどのレベルに属するかを明確にする必要があります。このレベルが中断されると、プログラムにバグが発生する可能性が非常に高くなります。

2. 基本的なプログラミング言語を学ぶ

基本的なアーキテクチャを理解するのに役立ちます。たとえば、C 言語やアセンブリ言語などです。

コンピューターがプログラムを実行する方法を学び、オペレーティング システムがどのように動作するかを知ることは、プログラマーにとって最も基本的な要件です。基本的な言語をよく理解したい場合は、コンピューター アーキテクチャ、オペレーティング システム、組み込みシステム、ドライバー オペレーティング システム開発などに関する本を読むことができます。

3. コードを書く

ブログでコードを書く練習をします。さまざまな Q&A サイトで質問に回答することもできます。同時に、いくつかのチュートリアル (DreamInCode) を作成することもできます。コードを記述するときは、関連する問題やテクニックを説明できるようにコードを正しく記述したいと考えます。コードを書くことは、プログラミングの知識を反映し、プログラミングにおいて非常に重要な英語の文法を身に付けることにもなります。コードの品質に注意し、乱雑に見えるコードを書かず、asdf のような名前を使用しないでください。

4. オープンソース プロジェクトに参加する

オープンソース プロジェクトに参加する利点は何ですか?他の人 (プライベート プロジェクトに一人で取り組んでいる人) と協力することができ、なじみのないコードに直面したときは、それを掘り下げて、なじみのないコード ベース (これは困難であるはずです) を理解する方法を学ぶことができます

5 . コードの読み方を学びましょう

一部の専門家は、より多くのソースコードを読むことに言及します。もちろん、ソースコードを読むことは、プログラミングスキル自体を向上させるための非常に重要な方法です。 。プログラミングのスキルが上がれば、コードを読んだときに、設計モジュールの設計が良くないと歯ぎしりするようになり、自然とデバッグがスムーズになります。 。 。

高品質のソースコードを読むメリットは何ですか? これは、書くためにたくさん読むことの利点と非常によく似ています。コードを書くことにも言語の感覚があります。自分のものを作成する前に、まず他の人が作成したものを読んでください。マスターがコードを書く方法をもっと観察し、マスターがコードを書くときに何を考えているかを理解しようとしてください。時間が経つにつれて、マスターのようにコードを書く方法を真似してゆっくりと学ぶでしょう。読み書きの量が一定のレベルに達すると、業界のいわゆる設計仕様やモジュールのプロセスの多くが習慣化されているため、自然に理解され、従うようになります。

6. 思考とテストに集中する

コードを書き始める前に、まず考えて、アイデアを整理し、紙とペンを取り出して、真剣に計画を立てる必要があります。脳をリラックスさせ、心を明晰に保ちます。 I/Oエラー、外部モジュールエラー、ユーザーの誤操作など、さまざまなエラー状況を最初から考慮する必要があります。まず、バグの発生可能性という観点から見ると、プロジェクトが複雑になればなるほどバグも発生しやすく、両者の関係は非線形であるのが実情です。したがって、コードの複雑さを心配する必要があります。明らかに、短いコードの方がバグのデバッグが容易になります。非常に重要なタスクは、単体テストを実施することです。単一の機能、モジュール、プログラムなどについて、順番にテストします。範囲内で一連のデータを生成し、各関数、モジュール、プログラムがどのような状況でも正しい結果を返せるようにすること。

テストのもう 1 つの重要な意義は、バグの重複を防ぐことです。プログラム内に複数のバグが存在すると、それらが互いに奇妙な相互作用を起こし、特定のデータでのみエラーが発生します。そのうちの 1 つを調整すると、すべてのデータが間違ってしまいます。以前の修理に何か問題があると無意識のうちに考えるでしょう。この状況はばかげているように思えますが、実際には、この問題は頻繁に発生します。

単体テストに加えて、非常に重要なスキルはカプセル化と再カプセル化です。繰り返し呼び出す必要があるすべてのものを、インターフェイス、抽象クラス、メソッド、または関数にカプセル化します。この利点は自明です。何か問題が発生した場合は、すべてのコードを一度に変更できます。また、プログラムをデバッグする際、コードが非常に短いため、どの部分が問題の原因となっているかを特定するのが簡単です。

7. 良いプログラミングの本を読む

本から多くのことを学びますが、実践することは重要ですが、優れたやりがいのあるプログラミングの本を読むことは、考え方を変えるための重要なステップです。もちろん、それほど難しくない本を選ぶこともできますが、「愚か者向け」の本、つまり 24 時間または 21 日ですべてを学べる本は避けてください。これらの本からプログラミング スキルを向上させる方法を学ぶことはできません。 。

8. いくつかの難しい問題を解決してみます

プログラマは、プログラミングのプロセス中に遭遇する問題を解決するために常に最小限の手順を使用するよう努めるべきです。この言語のより深く特殊な機能を学習すると、コードについて創造的に考えることが必要になります。

9. その他の重要なこと

1) 遅くともシステム共同デバッグの前に単体テスト ケースを準備し (できればコードの作成中に単体テスト ケースを作成します)、システム共同デバッグの運用環境からのフィードバックに従って調整します。環境は単体テスト ケース セットを改善し続けています。数回の反復の後、単体テストの対象となるモジュールはかなり良好なパフォーマンスを維持するため、それらのモジュールを自信を持ってリファクタリングできます。

2) コードを書き始める前に、まずドキュメントを作成します。特に、プロジェクト内の複数の人がコードを作成する場合、ドキュメントはさらに重要になります。これは、自分の考えを明確にし、論理上の落とし穴を事前に発見するのに役立ちます。コメントは「悪人」ではなく「紳士」を警戒するためのものであり、ルールに従わない発信者を警戒する必要があるため、アサーション(または検査の判断)を通じて必要な前提条件が満たされていることを確認することも重要です。 )。さらに、独自のコードブロックが実行後に期待された目的を達成したかどうかも、アサーションやチェックロジックによって判断できます。この点に関して、コントラクト プログラミングのいくつかのアイデアと実践が参考として使用できます。多くの場合、プログラムのバグは、内部の暗黙の条件が満たされないために発生します。これは、呼び出し側が呼び出し先が何を要求しているのかを知らないという事実に反映されています。したがって、コメントをケチらず、標準化されたコメントを通じてこれらの要件を明確に表現すると、バグが大幅に減少します。

3) 二次ログをログ ファイルに書き込むときは、単純な printf の代わりに、一般的な log クラス を使用します。重要なログは、SQL やデータベース ソフトウェアの機能を使用して管理、分析、使用できるように、データ テーブルに記述するのが最適です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。