Wenn Sie einen Webentwickler einstellen wollten, der hauptsächlich mit TurboGears / Python arbeiten würde - welche Art von Fragen sollten Sie sie stellen?
Zusätzlich zu den guten Vorschlägen in den anderen Antworten ist etwas, was ich immer gerne (von jedem, der ein Kandidat ist, um überhaupt etwas zu entwickeln, das mit dem Web zusammenhängt) zu fragen: "wenn ein Benutzer www.foo.com eintippt Die Adressleiste und die Treffer des Browsers kehren zurück, was passiert dann? Bitte beschreiben Sie so detailliert wie Sie es für am besten halten, dann können wir einige oder alle Teile der Antwort aufschlüsseln. "
Abgesehen von den verwendeten serverseitigen Rahmenwerken kann dies mir ein Los über das Verständnis des Kandidaten für andere entscheidende Technologien, mit denen es sich am Ende vielleicht befassen wird, sagen: HTTP und der ganze TCP / IP-Stack darunter, DNS, Caches von vielen und verschiedenen Arten (und wie sie manchmal ein Problem sein können und was können Sie, der Entwickler, versuchen Sie dazu zu tun ...), Oberflächen-sichtbare Aspekte von Browser-Technologien, Cookies, HTML und CSS und vielleicht etwas Javascript, ...
Ja, alltägliche Technologien, die wir verwenden, wie z. B. Frameworks, versuchen schwer, weg von all dem zu abstrahieren (und die Produktivität dadurch zu steigern), aber Joel Spolsky's Gesetz der undichten Abstraktionen trifft zu - es ist wichtig, dass man sich der Schichten des Stapels bewusst ist, von denen man normalerweise abstrahiert, um das Software-Handwerk wirklich zu beherrschen.
Abhängig von den Details der Position, für die der Kandidat interviewt wird, sind tiefere Drilldowns in verschiedenen Bereichen angemessen. Beschreiben Sie zum Beispiel (auf einer vernünftigen Abstraktionsebene), wie die HTTP-Anfrage (über einen Webserver und eine Turbogears-Maschine, vielleicht über WSGI) in Ihren Anwendungscode gelangen würde, ungefähr, wie Ihr Code die Anfrage untersuchen und eine Antwort vorbereiten würde Die Antwort würde gepackt und zurück an den anfordernden Browser gesendet werden, könnten alle Elemente von Interesse sein - je nachdem, welche Art von Frontend / UI Verantwortlichkeiten der Entwickler in Frage hat, mehr über die Art und Weise, wie der Browser mit verschiedenen Aspekten umgehen wird Die Antwort (einschließlich Links zu Stylesheets, Skripts, Bildern usw.) könnte ebenfalls angebracht sein.
Jeder kann sich über eine bestimmte Technologie wie ein Framework "quälen", genug, wenn sie schlau genug sind, um ein "Quiz" -artiges Interview zu "ass". Aber jeder, der in der Lage ist, ein offeneres, diskursiveres Interview wie dieses zu führen, hat mit überwältigender Wahrscheinlichkeit viele der Schichten des relevanten Stapels von Technologien und Abstraktionen wirklich gemeistert und verstanden - ich würde viel lieber jemanden einstellen Ein solch tiefgründiges Verständnis, auch wenn sie noch nie TurboGear verwendet haben (sondern, sagen wir, Django, Wekrzeug und web.py) [sie werden in der Lage sein, die TurboGear-spezifischen Details zu bearbeiten Woche, Tops], als jemand, der sich verpflichtet hat, einen Stapel von Turbogears-Referenzhandbüchern zu speichern, versteht aber HTTP, Cookies, TCP / IP nicht wirklich ... ( das Fehlen würde zumindest viele brauchen Monate zu beheben).
Die besten Interviewfragen sind diejenigen, in denen Sie sie bitten, Probleme zu lösen.
Hier sind ein paar halb zufällige Vorschläge (nach dem FizzBizz-Test )
Geben Sie ihnen ein nicht-triviales Projekt, das sie über eine Woche in der Domäne, in der Sie arbeiten, implementieren möchten. Ich habe mich einmal bei einer Suchfirma beworben und sie haben mich gebeten, ein kollaboratives Filtersystem zu implementieren.
Die Bereiche, die normalerweise verwirrend sind, sind Dekoratoren, das Typsystem, Metaklassen, vielleicht Iteratoren. Sie könnten sie etwas über diese Dinge fragen, um ihre Tiefe zu erforschen.
Ich kann hier nicht viel vorschlagen, aber Sie könnten sie auf dem ORM ihrer Wahl quizieren (konstruieren Sie einige Mapper und Abfragen), fragen Sie ein wenig über die Validierung (ich hatte Probleme, eine bedingte Validierung für die Arbeit mit FormEncode zu bekommen). Sie könnten auch ein wenig darüber nachdenken, wie sie die App testen, sicherstellen, dass sie skaliert wird, ihre Leistung testen und bereitstellen.
Tags und Links python turbogears