1

C# を使い始めて約 3 か月が経ちました。効率的で賢い C# プログラマーを作成するための手順を知りたかったのです。SO には .Net Framework と C# の使用経験が豊富なプロのプログラマーがたくさんいるので、彼らに尋ねたいと思います。 C# 初心者から C# エキスパートまで。
初心者の C# プログラマーから専門家または達人になるまで、自分の身長を伸ばしたいと思っています。この質問への回答が、初心者だけでなく経験豊富な他の C# プログラマーにも役立つことを願っています。

  • 単体テストを行う必要があります
  • リストや辞書などの基本的なデータ構造について学ぶ必要があります。私の言いたいことを理解していただければ幸いです
4

3 に答える 3

2

インターフェイスと継承について学ぶ

匿名関数/デリゲート/ラムダについて学ぶ

基本的なデータ構造 (リスト、辞書、配列、テーブル、およびそれらをいつ使用するか) を理解する

メモリ消費について学ぶ

O(n) 対 O(log n) など

再帰を学ぶ

どの言語でも多くのことを学び、経験することは役に立ちますが、私の時代では、一般的なプログラミングでは C# が最高です。あなたはとても幸運だ!

于 2013-10-27T12:29:15.420 に答える
2

簡潔な答え

(この回答は、時代遅れになる可能性が低く、私よりも知識のある人を指すため、私の長い回答よりもお勧めします)

読む: http://www.codinghorror.com/blog/2004/02/recommended-reading-for-developers.html

行う: https://stackoverflow.com/questions/1503239/good-c-sharp-open-source-projects-to-participate-in

質問: https://stackoverflow.com/


長い答え

(修正された質問に基づく)

どこに行きたいかによって、さまざまな答えが適用されます。たとえば、コンピュータ ゲームのプログラミングには、ウェブサイトのプログラミングとは非常に異なるスキルセットが必要です。また、他の人との共同作業、約束の履行、顧客の信頼の構築などに関して考慮すべき非技術的スキルがあります。

それを念頭に置いて、自分の目標が何であるかを自分で定義し、それに向かって努力することを確認してください。ただし、定期的に物事を見直して、目標に向かって順調に進んでいること、および最初に設定した目標が達成したいものであることを確認してください。 .

  • テスト駆動開発 (TDD) - ソリューションを作成する前にテストを作成することにより、コードはよりモジュール化された方法で構造化されます。これにより、テストと保守が容易になります。これらのテストを利用できるようにすると、コードを修正するとほとんどの回帰テストが自動化されるため、将来の変更に伴うリスクも軽減されます。

  • 分離設計 - つまり、相互依存関係のないコードを記述します。Inversion of Control (IoC) と Dependency Injection は、アプリケーション内でこれを実現する方法の良い例です。サービス指向アーキテクチャ (SOA) は、マルチシステム スケールでこれを実現します。ただし、まず最初に、モノリシックなメソッドを回避するためにコードをクラスとプロシージャに分割するだけで、うまくいきます。

  • パターン - これらは、一般的な問題に対する巧妙な解決策です。それらの両方について学ぶことは、ソリューション自体について学ぶのに役立つだけでなく、コードの一部を識別するための語彙を提供するのに役立ち、また、それらの元の問題を解決するための他の人の思考プロセス/アプローチを見ることができます. http://www.martinfowler.com/eaaCatalog/

  • フレームワークを避ける - ベテランの開発者にとって、有益と思われるフレームワークを選んで選んでも問題ありませんが、何かを追加しようとする前に、技術の核心を理解する必要があると私は主張します. 言語だけで何ができるかを理解すると、各フレームワークの利点と問題を評価し、特定のプロジェクトにどのフレームワークを使用するのが最適かを判断できるようになります。始めたばかりのときにフレームワークを学習すると、コア言語の重要なことを見逃したり、数年後に期限切れになるテクノロジーに時間を投資したりする可能性があります。コアを知っていると、後で新しいフレームワークをより簡単に理解するのに役立ちますが、特定のフレームワークに縛られることはありません。注意: 一部のフレームワークは避けられません - i. e. C# を使用する場合は、.Net Framework を使用することになります。そのため、すべてのルールと同様に、例外があります。

  • ブラック ボックスを理解する - コードを書くときに何が起こっているかを理解します。何が他のものと相互作用するのか、データはどこから来るのか、データはプロセッサからどのくらい離れているのか、情報を作成するためにどれだけの作業が必要なのか、どのデータをキャッシュ (記憶) してもよいか、どのデータが必要なのかソースから読み取るか、毎回再計算して、変更されないようにします。

Jeff Atwood の Coding Horror ブログで推奨されている本に加えて、 ASP.NET MVC 4 と Web API という本も追加します。特に、何らかの形式の Web 開発を行っている場合はそうです。この本はわずか 130 ページですが、主題だけに焦点を当て、理論的な例を示すほとんどのプログラミング本とは異なり、この本は、設定された REST サービスに加えて、ロギング、セキュリティ、ドメイン モデルなどを含むプロジェクトをガイドします。アドレスに出ます。

于 2013-10-27T12:22:26.833 に答える
2

これは取るべきステップの良いリストですが、今は少し古くなっているので、塩のピンチでそれを取ってください.

http://abdullin.com/journal/2010/11/19/10-steps-to-become-better-net-developer.html

そのリンクが表示されない場合、彼のリストは次のとおりです。

  1. 単体テストを学ぶ
  2. 分散型バージョン管理システム (Git または Mercurial) に慣れてください。
  3. IoC コンテナー (Autofac、Windsor コンテナー、StructureMap) について学習します。
  4. 選択したオープン ソース プロジェクトに貢献します。
  5. 継続的インテグレーションについて学び、TeamCity、Hudson、または CruiseControl.NET をセットアップしてみてください。
  6. NHibernate Object Relational Mapper について学んでください。ただし、CouchDB、MongoDB、RavenDB などの NoSQL 永続性のために拡張する準備をしてください。
  7. クラウド コンピューティングに関する話題をチェックし、Windows Azure Platform を試し、Linux で Mono を使用して .NET アプリを実行してみてください (試用できる無料オファーもあります)。
  8. メッセージング アーキテクチャに慣れ、NServiceBus、MassTransit、または RhinoQueues を試してください。次に、MSMQ の代替である AMQP と RabbitMQ について学びます。
  9. ドメイン駆動設計を読んで、プロジェクトに適用してください。
  10. CQRS アーキテクチャの使用を開始し、学習プロジェクトで実践してください。

彼は順番に行うことをお勧めしますが、No.9 はいつでも行うことができます。

于 2013-10-27T13:03:08.590 に答える