恐ろしいC#プログラミングインタビューテスト-何かアドバイスはありますか?[閉まっている]


21

私はC#開発の仕事を揃えていますが、面接する前に、雇用機関とのテストに合格する必要があります。

今、私は10年以上のプログラミング経験があり、C#で3年以上の経験がある上級開発者ですが、このテストを本当に楽しみにしていません。失敗する可能性が十分にあると思います。

私の経験では、これらのテストは、日常の仕事の状況でめったに使用しないものを尋ねることは予測できません。

良い本やウェブサイトなど、私が何を修正すべきかについて、あなたの最善のアドバイスが必要です。準備するのに1週間もかからず、これに合格することが不可欠です。

前もって感謝します。

編集:このようなテストを書くことに関する私の懸念をさらに正当化するために、次の質問を検討してください。

12)イベントは:

   a) The result of a users action - correct answer
   b) The esult of a party
   c) code to force users action

テストによると正解はAですが、私はSOA開発を行ってきたので(多くの場合、イベントはシステムイベント(ユーザーアクションではない)に基づいている場合があるため)、イベントを駆動する必要がないことは100%確信していますこれはC#の質問でもありました(ASP.netの質問ではありません)私の理解に基づいて、私は本当に正しい答えを見つけることができませんでしたが、Bは最高のようです(パーティーの定義が:この種の質問は私を怖がらせます。


4
あなたが「シニア開発者」であり、C#を3年間毎日使用しているのであれば、大丈夫です。これらのテストは通常​​、言語またはその使用法を知らない人々を排除することを目的としています。毎日3年間使用している場合は、特定のテストでほぼすべての落とし穴に遭遇するはずです。
ジョージストッカー

11
@GeorgeStocker-実際、私はこれらのテストのいくつかを(完全な.NETフレームワークでより多くのことを目指して)取らなければならず、それらは非常に詳細でした。最初はフレームワークの領域(WCFなど)に行ったので、あまり経験がなかったため、.configファイルで使用する構成オプションなどを知っておく必要があったため、非常に困難でした。あいまいなオプション。おそらく一度しか使用せず、Googleでそれを使用することになるため、覚えておく必要はほとんどありません。この経験は少しイライラするものでした。
スコットホイットロック

7
ああ、私が間違えた質問の1つは、「VB.NETでは、構造を宣言するために使用されるキーワードは何ですか?a)構造b)構造c)構造d)構造」です。「インテリセンスはこれを知っているので、必要はありません!」と考えていました。もちろん、答えは私の記憶に焼き付けられています。
スコットホイットロック

17
@ScottWhitlock:適切に設計されていないインタビューに十分に備えることはできません。ある時点で、あなたが実際に専門と主張する分野と概念的な能力に基づいて、尋ねたり判断したりするのに十分な能力があることを信頼する必要があります。そうでない場合は、とにかく彼らのために働く悲惨な時間があるでしょう。
アーロンノート

2
これはC#言語テストですか、それとも.NET Frameworkテストですか?
アリ

回答:


24

多少古くても、このブログ投稿はあなたに役立つかもしれません:すばらしい.NET開発者が知っておくべきこと(。

コードを書くすべての人

  • スレッドとプロセスの違いを説明してください?
  • Windowsサービスとは何ですか?また、そのライフサイクルは「標準」EXEとどのように異なりますか?
  • Windows上の1つのプロセスが対応できるメモリの最大量はどれくらいですか?これは、システムの最大仮想メモリとは異なりますか?これはシステム設計にどのように影響しますか?
  • EXEとDLLの違いは何ですか?
  • 強い型付けと弱い型付けとは何ですか?どちらが好ましいですか?どうして?
  • Corillianの製品は「コンポーネントコンテナ」です。Windows Serverファミリに同梱されているコンポーネントコンテナを少なくとも3つ挙げてください。
  • PIDとは何ですか?システムのトラブルシューティングを行う際にどのように役立ちますか?
  • 1つのTCP / IPポートでいくつのプロセスがリッスンできますか?
  • GACとは何ですか?どのような問題を解決しますか?

中間レベルの.NET開発者

  • インターフェイス指向プログラミング、オブジェクト指向プログラミング、およびアスペクト指向プログラミングの違いを説明してください。
  • インターフェースとは何か、それがクラスとどのように異なるかを説明します。
  • リフレクションとは何ですか?
  • ASMXを使用するXML WebサービスとSOAPを使用する.NET Remotingの違いは何ですか?
  • 型システムはXmlSchemaとCLS同型で表されますか?
  • 概念的に、事前バインディングと遅延バインディングの違いは何ですか?
  • Assembly.Loadを使用して、静的参照または動的参照を読み込みますか?
  • Assembly.LoadFromまたはAssembly.LoadFileの使用が適切な場合
  • アセンブリ修飾名とは何ですか?ファイル名ですか?どう違いますか?
  • これは有効ですか?Assembly.Load( "foo.dll");
  • 厳密な名前のアセンブリは、厳密な名前のアセンブリとどう違うのですか?
  • DateTimesをnullにできますか?
  • JITとは何ですか?NGENとは何ですか?それぞれの制限と利点は何ですか?
  • .NET CLRの世代別ガベージコレクターは、オブジェクトの有効期間をどのように管理しますか?非決定論的なファイナライズとは何ですか?
  • Finalize()とDispose()の違いは何ですか?
  • using()パターンはどのように役立ちますか?IDisposableとは何ですか?確定的なファイナライズをどのようにサポートしますか?
  • この便利なコマンドラインは何をしますか?タスクリスト/ m "mscor *"
  • インプロセスとアウトオブプロセスの違いは何ですか?
  • .NETのアウトオブプロセス通信を可能にする技術は何ですか?
  • ASP.NET内でコンポーネントを実行している場合、Windows XPではどのプロセスが実行されていますか?Windows 2000?Windows 2003?

シニア開発者/アーキテクツ

  • このような行の何が問題になっていますか?DateTime.Parse(myString);
  • PDBとは何ですか?デバッグを機能させるには、どこに配置する必要がありますか?
  • 循環的複雑度とは何ですか、なぜ重要なのですか?
  • 標準のlock()に「ダブルチェック」を加えて、変数アクセスに関するクリティカルセクションを作成します。
  • FullTrustとは何ですか?GACのアセンブリにはFullTrustがありますか?
  • 特定のセキュリティ権限を要求する属性でコードを修飾すると、コードにはどのようなメリットがありますか?
  • これは何をしますか?gacutil / l | / i "コリリアン"を見つける
  • これは何をしますか?sn -t foo.dll
  • ファイアウォールを介してDCOMに対して開く必要があるポートは何ですか?ポート135の目的は何ですか?
  • 対照的なOOPとSOA。それぞれの教義は何ですか?
  • XmlSerializerはどのように機能しますか?それを使用するプロセスにはどのACL許可が必要ですか?
  • catch(Exception)がほとんど常に悪い考えなのはなぜですか?
  • Debug.WriteとTrace.Writeの違いは何ですか?それぞれをいつ使用する必要がありますか?
  • デバッグビルドとリリースビルドの違いは何ですか?速度に大きな違いはありますか?なぜですか?
  • JITtingは、アセンブリごとまたはメソッドごとに発生しますか?これはワーキングセットにどのように影響しますか?
  • インターフェイスに対する抽象基本クラスの使用と対照的ですか?
  • a.Equals(b)とa == bの違いは何ですか?
  • 比較の文脈において、オブジェクトの同一性とオブジェクトの等価性とは何ですか?
  • .NETでディープコピーを行う方法
  • IClonableに関する現在の考え方を説明してください。
  • ボクシングとは何ですか?
  • 文字列は値型ですか、参照型ですか?
  • XmlSerializerで使用される「PropertySpecified」パターンの重要性は何ですか?どのような問題を解決しようとしますか?
  • .NETでoutパラメーターが悪い考えなのはなぜですか?彼らは?
  • メソッドの特定のパラメーターに属性を設定できますか?なぜこれが便利なのですか?

C#コンポーネント開発者

  • newを使用してオーバーライドを使用します。シャドウイングとは何ですか?
  • 仮想、封印、上書き、および抽象の使用について説明します。
  • この文字列の各コンポーネントの重要性と使用方法を説明してください:Foo.Bar、Version = 2.0.205.0、Culture = neutral、PublicKeyToken = 593777ae2d274679d
  • パブリック、保護、プライベート、内部の違いを説明します。
  • Primary Interop Assembly(PIA)を使用することでどのようなメリットがありますか?
  • NUnitはどのメカニズムでテストするメソッドを知っていますか?
  • catch(Exception e){throw e;}とcatch(Exception e){throw;}の違いは何ですか
  • typeof(foo)とmyFoo.GetType()の違いは何ですか?
  • 最初のコンストラクターで何が起こっているかを説明してください:public class c {public c(string a):this(){;}; public c(){;}}この構成はどのように役立ちますか?
  • 何でこれが?これは静的メソッド内で使用できますか?

ASP.NET(UI)開発者

  • ブラウザベースのフォームPOSTがButton1_OnClickなどのサーバー側イベントになる方法を説明してください...

1
ここにリストされたすべての回答は役に立ち、良かったのですが、私はあなたのリストのすべての質問に答えて(4時間かかりました)、オンラインでサンプルテストを書いて合格しました。.netの開発者であれば、これらの質問を少なくとも1回は実行し、答えを確実に理解し、2番目と3番目の意見を得るようにしてください。多くの人が質問に答えます(Googleで発見されました)が、多くの答えは時には間違っていても簡潔ではありません。ので注意してください。見つけた答えをクロスチェックします。
JL01

2
良いリンク!知っていた人がどれだけいるのか、驚きました。this.Ego ++;
ジャスティンセルフ

@justnS:投稿を発見したときに同じことが起こりました。:-)
コナミマン

私は数週間前に面接に行きましたが、彼らは私に答えるためにこれを印刷してもらいました。私にとっては、インタビュアーに反映されました。
dbones

1
いつ答えを追加しますか?;)
タイスヴァンディエン

10

立ち去って、レニー

このようなテストを数回受けました。今、私はただ立ち去ります。テストは、プログラミングの知識の最も些細な部分を測定します。これらのテストがプログラマを評価する良い方法だと思う人のために働きたいですか?しません。


1
それらは最小基準、つまり必要条件としては良い方法ですが、十分条件ではありません。
Sklivvz

4
@Sklivvz:たぶん、それらが良いテストだったら。商用テストのほとんどは、「テキストファイルを読み取るためにどのクラスを使用しますか?」という雑学の愚かな練習です。優れた開発者は、バイトストリームと文字ストリームの違い、およびUTFエンコーディングの詳細について10分間話すことができますが、それでもこの質問を見逃します。情報に簡単にアクセスできる場合、それを記憶する意味はありません。
ケビンクライン

2
私はケビンに同意します。テストに含まれる可能性がある、仕事に関係のない情報が多すぎます。彼らはGoogleとのIntelliSenseを発明した理由です-私たちは答えを必要とするとき、我々は必要に使えることに基づき、それらを見つける
ADNow

2
それはテスト次第です。離れて行くテストがありますが、良いテストがあります。簡単な3つのプログラミング質問テストがあります。最初の質問は、単純なC#アプリを作成することです。2番目の例では、5つの単純なSQLクエリを記述します。thridは、受験者が詳細な情報を求めずに答えることができない質問です。最初と2番目の質問は、完全に無能なプログラマーを除外します。これにより、時間に見合わない人々にインタビューする時間を節約できます。3番目の質問は、プログラマーがどのように問題解決に取り組むかについての洞察を与えてくれます。非常に貴重なもの。
ピート

8

私は昨年あなたのような状況にありました。とても長いので、私はインタビューをして、それを恐れていました。C#のインタビューの質問を検索して、いくつかのサイト(他のポスターにリストされているサイトの多く)を見つけ、それらを調べました。多くの私の驚きへのインタビューの90%は、これらの非常にサイトからのものであった逐語的に。インタビュアーも質問を見つけるためにGoogleを使用していると思います:)


6

私はあなたに完全に同意します:

テストは、日常の仕事の状況でめったに使用しないものを尋ねることは予測できません。

..しかし、それらはプロセスの一部であるため、それに対して実際にできることは何もありません。.NET C#で約5年の経験がありますが、私はあなたのように苦労しています。これらの2つの非常に良い本が見つかりました。

C#の詳細

一言で言えばC#

C#について知っておく必要のあるすべてを網羅する必要があります。残りは、ASP.NETなどのC#に基づいた特定の技術で習得した独自のスキルおよびスキルです。


3
しかし、それらはプロセスの一部であるため、実際にできることは何もありません。雇用プロセスの一環として、職場で愚かなプログラミングテストを行わないように主張するのはどうですか?採用プロセスはあなたの能力を示すべきであり、あいまいなトリビアを記憶できるということではありません。
joshin4colours

私は面接の古き良き長い会話を信じている理由...彼らは排除のために良いけれどもあるさ- joshin4colours @
TheBoyan

2
私は実際にインタビューした作者 ...本の一つのを、彼を拒否
Sklivvz

3

これらのテストは、専門の人材紹介会社や一部の企業による事前審査の一部になりつつあります。彼らは、非技術的なインタビュアーが誰かの技術的能力を評価する方法を提供するように設計されています。ただし、これらは本質的に単なるトリビアテストであり、実際には何も知らない人を排除する以外に、プログラマの能力について意味のあることは何も言いません。残念なことに、一部の企業/採用担当者は、これらの結果を重視しすぎています。

彼らのために勉強する方法は、あなたに答えを売ろうとしている人ではなく、面接の質問サイト、合法的なサイトを見つけ、ポップアップ広告や他のそのようなナンセンスで塗りつぶし、答えを詰め込むことです。そうすれば、あなたはまともなスコアを取得し、ハードルを飛び越えます。会社がこれらの結果に重点を置いている場合、おそらく彼らはとにかく働くのに最適な会社ではありません。


2

雇用機関のテストであれば、それほど難しくないはずです。彼らがテストを開発するための言語スペシャリストを持っているわけではありません。ほとんどの場合、ウェブサイトから質問をコピー/貼り付けするだけです。

フレームワークが一般的にどのように機能するか、タスクの最も一般的な名前空間/ライブラリ、特定のタスクに使用する必要があるものを知っている限り、あなたは良いはずです。


2

面接テストでは、多くは企業文化とテスト作成者に依存します。彼らがあいまいな質問をして、あなたをつまずこうとするつもりなら、私は賢くて仕事を成し遂げることができる高品質の個人にもっと興味がある別の会社や代理店に移ります。

そうは言っても、C#を日常業務で使用するときは、問題解決とロジックの取り組みに集中し、物事の学習の側面に集中する必要はありません。

Project Eulerは、少し錆びた可能性が高いスキルを練習して磨くのに最適な場所です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.