Y a-t-il des livres pour les développeurs C # qui m'aideront à améliorer mes questions de programmation de performance au cours d'une interview? J'ai besoin de pratique et j'ai besoin de travailler sur des types de questions d'algorithme. P>
10 Réponses :
Texte standard dans de nombreux cours universitaires. C'est évidemment un langage agnostique, mais le code s'appuie sur le paradigme impératif classique (pas très OO du tout). Mais sinon un bon livre.
@Svend - On m'a rappelé surtout parce que j'ai été interrogé sur la notation Big-O sur une interview et j'avais déjà utilisé ce livre.
Je recommanderais vivement le livre O'Reilly "C # Cookbook" car il vous donnera des implémentations spécifiques d'algorithme. Un autre bon est "Algorithmes en un mot", pour des algorithmes agnostiques plus linguistiques. P>
"Perles de programmation" de Jon Bentley, rien à voir avec C # en soi (il a été publié pour la première fois il y a 14 ans), mais c'est un excellent livre sur la résolution de problèmes de programmation en général p>
J'aime algorithmes en un mot . p>
Edit: et Le manuel de conception d'algorithme est amusant, mais ne commencez pas là. P>
Je recommande fortement "C # en profondeur" par notre compatriote Jon Skeet. :) p>
Vous avez posé des questions sur des livres, mais je conseillerai d'essayer d'essayer l'une des opérations suivantes: P>
Plus vous résolvez, mieux vous serez sur des algorithmes. P>
PS: Ne soyez pas accro:) P>
Cela pourrait être ce que vous recherchez. p>
C'est ce que j'ai utilisé dans ma classe d'algorithme. P>
Comme quelqu'un qui interroge un développeur potentiel de mon équipe, je préférerais vraiment que vous n'ayez pas essayé de «jouer» l'interview. Si vous étudiez pour les questions de type d'interview, vous pourriez être vraiment bonne à cela, mais alors seriez-vous un bon développeur? P>
Autre que pour les diplômés, qui je m'attends à apprendre sur le tas, tout autre niveau de développeur aura une tâche à effectuer dans Visual Studio. Le candidat sera invité à écrire un petit programme dans l'espace d'environ 4 heures. Il contiendra tous les éléments nécessaires pour déterminer si elles sont bonnes ou non et nous pouvons voir des exemples de leur véritable style de programmation, processus de pensée et capacités. P>
La pire personne que j'ai jamais interviewée était une personne qui avait appris l'ensemble "Standard Set" des questions par Rote. Lorsque nous avons posé une question à une question, il savait que nous avons eu une réponse joliment fabriquée. Mais, quand on lui a demandé quelque chose, il ne savait pas que nous avons récupéré un instant "je ne sais pas". Certaines des questions étaient des questions logiques, nous ne nous attendions pas à ce que quiconque connaisse la réponse au sommet de leur tête, ils devaient y arriver. P>
Donc, il suffit d'apprendre à écrire des logiciels. Apprenez à communiquer que d'autres personnes et que vous ferez très bien dans l'entretien. P>
Je déciderais d'abord si vous avez besoin de travailler sur C # ou sur des algorithmes, ou sur les deux. On dirait que vous êtes inquiet des "algorithmes en C #", que vous ne devriez pas être. Les algorithmes sont essentiellement la même chose dans toutes les langues de programmation impératif commune. Si vous êtes vraiment inquiet pour les algorithmes, vous pouvez récupérer à peu près n'importe quel livre d'algorithmes et y travailler. Même chose avec c #. P>
Beaucoup de "questions de type de programmation" sur des entretiens, malheureusement, ont tendance à être soit "Connaissez-vous cette friche mineure de cette langue?" Malheureusement, il n'y a pas grand chose que vous puissiez étudier pour ces types de questions, autres que d'utiliser beaucoup la langue et de se familiariser de plus en plus avec ses détails. P>
Les structures de données et le cadre qu'ils sont dans, cependant, sont un peu différents. Dans une période (relativement) courte, vous pouvez vous familiariser avec certains aspects du framework .NET qui peut aider considérablement. Apprendre des choses comme comment utiliser des génériques et comment obtenir une haquetable ou une liste est bonne à savoir. Bien sûr, vous devriez également connaître la réponse plus générale de votre si vous devriez em> utiliser une liste de hashtable contre une liste. P>
Les questions d'entrevue que j'ai obtenues étaient davantage dans le sens de «écrire un algorithme pour résoudre ce problème». Comme je n'ai pas fait beaucoup de travail dans des situations de débit élevé, je n'ai pas été habitué à chercher les solutions les plus efficaces possible. Cela est peut-être courant dans la ligne de travail des autres, mais ce n'est pas courant dans les miens.
Je pense que je suis déjà au niveau que vous parlez, mais je me sens toujours comme si je dois encore être meilleur.
Pour les questions de programmation générale liées à .NET Technologies, j'ai écrit un eBook appelé "Shove It, Fizzbuzz: Comment trouver et atterrir un travail de développement .NET." P>
C'est plus que Just em> questions d'entrevue, mais il est toujours en chock, et est livré avec un simulateur d'entrevue .NET. P>