Ich habe gerade ein Telefoninterview mit einem Unternehmen für eine Stelle als Diplom-Softwareentwickler geführt und mir wurden die folgenden Fragen gestellt. Ich sollte hinzufügen, dass das betreffende Unternehmen kein Datenbankanbieter ist.
Wie funktioniert ein Abfrageoptimierer?
Wenn eine Datenbank eine schlechte Leistung erbringt, wie würden Sie die Leistungsprotokolle verwenden, um das Problem herauszufinden?
Ich habe in einem ersten Telefoninterview gefragt, ob sie allen möglichen Softwareentwicklern (Absolventen oder erfahrenen) solche Fragen stellen. Sie antworteten, dass sie gerne das Wissen ihrer Kandidaten über die Datenbankentwicklung testen würden.
Ich möchte an das Unternehmen schreiben, um zu sagen, dass diese Fragen bei einem Softwareentwickler-Interview nicht zumutbar sind, und um zu verlangen, dass mein Interview erneut durchgeführt wird.
Ich möchte die Angemessenheit der folgenden Annahmen überprüfen
a) Diese Fragen können nicht als Fragen zur Datenbankentwicklung eingestuft werden.
b) Ich denke, die Fragen sind für ein DBA-Interview angemessen, aber für ein Softwareentwickler-Interview (erfahren oder nicht) völlig unvernünftig.
c) Die erste Frage ist nur für einen Datenbankanbieter relevant.
d) Die zweite Frage ist nicht fair, da Softwareentwickler sich normalerweise nicht mit Datenbankleistungsprotokollen befassen, da dies die Aufgabe des DBA ist.
Vielleicht sind einige von Ihnen so freundlich, meine Annahmen zu kommentieren oder andere Vorschläge zu machen, bevor ich an das Unternehmen schreibe.
Antworten:
Wenn ich ein Interviewer wäre (was ich manchmal bin) und einen Brief von einem Kandidaten erhalten hätte, der sich darüber beschwert, dass die Fragen unfair sind und sie eine Überarbeitung wünschen, würde ich meinen Glückssternen danken, dass wir dieser Kugel ausgewichen sind und die Bewerbung sofort verschoben haben der Stapel "ablehnen". Wenn Sie so handeln, zeigen Sie nur, dass Sie ein Beschwerdeführer sind und nicht die Einstellung haben, nach der man suchen kann.
ein. Die Fragen zum Thema Datenbankentwicklung waren vernünftig.
b. falsch. Alles, was mit Softwareentwicklung zu tun hat, ist ein faires Spiel. Denken Sie daran, dass eine falsche Antwort Sie nicht automatisch für die Position (oder andere Positionen im Unternehmen) disqualifiziert. Es kann nur hilfreich sein, Sie als jemanden zu klassifizieren, der für einen datenbankorientierten Job nicht am besten geeignet ist.
c. falsch.
d. falsch. Erstens gibt es möglicherweise keinen dedizierten DBA. Zweitens muss sich ein Softwareentwickler einer Vielzahl von Problemen bewusst sein, die sich auf die Leistung (und Genauigkeit) auswirken können, und zumindest über ein umfassendes Verständnis der Datenbankverwaltung verfügen.
Nehmen Sie dies als eine Lektion, dass es Dinge gibt, die Sie noch nicht wissen. Jetzt wissen Sie, was Sie für das nächste Mal lernen müssen.
quelle
Ich denke, es ist eine faire Frage (und es klingt wie eine, die Google wahrscheinlich stellt). :) Der Punkt der Frage scheint NICHT darin zu bestehen, Ihr detailliertes Wissen über Datenbankabfragen und dergleichen wirklich zu testen, sondern vielmehr zu beobachten, wie Sie sich einem Problem nähern und es lösen würden. Die Fähigkeit, eine Aufgabe zu erledigen, die Sie bereits zuvor erledigt haben, ist notwendig, aber die Fähigkeit, auf den Beinen zu denken und sich einem neuen Problem zu nähern, ist eine wichtige Fähigkeit.
Wenn mir eine solche Frage gestellt wird und ich nicht über die spezifischen Kenntnisse der jeweiligen Datenbank verfüge, würde eine faire Antwort beginnen: "Nun, ich habe nicht viel Erfahrung mit dieser Technologie im Einzelnen, aber in Im Allgemeinen würde ich in den Leistungsprotokollen nach Vorgängen suchen, die am häufigsten ausgeführt werden, und versuchen, sie nach Verarbeitungszeit zu ordnen. Auf diese Weise könnte ich beurteilen, welche Vorgänge am teuersten sind und möglicherweise gute Kandidaten für eine Optimierung sind. "
Sie benötigen keine spezifischen technischen Kenntnisse für die obige Antwort, aber es zeigt Ihrem Interviewer, dass Sie bereit sind, ein neues Problem zu lösen.
quelle
Wenn fair oder nicht fair nicht die Frage ist, stellen sie ein, damit sie die Regeln festlegen und fragen dürfen, was sie wollen (ok, nicht alles, aber fast alles;))
Und wenn Sie den Job immer noch wollen, werden Sie sich wohl keinen Gefallen tun, wenn Sie sie schreiben.
quelle
Eine sehr verbreitete Strategie bei Vorstellungsgesprächen besteht darin, eine Frage zu stellen, die über das Niveau der Position hinausgeht, für die ein Vorstellungsgespräch geführt wird, und zu sehen, wie sich ein Kandidat durchwühlt. Mit den gestellten Fragen könnte man vernünftigerweise erwarten, dass Sie Folgendes beantworten:
Oder auch:
Im Allgemeinen würde ich von Einsteigern erwarten, dass sie zumindest ein grundlegendes Verständnis für die Funktionsweise von Datenbanken haben und auch die Einstellung "Ich weiß nicht, aber ich werde versuchen zu lernen" haben.
Wenn Sie einen ehrlichen Versuch unternommen hätten und sie das Telefonat sofort beendet hätten, hätten Sie echten Grund, sich schwer getan zu fühlen, aber ich würde sagen, Sie sollten lernen, selbstbewusst zu wirken, während Sie zugeben, dass Sie nichts wissen.
quelle
Ich kenne Interviewer, die ein Interview nicht für vollständig halten, es sei denn, sie finden einige semi-relavante technische Fragen, die der Kandidat nicht beantworten kann. Das Ziel ist zu sehen, wie der Kandidat mit dieser Art von Frage umgeht.
Zugeben, dass sie es nicht wissen? Gut. Spin / BS für eine Antwort erfinden? Die Tür.
quelle
IMO-, Softwareentwickler- und DBA-Rollen sind in vielen Unternehmen nicht gut kategorisiert. Im Allgemeinen müssen Sie mindestens einige Teile von Datenbanken kennen, wenn Sie ein Softwareentwickler sind. Fragen erscheinen mir also fair, vorausgesetzt, sie werden nicht frischer gestellt.
quelle
Ich finde das fair. Ich arbeite nicht bei einem Datenbankanbieter, aber es ist SEHR wichtig zu wissen, wie man Abfragepläne (und in geringerem Maße Leistungsprotokolle) liest. Es ist auch gut zu wissen, wie das Abfrageoptimierungsprogramm funktioniert.
Als Antwort auf Ihre Kugeln:
a) Huh? Sicher, sie hängen mit der Datenbankentwicklung zusammen. Wenn Sie Code schreiben und Ihr Programm Daten abfragen muss, ist dies relevant.
b) Nicht wirklich. Ein DBA sollte die Antworten besser kennen, aber ein guter Entwickler sollte auch eine Antwort kennen. Ich würde keine so detaillierte Antwort erwarten wie von einem DBA, aber ich würde etwas erwarten. Und wenn ein Entwickler es nicht weiß, könnte ich als Antwort "Ich würde den DBA bitten, mich zu unterrichten" akzeptieren, wenn der Entwickler noch relativ neu in der Datenbankarbeit war.
c) Nein, ist es nicht. Dies ist für alle relevant, die sich Sorgen über die Leistung ihrer Datenbankabfragen machen. Wenn Sie sich nicht darum kümmern, wie schnell Ihre Abfragen ausgeführt werden, können Sie dies ignorieren. Ihre Kunden, die auf ihren Websites zunehmend schlechtere Leistungen erbringen, sind möglicherweise anderer Meinung.
d) Vielleicht. Nicht alle Entwickler sehen die Leistungsprotokolle, aber wenn es ein Problem gibt, können Sie erwarten, dass ein DBA Ihnen die relevanten Teile per E-Mail sendet und das Problem erklärt, wenn Sie nicht wissen, wie Sie es interpretieren sollen. Zumindest sollte ein Entwickler in der Lage sein, einen Abfrageplan zu betrachten und die grundlegenden Probleme zu erkennen (vollständiger Tabellenscan => schlecht, schneller Indexscan => gut).
Da Sie gerade die Schule verlassen haben und dieses Thema in Ihren Klassen möglicherweise nicht behandelt haben, könnten Sie mit den Worten antworten: "Ich würde mit einem älteren Entwickler oder DBA sprechen und um Unterstützung bitten, um dies zu verstehen." Interviewer könnten das akzeptieren, da es zumindest zeigt, dass Sie bereit sind, neue Dinge zu lernen, da Sie noch nicht die Erfahrung hatten, sie herauszufinden. Die andere Möglichkeit besteht darin, sie selbst zu lernen.
Viel Glück beim nächsten Interview!
quelle
Sie haben das Recht zu fragen, was sie wollen. Möglicherweise haben Sie diese Themen nicht in Ihrem Lehrplan behandelt, aber das bedeutet nicht, dass andere Befragte nicht oder nicht genug Interesse an dem Thema haben, um über den Lehrplan hinauszugehen. Sie suchen das Beste. Ich hoffe, Sie haben zumindest versucht, die Fragen zu beantworten, und sind nicht alle defensiv geworden. Wenn ich sie wäre und einen weinerlichen Brief von Ihnen bekommen würde, wären Sie auf der schwarzen Liste.
quelle
Softwareentwicklung ist ein multidisziplinärer Beruf. Ich glaube nicht, dass Sie Meilen sammeln werden, wenn Sie nach einer Überarbeitung Ihres Interviews fragen. "Vernünftig" ist in diesem Zusammenhang, ob ein bestimmtes Unternehmen Sie nur aufgrund Ihrer mangelnden DBA-Kenntnisse von der Prüfung ausschließen würde . Die Frage zu stellen ist völlig vernünftig.
Je weiter Sie in Ihrer Karriere vorankommen, desto mehr müssen Sie wissen. Wenn Sie sich fragen, warum sich ein Softwareentwickler für die Abfrageoptimierung interessieren sollte, ziehen Sie das Anwendungsdesign in Betracht. Neue Projekte beinhalten häufig Datenmodellierungsdiskussionen. Dies führt zu Normalisierungsdiskussionen, die zu Datenbankentwurfsarbeiten führen. Gute Gestaltungsprinzipien fließen in die Umsetzung ein. Schlechte / ineffektive Entwürfe auf architektonischer Ebene haben Konsequenzen, deren Behebung oft teuer ist.
quelle
Das Konzept "fair" spielt hier keine Rolle. Dies ist ein Vorstellungsgespräch.
Sie können Sie nicht aufgrund Ihrer Hautfarbe, Religion, ethnischen Zugehörigkeit oder einiger anderer solcher Dinge ablehnen. Aber sie können dich aus jedem anderen Grund ablehnen , so dumm wie die Farbe der Schuhe, die du zum Interview getragen hast. Und vielleicht kennen Sie nie den wahren Grund.
Es ist wichtig, beim Interview belastbar zu sein. Ich verstehe die Neigung zur Überanalyse und habe es oft genug selbst gemacht. Aber das Beste, was Sie tun können, ist zu akzeptieren, dass das Leben nicht fair ist, und genügend Interviews in der Pipeline zu halten, damit Sie nicht alle Ihre Hoffnungen auf eines von ihnen setzen müssen.
quelle
Wie andere gesagt haben, sind die Fragen völlig gültig. Es wäre jedoch seltsam, wenn der Interviewer aufgrund dieser Fragen entscheiden würde, ob er Sie vollständig einstellen soll . Vielleicht wollten sie Ihnen die Gründe für ein Thema anhören, mit dem Sie möglicherweise nicht vertraut sind, und das ist eine gültige Interviewtechnik.
Wenn ich einstellen würde, würde ich Sie nicht ausschließen, wenn Sie sagen "Es tut mir leid, ich weiß nicht so viel über Abfrageoptimierer, aber ich kann lernen". Ich würde Sie jedoch ausschließen, wenn Sie anfangen würden, über die Fragen zu jammern.
quelle
Alter, lassen Sie mich gleich sagen: Als Softwareentwickler führt kein Weg an Datenbanken vorbei. Jedes einzelne Projekt, an dem ich bisher beteiligt war, nahm mindestens die Hälfte der Entwicklungszeit in Anspruch. Das DB-Design ist ein wesentlicher Bestandteil der Softwareentwicklung. Je mehr Sie wissen, desto besser können Sie das Problem lösen. Lassen Sie sich auch nicht von der Art der Fragen und dem Kontext zu sehr verwirren. Meistens wollen Arbeitgeber nur sehen, ob Sie in der Lage sind, auf den Beinen zu denken, um das vorliegende Problem zu lösen, oder ob Sie das Vertrauen haben, zumindest etwas Vernünftiges zu sagen. Als Absolvent erkennen sie, dass sie tatsächlich Zeit damit verbringen müssen, Ihnen all diese Dinge beizubringen, aber sie möchten wissen, ob Sie die Zeit und Mühe wert sind. Bleib scharf und bescheiden!
quelle
Was in aller Welt wird Ihrer Meinung nach passieren, wenn Sie diesen Brief senden? Stellen Sie sich vor, dass sie sagen werden: "Hmm, dieser Kandidat hat Recht. Wir sollten ihn zurückhaben und ihm einfachere Fragen stellen." Ich garantiere Ihnen, dass sie nicht werden. In der Tat werden sie den Brief weitergeben und lachen.
Überwinde dein Anspruchsgefühl. Du gehst in die reale Welt aus.
Wie finden Sie, dass die Fragen zu Datenbanken unfair sind? Sie denken, dass Programmierer keine Datenbanken kennen müssen, aber diese Firma tut es anscheinend. Deshalb stellen sie die Fragen! Interviewer stellen nicht nur zum Teufel Fragen. Sie stellen die Fragen, um herauszufinden, ob Sie die Dinge wissen, die sie brauchen. Wenn Sie nicht wissen, was sie brauchen, sind Sie nicht die richtige Person für den Job.
Wenn Sie nichts über Datenbanken erfahren möchten, ist das in Ordnung, aber jammern Sie nicht, wenn ein Unternehmen Sie nicht einstellen möchte. Ihnen ist kein Job geschuldet.
quelle
Wie sind diese nicht fairen Fragen? Entwickler arbeiten mit Datenbanken. Denken Sie nicht, dass sie zumindest mit den Faktoren vertraut sein sollten, die dazu beitragen, Datenbankabfragen effizient und schnell zu gestalten? Nicht jedes Unternehmen verfügt über interne Datenbankadministratoren ... und selbst wenn dies der Fall ist, übernimmt dies nicht die Verantwortung für das Schreiben effektiver Abfragen vom Entwickler.
quelle
Wenn sie allen Kandidaten die Fragen stellen, sind sie fair und erledigt.
Es spielt keine Rolle, ob Sie der Meinung sind, dass die Fragen für die Position angemessen sind, es ist nur wichtig, ob der potenzielle Arbeitgeber dies für angemessen hält - und wenn er fragt, ist es wahrscheinlich, dass dies der Fall ist (entweder weil sie die erforderlichen Fähigkeiten widerspiegeln oder weil sie sie gefunden haben) dass die Antworten, die sie erhalten, ihnen interessante Dinge über den Befragten erzählen).
Schließlich scheinen Sie einige seltsame Vorstellungen über die Grenzen des Aufgabenbereichs eines Entwicklers zu haben - ich habe noch nie (soweit ich mich in einer 25-jährigen Karriere erinnern kann) mit einem engagierten DBA gearbeitet ...
quelle
Wenn ich mir die Fragen anschaue, denke ich, dass dies mein Unternehmen sein könnte - wir stellen diese Art von Fragen JEDEM Kandidaten im Rahmen eines Telefoninterviews. Immer. Es gibt uns einen Standard, nach dem wir arbeiten können.
Die meisten der obigen Antworten fassen es ziemlich gut zusammen ...
a) Wir wollen Menschen mit breiter Erfahrung, nicht Menschen, die nur ein paar Dinge tun können.
b) Die Fragen helfen uns dabei, Ihr Wissen zu überprüfen. Möglicherweise kennen Sie die Antwort nicht vollständig (oder überhaupt nicht). Die Fragen sind ein Ausgangspunkt, um Ihr Wissen und Ihre Erfahrung zu erweitern.
c) Denken Sie daran, dass das Interview zu unserem UND IHREN Gunsten da ist. Anhand der Art von Fragen sollten Sie sich ein Bild von der Rolle und dem Unternehmen machen können und ob wir zu Ihnen und zu uns passen ...
d) Es ist Aufgabe, wenn Sie das Interview nicht überstehen, dann werden Sie erwachsen, hören Sie auf zu jammern und versuchen Sie es beim nächsten Interview besser.
quelle
Scheint, als hätten sie keinen DBA, also wollten sie, dass Sie auch diese Rolle übernehmen. Dies ist bei kleinen Unternehmen üblich.
quelle
Ich sehe absolut nichts falsch daran. Warum sollte ein Entwickler, insbesondere wenn er in der Datenbank arbeitet, nicht mit solchen Elementen vertraut sein?
Sollte ein Softwareentwickler nicht über Optimierungssoftware informiert sein oder wissen, wie er auf Anwendungsereignisprotokolle zugreifen kann, um ein Leistungsproblem herauszufinden? Wenn ja, warum nicht dasselbe für jemanden, der Datenbankentwickler ist? Warum können sie nicht ein und dasselbe sein?
Wenn ich jemanden für eine Position in der Softwareentwicklung interviewt habe, an der auch die Datenbankentwicklung beteiligt war, haben Sie verdammt Recht. Ich werde sicherstellen, dass er nicht nur weiß, was er tut, sondern auch die Leistung seines Codes steigern kann oder vorhandener Code als Datenbank kann ein riesiger Flaschenhals sein.
Anstatt eine Einstellung zu entwickeln, wäre eine bessere Vorgehensweise vielleicht gewesen: "Ich kenne die Antwort nicht, aber hier ist, was ich tun würde, um sie zu finden."
quelle
Wie andere betont haben, ist in einem Interview so ziemlich jede Art von Frage ein faires Spiel, solange sie keinen gesetzlich geschützten Bereich berührt (z. B. Alter, Rasse, Geschlecht usw.) und es nicht ungewöhnlich ist, dass Interviewer werfen Fragen an Sie, nur um zu sehen, wie Sie auf die Frage reagieren und wie Sie versuchen würden, eine Lösung für die Frage zu finden. Da es den Anschein hat, dass Sie ein Absolvent sind, sind sie darüber hinaus etwas eingeschränkt, wenn es darum geht, Sie nach Ihrer Berufserfahrung und den Problemen zu fragen, die Sie in einer Produktionsumgebung gelöst haben. Wenn das Unternehmen viel datenbankorientierte Arbeit leistet, können die gestellten Fragen auch relevant für die Position sein, die Sie interviewen.
In Bezug auf Ihre Annahmen:
Vielleicht, vielleicht nicht. Wenn Sie eine Datenbankentwicklung durchführen, verwenden Sie einen Abfrageoptimierer und planen von Zeit zu Zeit, um sicherzustellen, dass keine offensichtlichen Probleme mit Ihren Abfragen vorliegen. Wenn das Unternehmen Datenbankadministratoren oder Experten hat, die die Abfragen überprüfen können, haben sie möglicherweise nicht die Zeit, sich alles anzusehen, und sie möchten auch nicht jede schlecht codierte Abfrage betrachten. Ebenso ist es nicht ungewöhnlich, dass Entwickler für die Wartung ihrer Entwicklungsumgebung verantwortlich sind, Datenbanken einbeziehen und die DBAs die Produktion übernehmen.
Sie wären wahrscheinlich für ein DBA-Interview geeignet. Unabhängig davon sind sie jedoch auch Themen, mit denen ein Entwickler vertraut sein sollte, wenn er nur in der Lage ist, zu erkennen, wo ein Problem liegen könnte, und einige grundlegende Fehlerbehebungsmaßnahmen selbst durchzuführen. Wie ich bereits erwähnt habe, sollten Unternehmen, die nur über begrenzte Ressourcen verfügen, sicherstellen, dass sie nicht die Zeit der Menschen mit etwas verschwenden, das ein grundlegendes Problem sein könnte.
Spezifische Details können herstellerspezifisch sein, aber die allgemeinen Konzepte können überall angewendet werden. Manchmal reicht es aus, wenn Sie zeigen können, dass Sie die allgemeinen Konzepte verstehen. Wenn Sie nicht an einen einzelnen Entwicklungsstapel (z. B. LAMP ) gebunden sein möchten, müssen Sie in Interviews zeigen können, dass Sie die Kernkonzepte verstehen und problemlos zu verschiedenen Entwicklungsstapeln wechseln können.
Dies ist im Allgemeinen der Fall, aber wenn ein Teil Ihrer Aufgabe darin besteht, Software für eine bestimmte Datenbank zu schreiben, die sehr reaktionsschnell sein muss, müssen Sie sicherstellen, dass Sie sich nach besten Kräften bemühen, diese Abfragen so zu schreiben, dass ein Kollege dies tut Ein Experte in einem bestimmten Bereich ist nicht mit schlecht geschriebenen Fragen beschäftigt. Während Sie möglicherweise nicht genau wissen müssen, was die Protokolle Ihnen sagen, müssen Sie möglicherweise in der Lage sein, offensichtliche Probleme zu identifizieren.
Hoffentlich hilft das alles!
quelle
Nur weil Sie ein Softare-Entwickler sind, heißt das nicht, dass Sie nur Themen für Softwareentwickler kennen sollten. Als Entwickler ist es sehr nützlich, über eine Vielzahl von Kenntnissen zu verfügen, von der Serververwaltung bis hin zu Datenbanktechnologien. Ich hätte keine Probleme damit, Kandidaten solche Fragen zu stellen. Wenn sie sie nicht richtig verstehen, wird sie nicht von der Liste gestrichen (ich erwarte nicht, dass sie alles wissen), aber wenn sie antworten können, zeigt mir das, dass der Entwickler viel mehr ist als Nur der typische Programmierer mit Fähigkeiten, und das ist eine seltene Rasse.
quelle
Ich habe auch einen ähnlichen Streit mit einem potenziellen Arbeitgeber, der mir eine Frage zu einem Schachtdeckel gestellt hat. Ich frage Sie, was hat die Form eines Schachtdeckels mit Programmierung zu tun?
quelle
Antworten des Formulars Nun, ich bin mir nicht sicher, aber ich würde es nachschlagen, indem ich zu gehe, und bin auch gut. Niemand glaubt, dass Sie alles wissen, aber es ist eine Schlüsselkompetenz, Dinge nachschlagen zu können
quelle