Ich versage immer wieder beim Interview, Vorschläge? [geschlossen]

13

Ich habe also ein paar Software / Sites in meinem Portfolio. Sie verdienen Geld, aber nicht viel.

Deshalb habe ich mich entschlossen, ein wenig Berufserfahrung zu sammeln, hauptsächlich in Java / PHP-Nachwuchsentwicklungspositionen.

Das Problem ist, dass ich alle technischen Fragen richtig beantworte und wir planen, einen Codierungstest, die letzte Phase des Interviews, durchzuführen. Ich kann mich nie entspannen und über Dinge nachdenken und den Test am Ende sehr langsam machen. ODER manchmal schlage ich einfach auf einen Block und finde es sehr schwierig, auf meinen Füßen zu denken.

Ich verstehe das nicht, weil andere Dinge, die ich geschrieben hatte, weitaus komplexere Probleme lösten, während der "Test" tatsächlich brutal einfach ist, wie das Schreiben und Testen von Palindrom.

In anderen Fällen werden sie mir einen Logiktest mit Abläufen zu mathematischen Operationen geben, und ich werde es in der von ihnen zugewiesenen Zeit wieder nicht tun können.

Ich weiß, dass ich verkaufsfähige Software / Websites schreiben kann, die geringe Einnahmen generieren und Wege finden, Probleme zu lösen, aber ich habe große Schwierigkeiten mit einfachen Codierungstests in Interviews.

Irgendwelche Vorschläge?

joelonjobinterviews
quelle
Anscheinend denken Sie zumindest, dass die Interviewtests einfach sein könnten, aber es scheint, dass Sie nicht allein mit diesen Tests Probleme haben: infoworld.com/d/application-development/…
Ein Programmierer vom
2
Ich muss mit diesem Link nicht einverstanden sein. Angesichts des Unterschieds zwischen einem guten und einem schlechten Entwickler möchten Sie wirklich riskieren, einige gute Kandidaten zu gewinnen, anstatt schlechte zu bekommen.
Deadalnix
7
@deadalnix Ich bin nicht einverstanden mit Ihrer Uneinigkeit. :-) Ich habe genug gute und schlechte Programmierer gesehen, die Tests bestanden haben, die meiner Meinung nach nicht nützlich und oft kontraproduktiv sind. IMO, alles was sie tun, ist dem Interviewer / der Personalabteilung ein gutes Gefühl zu geben.
Brian Knoblauch
2
@BJoachim und alle: Wenn Sie über die ersten Absätze in diesem Link hinauslesen, ist dies ein guter Ratschlag, um die Tests relevant und nützlich zu halten: Es heißt nicht, dass Tests nutzlos sind.
MarkJ

Antworten:

18

Nehmen Sie weiterhin an Interviews teil. Sie werden irgendwann einen Ort finden, an dem Sie Fragen stellen können, die für Ihre Stärken besser geeignet sind. Sie werden auch besser und komfortabler mit Interviews, was nur helfen kann. Betrachten Sie es als ein Spiel, denn das ist es wirklich. Spielen Sie weiter und irgendwann werden Sie gewinnen.

Kevin Hsu
quelle
2
Ich denke nicht, dass es um den Verdienst / Inhalt der Fragen geht, sondern nur um die Bedingungen der Antworten. Ich habe schlecht geschrieben, bool isPalindrome(string)weil ich es in einer Frist von 15 Minuten auf Papier schreiben sollte. Angesichts eines Texteditors und ohne zeitliche Begrenzung glaube ich, dass ich es perfekt in weniger als einer Minute schaffen könnte.
SF.
9
@SF: hast du es nach dem interview versucht? Wie lange hast du gebraucht?
Kevin Cline
2
Übe auch weiterhin daran, an deinen Schwächen zu arbeiten. In diesem Fall müssen Sie kleine, ähnliche Probleme finden und sich die Zeit nehmen, diese auf Papier durchzuarbeiten. Üben Sie zunächst, etwas zum Laufen zu bringen (auch wenn es falsch ist), und wiederholen Sie dann die Schritte, um es richtig zu machen. Auf diese Weise können Sie Ihren Denkprozess als Teil des Interviews zeigen. Es sieht so aus, als ob dies die größte Fertigkeit ist, die Sie (im Moment) vermissen, um ein minimales Ergebnis zu erzielen und es dann mit der Zeit zu verbessern. Viele Unternehmen mögen dies :-)
Al Biglan
Ich habe gerade gesehen, dass dies mit Slashdot verknüpft ist. etwas verwandt: infoworld.com/d/application-development/…
Kevin Hsu
Wenn das Problem ist, dass Sie nicht auf Papier programmieren können, dann ist das meiner Meinung nach ein echtes Problem. "isPalindrome" sollte keine obskuren API-Aufrufe oder Sprachfunktionen benötigen. Sie sollten in der Lage sein, ein solches kompilierbares Programm ohne Intellisense- oder IDE-Vorteile zu erstellen.
Eoin Carroll
12

Das ist sehr verbreitet. Die meisten Programmierer können effektiv programmieren, wenn sie sich in ihrer Komfortzone befinden. Zum Beispiel kann ich nur mit vim unter Ubuntu arbeiten. Wenn ich diesen Arbeitsbereich nicht habe, habe ich keine Lust zum Programmieren. Ich brauche auchZum Teil Google für die Recherche.

Ich bin sicher, Sie haben eine Komfortzone für die Programmierung entwickelt. Ich würde empfehlen, sich an die Umgebung zu gewöhnen, in der sich jemand hinter Ihnen befindet und darauf wartet, dass der Code vervollständigt wird. Der beste Weg, sich daran zu gewöhnen, ist, weiter zum Interview zu gehen.

Sie könnten denken, es hat nicht viel Einfluss, und es könnte auch nicht. Aber für einige von uns da draußen macht das Programmieren mit oder ohne Musik, mit einer IDE oder einem einfachen Texteditor, mit einem Holzstuhl oder auf einem Sofa, einem dunklen Raum oder einem hellen Raum einen großen Unterschied in unserer Entwicklung Geschwindigkeit.

Beachten Sie, dass Sie, sobald Sie den Auftrag erhalten haben, in den Büroräumen, die Ihnen zur Verfügung stehen, normalerweise eine eigene Komfortzone einrichten können.

BEARBEITEN : Diese Frage erinnert mich an einen Verkäufer und fragt, wie ich es mir bei einem Kaltanruf bequemer und besser machen kann. Die beste Antwort ist, weiterhin Anrufe zu tätigen und über jeden Anruf nachzudenken. Nach einer Weile verbessern Verkäufer ihre Fähigkeiten und ihren Komfort. Ich denke, Programmierer sind nicht anders, wenn sie Interviews besuchen, schließlich geht es darum, sich dem Interviewer zu verkaufen

Rick Rhodes
quelle
Wer ist Sopha? Sophies schöner Zwilling?
4.
@Rick: Als Interviewer kann ich leider nicht einfach die Aussage treffen, dass jemand ein effektiver Programmierer ist. Ich muss sehen, dass sie tatsächlich programmieren können. Weder gemeldete Erfahrung noch GPA, Zertifizierungen oder Codebeispiele können mir das sagen. Ich muss sehen, dass Kandidaten etwas programmieren.
Kevin Cline
@kevincline Ich stimme zu, deshalb empfehle ich ihm, weiterhin Interviews zu führen und sich mit Interviewern wie Ihnen zurechtzufinden.
Rick Rhodes
6

Dies ist nur mein Vorschlag, warum nicht versuchen, ein Unternehmer zu sein. Es könnte viele Menschen geben, die mit dem ähnlichen Problem konfrontiert sind. Wenn Sie Websites für kleine Einnahmen schreiben können, können Sie mit Sicherheit große Einnahmen erzielen.

user841923
quelle
1
+1, und ein Unternehmergeist kann als eine sehr positive Eigenschaft gesehen werden.
maple_shaft
5

Sie haben bereits festgestellt, was Ihr Problem ist - Probleme unter Druck zu lösen (zB wenn jemand Sie beobachtet). Liegt es daran, dass Sie nicht sicher sind, nicht genug Erfahrung haben oder unter Druck stehen?

Es kann eine gute Idee sein, viele Interviews zu besuchen, um etwas Erfahrung und Übung zu sammeln, aber es kann auch zu Gegeneffekten führen. Ständige Fehler in Interviews können Ihr Vertrauen noch mehr erschüttern. Seien Sie also vorsichtig.

Ich empfehle Ihnen, die Peer-Programmierung zu versuchen, damit Sie problemlos Probleme lösen können, wenn jemand Sie beobachtet. Versuchen Sie auch herauszufinden, was Sie davon abhält, unter Druck effektiv zu sein (ist es Stress durch das eigentliche Testen selbst, Stress durch das Arbeiten unter strenger Aufsicht, Stress durch das Arbeiten unter einem bestimmten Zeitlimit usw.).

Christian P
quelle
1
Sie sollten auch einige dieser Arten von Testfragen googeln. Drucken Sie sie so aus, wie Sie sie in einem Interview erhalten, und lösen Sie sie. Setzen Sie sich an einen Tisch, nicht an Ihren Computer. Sie müssen versuchen, den Druck des Interviews wiederherzustellen.
Bill Leeper
3

Es klingt, als würgst du unter Druck. Da Sie die zeitgesteuerten Beispiele im Rahmen des Interviewprozesses durchführen müssen, müssen Sie lernen, wie Sie darüber hinwegkommen. Hier geht es darum, mit Angst umzugehen, nicht um Programmierkenntnisse.

Eine Möglichkeit wäre, das Schreiben von Beispielproblemen zu üben und die Zeit selbst zu bestimmen. Sobald Sie wissen, dass Sie sie in weniger als zehn Minuten erledigen können, haben Sie möglicherweise Angst, weniger Zeit zu haben.

Eine andere Möglichkeit wäre, sich eine Technik auszudenken, um Ihre Angst zu beruhigen und sich selbst zu entwürgen. Das Erlernen einer Meditationstechnik könnte Ihnen helfen. Oder die Litanei gegen die Angst auswendig lernen (von lerne Dune ). Lerne eine Art Trick, um deine Angstreaktion zu unterdrücken.

Sean McMillan
quelle
3

Ich bin ziemlich überrascht, dass dies noch niemand gefragt hat, aber wie nähern Sie sich den Programmieraufgaben ?

Wenn Sie einfach nur in den Code springen, werden Sie sich wahrscheinlich verirren und am Ende einfache Fehler machen und nervös werden. Mach es einen Schritt nach dem anderen:

  1. Anforderungen sammeln : Was genau fragt Ihr Interviewer? Stellen Sie vor dem Codieren sicher, dass sich keine Fragen in der Luft befinden. Wenn Sie beispielsweise mit der alten Frage "isPalindrome" konfrontiert werden, fragen Sie Dinge wie "Was ist, wenn die Zeichenfolge Sonderzeichen enthält?". oder "zählen Strings mit ungerader Länge wie 'ada' als Palindrome?". Sie müssen wissen, wie die Anforderungen geklärt werden, bevor Sie einen Algorithmus entwerfen.
  2. Entwerfen Sie Ihren Algorithmus : Teilen Sie ihn in logische Abschnitte auf, wenn dies sinnvoll ist. Sprechen Sie darüber .. Vielleicht schreiben Sie einen Pseudocode, wenn Sie Whiteboarding sind. Führen Sie Ihren Interviewer durch Ihre Schritte. Versuchen Sie es mit ein paar verschiedenen Eingaben (gültig und ungültig), um sicherzustellen, dass Sie die gewünschten Ergebnisse erhalten.
  3. Beginnen Sie nun mit dem Codieren : Zu diesem Zeitpunkt sollten Sie sehr sicher sein, was Sie schreiben möchten. Im Wesentlichen sollten Sie die Bewegungen nur mit der Sprache durchgehen, mit der Sie vertraut sind. An diesem Punkt spielt es keine Rolle, ob es syntaktische Fehler gibt, da Interviewer, die einen Cent wert sind, denjenigen in einer Whiteboard-Sitzung vergeben (wenn Sie einen PC / eine IDE erhalten, um das Problem zu lösen, ist das eine andere Geschichte).

Wirklich, bei der Lösung von Codierungsproblemen sucht ein Interviewer nicht so sehr nach großartigem Code. Es ist mehr zu sehen, wie Sie ein bestimmtes Problem lösen. Das direkte Eintauchen in den Code ist eine schlechte Sache, Punkt.

Sie werden auch feststellen, dass Sie, wenn Sie über das Problem sprechen (Sammeln von Anforderungen und Design), ein wenig komfortabler werden und weniger wahrscheinlich dumme Fehler beim Codieren machen.

Demian Brecht
quelle
3

Projekt Euler

Es scheint mir, dass Sie den Fizzbuz verfehlen Test bestanden. Denken Sie daran, einfache Algorithmen zu betäuben, die im Allgemeinen keinem praktischen Zweck dienen, außer der Feststellung, ob Sie die Kernkonzepte der Programmierung verstehen.

Frischen Sie Ihre Grundlagen auf

Was ich empfehlen würde, ist, dass Sie Ihre Grundlagen auffrischen.

http://projecteuler.net/

Wenn Sie sich anmelden und mit dem Üben beginnen, werden Sie feststellen, dass Sie durch das Durchgehen dieser Beispiele ein tieferes Verständnis für die wichtigsten Programmierkonzepte erhalten. Ich denke, Sie werden dort eine Palindrom-Frage finden, zusammen mit Fibonacci-Sequenzen und anderen mathematischen Konzepten (klingt vertraut).

Justin Shield
quelle
2

Bitten Sie um Feedback beim oder nach dem Interview. Was hat ihnen gefallen? Was haben sie nicht gemocht? Die Antworten könnten Sie überraschen.

Verschiedene Leute suchen natürlich nach verschiedenen Dingen, aber wie Sie versuchen, ein Problem zu lösen, ist in der Regel wichtiger als das Schreiben einer 100% korrekten Lösung. Möglicherweise sorgen Sie sich um die falschen Dinge.

Der beste Weg, um in irgendetwas besser zu werden, ist zu üben. Versuchen Sie, eine Liste mit kurzen Problemen aufzuschreiben. Schreiben Sie dann für jedes Element auf der Liste ein kleines Programm, das das Problem löst. Beginnen Sie mit sehr einfachen Problemen wie FizzBuzz und verbessern Sie den Schwierigkeitsgrad. Können Sie die Probleme lösen, die Sie in früheren Interviews gesehen haben? Finden Sie den größten Teilstring, den zwei Strings gemeinsam haben? Berechnen Sie die Primfaktorisierung von n !?

Die Idee ist nicht, die Lösung für jedes Problem zu lernen, auf das Sie stoßen könnten, sondern sich ein wenig damit zu üben, kleine Programme schnell zu schreiben und auch herauszufinden, wo Ihre Schwachstellen liegen, damit Sie sich verbessern können. Viele Probleme sind mit der richtigen Datenstruktur leicht zu lösen, ansonsten aber schwierig. Stellen Sie sicher, dass Sie eine solide Grundlage für Datenstrukturen haben.

Caleb
quelle
2

Üben Sie und finden Sie jemanden, der Sie durch die Grundlagen führt. Es kann eine Handvoll Versuche dauern, aber es könnte überraschend sein, was aufgedeckt wird, wenn Sie Feedback erhalten und dies üben können. Ich wurde von einem Personalvermittler durch die Behandlung eines Whiteboard-Problems geführt, das anscheinend Ihrem Problem hier ähnelt.

Ich schlage nicht vor, Antworten auswendig zu lernen, sondern zu überlegen, was zu tun ist, wenn ein solches Problem vorliegt und wie man es bespricht. Wie sieht das aus? Haben Sie ähnliche Probleme gesehen? Was könnten einige einfache Ansätze in Bezug auf einen Algorithmus bringen? Zumindest ist das mein Vorschlag an Sie.

JB King
quelle
2

Es ist durchaus üblich, dass Softwareentwickler durchfallen, wenn sie gebeten werden, einen Codierungstest zu absolvieren oder ein kleines Stück Code für das Interview zu schreiben. Wie bereits erwähnt, liegt dies daran, dass die meisten von uns nur dann codieren können, wenn sie sich in unserer "Komfortzone" befinden und in einem kleinen Raum sitzen, der von 2 bis 5 Interviewern umgeben ist.

Die Antwort ist dreifach:

  • üben und mehr üben. Wenn Sie einen Monat lang 30-40 Minuten lang mit Papier und Stift programmieren, werden Sie überrascht sein, wie einfach das wird. Während des Übens - probieren Sie die Art der Programmieraufgaben aus, nach denen Sie bei Interview-Codierungssitzungen gefragt werden - z. B. Implementieren eines Singletons, Umkehren eines Strings usw. Mit "Lesen dieses Junk-Codes und Ermitteln des Fehlers" ist es noch einfacher "- Wenn Sie zwei Wochen lang drucken und diese Ausdrucke analysieren, werden Sie diese Fähigkeit erheblich verbessern.

  • Lerne, deine Angst zu kontrollieren. Wenn Sie der Meinung sind, dass der Test zu schwierig ist und Sie nur 20% davon abschließen können, machen Sie sich keine Sorgen um den Rest. Es kann sein, dass der Test für die dafür zur Verfügung stehende Zeit unangemessen lang ist (z. B. Männer im Interview, die Ihnen 20 Minuten Zeit geben sollen, um das Interview zu beenden, aber sie müssen das Interview in 5 Minuten beenden, weil die Produktion in die Luft gejagt ist usw.). . Es ist auch möglich, dass andere Kandidaten nur einen Test von 10% absolviert haben. Wenn Sie also 20% absolviert haben, sind Sie anderen Kandidaten immer noch voraus.

  • Wenn Sie einen Code für ein Interview schreiben, sollten Sie sich nicht die Mühe machen, ihn im ersten Durchgang zu perfektionieren. Implementieren Sie einfach zuerst einen "glücklichen Pfad, auch bekannt als das häufigste Szenario" und kümmern Sie sich später um die Fehlerbehandlung. Wenn Sie keine Zeit mehr haben - fügen Sie einfach eine kurze Notiz am unteren Rand des Blattes hinzu -, was Sie getan hätten, um den Code zu verbessern, wenn Sie mehr Zeit gehabt hätten.

[Muss laufen, wird meine Antwort später bearbeiten / verbessern]


quelle
1

Wie viele Leute bereits gesagt haben, ist das Üben eines der wichtigsten Dinge. Wenn Sie bereits ein ähnliches Problem gelöst haben, können Sie schnell eine Lösung finden.

Wenn Sie Probleme haben, die Sie nicht selbst lösen können, verwenden Sie die Google-Suche, um Interviewfragen für Ihre Sprache oder Wahl zu programmieren.

Sie können auch Bücher abholen, die für das Unterrichten von CS-Kursen auf niedrigerem Niveau vorgesehen sind. Die meisten dieser Bücher sind mit kleinen Programmieraufgaben gefüllt, die schnell zu Hause erledigt werden können. Sie können zum Üben verwendet werden.

gnash117
quelle
0

Ich bin auch bei Tests sehr schlecht und habe es schon immer gemacht. Ich konnte nicht für das Leben von mir herausfinden, warum eine Programmierklasse mir Tests gegeben wurde, um mit Bleistift und Papier zu nehmen. Ich bin nie gut darin geworden. Ich erklärte den Interviewern jedoch, dass ich dieses Problem hatte und davon wusste. Ich habe es auch geschafft, für Firmen zu interviewen, die mir keine dummen Tests gegeben haben.

Mein Vorschlag ist es, dem Unternehmen zu sagen, bevor Sie in das Interview gehen, dass Sie diese Art von Tests nicht durchführen, aber Sie freuen sich stattdessen über X. (Finden Sie eine sinnvolle Alternative, bei der Sie sich wohl fühlen.) Ich habe angeboten, ihnen Code zu senden, und einmal habe ich vorgeschlagen, dass sie mir ein einfaches Programm zum Schreiben geben, und ich bringe es mit zum Interview in 3 Tagen.

Je nachdem, wo Sie Arbeit suchen, kann dies für Sie funktionieren oder auch nicht.

Bob
quelle