Il temuto test dell'intervista di programmazione C # - qualche consiglio? [chiuso]

21

Ho un possibile lavoro di C # dev in coda ma prima di poter intervistare, ho bisogno di superare un test con l'agenzia di collocamento.

Ora, anche se sono uno sviluppatore senior con oltre 10 anni di esperienza di programmazione e più di 3 di questi anni con c #, non vedo davvero l'ora di fare questo test e penso che ci siano buone probabilità che fallisca.

Nella mia esperienza questi test sono imprevedibili e ti chiedono cose che raramente usi nelle situazioni di lavoro quotidiane.

Ho bisogno del tuo miglior consiglio su cosa dovrei rivedere - ad esempio un buon libro o un sito web. Ho meno di una settimana per prepararmi ed è essenziale che io passi questo.

Grazie in anticipo.

EDIT: per giustificare ulteriormente le mie preoccupazioni riguardo alla scrittura di tali test, prendi in considerazione la seguente domanda:

12) Un evento è:

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

La risposta corretta secondo il test è A, ma dal momento che sto facendo lo sviluppo SOA (spesso quando gli eventi possono essere basati su eventi di sistema (non su azioni dell'utente) sono sicuro al 100% che un evento non debba essere guidato da un'azione dell'utente.Questa era anche una domanda C # (non una domanda ASP.net). Sulla base della mia comprensione, non riuscivo a individuare una risposta corretta ma B sembra il migliore del lotto (se la definizione di partito è: qualsiasi entità che può attivare un evento. Questo tipo di domande mi fa paura.

    
posta JL01 03.11.2011 - 16:23
fonte

7 risposte

24

Anche se un po 'vecchio, forse questo post del blog è utile per te: Che grandi sviluppatori .NET dovrebbero sapere (Altro .NET Domande dell'intervista)

Everyone who writes code

  • Describe the difference between a Thread and a Process?
  • What is a Windows Service and how does its lifecycle differ from a "standard" EXE?
  • What is the maximum amount of memory any single process on Windows can address? Is this different than the maximum virtual memory for the system? How would this affect a system design?
  • What is the difference between an EXE and a DLL?
  • What is strong-typing versus weak-typing? Which is preferred? Why?
  • Corillian's product is a "Component Container." Name at least 3 component containers that ship now with the Windows Server Family.
  • What is a PID? How is it useful when troubleshooting a system?
  • How many processes can listen on a single TCP/IP port?
  • What is the GAC? What problem does it solve?

Mid-Level .NET Developer

  • Describe the difference between Interface-oriented, Object-oriented and Aspect-oriented programming.
  • Describe what an Interface is and how it’s different from a Class.
  • What is Reflection?
  • What is the difference between XML Web Services using ASMX and .NET Remoting using SOAP?
  • Are the type system represented by XmlSchema and the CLS isomorphic?
  • Conceptually, what is the difference between early-binding and late-binding?
  • Is using Assembly.Load a static reference or dynamic reference?
  • When would using Assembly.LoadFrom or Assembly.LoadFile be appropriate?
  • What is an Asssembly Qualified Name? Is it a filename? How is it different?
  • Is this valid? Assembly.Load("foo.dll");
  • How is a strongly-named assembly different from one that isn’t strongly-named?
  • Can DateTimes be null?
  • What is the JIT? What is NGEN? What are limitations and benefits of each?
  • How does the generational garbage collector in the .NET CLR manage object lifetime? What is non-deterministic finalization?
  • What is the difference between Finalize() and Dispose()?
  • How is the using() pattern useful? What is IDisposable? How does it support deterministic finalization?
  • What does this useful command line do? tasklist /m "mscor*"
  • What is the difference between in-proc and out-of-proc?
  • What technology enables out-of-proc communication in .NET?
  • When you’re running a component within ASP.NET, what process is it running within on Windows XP? Windows 2000? Windows 2003?

Senior Developers/Architects

  • What’s wrong with a line like this? DateTime.Parse(myString);
  • What are PDBs? Where must they be located for debugging to work?
  • What is cyclomatic complexity and why is it important?
  • Write a standard lock() plus “double check” to create a critical section around a variable access.
  • What is FullTrust? Do GAC’ed assemblies have FullTrust?
  • What benefit does your code receive if you decorate it with attributes demanding specific Security permissions?
  • What does this do? gacutil /l | find /i "Corillian"
  • What does this do? sn -t foo.dll
  • What ports must be open for DCOM over a firewall? What is the purpose of Port 135?
  • Contrast OOP and SOA. What are tenets of each?
  • How does the XmlSerializer work? What ACL permissions does a process using it require?
  • Why is catch(Exception) almost always a bad idea?
  • What is the difference between Debug.Write and Trace.Write? When should each be used?
  • What is the difference between a Debug and Release build? Is there a significant speed difference? Why or why not?
  • Does JITting occur per-assembly or per-method? How does this affect the working set?
  • Contrast the use of an abstract base class against an interface?
  • What is the difference between a.Equals(b) and a == b?
  • In the context of a comparison, what is object identity versus object equivalence?
  • How would one do a deep copy in .NET?
  • Explain current thinking around IClonable.
  • What is boxing?
  • Is string a value type or a reference type?
  • What is the significance of the "PropertySpecified" pattern used by the XmlSerializer? What problem does it attempt to solve?
  • Why are out parameters a bad idea in .NET? Are they?
  • Can attributes be placed on specific parameters to a method? Why is this useful?

C# Component Developers

  • Juxtapose the use of override with new. What is shadowing?
  • Explain the use of virtual, sealed, override, and abstract.
  • Explain the importance and use of each component of this string: Foo.Bar, Version=2.0.205.0, Culture=neutral, PublicKeyToken=593777ae2d274679d
  • Explain the differences between public, protected, private and internal.
  • What benefit do you get from using a Primary Interop Assembly (PIA)?
  • By what mechanism does NUnit know what methods to test?
  • What is the difference between: catch(Exception e){throw e;} and catch(Exception e){throw;}
  • What is the difference between typeof(foo) and myFoo.GetType()?
  • Explain what’s happening in the first constructor: public class c{ public c(string a) : this() {;}; public c() {;} } How is this construct useful?
  • What is this? Can this be used within a static method?

ASP.NET (UI) Developers

  • Describe how a browser-based Form POST becomes a Server-Side event like Button1_OnClick...
    
risposta data 03.11.2011 - 16:32
fonte
10

Basta andare via, Renee

Ho fatto test di questo tipo un paio di volte. Ora me ne vado. I test misurano i bit più banali della conoscenza di programmazione. Vuoi lavorare per qualcuno che pensa che questi test siano un buon modo per valutare i programmatori? Io no.

    
risposta data 05.11.2011 - 16:56
fonte
8

Ero in una situazione come la tua l'anno scorso. Era passato così tanto tempo che sono stato in un'intervista che lo temevo. Ho fatto una ricerca per le domande dell'intervista su C # e ho trovato diversi siti (molti dei quali elencati dagli altri poster) e li ho studiati. Con mia grande sorpresa, il 90% delle interviste proveniva proprio da quel sito, verbatim . Immagino che gli intervistatori usino Google per trovare domande:)

    
risposta data 03.11.2011 - 17:36
fonte
6

Sono totalmente d'accordo con te su:

tests are unpredictable asking you stuff you seldom use in everyday work situations.

.. ma fanno parte del processo, quindi non possiamo fare nulla al riguardo. Sono un po 'come te con circa 10 anni di esperienza di cui circa 5 in .NET C #. Ho trovato questi due libri MOLTO buoni:

C # in profondità

C # in a Nutshell

dovrebbe coprire tutto ciò che devi sapere su C #. Il resto sono le tue abilità e abilità che raccogli su tecnologie specifiche basate su C # come ASP.NET ecc.

    
risposta data 03.11.2011 - 16:28
fonte
3

Questi test sono diventati sempre più parte dei candidati pre-screening da parte di società di recruiting professionali e di alcune aziende. Sono progettati per fornire agli intervistatori non tecnici un modo per valutare le abilità tecniche di qualcuno. Tuttavia, sono essenzialmente solo test di trivia che non diranno nulla di significativo sulle capacità di un programmatore se non di eliminare coloro che davvero non sanno nulla. Sfortunatamente, alcune aziende / reclutatori hanno dato troppo peso a questi risultati.

Il modo di studiare per loro è trovare siti di domande di interviste, siti legittimi e non quelli che cercano di venderti le risposte, intonacate da annunci pop-up o altre sciocchezze simili, e riempiono le risposte. In questo modo otterrai un punteggio decente e supererai l'ostacolo. Se la compagnia sta dando troppo peso a questi risultati, probabilmente non sono la migliore azienda per cui lavorare comunque.

    
risposta data 03.11.2011 - 17:55
fonte
2

Se si tratta di un'agenzia di collocamento, non dovrebbe essere così difficile. Non è che abbiano specialisti linguistici per sviluppare il test. Molto probabilmente tutto ciò che faranno è copiare / incollare le domande da un sito web.

Se sai come funziona il framework in generale e i namespace / librerie più comuni per le attività, quali elementi devi utilizzare per determinate attività, dovresti essere bravo.

    
risposta data 03.11.2011 - 17:02
fonte
2

Con i test dell'intervista, molto dipende dalla cultura aziendale e dal creatore del test. Se sono intenzionati a fare domande oscure e cercano di farti inciampare, passerei a un'altra azienda o agenzia che è più interessata a individui di alta qualità che sono intelligenti e possono portare a termine il lavoro.

Detto questo, mentre usi C # nel tuo lavoro diurno, concentrerei gli sforzi di risoluzione dei problemi e logica e meno sul lato di apprendimento del libro.

Project Euler è un ottimo posto per esercitarsi e affinare le abilità che molto probabilmente sono diventate un po 'arrugginite.

    
risposta data 03.11.2011 - 20:25
fonte

Leggi altre domande sui tag