Wenn ein technisches Genie nicht ausreicht, um ein erfolgreicher Entwickler zu sein? [geschlossen]


18

Die ausgezeichnete Frage " Wird ein hohes Ansehen in Stack Overflow dazu beitragen, einen guten Job zu bekommen? " Wurde viel diskutiert . Ich war sofort mit JoshK einverstanden , der im Grunde genommen " Nein " sagte (ich werde erklären, warum), aber Joel mischte sich mit vielen überzeugenden Fakten ein, die mich dazu veranlassten, ihn ebenfalls zu unterstützen.

Meine Frage ist, welche anderen Fähigkeiten (außer ein technisches Genie zu sein) benötigen Sie von einem Entwickler? Um den Job zu bekommen oder ihn zu behalten .

Ich glaube, ein Genie zu sein, ist alles andere als genug. Ich habe in verschiedenen Unternehmen, für die ich gearbeitet habe, viele technische Genies getroffen, die mich sehr beeindruckt haben, aber leider wurden sie in vielen Fällen nach ein paar Monaten einfach abgefeuert oder in Elfenbeintürme gesteckt (hauptsächlich wegen interner Meuterei von anderen Entwicklern). Ich habe aufgrund dessen, was ich verstehe, viele in persönlicher Not gesehen.

Deshalb bin ich ein großer Fan von nicht-technischen Fragen für technische Positionen. Ich möchte wissen, wie der Kandidat mit anderen (einschließlich nicht technischer Mitarbeiter) umgeht, wie viel Rücksicht er auf das Unternehmen nimmt, ob er für das gewünschte Ergebnis arbeitet und so weiter.

Ich würde gerne wissen, was Sie von Ihren Entwicklern verlangen und WARUM es wichtig ist (schließlich stellen Sie jemanden ein, der Code schreibt, oder? Warum sollte er durchsetzungsfähig sein?) . Idealerweise möchte ich, dass Sie sich eine Beispielfrage ausdenken, die Sie während eines Interviews zur Unterstützung Ihrer Antwort stellen würden.


Meine Firma ist mit Elfenbeintürmen mit Elfenbeingehältern für ihre Bewohner geladen :(
Dr. Hannibal Lecter

Die Aussicht ist schön von der Spitze des Elfenbeinturms :)

Antworten:


22

Exzellente Kommunikations Fähigkeiten.

Wenn Ihre Kollegen Ihr Gehirn nicht direkt lesen können, müssen Sie ihnen sagen können, was Sie denken. Am liebsten sowohl mündlich als auch schriftlich.


EDIT: Ein Weg , um sie zu Interview Zeit zu sehen , kann durch sie zu fragen, was ihr Lieblings - Rahmen für X zu tun ist, und dann sagen , dass sie an einem Projekt arbeiten müssen , wo X verwendet werden könnte, aber es ist eine politische Entscheidung zu Use - Technologie Y (das eindeutig älter ist und einige Einschränkungen aufweist, die X löst).

Wenn dies zu einem Streit darüber führt, warum die politische Entscheidung falsch ist, haben Sie einen starken Hinweis darauf, dass diese Person mit pragmatischen Entscheidungen nicht gut zurechtkommt.


Werden Sie weitere Details hinzufügen, wie Sie mit nicht-technischen Mitarbeitern (wie dem Management oder Kunden) über hochtechnische Dinge kommunizieren können? Ich lese gerade ein ausgezeichnetes Buch zum Thema "Even a Geek Can Speak".

Nun, es ist im Wesentlichen nur eine Frage, ob Sie in IHRER Denkweise denken können. Ich fand einmal, dass die Erklärung der Softwareentwicklung als "Wir schreiben Strickrezepte" gut zu den Einstellungen von Großmüttern passt.

3
Ich bevorzuge immer Kandidaten mit ausgezeichneten Englischkenntnissen und der Bereitschaft, sich zusätzliche Zeit zu nehmen, um an ihren schriftlichen und mündlichen Kommunikationsfähigkeiten zu arbeiten. Auf der anderen Seite, wenn er oder sie spricht oder schreibt, als wäre das Leben nur eine andere Anwendung, die auf Twitter bereitgestellt wird, werde ich mein Bestes geben, um höflich zu sein, wenn ich ihnen die Tür zeige.
Adam Crossland

@Pierre, ist dieses Buch online verfügbar? Ich konnte es auf Safari nicht finden.

1
@ Pierre303 Vielleicht findest du "The Nerd Handbook" interessant. randsinrepose.com/archives/2007/11/11/the_nerd_handbook.html . Der Autor hat einen sehr interessanten Blog.

15

Teamarbeit / Kommunikation:

  • in der Lage zu sein, Ihre Lösungen oder Ihre Probleme zu erklären
  • Es ist angenehm, mit anderen Menschen zusammenzuarbeiten, ohne dass sie sich (in irgendeiner Weise) schlecht fühlen

Ohne diese Fähigkeiten können Sie nicht im Team arbeiten, und wenn Sie nicht können, können Sie nicht in ein Unternehmen eintreten, in dem dies erforderlich ist (und fast alle von ihnen erfordern natürlich Teamarbeit). Sie könnten immer noch freiberuflich tätig sein und an Projekten arbeiten, an denen keine anderen Mitarbeiter arbeiten, aber Sie müssen immer noch mit Mitarbeitern anderer Unternehmen kommunizieren.

Selbst für das Lernen ist es ein Handicap, wenn Sie nicht mit vielen verschiedenen Menschen kommunizieren können, wie im Internet.

Bearbeiten> Im Interview ist Teamarbeit / Sozialisation / Kommunikation wirklich einfach zu überprüfen, es könnte die einfachste Sache sein. Sie müssen nur einige Fragen stellen, keine technischen, einfach zu beantwortende Fragen oder einfach Fragen, was der Kandidat über etwas denkt oder was der Kandidat in einer Domain oder einer anderen mag oder nicht mag. Ihn zum Reden bringen. Du wirst sehen.


15

Beharrlichkeit ist eine Fähigkeit, die ich nicht sehr oft erwähnt sehe. Und es ist eine Fähigkeit - die Fähigkeit, sich durch ein Problem arbeiten zu lassen, auch wenn Sie das Ende nicht sehen können. Viele Leute machen das nicht; Sie arbeiten nur mit Schwung oder tun nur das Mindeste, um durchzukommen. Leider kann man nicht sagen, ob eine Person dieses Merkmal hat, indem man mit ihr spricht. Sie müssen wirklich in der Lage sein, mit anderen zu sprechen, die mit der Person gearbeitet haben. Referenzen können dies tun, aber diese Option ist nicht immer verfügbar.


+1 für den Persistenzkommentar - Ich frage mich, ob eine hohe SO-Wiederholung mit Persistenz korrelieren würde.
Gary Rowe

@Gary - Ich nehme an, es könnte sein, dass Antworten auf Fragen, deren Lösung einige Arbeit erfordert, nicht Fragen von Neulingen sind, denen ein Semikolon oder etwas fehlt. ;)
Michael K

12

Dies sind mehr Eigenschaften als Fähigkeiten, aber ich würde wahrscheinlich vorschlagen, dass es sich lohnt, diese bei jemandem zu finden, der ein erfolgreicher Entwickler ist:

Vielseitigkeit wäre ein weiteres Merkmal, das ich dort anbringen würde. Manchmal muss ein Entwickler Rollen außerhalb der reinen Entwicklung übernehmen, z. B. Business Analyst, Architekt oder Tester. Ich weiß, dass ich verschiedene Teile in Projekten hatte, in denen ich etwas anderes als das Entwerfen oder Schreiben von Code mache, und das sollte in einem anderen zu sehen sein. Nicht jeder kann es akzeptieren, diese anderen Rollen zu übernehmen. Fragen Sie, in welchen Situationen der Entwickler in der Vergangenheit eine andere Rolle übernehmen musste und wie sich dies herausstellte.

Demut wäre eine andere, die ich wahrscheinlich als Voraussetzung gestellt hätte. Das Ego kann an manchen Orten eine Menge Ärger verursachen und nicht jeder kann akzeptieren, dass es jemanden gibt, der etwas besser kann als er. Wenn jemand anderes eine bessere Idee hat, lass es das sein, was getan wird. Möglicherweise haben Sie ein Beispiel für den Code des Entwicklers, das Sie ihn bitten, Kritik zu üben, um zu sehen, wie gut er sich selbst korrigieren kann oder nicht.

Stolz wäre ein anderer, den man dort ablegen könnte. Dies ist etwas im Gegensatz zu der vorherigen Qualität, aber wenn jemand keinen Sinn für Stolz in seiner Arbeit hat, was für eine Qualität denkst du ist das? Nicht zufrieden zu sein ist hier etwas anders, da wahrscheinlich viele Entwickler perfektionistisch sein können. Fragen Sie, auf welches vergangene Projekt sie am meisten stolz sind?

Selbstmotivation wäre auch eine wichtige Fähigkeit zu sehen. Was treibt sie an? Wie gut können sie das artikulieren? "Office Space" hat diese Linie von Peter Gibbons:

Acht, Bob. Das heißt, wenn ich einen Fehler mache, kommen acht verschiedene Leute vorbei, um mir davon zu erzählen. Das ist meine einzige wirkliche Motivation, nicht belästigt zu werden, und die Angst, meinen Job zu verlieren. Aber weißt du, Bob, das wird nur jemanden dazu bringen, hart genug zu arbeiten, um nicht gefeuert zu werden.

Ich vermute, dass sich viele Entwickler und Nicht-Entwickler darauf beziehen können. Warum machst du den Job, den du machst? Dies kann eine gute Frage sein, aber achten Sie auf die Aufrichtigkeit und Authentizität der Antwort, da es manchmal vorkommen kann, dass man gezielte Antworten finden muss.

Neugierde wäre zuletzt auf meiner Liste hinzuzufügen. Der Wunsch zu sehen, wie etwas funktioniert, neue Technologien zu erlernen und die eigene Komfortzone zu verlassen, sind weitere Kennzeichen dafür, die bei erfolgreichen Entwicklern zu finden sind. Eine kurze Geschichte darüber, wie man in die Entwicklung eintritt, kann eine Möglichkeit sein, dieses Merkmal zu sehen, während eine andere darin besteht, sie nach etwas zu fragen, das sie nicht gesehen haben, und zu sehen, ob sie ein "Nun, das könnte interessant zu erforschen sein" oder ein " Oh Bruder, nicht schon wieder.


Tausend Dank, obwohl es bereits einige brillante Antworten gibt, war Ihre die, nach der ich gesucht habe. Ich hoffe, dass mehr Leute mit mehr Fähigkeiten hierher kommen, die wir entwickeln können, um ein besserer Programmierer zu sein. (Ich kann für heute leider nicht mehr upvoten)

7

1) Kommunikation ist wahrscheinlich die wichtigste Fähigkeit für jeden, einschließlich der Softwareentwicklungstypen. Diese Kommunikationsfähigkeiten sind für den Umgang mit Führungskräften und Kunden ebenso wichtig wie für den Umgang mit Mitarbeitern.

2) Teamwork ist eine etwas andere Fähigkeit, die stark von der ersten abhängt. Im Wesentlichen muss ich feststellen, ob die Person, die ich einstellen möchte, dem gesamten Team zugute kommt, oder ob es einige Persönlichkeitskonflikte gibt, die ich möglicherweise anheuere. Niemand kann die Zukunft vorhersagen, aber Sie können auch die Warnsignale im Interview nicht ignorieren.

Eine Taktik, die ich im Interviewprozess verwende, besteht darin, die Person zu bitten, eines der herausfordernderen technischen Probleme (über die sie sprechen kann) zu beschreiben und zu beschreiben, wie sie sie gelöst haben. Wenn sie über ihren Denkprozess sprechen und wie sie das Problem aufgedeckt haben, können Sie eine bessere Vorstellung davon bekommen, wie gut sie über potenziell komplizierte Dinge kommunizieren können. Wenn sie dabei zusätzliche Hilfe suchen, sehe ich das als Plus. Keiner von uns ist ein perfekter Technologe. Wenn das Problem, das sie ausgewählt haben, ein Persönlichkeitskonflikt ist (was nur einmal vorgekommen ist), können Sie entweder bestehen oder etwas tiefer gehen.

In vielerlei Hinsicht ist der Interviewprozess wie ein Blind Date. Beide geben ihr bestes Gesicht und versuchen herauszufinden, ob sie mehr Zeit mit der anderen Partei verbringen wollen. Je mehr Sie das Interview wie ein Gespräch führen können, desto entspannter wird der Befragte sein. und infolgedessen werden Sie umso besser sehen, ob sie gut passen.


6

Obwohl dies eine Eigenschaft ist, die eher für Teams als für einzelne Entwickler relevant ist, steckt meiner Meinung nach viel dahinter: "Großartige Ingenieure versenden".

Es ist etwas, das für die meisten Leute in einem Interview schwer zu demonstrieren ist, aber wenn ich einen Kandidaten interviewe, der zum Beispiel eine umfangreiche Open-Source-Anwendung, Bibliothek oder ein Framework erstellt und ausgeliefert hat und über das zusätzliche Etwas, das sprechen könnte Um ein nicht-triviales Projekt tatsächlich abzuschließen, müsste ich dieser Person ein Bein über ihre Konkurrenz stellen.

Im Gegensatz dazu hätte ich einen guten Grund, seine Kandidatur zu ignorieren, wenn ein potenzieller Kandidat mich auf sein Github-Konto hinweist und ich sehe, dass es voll von halbfertigen, fehlerhaften, vernachlässigten oder schlecht dokumentierten Projekten ist.

"Kaffee ist für Schließer", sagte ein Mann einmal in einem Film.


4

Kommunikations- und Teamfähigkeit sind wichtig, aber ich möchte hinzufügen, dass es meiner Erfahrung nach auch sehr wichtig war, die Anforderungen des Kunden zu verstehen und Kenntnisse im Geschäftsbereich zu erwerben.


2

Ich bin damit einverstanden, dass die Kommunikation von größter Bedeutung ist, aber ich habe einen Fehler in einem hervorragenden Codierer festgestellt, der anderen Ingenieuren nicht die Verwendung seiner Prozesse zeigen würde. Ich konnte seine Prozesse kopieren und anderen zeigen, aber ohne seine Hilfe. Er wurde gefeuert, weil er nicht unterrichten wollte.


1

Es ist nie genug.

Gesunder Menschenverstand. Probleme lösen. Interesse an Technik als Ganzes. Einstellung, Dinge richtig zu machen. Beharrlichkeit. Teamplay / Kommunikation.

Bewerten Sie jede Fertigkeit mit 1-5. Wenn Sie mindestens 3 und durchschnittlich 20+ haben. Sie werden ein gutes Leben als Entwickler haben. 25+ wird erfolgreicher Entwickler sein. Weniger als 10 und Sie müssen ernsthaft über eine Karriere in der Softwareentwicklung nachdenken.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.