Je viens de téléphoner à une entreprise pour un poste de développeur de logiciels diplômé et on m'a posé les questions suivantes. Je dois ajouter que l'entreprise concernée n'est pas un fournisseur de bases de données.
Comment fonctionne un optimiseur de requêtes?
Si une base de données fonctionnait mal, comment utiliseriez-vous les journaux de performances pour découvrir le problème.
J'ai demandé s'ils posaient de telles questions à tous les développeurs de logiciels candidats (diplômés ou expérimentés) lors d'un premier entretien téléphonique. Ils ont répondu qu'ils aiment tester les connaissances de leurs candidats sur le développement de bases de données.
Je veux écrire à l'entreprise pour dire que ces questions sont déraisonnables à poser lors d'un entretien avec un développeur de logiciels et pour demander que mon entretien soit terminé.
Je voudrais vérifier le caractère raisonnable des hypothèses suivantes
a) Ces questions ne peuvent pas être classées comme des questions de développement de base de données.
b) Je pense que les questions sont appropriées pour un entretien DBA mais totalement déraisonnables pour un entretien développeur de logiciels (expérimenté ou non).
c) La première question ne concerne qu'un fournisseur de base de données.
d) La deuxième question n'est pas juste car les développeurs de logiciels ne traitent généralement pas des journaux de performances de la base de données, car c'est le travail du DBA.
Peut-être que certains d'entre vous auront la gentillesse de commenter mes hypothèses ou pourront avoir d'autres suggestions avant d'écrire à l'entreprise.
Réponses:
Si j'étais un intervieweur (ce que je suis parfois) et que je recevais une lettre d'un candidat se plaignant que les questions étaient injustes et qu'ils voulaient une refonte, je remercierais mes étoiles chanceuses d'avoir esquivé cette balle et de déplacer immédiatement la candidature vers la pile "rejeter". Agir ainsi ne fait que montrer que vous êtes un plaignant, et que vous n'avez pas l'attitude «peut faire» que l'on recherche.
une. les questions étaient raisonnables à poser sur le thème du développement de la base de données.
b. faux. Tout ce qui a trait au développement de logiciels est un jeu équitable. Gardez à l'esprit qu'obtenir une mauvaise réponse ne vous disqualifie pas automatiquement pour le poste (ou d'autres postes dans l'entreprise); cela peut simplement vous aider à vous classer comme quelqu'un qui ne serait pas le mieux placé pour un travail orienté base de données.
c. faux.
ré. faux. Tout d'abord, il peut ne pas y avoir de DBA dédié; deuxièmement, un développeur de logiciels doit être conscient d'un large éventail de problèmes susceptibles d'affecter les performances (et la précision) et avoir au moins une compréhension de haut niveau de la gestion des bases de données.
Prenez cela comme une leçon qu'il y a des choses que vous ne savez pas encore. Vous savez maintenant quoi étudier pour la prochaine fois.
la source
Je pense que c'est une question juste (et cela ressemble à celle que Google pose probablement). :) Le point de la question ne semble PAS vraiment tester votre connaissance détaillée des requêtes de base de données et autres, mais plus pour voir comment vous aborderiez et résoudriez un problème. La capacité de faire une tâche que vous avez déjà effectuée est nécessaire, mais la capacité de réfléchir sur vos pieds et d'aborder un nouveau problème est une compétence vitale.
Lorsqu'on me pose une question comme celle-ci, si je manque de connaissances spécifiques sur la base de données donnée, je pense qu'une réponse juste commencerait: "Eh bien, je n'ai pas beaucoup d'expérience avec cette technologie en particulier, mais en En général, je regarderais dans les journaux de performances pour trouver les opérations les plus fréquentes et tenter de les classer en fonction du temps de traitement. De cette façon, je pourrais évaluer quelles opérations sont les plus coûteuses et pourraient être de bons candidats pour l'optimisation. "
Vous n'avez pas besoin de connaissances techniques spécifiques pour la réponse ci-dessus mais cela montre à votre interlocuteur que vous êtes prêt à résoudre un nouveau problème.
la source
Si ce n'est pas juste ou pas juste, ils embauchent donc ils font les règles et sont autorisés à demander ce qu'ils veulent (ok pas tout, mais presque tout;))
Et si vous voulez toujours le travail, je ne pense pas que vous vous rendrez service si vous les écrivez.
la source
Une stratégie très courante dans les entretiens d'embauche consiste à poser une question qui dépasse le niveau du poste interrogé et à voir comment un candidat se débrouille. Avec les questions posées, on peut raisonnablement s'attendre à ce que vous répondiez à quelque chose comme:
Ou même:
En général, je m'attendrais à ce que les candidats au niveau d'entrée aient au moins une compréhension de base du fonctionnement des bases de données et aient également une attitude "Je ne sais pas mais j'essaierai d'apprendre".
Si vous aviez fait une tentative honnête et qu'ils avaient mis fin à l'appel téléphonique immédiatement, vous auriez de bonnes raisons de vous sentir dur, mais comme je dirais, vous devriez apprendre à paraître confiant tout en admettant que vous ne savez rien.
la source
Je connais des intervieweurs qui ne considèrent pas un entretien comme complet à moins qu'ils ne trouvent des questions techniques semi-pertinentes auxquelles le candidat ne peut pas répondre. L'objectif est de voir comment le candidat traite ce type de question.
Admettre qu'ils ne savent pas? Bien. Inventer spin / BS pour une réponse? La porte.
la source
Les rôles IMO, développeur de logiciels et DBA ne sont pas bien classés dans de nombreuses entreprises. Vous devez généralement connaître au moins certaines parties des bases de données également si vous êtes un développeur de logiciels. Donc, les questions me semblent justes, à condition qu'elles ne soient pas posées plus fraîchement.
la source
Je pense que c'est juste. Je ne travaille pas chez un fournisseur de base de données, mais savoir lire les plans de requête (et les journaux de performances, dans une moindre mesure) est TRÈS important. Il est également bon de savoir comment fonctionne l'optimiseur de requêtes.
En réponse à vos balles:
a) Hein? Bien sûr, ils sont liés au développement de bases de données et si vous écrivez du code et que votre programme doit interroger des données, alors c'est pertinent.
b) Pas vraiment. Un DBA devrait mieux connaître les réponses, mais un bon développeur devrait également connaître une réponse. Je ne m'attendrais pas à une réponse aussi détaillée que d'un DBA mais j'attendrais quelque chose. Et si un développeur ne le sait pas, je pourrais simplement accepter comme réponse «Je demanderais au DBA de m'apprendre» si le développeur était encore relativement nouveau dans le travail de base de données.
c) Non, ce n'est pas le cas. Il concerne toutes les personnes préoccupées par les performances de leurs requêtes de base de données. Si vous ne vous souciez pas de la vitesse d'exécution de vos requêtes, vous pouvez ignorer cela. Vos clients, qui ont des performances de plus en plus mauvaises sur leurs sites Web, peuvent en revanche être en désaccord.
d) Peut-être. Tous les développeurs ne voient pas les journaux de performances, mais en cas de problème, vous pouvez vous attendre à ce qu'un administrateur de base de données vous envoie par e-mail les parties pertinentes et vous explique le problème si vous ne savez pas comment l'interpréter. À tout le moins, un développeur devrait être en mesure d'examiner un plan de requête et de voir les problèmes de base (analyse complète de la table => incorrecte, analyse rapide de l'index => bonne).
Puisque vous êtes fraîchement sorti de l'école et que vous n'avez peut-être pas couvert ce sujet dans vos cours, vous pouvez répondre en disant: «Je parlerais à un développeur ou un DBA plus senior et demanderais de l'aide pour comprendre cela». Les enquêteurs pourraient accepter cela, car cela montre à tout le moins que vous êtes prêt à apprendre de nouvelles choses, car vous n'avez pas encore l'expérience pour les découvrir. L'autre option est d'aller les apprendre par vous-même.
Bonne chance pour la prochaine interview!
la source
Ils ont parfaitement le droit de demander ce qu'ils veulent. Vous n'avez peut-être pas couvert ces sujets dans votre programme d'études collégiales, mais cela ne signifie pas que les autres personnes interrogées n'ont pas ou n'ont pas assez d'intérêt pour le sujet pour aller au-delà du programme. Ils recherchent le meilleur. J'espère que vous avez au moins essayé de répondre aux questions et que vous n'êtes pas tous sur la défensive. Si j'étais eux et que je recevais une lettre geignarde de votre part, vous seriez sur liste noire.
la source
Le développement de logiciels est une profession multidisciplinaire. Je ne pense pas que vous obtiendrez un kilométrage pour demander une reprise de votre entretien. «Raisonnable» dans ce contexte est de savoir si une entreprise donnée vous éliminerait de la considération uniquement sur la base de votre manque de compétences DBA. Poser la question est parfaitement raisonnable.
Plus vous progresserez dans votre carrière, plus vous devrez en savoir. Si vous vous demandez pourquoi un développeur de logiciels devrait se soucier de l'optimisation des requêtes, envisagez la conception d'applications. Les nouveaux projets impliquent souvent des discussions sur la modélisation des données. Cela mènera à des discussions de normalisation, qui mèneront à des travaux de conception de base de données. De bons principes de conception descendent jusqu'à la mise en œuvre. Les conceptions incorrectes / inefficaces au niveau architectural ont des conséquences souvent coûteuses à réparer.
la source
Le concept de «juste» n'a pas d'importance ici. Ceci est un entretien d'embauche.
Ils ne peuvent pas vous rejeter en fonction de votre couleur de peau, de votre religion, de votre appartenance ethnique ou de quelques autres choses de ce genre. Mais ils peuvent vous rejeter pour toute autre raison, aussi stupide que la couleur des chaussures que vous portiez à l'entretien. Et vous ne saurez peut-être jamais la vraie raison.
Il est important d'être résilient lors des entretiens. Je comprends l'envie de sur-analyser, et je l'ai fait moi-même assez souvent. Mais la meilleure chose à faire est d'accepter que la vie n'est pas juste et de garder suffisamment d'entretiens dans le pipeline pour que vous n'ayez pas à mettre tous vos espoirs dans l'un d'eux.
la source
Comme d'autres l'ont dit, les questions sont tout à fait valables. Cependant, il serait étrange que l'intervieweur décide de vous embaucher entièrement sur la base de ces questions. Peut-être qu'ils voulaient vous entendre sur un sujet que vous ne connaissez peut-être pas, et c'est une technique d'entrevue valable.
Si j'embauchait, je ne règle que vous si vous avez dit : « Je suis désolé, je ne sais pas grand - chose optimiseurs de requêtes, mais je peux apprendre ». Je voudrais gouverner vous si vous avez commencé à pleurnicher sur les questions, cependant.
la source
Mec, laissez-moi vous dire tout de suite: il n'y a aucun moyen de contourner les bases de données en tant que développeur de logiciels. Chaque projet auquel j'ai participé jusqu'à présent a pris au moins la moitié du temps de développement. La conception de bases de données fait partie intégrante du développement logiciel et plus vous en savez, mieux vous pouvez résoudre le problème. De plus, ne soyez pas dérangé par le type de questions et c'est trop le contexte. La plupart du temps, les employeurs veulent simplement voir si vous êtes en mesure de réfléchir sur vos pieds pour résoudre le problème en question ou si vous avez la confiance nécessaire pour dire au moins quelque chose de raisonnable à ce sujet. Étant donné que vous êtes diplômé, ils se rendent compte qu'ils devront de toute façon passer du temps à vous enseigner toutes ces choses, mais ils veulent savoir si vous en valez le temps et l'effort. Restez vif et modeste!
la source
Que pensez-vous qu'il arrivera si vous envoyez cette lettre? Imaginez-vous qu'ils diront "Hmm, ce candidat a raison. Nous devrions le faire revenir et posons-lui des questions plus faciles"? Je vous garantis qu'ils ne le feront pas. En fait, ce qu'ils vont faire, c'est faire circuler la lettre et rire.
Obtenez sur votre sens du droit. Vous sortez dans le monde réel.
Comment jugez-vous les questions sur les bases de données injustes? Vous pensez que les programmeurs n'ont pas besoin de connaître les bases de données, mais cette société le fait apparemment. C'est pourquoi ils posent les questions! Les intervieweurs ne posent pas de questions juste pour l'enfer. Ils posent les questions pour savoir si vous savez ce dont ils ont besoin. Si vous ne savez pas ce dont ils ont besoin, alors vous n'êtes pas la bonne personne pour le travail.
Si vous ne voulez pas en savoir plus sur les bases de données, c'est bien, mais ne vous plaignez pas si une entreprise ne veut pas vous embaucher. On ne vous doit pas d'emploi.
la source
Comment ces questions ne sont-elles pas justes? Les développeurs travaillent avec des bases de données. Ne pensez-vous pas qu'ils devraient au moins être familiarisés avec les facteurs impliqués dans la réalisation de requêtes de base de données efficaces et rapides? Toutes les entreprises n'ont pas de DBA internes ... et même si c'est le cas, cela ne prend pas la responsabilité d'écrire des requêtes efficaces loin du développeur.
la source
S'ils posent les questions à tous les candidats, ils sont honnêtes et c'est fini.
Peu importe que vous estimiez que les questions sont appropriées au poste, il importe seulement que l'employeur éventuel les juge appropriées - et s'il le demande, il est probable qu'elles le font (soit parce qu'elles reflètent les compétences requises, soit parce qu'elles ont trouvé que les réponses qu'ils obtiennent leur disent des choses intéressantes sur la personne interrogée).
Enfin, vous semblez avoir des idées étranges sur les limites du mandat d'un développeur - je n'ai jamais (pour autant que je m'en souvienne en 25 ans de carrière à ce jour) travaillé avec un DBA dédié ...
la source
En regardant les questions, je pense que cela pourrait être mon entreprise - nous posons ce type de questions à CHAQUE candidat dans le cadre d'un entretien téléphonique. Toujours. Cela nous donne une norme à partir de laquelle travailler.
La plupart des réponses ci-dessus le résument assez bien ...
a) Nous voulons des personnes ayant une vaste expérience et non des personnes qui ne peuvent faire que quelques choses.
b) Les questions sont là pour nous aider à sonder vos connaissances, vous ne connaissez peut-être pas la réponse complètement (ou pas du tout) les questions sont un point de départ pour vous permettre d'étendre vos connaissances et votre expérience.
c) N'oubliez pas que l'entretien est là pour notre bénéfice ET LE VÔTRE ... à partir des types de questions, vous devriez être en mesure de vous faire une idée du rôle et de l'entreprise et de savoir si nous nous adaptons à vous et si vous vous adaptez à nous ...
d) c'est du travail, si vous ne réussissez pas l'entretien, grandissez, arrêtez de pleurnicher et essayez mieux à l'entretien suivant.
la source
On dirait qu'ils n'ont pas de DBA, ils voulaient donc que vous remplissiez également ce rôle. C'est habituel pour les petites entreprises.
la source
Je n'y vois absolument rien de mal. Pourquoi un développeur, surtout s'il finit par travailler dans la base de données, ne devrait-il pas être au courant de ces éléments?
Un développeur de logiciels ne devrait-il pas être au courant des logiciels d'optimisation ou de la façon d'accéder aux journaux des événements des applications pour résoudre un problème de performances? Si oui, pourquoi pas la même chose pour quelqu'un qui est développeur de base de données? Pourquoi ne peuvent-ils pas être un en même temps?
Si j'interviewais quelqu'un pour un poste de développement de logiciels qui impliquait également le développement de bases de données, vous avez raison, je vais m'assurer qu'ils sont conscients non seulement de ce qu'ils font, mais qu'ils peuvent augmenter les performances de leur code ou le code existant comme base de données peut être un énorme goulot d'étranglement.
Au lieu de développer une attitude, une meilleure ligne de conduite aurait peut-être été "Je ne connais pas la réponse mais voici ce que je ferais pour la trouver".
la source
Comme d'autres l'ont souligné, dans une interview, presque toutes les questions sont équitables tant qu'elles ne touchent pas à une sorte de zone légalement protégée (par exemple, l'âge, la race, le sexe, etc.) et qu'il n'est pas inhabituel de demander aux intervieweurs de jeter questions à vous juste pour voir comment vous réagissez à la question et comment vous allez essayer de trouver une solution à la question. De plus, comme il semble que vous soyez un diplômé récent, ils sont un peu limités en ce qui concerne la possibilité de vous poser des questions sur votre expérience de travail et sur le type de problèmes que vous avez résolus dans un environnement de production. Ainsi, si l'entreprise effectue beaucoup de travaux axés sur les bases de données, les questions qu'elle a posées peuvent également être pertinentes par rapport au poste que vous interviewerez.
En ce qui concerne vos hypothèses:
Peut-être peut-être pas. Si vous faites du développement de base de données, vous allez utiliser un optimiseur de requêtes et planifier de temps en temps pour essayer de vous assurer qu'il n'y a pas de problèmes évidents avec vos requêtes. Si l'entreprise a des administrateurs de base de données ou des experts qui pourraient examiner les requêtes, ils n'auront peut-être pas le temps de tout regarder et ils ne voudront pas non plus regarder chaque requête mal codée. De même, il n'est pas inhabituel pour les développeurs d'être responsables de la maintenance de leur environnement de développement, d'inclure des bases de données et de faire en sorte que les administrateurs de bases de données gèrent le côté production des choses.
Ils seraient probablement appropriés pour une entrevue DBA; mais quoi qu'il en soit, ce sont également des sujets que le développeur doit connaître, ne serait-ce qu'au niveau de la capacité de reconnaître où un problème pourrait se trouver et de faire lui-même un dépannage de base. Comme je l'ai mentionné précédemment, si l'entreprise a des ressources limitées, elle voudra s'assurer qu'elle ne perd pas de temps avec une chose qui pourrait être un problème de base.
Les détails spécifiques peuvent être spécifiques au fournisseur, mais les concepts généraux peuvent être appliqués n'importe où et parfois vous montrer que vous comprenez les concepts généraux est tout ce dont vous avez besoin. Si vous ne voulez pas être enfermé dans une seule pile de développement (c'est-à-dire LAMP ), vous devrez être en mesure de montrer lors des entretiens que vous comprenez les concepts de base et que vous êtes à l'aise pour passer à différentes piles de développement.
Cela est généralement vrai, mais si une partie de votre travail consiste à écrire un logiciel pour une base de données donnée qui doit être très réactif, vous devrez vous assurer de faire de votre mieux pour rédiger ces requêtes afin qu'un collègue qui soit un expert dans un domaine donné n'est pas enlisé avec des requêtes mal écrites. Bien que vous n'ayez peut-être pas besoin de connaître les détails de ce que les journaux vous disent, vous devrez peut-être être en mesure d'identifier les problèmes évidents.
Espérons que tout cela aide!
la source
Ce n'est pas parce que vous êtes un développeur de logiciels que vous ne devez connaître que les sujets relatifs aux développeurs de logiciels. Avoir une grande variété de connaissances de la gestion de serveurs aux technologies de bases de données est en fait une compétence très utile à avoir en tant que développeur. Je n'aurais aucun problème à poser ce type de questions aux candidats. S'ils ne les comprennent pas bien, ça ne les raye pas de la liste (je ne m'attends pas à ce qu'ils sachent tout), mais s'ils sont capables de répondre, cela me montre que le développeur est bien plus que juste le programmeur typique de compétences, et ce sont des races rares.
la source
J'ai également un différend similaire avec un employeur potentiel qui m'a posé une question sur une plaque d'égout. Je vous demande, qu'est-ce que la forme d'un couvercle de trou d'homme a à voir avec la programmation!
la source
Réponses du formulaire Eh bien, je ne suis pas sûr, mais je le rechercherais en allant sur, et je suis également bon. Personne ne pense que vous savez tout mais être capable de chercher des trucs est une compétence clé
la source