Der folgende Artikel ist ein Gastbeitrag von Lara Schenck. Ich hörte sie diese Geschichte bei einem CodePen Meetup in New York erzählen. Ich sah eine ganze Menge nickender Köpfe. Es ist eine Tatsache, dass es in dieser Branche einige Probleme mit Berufsbezeichnungen, Beschreibungen, Vorstellungsgesprächen und dem ganzen Kram gibt. Lesen Sie diese Geschichte von Lara und folgen Sie ihr, denn ich bin sicher, dass dies nicht das Ende dieser Diskussion ist.
Ich bin seit drei Jahren selbstständig. Obwohl ich mein erstes Jahr nach dem College für ein dreiköpfiges, inzwischen aufgelöstes Startup gearbeitet habe, hatte ich nie einen typischen 9-5-Job (oder heutzutage eher 10-8) und, ehrlich gesagt, wollte ich auch nie einen. Lara Schenck, LLC ist ein profitables Unternehmen, und jeden Tag mache ich Arbeit, die mir Spaß macht und mich herausfordert. Ich teile mir meine Arbeitszeiten selbst ein, mache Urlaub, wann ich will, und führe alles nach meinen Vorstellungen.
Das ist alles großartig, aber was man durch selbstständiges Arbeiten nicht bekommt, ist die Teamerfahrung. Ich basiere meine Arbeit darauf, nicht-technischen Designern und Content-Produzenten technische Kenntnisse zu vermitteln, damit sie besser mit Entwicklern kommunizieren können. Die Theorie ist, dass, wenn ein Designer versteht, warum es eine schlechte Idee ist, 18 Schriftarten anzufordern, und wenn Content-Produzenten wissen, warum es nicht trivial ist, die Titel einer Reihe verwandter Beiträge zu bearbeiten, das Leben für alle einfacher wird. Zumindest ist das meine Theorie und die Annahme, auf der ich mein Geschäft aufgebaut habe.
In letzter Zeit habe ich mich jedoch, in einem Anfall des guten alten Hochstapler-Syndroms, gefragt, Moment mal, wie kann ich Leuten sagen, wie sie in Teams arbeiten sollen, wenn ich selbst noch nie wirklich in einem gearbeitet habe? Ich war immer die 'Lead UI/UX/Visual/Web/Front-end Designer-Person-Ding' und habe nie für ein größeres Unternehmen mit separaten Teams für Produkt, UX, Marketing, Content, Frontend, Backend usw. gearbeitet.
So verspürte ich den Drang, einen Job zu suchen, und ein scheinbar perfekter fiel mir in den Schoß. Es war für ein großartiges Unternehmen, und es klang genau nach meinen Fähigkeiten. Der Titel war „UX Engineer/Interaction Designer“. Ich sträube mich normalerweise gegen den Begriff „Ingenieur“ (vielleicht aus gutem Grund), aber in Anbetracht der Präsenz von „Designer“ und der Art der Stellenausschreibung störte es mich nicht allzu sehr.

FizzBuzzed.
Als es zum technischen Interview mit dem leitenden Entwickler kam, fühlte ich mich ziemlich sicher. Abgesehen von JavaScript „Engineering“ und allem, was mit Algorithmen zu tun hat, sind meine technischen Fähigkeiten scharf. Wir beginnen mit einem großartigen Gespräch über Styleguides, Sass, das Designer/Entwickler-Phänomen, Atomic Design, Content, all die großartigen Dinge, die mich super begeistern. Dann kam der Coding-Teil. Ich erwartete Fragen zu Detailpositionierung, Semantik, vielleicht einigen UI-basierten JS-Sachen und Entwicklungsworkflow. Die erste Frage war
Interviewer: Sind Sie mit FizzBuzz vertraut?
Ich: Ähm, ehrlich gesagt, nein.
Interviewer: Okay, nun, Sie müssen ein Programm schreiben, bei dem Vielfache von drei 'Fizz' anstelle der Zahl ausgeben und bei Vielfachen von fünf 'Buzz'. Bei Zahlen, die sowohl Vielfache von drei als auch von fünf sind, geben Sie 'FizzBuzz' aus. Es würde also so aussehen: '1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz'
Ich: (OH MEIN GOTT, MATHEMATIK. Ich versuchte, ein bisschen darüber zu reden, sagte aber dann:)
Ich: Okay, nochmals ehrlich gesagt, mein JS-Wissen bezieht sich eher auf UI/UX-basierte Aufgaben. Und ich verstehe den Sinn der Frage nicht wirklich. Was ist zum Beispiel der Anwendungsfall? Wann würde das in der Rolle auftauchen?
(Erst nachdem ich diese Interaktion einem Freund erzählt hatte, wurde mir klar, dass man in einem Vorstellungsgespräch nicht fragen sollte: „Warum fragen Sie mich das?“)
Interviewer: Nun, es ist eine Übung im programmatischen Denken. Keine Sorge, kommen wir zur nächsten Frage. Schreiben Sie eine Funktion, die einen Timecode-String entgegennimmt und ihn in Sekunden umwandelt.
Wieder begann ich, darüber zu reden, aber es war mir unmöglich, es zu lösen, während jemand zusah. Ich musste ernsthaft googeln. Er sagte, ich könne meine Lösungen per E-Mail zurücksenden. Ich spielte mit dem Gedanken, anzurufen und zu sagen: „Vergessen Sie es, das ist nichts für mich“, aber ich beschloss, durchzuhalten. Nachdem ich ein paar Stunden damit verbracht hatte, etwas zu entwickeln, das halbwegs funktionierte, fand ich die Lösung auf StackOverflow und verlinkte sie, ehrlich gesagt, im Code.
Es überraschte mich nicht, dass ich ein paar Tage, nachdem ich meine Lösungen geschickt hatte, eine Absage erhielt: „Sie haben nicht genug Erfahrung für die Position, aber wir möchten Ihren Lebenslauf aufbewahren.“ In meinem zu Selbstzweifeln neigenden Zustand fühlte ich mich als Entwickler, der nur gut googelt und vielleicht jQuery beherrscht, ertappt. Ich war beschämt.
Aber ja

<Schimpftirade>
Nachdem dieser Selbstzweifel sich gelegt hatte, stellte sich ein neues Gefühl ein: Wut. FizzBuzz ist eine Methode, um „Fake-Programmierer“ herauszufiltern. Mir ist vollkommen bewusst, dass ich kein Programmierer bin, zumindest nicht im Sinne von Algorithmen, Datenmodellierung usw.
Gehen wir die Stellenbeschreibung durch, die ich gesehen habe (nur leicht verändert zur Anonymität). Für mich war diese Stellenbeschreibung definitiv nicht für einen Programmierer gemäß dieser Definition.
UX Engineer/Interaction Designer
(…bla bla bla, wir sind ein tolles Unternehmen und suchen eine tolle Person…)
Verantwortlichkeiten
- Erstellen Sie Wireframes und High-Fidelity-Mockups, um Interaktions- und Designideen effektiv zu vermitteln (z.B. Wireframes, Skizzen, "pixelgenaue" Mockups usw.).
Großartig. Außer dem Teil mit „pixelgenau“. Aber vielleicht könnte dies eine Gelegenheit sein, ihnen zu helfen, ihre Prozesse zu aktualisieren.
- Liefern Sie ansprechende, innovative Prototypen und tragen Sie zur Frontend-Entwicklung unserer Produkte bei.
Sicher!
- Zusammenarbeit mit anderen Teammitgliedern und Synthese von Feedback.
Sie haben es kapiert.
- Bewerten Sie die Benutzerfreundlichkeit neuer und bestehender Produkte, wenden Sie Ergebnisse der Benutzerforschung an und machen Sie konstruktive Verbesserungsvorschläge.
Ich bin dabei.
Mindestanforderungen
- B.S.-Abschluss in Design, Informatik oder einem verwandten technischen Fachgebiet oder vergleichbare praktische Erfahrung.
Kleines Problem. Widersprechen Sie mir gerne, aber können wir uns darauf einigen, dass es so etwas wie einen B.S. in Design nicht gibt? Und dass Design- und Informatikabschlüsse wild unterschiedlich sind? Aber ich beschloss, das durchgehen zu lassen.
- 2 oder mehr Jahre Erfahrung im Design sauberer, gültiger und kompatibler Websites und Anwendungen.
Ja!
- Kenntnisse in Adobe Photoshop und Illustrator.
Sicherlich!
- Saubere und elegante visuelle Designästhetik.
Ja!
- HTML5, CSS3, JavaScript.
Ich bin ein Meister der ersten beiden, aber da nichts über Programmierkenntnisse erwähnt wurde und der Verantwortlichkeitsbereich so designzentriert war, dachte ich, meine jQuery-Kenntnisse und meine Fähigkeit zum Selbstlernen würden ausreichen.
- Leidenschaft für die Erstellung responsiver und ansprechender Benutzeroberflächen und Erlebnisse.
Mein Favorit!
Bevorzugte Qualifikationen
- Erfahren im Umgang mit objektorientiertem JavaScript und modernen JavaScript-Bibliotheken wie Ember, Backbone oder Angular.
Ich habe damit herumgespielt und verstehe die Konzepte. Ich würde nicht sagen, dass ich versiert bin, aber ich habe definitiv „Erfahrung mit“. Sicher, das könnte eine Lücke in meinen Qualifikationen für die Position sein, aber wie gesagt, die Formulierung in den Abschnitten oben ist viel stärker auf Design- und Prototyping-Fähigkeiten ausgerichtet.
- (bla bla Zeug über Eigenmotivation und Kommunikationsfähigkeiten)
Also, wo kommt FizzBuzz ins Spiel? Sicher, „Engineer“ ist in der Berufsbezeichnung enthalten, aber auch „Designer“, „UX“ und „Interaction“. Für mich deutet das definitiv nicht auf eine Programmierer-Stelle hin. Ich hätte mich nicht beworben, wenn ich das gewusst hätte.
Es ist ein Problem.
Ich stelle mir vor, dass ich nicht die Einzige bin, die eine solche Erfahrung gemacht hat. Das Rätsel der Berufsbezeichnung ist ein bekanntes Problem. Aber Stellenbeschreibungen sind genauso schlimm oder schlimmer.
Schauen wir uns ein paar weitere Beispiele an, die ich gesehen habe.
UI/UX Designer
UI/UX ist weitaus undurchsichtiger, als mir lieb ist.
Zusätzlich zu Ihren Erfahrungen und Fähigkeiten im UI- und UX-Design wäre es wirklich fantastisch, wenn Sie zufällig HTML, CSS und JavaScript, Frontend-Entwicklung gemeistert hätten.
Erinnern Sie sich an den Tag, als Sie aufwachten und dachten: Wow! Ich habe JavaScript gemeistert und es nicht einmal gemerkt! Nein.
Frontend-Entwickler
- Frontend-Code in HTML/CSS/SCSS und JavaScript schreiben
- Gelegentlich Frontend-Code in PHP (WordPress) oder Ruby (on Rails) schreiben
Ähm, PHP und Ruby sind keine Frontend-Sprachen. Vielleicht sprechen sie über Templating, aber… nein. Außerdem ist die Nennung von SCSS und CSS als erforderliche Fähigkeiten verdächtig. Ich rieche, dass jemand Buzzwords auflistet.
Frontend-Entwickler: HTML5, CSS3, JavaScript
Was Sie tun werden
In dieser Rolle werden Sie an der Entwicklung, dem Bau und dem Testen von erstklassigen Webanwendungen mitwirken. Sie werden mit den Produkt-, Marketing-, Rechts-, Geschäftsentwicklungs- und Betriebsteams zusammenarbeiten, um unsere Kernprodukte zu entwickeln und zu verbessern. Testen und liefern Sie soliden, zuverlässigen Code, der alle Anforderungen erfüllt. Entdecken und experimentieren Sie mit neuen Technologien und teilen Sie diese mit dem Team.
Sie werden das gesamte Unternehmen sein. Nicht hilfreich.
Was Sie für diese Position benötigen
- HTML/CSS
- JavaScript-Frameworks
- CMS (WordPress von Vorteil)
- Adobe Creative Suite
- UI/UX
- Gespür für Design
Sehr unspezifisch.
Nun zu meinem Favoriten…
Kompetenzen
- Kreativität
- Problemlösung
- Umgang mit Ambiguität
- Kundenorientierung
- Funktionale/Technische Fähigkeiten
Lolz.
Oh Mann.
Hoffentlich verstehen Sie, was ich meine.
Wer schreibt diese Beschreibungen? Ich bin sicher, diese Firmen finden ab und zu eine perfekte Übereinstimmung. Aber ich habe das Gefühl, dass das nicht die Norm ist. Es ist wahrscheinlicher, dass viele dieser Firmen einfach nicht wissen, was sie brauchen, also suchen sie nach allem. Ein Personalvermittler oder eine HR-Person zaubert etwas zusammen und stellt es ein, um zu sehen, wer anbeißt. Vielleicht fangen sie ja ein Einhorn!
Was noch wichtiger ist, basierend auf meiner (zugegebenermaßen minimalen) Erfahrung mit Bewerbungsverfahren: Wer weiß, was im Vorstellungsgespräch passieren wird? Ich stelle mir vor, man würde mit einem echten Designer oder Entwickler sprechen, der eine viel bessere Vorstellung von der Situation hat, und wer weiß, wie gut das zur Stellenbeschreibung passt, ganz zu schweigen von den Fähigkeiten des Bewerbers?
</Schimpftirade>
Ich finde es sinnlos, zu schimpfen, ohne eine Lösung vorzuschlagen, daher hier einige Vorschläge für alle, die für die Einstellung zuständig sind:
- Überprüfen Sie Ihren Prozess und identifizieren Sie die Lücken. Stellen Sie entweder einen Berater ein oder tun Sie es intern, aber bitte betrachten Sie das Gesamtbild, sprechen Sie mit einer Reihe von Mitarbeitern (Junior und Senior) und finden Sie heraus, wo die Problembereiche liegen. Interpretieren Sie nicht nur die Meinungen von Entwicklungs-/Designleitern und Managern und fassen Sie deren Bedürfnisse zusammen.
- Listen Sie konkrete, beispielhafte Aufgaben auf, die für die Position relevant sind. Besonders wenn JavaScript in der Rolle aufgeführt ist (merken Sie, dass ich darüber etwas verstimmt bin?). So etwas wie
- Bild-Slider und sanftes Scrolling implementieren
- Unsere CSS-Pipeline auf Sass migrieren
- Treffen Sie schnelle Designentscheidungen zu interaktiven Elementen, wie z.B. Button-Hover-Zuständen und Formularstilen.
- Erstellen Sie ein Registrierungsformular mit AngularJS.
- Verwenden Sie reguläre Ausdrücke, um jedes Datum in Textinhalten zu erkennen.
- Verbesserungsvorschläge für unseren Rails-Deployment-Workflow.
- Verdammt, setzen Sie Codebeispiele in die Beschreibung. Warum nicht? Ernsthaft. Wenn ich gesehen hätte, dass ich Daten mit reinem JavaScript bereinigen müsste, hätte ich mir die Mühe nicht gemacht.
Geschichtenzeit
Das ist meine Geschichte. Ich nenne sie „Die Geschichte eines Nicht-Einhorns“, denn als ich diesen Bewerbungsprozess begann, dachte ich irgendwie, ich wäre ein Einhorn. Sie hätten Glück, mich zu haben. Ich bin ein Designer/Entwickler, wenn es je einen gab. Aber dank einer fehlerhaften Stellenbeschreibung (und JavaScript… grrrr) merke ich, dass meine Einhornhaftigkeit ein Irrtum war. Trauriges Gesicht. Außer überhaupt kein trauriges Gesicht, denn das Geschäft bei Lara Schenck, LLC boomt.
Ich glaube, andere Leute haben damit zu tun gehabt. Ja? Nein? Bin ich nur verbittert und schnippisch?
Dieser Beitrag liegt mir sehr am Herzen und ähnelt vielen „Interviews“, an denen ich teilgenommen habe. Die ganze FizzBuzz-Sache ist ein riesiger Witz. Ich habe den Modulo-Operator von PHP vor oder nach dem FizzBuzz-Test nie verwendet oder davon gehört.
Ich lerne auch, dass, wenn Sie alle in der Beschreibung aufgeführten Fähigkeiten beherrschen, warum sollten Sie dann an deren Unternehmen interessiert sein? Sie wären bei Google oder so etwas.
Nachdem ich eine Weile als Berater gearbeitet habe (viele Vorstellungsgespräche), gehe ich jetzt selbstbewusster denn je hinein. Das bin ich, das habe ich getan und dahin gehe ich. Jedes Mal, wenn dieser Ansatz nicht funktioniert hat, wollte ich sowieso nicht dort sein, und die Male, in denen er funktioniert hat, habe ich Zeit im Unternehmen verbracht. :)
Ein sehr realer Anwendungsfall für den Modulo-Operator, den ich gelegentlich verwende, wäre das Durchlaufen eines Datensatzes und das Hinzufügen einer zusätzlichen Klasse oder das Ausführen einer Funktion nach jedem vierten Element. Dies könnte beispielsweise in einer WordPress-Schleife hilfreich sein, wenn Sie eine Anzeige zwischen einigen Beiträgen einfügen möchten.
In den Tagen, bevor :nth-child() zuverlässig war, habe ich ständig „first“ und „last“ oder neue Reihenklassen mit einem Modulo-Operator in PHP-Templates hinzugefügt.
Fizzbuzz ist kein Algorithmenrätsel, die an sich schon Spaß machen. Es ist ein Test, um zu sehen, ob die Person, die behauptet, "JavaScript zu kennen", zumindest einfache Multiplikationen lösen kann. Es sollte nicht länger als ein paar Minuten dauern, es sei denn, das Problem wurde nicht gründlich erklärt.
JavaScript ist eklig. Mathematik nicht.
Ich verwende Modulo-Mathematik ziemlich regelmäßig.
Erst letzte Woche habe ich es verwendet, um eine Zahl in drei Untergruppen aufzuteilen (Microsoft entschied, die Zeit als Zahl zu speichern, wobei die ersten beiden Stunden, die zweiten beiden Minuten und die dritten beiden Sekunden sind).
Nicht dasselbe wie FizzBuzz, aber zu wissen, dass es verfügbar ist, erleichtert die Problemlösung.
„OMG MATHEMATIK“
Da haben Sie mich verloren. Es war sehr schwer, Sympathie zu empfinden. Was hat FizzBuzz mit Mathematik zu tun, außer Addition und Bedingungen? (Man könnte den Modulo-Operator verwenden, aber er ist zur Lösung des Problems völlig unnötig.)
Vielleicht hilft Ihnen das bei zukünftigen Vorhaben.
https://github.com/h5bp/Front-end-Developer-Interview-Questions
Beachten Sie, dass FizzBuzz in den obigen Fragen enthalten ist. Viel Spaß beim Lernen!
„Das Fizzbuzz-Ding“ kann ohne den %-Operator gelöst werden.
Und Sie haben Recht, selbstbewusst zu sein, Sie müssen sicher sein, dass Sie in einem Unternehmen arbeiten wollen, wenn Sie deren Arbeitsweise nicht mögen, werden Sie eine schlechte Zeit haben.
Jinsib,
Korrigieren Sie mich, wenn ich falsch liege, aber ich glaube nicht, dass sie sich wirklich als Entwicklerin bezeichnet hat. Ich denke, der Kern des Artikels war die Frustration über die mangelnde Konsistenz zwischen der Stellenbeschreibung (scheinbar stark designlastig) und dem Interview (scheinbar stark entwicklerlastig).
Aber ich würde Ihnen definitiv zustimmen, wenn es jemanden gäbe, der sich als Frontend-Entwickler identifiziert und ähnliche JS-Logikprobleme nicht lösen könnte.
Deshalb bezeichne ich mich nicht als Frontend-Entwickler! Mein JS ist wirklich schlecht…
Sie sind nicht verbittert. Schnippisch vielleicht, aber ich finde Schnippischkeit ein ziemlich häufiger Indikator für Exzellenz – oder zumindest für mangelnde Geduld mit Blödsinn.
Ich denke, wir müssen der Stichwort-schnüffelnden Lebenslauf-Verarbeitungssoftware die Schuld für die Abhängigkeit von Schlagwörtern geben. So manches ehrliche Einhorn wird an diesem Hindernis scheitern.
Warum ein Personalchef nach Fizz/Buzz fragt? ??????? Keine Ahnung. Als ich Personalchef war, bat ich Bewerber, ein paar gängige Probleme zu lösen, aber immer etwas, das direkt mit der Arbeit zusammenhing, die von ihnen erwartet wurde.
Ich meine – ich wäre misstrauisch gegenüber jemandem, der Fizzbuzz aus dem Ärmel schütteln könnte. Sie werden wahrscheinlich
1. zu viel Zeit haben
2. zu viele Interviews mit dieser Frage gehabt haben
3. unerträglich arrogant sein
4. oder alles oben Genannte.
Das klingt nach jeder Stellenausschreibung in Richmond, VA, die es je gab. Ich habe so viele Unternehmen gesehen, die so etwas auflisten, wobei die Leute, die einstellen, nicht einmal etwas über die Technologie wissen, für die sie jemanden einstellen wollen.
FizzBuzz hat seinen Platz, aber definitiv nicht für den durchschnittlichen Webentwickler. Wenn sie jemanden suchten, der ernsthaftes Backend-Engineering betreibt, dann wäre es eine gute Möglichkeit zu sehen, wie jemand Logik durchdenkt, aber nur sehr wenige Webentwicklerjobs brauchen wirklich jemanden, der das tut.
Bevor ich meinen letzten Job kündigte, haben wir einige reale Designszenarien (die wir bereits gelöst hatten) ausgearbeitet und sie den Kandidaten für meinen Nachfolger gegeben. So konnten wir den Coding-Stil, die Problemlösungsfähigkeit, die Liebe zum Detail und die Programmierkenntnisse einer Person sehen. Das sind wirklich wichtige Dinge, reale Anwendungsfälle.
Dieser Test wurde VOR dem Interview verschickt, damit jemand beurteilen konnte, ob dies der richtige Job für ihn war. Es ermöglichte uns auch, einige der Antworten im Voraus zu haben, sowie zusätzliche neue Fragen, die wir basierend auf der verwendeten Lösung stellen konnten.
Schön, das ist erfrischend zu hören. Wie habt ihr Kandidaten gefunden? Über Stellenausschreibungen oder eher über eure Netzwerke?
Sie passten nicht zur Rolle. Heul. Weiter geht's.
Frontend-Entwicklung ist /Entwicklung/. Besonders angesichts all des Unsinns, den wir heutzutage in den Browser stopfen. Code schreiben ist nicht nur wertvoll, sondern notwendig, um Prägnanz, Effizienz und Anwendungs-Workflow aufrechtzuerhalten. Wenn Sie hübsche Konsumstücke herstellen wollen, klar, verzichten Sie auf JavaScript. Wenn Sie etwas tun wollen, das tatsächlich /funktioniert/ — lernen Sie, Code zu schreiben. Das hat nichts mit Mathematik zu tun. Es ist Problemlösung.
Ich denke, das FizzBuzz-Problem ist in der Webentwicklung perfekt anwendbar. Full-Stack-Webentwickler arbeiten aktiv in mehreren Sprachen gleichzeitig. Manche Leute sind Backend-Entwickler und manche Frontend-Entwickler, aber die meisten von uns sind vielen Sprachen ausgesetzt gewesen, spezialisieren sich aber nur auf wenige davon. Der FizzBuzz-Test beweist, dass Sie ein allgemeines Verständnis der Sprache haben. Meiner Meinung nach sollten Sie in der Lage sein, ein Problem wie FizzBuzz in jeder Sprache auf Ihrem Lebenslauf zu lösen. Wenn Sie einmal Python-Code angesehen oder vielleicht etwas in einer Ruby-Anwendung geändert haben, bedeutet das nicht, dass Sie Python und Ruby „kennen“. Ich kann auf Französisch zählen und auf Spanisch Essen bestellen, aber das schreibe ich nicht in meinen Lebenslauf, weil ich nicht fließend bin. FizzBuff ist ein schneller Test der Sprachbeherrschung in der Programmierung. Wenn Sie nachschlagen müssen, wie man das Problem löst, ist das in Ordnung, aber das bedeutet, dass ich Ihnen weniger bezahlen werde als Ihrem Kollegen, der es aus dem Kopf kann. Sie sind bereits zur Hälfte mit der Lösung des Problems fertig, und Sie lesen immer noch die erste Stack Overflow-Antwort.
Hut ab, Lara, ich kann das voll und ganz nachvollziehen.
Ja, FizzBuzz ist Bullshit, sogar für „Ingenieure“. Es soll logisches Denken testen, aber es ist ein so seltsames und enges Problem.
Ich habe Leute interviewt, die so etwas perfekt beherrschten, aber kein echtes System programmieren konnten, um ihr Leben zu retten, und umgekehrt und alles dazwischen. Meiner Erfahrung nach haben die meisten dieser Programmierrätsel 0 Korrelation mit der Arbeitsleistung, selbst bei Backend-Algorithmus-Jobs.
Unterm Strich versuchen sie herauszufinden, wer logisch denken kann, aber sie sind diejenigen, die nicht logisch darüber nachdenken, was ihr Test testet.
Wenn Sie jemanden einstellen möchten, der zumindest grundlegende Kenntnisse in einer Sprache hat, ist es großartig, da es sehr, sehr einfach ist und jeder, der die Sprache tatsächlich kennt, es lösen können sollte. Es gibt keinen Grund, warum buchstäblich jeder, der grundlegende Programmierkenntnisse hat, es nicht auch mit Pseudocode tun kann.
„Seltsames und enges Problem“
Wenn x / 5 = 0, dann gib Buzz aus.
Diese Kommentare machen mir Albträume.
@John Gotti
Nur 0 würde jemals „Buzz“ ausgeben
Klingt nach einem weiteren Unternehmen, das einen Webprogrammierer mit 15 Jahren Erfahrung erwartet und ihn für 22.000 Dollar im Jahr arbeiten lassen will.
Oder ein Unternehmen mit einer managerähnlichen Person mit wenig bis gar keinen technischen Kenntnissen, die versucht, jemanden für eine technische Position einzustellen und nicht weiß, was die tatsächlichen Anforderungen für diese Position sind.
Ja, und andererseits gibt es Bootcamp-Absolventen, die sich um eine 80.000-Dollar-Rolle bewerben, weil sie die Sprachen/Frameworks auf der Liste abhaken können. Bootcamps sind ein ganz anderes Fass ohne Boden…
Am liebsten ist es mir, wenn sie 15 Jahre Erfahrung in etwas wollen, das erst seit 5 Jahren existiert.
Hallo.
Ich verstehe es. Ich verstehe, wenn Ablehnung kommt und einen beißt. Es ist kein tolles Gefühl, aber denken Sie so: Wenn Sie mit dem, was sie Sie im Interview gefragt haben, nicht zufrieden sind, dann würden Sie wahrscheinlich auch nicht gerne dort arbeiten.
Aber seien wir klar: Würden Sie einen Maler einstellen, ohne ihn malen zu sehen, oder einen Hausbauer, ohne andere Häuser gesehen zu haben, die er gebaut hat?
Was ist mit jemandem, der Probleme in Code lösen muss? Würden Sie jemanden einstellen wollen, ohne zu sehen, ob er ein Problem zumindest in Pseudocode lösen kann?
Lange Zeit hatte ich die Mentalität, dass „Webentwicklung“ keine echte Entwicklung sei, sondern alberne Skriptsprachen. Aber die Zeiten haben sich geändert, SPAs werden immer normaler, und damit auch die Notwendigkeit, mehr Werkzeuge im sprichwörtlichen Werkzeuggürtel (oder vielleicht mehr Angelgeräte in Laras Fall) zu haben.
Ich bin einer dieser Manager, die solche Fragen verwenden, um diejenigen herauszufiltern, die es können und die nicht, und ehrlich gesagt verwende ich FizzBuzz nicht mehr; zu viele Leute wissen davon.
Vor Jahren, als Joel darüber schrieb, war es ein großartiger Anlaufpunkt. Jetzt erwarte ich von Leuten, dass sie etwas schwierigere, aber immer noch super einfache Problemlösungen in Pseudo- oder echtem Code (es liegt an ihnen) durchführen.
Aber seien wir klar, diese Werkzeuge sind kein Hinweis auf das technische Wissen des Fragenden, trotz der menschlichen Natur, jeden zu verteufeln, der einen ablehnt.
Um diesen langatmigen Kommentar zu beenden, wie so viele Dinge in der Vergangenheit ändern sich die Zeiten, und man passt sich entweder an oder man stirbt aus.
Anmerkung: Designer-Jobs wird es immer geben! Denken Sie nur nicht, dass Sie nicht mehr über das zugrunde liegende JS/andere Problemlösungen lernen müssen. Zu wissen, „dieses Problem wird durch die Verwendung dieser JQuery-Methode behoben“ ist in Ordnung, aber das „Warum“ zu verstehen ist besser.
Dieser Beitrag ist so richtig. Er muss nur mehrere Unternehmen erreichen. Ich hatte ein Vorstellungsgespräch bei einem renommierten Suchmaschinenunternehmen, das mich dazu brachte, mich für eine technische Praktikumsstelle zu bewerben, obwohl ich eine UX-Designposition suchte. Sie hatten mich über die Karrieremesse angesprochen. Zu keinem Zeitpunkt vor dem Vorstellungsgespräch war ich mir über die Position, für die ich interviewt wurde, im Klaren, nicht einmal über die Arbeit, an der ich teilnehmen sollte. Ich scheiterte kläglich in meinem Vorstellungsgespräch, da ich nicht darauf vorbereitet war, über welche Teile meines Portfolios ich sprechen sollte. Erst als ich die Absage-E-Mail erhielt, erfuhr ich von dem Produkt, an dem ich arbeiten sollte. Wie kann man seine Fähigkeiten präsentieren, wenn die Rekrutierung so abläuft?
Aha, ich hatte genau die gleiche Erfahrung, nur umgekehrt. Die Stellenbeschreibung war technisch/entwicklungsbezogen; die Anforderungen erwähnten fast nichts über Design, und ich fühlte mich bei so ziemlich allem, was sie verlangten, recht versiert. Selbst während des Vorstellungsgesprächs war der Personalchef beeindruckt von meinem Hintergrund und meinem Vertrauen, dass ich in ihren kleinen Teamprozessen erhebliche Verbesserungen erzielen könnte.
Doch dann wurde ich gebeten, einige Design-Mockups zu erstellen. Ich war ehrlich zu ihnen, dass Grafikdesign nicht meine Lieblingsbeschäftigung war – ich liebe es, an Grafiken zu arbeiten, aber ich hasse die Hin- und Her-Natur des UI-Designs, ganz zu schweigen vom Blanko-Seiten-Syndrom. Plötzlich wurde er nervös, als wäre das ein K.O.-Kriterium, obwohl in der Stellenbeschreibung Design nie erwähnt wurde.
Es ist meine Erfahrung, dass großartige Entwickler selten großartig im Design sind und umgekehrt. (Ich denke, es ist die ganze Links-/Rechts-Hirn-Sache… ich mag mich irren, es ist nur meine Erfahrung.) Ich filtere Jobs mit „Designer“ im Titel mental heraus. Dieses eine Vorstellungsgespräch hat mich wirklich verbrannt, weil es so gut lief, bis sie diese Bombe fallen ließen.
…Und ich bin mit Ihnen einer Meinung, was das Ganze mit „PHP und Ruby sind keine Front-End“-Sachen angeht… Ich bin einverstanden, wenn es um Back-End-Templating geht, aber wenn es um Geschäftslogik geht, ist das eindeutig Back-End. (Ich neige auch dazu zu denken, dass Back-End-Entwickler dazu neigen, schlechte Front-Ends zu erstellen, und umgekehrt, aber ich habe ein paar Ausnahmen gesehen.)
Oh Mann. Das war mein Leben, auf den Punkt genau, die letzten 5 Jahre. Ich habe mich größtenteils einfach daran gewöhnt. Aber es sind die Recruiter, die mich jede Woche mit neuen Leads anrufen, um die ich mir Sorgen mache. Ich sage ihnen ständig nein, weil ich merke, dass sie nach Backend-Programmierung suchen, obwohl es in der Stellenbeschreibung nur den geringsten Hinweis darauf gibt. Und die Recruiter müssen mich satt haben. Aber jedes Mal, wenn sie mich dazu bringen, zu einem Vorstellungsgespräch zu gehen, stellt sich heraus, dass ich Recht hatte.
Übrigens, diese Stellenbeschreibungen, die Sie zitiert haben? Sie sind ALLE so. Überall. Es ist… verrückt. Sie wollen jemanden, der alles kann. Weil sie es nicht besser wissen.
Toller Beitrag. Das ist mir letzte Woche passiert. Ich hatte ein Vorstellungsgespräch für eine HTML/CSS-Frontend-Position und wurde nach dem „Acht-Kugeln-Problem“ gefragt.
Ich beantwortete die Frage, aber ich glaube, ich hätte Ihren Ansatz wählen und einfach antworten sollen: „Warum fragen Sie mich das?“ Wie Sie beschrieben haben, gab es in der Stellenbeschreibung keinen Hinweis darauf, dass Algorithmen oder „Ingenieurwesen“ notwendig wären. Ganz im Gegenteil, tatsächlich. Als ich mein Wissen über JavaScript und Ruby erwähnte und dass ich an CodeEval, HackerRank usw. teilnehme und hohe Punktzahlen erreiche, schien es, als ob sie solche Dinge tatsächlich als nicht relevant für den Job, sogar als Belastung, ansahen.
Ich denke, der Interviewer muss einen Artikel über „Wie man ein Vorstellungsgespräch führt“ gelesen haben, in dem stand „stellen Sie die Acht-Kugeln-Frage“, und folgte diesem Ratschlag buchstabengetreu. Wirklich irritierend.
Ich wäre sofort gegangen und hätte nicht zurückgeschaut.
Übrigens – ich bin Physiker/Mathematiker, und wenn Sie sich nicht kürzlich mit abstrakter Algebra beschäftigt haben, werden Sie völlig verloren sein.
Für FizzBuzz?! FizzBuzz ist leicht lösbar für jeden, der CS161 (erster Programmierkurs auf College-Niveau) belegt hat oder bei Schleifen und If/Else bei einer Online-Ressource angelangt ist. Es dauert höchstens weniger als eine Woche, um genug von irgendeiner Sprache zu lernen, um es zu lösen, selbst wenn es Ihre erste Sprache ist. Wenn Sie nicht technisch versiert sind, dauert es vielleicht etwas länger, aber wenn Sie den Unterschied zwischen einem Computer und einem Monitor nicht kennen, sollten Sie sich nicht für eine Ingenieurposition bewerben, die JS erfordert!
Das ist absolut falsch. (Quelle: Ich habe einen PhD in Mathematik und habe Forschung in abstrakter Algebra betrieben.)
Ein Physik-/Mathematik-Absolvent, der das „abstrakte Algebra“ nennt?
Sie sollten Ihre Entscheidung, Mathematik und Physik zu studieren, überdenken, denn wenn Sie die grundlegenden Konzepte hier nicht leicht verstehen, werden Sie später große Probleme bekommen.
Denn Physik wird schnell komplex! Die Bra-Ket-Notation in der Quantenphysik wäre nur ein Beispiel. Differentialgleichungen (sowohl numerische als auch analytische), komplexe Ringintegrale und Tensorrechnung. Nur ein kleiner Auszug der beteiligten Mathematik, auf die die physikalischen Konzepte aufgestapelt werden.
(Erst nachdem ich diese Interaktion einem Freund erzählt hatte, wurde mir klar, dass man in einem Vorstellungsgespräch nicht fragen sollte: „Warum fragen Sie mich das?“)
Stimme überhaupt nicht zu. Denken Sie daran, jedes Vorstellungsgespräch, das Sie führen, dient genauso sehr dazu, DICH zu interviewen, und die Frage „Warum fragen Sie mich das?“ ist ein großartiges Werkzeug, um genau herauszufinden, wie Ihre Stellenbeschreibung tatsächlich aussehen wird.
Meine Erfahrung: Ich hatte vor ein paar Jahren ein Vorstellungsgespräch für eine Rolle als „HTML5 Front End Developer“. Die Stellenbeschreibung listete all die Spitzentechnologien auf, für die jeder Entwickler seine linke Hand geben würde. Spulen wir vor zum Interview und im technischen Teil gaben sie mir ein Blatt Papier und baten mich, den Code für ein CSS-basiertes Dropdown-Menü, das in IE 6 funktionieren würde, HANDSCHRIFTLICH aufzuschreiben.
„Warum würden Sie mich das fragen? Wird das ein Hinweis auf die Art der Arbeit sein, die ich in dieser Position tun werde?“
Als der Interviewer mit Ja antwortete, bedankte ich mich höflich für seine Zeit, stand auf und ging. Kein Interesse an der Erstellung von IE 6-kompatiblem CSS, vielen Dank.
Clevere Rätsel lösen zu können, ist eine Zeitverschwendung, um die Arbeitsbereitschaft zu beurteilen. Für viele dieser Arbeitgeber scheint es ein neuartiger Trick zu sein, den sie online gelesen haben, um die „falschen“ oder „schlechten“ Bewerber auszusortieren. Es ist ungefähr so hilfreich wie Interviewfragen wie „Welches Tier wären Sie und warum?“ (die, ja, immer noch gestellt werden). Testen Sie mich an Aufgaben, die ich im Job ausführen werde; das ist für uns beide hilfreicher.
Was das schwer fassbare Einhorn betrifft, das alles kann: Ich frage mich, ob das eher an Gehaltsbeschränkungen liegt (mit der Einstellung von 1 Person statt 2 oder 3 davonkommen), an einem schlechten Verständnis dafür, wie Designer/Entwickler arbeiten (es ist alles am Computer und beinhaltet Web-Sachen!), oder an der Annahme, dass das, was wir tun, immer Spaß macht und einfach ist, so dass wir all diese Aufgaben magisch erledigen können (der Computer erledigt die schwierigen Teile). Ich hatte Kunden, die in all diese Lager gefallen sind.
Wenn es diesen Unternehmen gelingt, dieses Einhorn zu finden, ist entweder jemand mit diesem Fähigkeitenpaket sicherlich außerhalb ihres Budgets oder er ist gut darin, seine Talente falsch darzustellen.
Bei Entwicklerjobs ist es unmöglich, Sie auf Dinge zu testen, die Sie im Job tun werden. Solche Dinge erfordern Berge von Kontext: was der Endbenutzer will und warum er es will, welche technischen Einschränkungen Sie haben, die Bereitstellungsarchitektur, jeglichen Legacy-Code, mit dem Sie arbeiten müssen, die Stil- und Architekturrichtlinien, die der Rest des Teams für das Projekt festgelegt hat.
Dies war ein Job, der hauptsächlich Designeraufgaben umfasste und ein wenig Programmierung erforderte. Der Programmieranteil, den FizzBuzz darstellt, ist nicht unvernünftig, ist kein „cleveres Rätsel“, und ein kleiner Schuss eines anderen Fachgebiets ist nicht die Forderung nach Einhörnern. Es ist eine einfache Logik (nicht einmal Mathematik, wenn man darüber nachdenkt), die jemand mit rudimentären Programmierkenntnissen beantworten können sollte. Hier sind einige Fragen, die in Vorstellungsgesprächen für echte Entwicklerpositionen gestellt werden:
http://ayende.com/blog/163394/new-interview-question
http://ayende.com/blog/168066/interview-questions-large-text-viewer
http://ayende.com/blog/163361/evil-interview-questions-unique-random-c
Das soll nicht heißen, dass die Autorin nicht extrem talentiert in dem ist, was sie tut! Sie hatte nur nicht das, wonach das Unternehmen suchte (was, wie gesagt, nicht unvernünftig klingt). Als sie die Situation höflich handhabte (der Interviewer beschimpfte oder beschämte sie nicht, er ließ sie es sogar per E-Mail einreichen, falls es nur Lampenfieber war, und er sagte ihr höflich, dass er nicht dachte, dass sie gut passte), schreibt sie einen Blogbeitrag, in dem sie versucht, sie als Bösewicht darzustellen.
FizzBuzz ist kein cleveres Rätsel. Es dient dazu, Leute auszusortieren, die ÜBERHAUPT nicht programmieren können. Aus diesem Grund ist es extrem hilfreich.
Es kann dem Interviewer nicht sagen, ob Sie über Anfängerstatus hinaus sind, aber es kann Ihnen zumindest sagen, dass sie grundlegende Kenntnisse haben.
Es ist eines der einfachsten Programmierprobleme überhaupt. Wenn Sie FizzBuzz nicht ohne Google lösen können, sind Sie kein „Programmierer“.
Das ist mir passiert. Es ist Mist.
Ich hatte ein Vorstellungsgespräch, bei dem sie wollten, dass ich innerhalb von zwei Tagen einen kompletten Prototyp baue. Ich habe mir den Arsch aufgerissen, um es zu schaffen, ich habe eine jQuery-Bibliothek verwendet, um beim Layout zu helfen.
Bei der Code-Review wollten sie, dass ich die mathematische Formel erkläre, die die Javascript-Bibliothek zur Erstellung ihres Layouts verwendet. Wenn ich das gewusst hätte, hätte ich von Anfang an nicht auf eine Bibliothek zurückgreifen müssen.
Der Punkt ist, selbst wenn Sie auf Stack Exchange eine Lösung finden, erwarten diese Leute, dass Sie den Code bis auf das Semikolon genau erklären können.
Zu wissen, was der Code (oder sogar die CPU) tut, ist eine großartige Fähigkeit. Hilft sehr.
Es gibt einen Anwendungsfall.
Erstellen Sie eine Tabelle, in der jede gerade Zeile eine andere Farbe hat.
nth-child rief an; es möchte, dass Sie aufhören, explizit wechselnde Klassen zu verwenden.
@Fiskie
Meine Firma rief an; sie wollen, dass ich IE8 unterstütze. Was nun?
nth-child ist nicht der „Fizzbuzz des Designs“. Wenn Sie alle CSS 2.1 und CSS3 Selektoren auswendig kennen, dann sind Sie wahrscheinlich ein guter Designer – oder zumindest fließend in der Auszeichnungssprache.
Fizzbuzz ist ein grundlegender Programmiertest, daher wäre das Äquivalent ein grundlegender CSS-Test, wie die Verwendung einfacher Selektoren zum Ändern allgemeiner Eigenschaften, das Hinzufügen von Klassen zu Elementen usw.
Entschuldigung, Lara, aber ich kann nicht mehr widersprechen. Mehr oder weniger jeder Punkt in diesem Beitrag ist bestimmend oder voreingenommen. Ich verstehe, dass es sich um eine riesige Schimpftirade in Blogform handelt, aber ich hoffe, Sie nehmen es mir nicht übel, wenn ich versuche, konstruktive Kritik zu üben. Fangen wir an
Sie haben Javascript und Frontend-Entwicklung erwähnt. Wenn Sie entwickeln, müssen Sie zumindest programmieren können. Entwicklung ist nicht nur das, wir alle wissen es, denn Programmierung ist ein Werkzeug… aber Sie brauchen es (plus Algorithmen), wenn Sie etwas selbst entwickeln wollen. Darüber hinaus ist Javascript eine Programmiersprache und Turing-vollständig. Wenn Sie also mit Javascript arbeiten, programmieren Sie (oder sollten es tun).
Ich bin mir nicht sicher, ob Sie hier den „S“-Teil oder den „B“-Teil diskutieren, aber ich kann Ihnen sagen, dass (zumindest in meinem Land) es mehrere Bachelor-Abschlüsse in Design gibt (Kommunikationsdesign, Industriedesign usw.), die an technischen Universitäten gelehrt werden. Was ist daran seltsam?
Nochmal, Javascript ist eine Programmiersprache. Wenn eine Stellenbeschreibung verlangt, dass Sie ein Auto besitzen, müssen sie nicht angeben, dass Sie einen Führerschein besitzen. Um ein Auto zu fahren, müssen Sie wissen, wie es geht.
Es ist kein Programmierjob, es ist ein Designjob, der Programmierkenntnisse erfordert. Frontend-Webentwicklung und Design erfordern dies, solange Sie mehr als nur Markup-Sprachen verwenden möchten.
Mein Punkt ist, dass Sie, wie Sie schrieben, die Bewerbung hätten ablehnen sollen, weil es sich um einen Job handelt, der Programmierkenntnisse erfordert (was ziemlich klar war). Die Tatsache, dass Stellenanzeigen normalerweise zu vage sind, ist keine Entschuldigung: Tatsächlich verlangen sie normalerweise, dass Sie alles können: Programmieren, Design, Böden wischen, … :P Okay, ich scherze jetzt, aber sie listen normalerweise viele erforderliche Fähigkeiten auf, es ist nicht so, dass Programmieren nicht erwähnt wurde, es wurde.
Noch etwas…
Die von Ihnen zitierte Anzeige erwähnt WordPress korrekt mit großem P.
Das „S“ steht für Wissenschaft. Design ist eine Wissenschaft, aber nicht diese Art.
@Lazza –
Ja, ich habe das mit dem P gerade bemerkt, was eigentlich an capital_P_dangit liegt. Diese hinterhältigen WP-Leute.
Kritik willkommen! Einige Gedanken:
Sicher, aber das ist doch irgendwie das Problem, oder? Ein Designjob, der erfordert, dass man programmieren kann? Oder ein Programmierjob, der erfordert, dass man gestaltet? Ich bin absolut dafür, die Kluft zwischen Design und Entwicklung zu überbrücken, aber bleiben wir realistisch.
Ja, JS ist sicherlich eine Programmiersprache, aber mit jQuery usw. ist es ziemlich üblich, JS zu schreiben, ohne überhaupt zu „programmieren“. Und das ist absolut großartig für die Branche – es ermöglicht uns hybriden Designer-/Entwicklertypen, die Sprache zu nutzen.
Daher verstehe ich absolut, woher Sie kommen, aber angesichts der enormen Vielfalt, wie wir JS verwenden, muss es einfach mehr Klarheit geben.
Ich würde argumentieren, dass eine genauere Metapher wäre, dass das Design des Innen- oder Außenbereichs eines Autos nicht bedeutet, dass Sie wissen müssen, wie man den Motor baut. Sie sollten die größeren Konzepte verstehen, wie es funktioniert, aber Sie müssen die Kraftstoffeinspritzung nicht beherrschen.
Entschuldigung, ich muss mir selbst antworten, da die Website nur eine Ebene verschachtelter Kommentare zulässt. :P
Zoe, wenn Sie an einer Technischen Universität studieren, erhalten Sie keinen MA (oder wie auch immer das auf Englisch in einer Kunsthochschule genannt wird), sondern einen BSc. Wir können darüber diskutieren, ob es angemessen ist, Design an Technischen Universitäten einzubeziehen (ich finde es in Ordnung), aber das ist eine andere Geschichte.
Wenn wir Jquery-Code schreiben, basiert das meiste davon auf
$, was eine Instanz des JQuery-Objekts ist. Darüber hinaus ist es ein objektorientiertes Paradigma, das Methodenverkettung fördert, was wiederum Programmierung ist. :)Ehrlich gesagt, ich glaube nicht, dass Ihre Metapher zutreffend ist, denn Javascript-Programmierung ist ein integraler Bestandteil der Front-End-Arbeit, während der Motorbau kein Teil des Autodesigns ist.
Um genau zu sein, ich streite nicht ab, dass die von Ihnen genannten Beispiele für Stellenangebote vage sind. Das sind sie absolut. Aber es ist ziemlich klar, dass Sie etwas programmieren müssen. Was, wie und warum… das ist völlig unklar. :)
Dies scheint um eine unklare Stellenanforderung zu gehen, und das wäre ärgerlich, da ich ziemlich überrascht wäre, wenn ich Fragen zum Design bekäme, obwohl ich dachte, ich würde mich für eine reine Entwicklerposition bewerben.
Einige Leute scheinen FizzBuzz jedoch als Test zu verunglimpfen, und ich denke, das ist falsch. Ich bin generell gegen „clevere“ Rätsel in einem Interview wie das berühmte „Warum sind Kanaldeckel rund“ und ähnliches.
Aber FizzBuzz aus programmiertechnischer Sicht sollte für einen Entwickler unglaublich einfach sein. Es ist eher vergleichbar damit, einem Designer drei unterschiedliche und populäre Schriftarten vorzulegen und ihn aufzufordern, sie zu identifizieren. Ich kann verstehen, dass es frustrierend ist, wenn man aus einem anderen Hintergrund kommt; aber einer der Punkte von FizzBuzz ist, dass es kein Trick ist und etwas, das alle Entwickler tun können sollten (man muss auch nicht Modulo verwenden).
Wenn mir jemand diese Frage mündlich stellen würde, wäre ich wahrscheinlich verloren und verwirrt.
Aber wenn die Frage schriftlich vorliegen würde (auf Papier oder Bildschirm), wüsste ich die Antwort in 3 Sekunden.
Ich trage eine Ingenieurbrille: Imperative Programmierung könnte Sie dazu inspirieren, sehr unterschiedliche Ansätze und Lösungen zu entwickeln.
Ich habe Ihren Beitrag unmittelbar nach dem Lesen eines Beitrags von Jakob Jenkov gelesen, dem Mann, der mir SVG-Programmierung beigebracht hat und der viele exzellente Online-Tutorials hat. Ich denke, er versucht, den Punkt zu machen, dass man, wenn man eine imperative Sprache wählt, immer noch deklarativ programmieren kann.
Vielleicht ist deklarative Programmierung besser geeignet, um großartige Looks zu erzeugen, und imperative Programmierung, um Verhalten zu implementieren (gegenüber dem Benutzer, dem Server, der Laufzeitumgebung). Aber um eine rationale Wahl zu treffen, sollte man sie verstehen, d.h. in der Lage sein, eine Lösung auf beide Arten anzubieten.
Ich befürchte, dass die schlechten Stellenbeschreibungen widerspiegeln, dass die Interviewer nicht wissen, was sie brauchen.
Los, Lara!
Ich leite mein eigenes kleines Unternehmen. Irgendwann beschloss ich, jemanden einzustellen, der mir hilft, und musste eine Stellenausschreibung / Stellenbeschreibung erstellen. Ich war mir nicht sicher, wo ich anfangen sollte, also habe ich ein paar Dutzend ähnliche Positionen recherchiert, meine Favoriten ausgewählt und bin dem gleichen Muster gefolgt. Das Ergebnis war eine typische Stellenausschreibung mit all den von Ihnen genannten Fehlern. Nächstes Mal werde ich einige Ihrer Ideen einfließen lassen. Vielen Dank für die Tipps!
Von der anderen Seite der Medaille würde ich sagen, dass viele IT-Leute schlechte Lebensläufe haben. Es ist leicht für Mitarbeiter, genau in die gleichen Fallen zu tappen und nur Dinge aufzulisten, die sie kennen – „Ich bin gut in CSS/JS/PHP“ oder ähnliches. Persönlich würde ich es vorziehen, mehr Informationen über Erfahrungen zu sehen – die besten Projekte, an denen Sie gearbeitet haben, welche Projekte Sie individuell und welche Sie im Team bearbeitet haben, welche Rolle Sie in jedem Projekt hatten, welche Aufgaben Sie erledigt haben, welchen Herausforderungen Sie sich gestellt haben und wie Sie diese Herausforderungen gemeistert haben, und bitte, wenn Sie etwas Frontend im Web gemacht haben, Screenshots und URLs bereitstellen (damit ich diese Seiten öffnen und das Design, die Programmierkenntnisse, die Logik, die Optimierung usw. des Endergebnisses bewerten und mir vor dem Interview ein Bild von Ihren Stärken und Schwächen machen kann). Wenn Projekte aus Datenschutzgründen oder aus anderen Gründen schwierig aufzulisten sind, lassen Sie den Projekttitel, die URL und den Screenshot weg, geben Sie aber trotzdem anonymisierte Details zu Ihrer Arbeit an.
Auch Menschen, die gut im Design und in der Frontend-Entwicklung und Backend-Entwicklung sind, existieren… aber sie sind sehr selten.
Sie sagten „Ich kann jQuery verwenden“, sind aber nicht in der Lage, ein einfaches Programm in JavaScript zu schreiben, das nur
forundif/elseverwendet. Ich bezweifle wirklich, ob Sie jQuery wirklich verwenden können.Nun, Lara, wie würdest du alle Kommentare von Pedro finden und ihnen abwechselnde Farben geben (wie ungerade/gerade Zeilen in einer Tabelle mit verschiedenen Farben)?
@Steven Luu Mit CSS ;)
@Gijs
Das geht nicht mit CSS.
Sie können ein Element nicht nach Inhalt auswählen.
Selbst wenn Sie könnten, könnten Sie keinen Vorfahren auswählen, sodass Sie den Kommentar, der den Kommentator „Pedro“ enthält, nicht gestalten können.
Selbst wenn Sie könnten, könnten Sie nth-* nicht verwenden, um nur Pedros Kommentare zu streifen, ohne den gesamten Kommentarbereich zu streifen.
Sie müssen einen FizzBuzz-artigen Algorithmus verwenden, entweder in JavaScript oder im Template.
Meine begrenzte Erfahrung hat gezeigt, dass Stellenbeschreibungen mehr verlangen, als tatsächlich erforderlich ist, aber das eigentliche Vorstellungsgespräch viel weniger abdeckt. Vielleicht ist das nur bei technisch anspruchsvolleren Jobs der Fall, ich weiß es nicht.
Auch, etwas unrelated, aber ein Tipp, wenn es um verrückte Stellenbeschreibungen geht: Wenn Sie nur einen generischen Jobtitel und (falsch geschriebene) Buzzwords sehen, überprüfen Sie das „Unternehmen“, das es gepostet hat; oft ist es eine externe Personalagentur, und was Sie sehen, ist kein echter Job. Fallen Sie nicht darauf herein!
https://www.brandonsavage.net/why-recruiters-are-bad-for-your-career/
Ich weiß nicht, die Stellenbeschreibung schien ziemlich klar zu sein, dass sie einen Programmierer suchten. Sie erwähnten einen Abschluss in Informatik und sie erwähnten Javascript. Das sieht für mich nicht so zweideutig aus. Sie erwähnen sogar, dass sie einen Kandidaten mit Erfahrung in objektorientiertem Design und mehreren MVC-Frameworks in Javascript bevorzugen. Ich bin mir nicht sicher, wie ich diese Stellenbeschreibung sonst interpretieren soll. Es scheint klar zu sein, dass sie einen Programmierer suchen.
Also führten sie ein Vorstellungsgespräch mit einigen Fragen, um herauszufinden, ob der Bewerber grundlegende Javascript-Programmierung beherrschte, und Sie beherrschten keine grundlegende Javascript-Programmierung. Sie passten also nicht zu dem, wonach sie suchten. Das leuchtet mir ein. Das ist im Grunde der Sinn der FizzBuzz-Übung. Sie leistet wirklich gute Arbeit dabei, aufzudecken, ob die Person ein Programmierer ist oder nicht.
Sie können all das aber lernen! Machen Sie sich keine Vorwürfe, weil diese eine Position nicht gepasst hat. Sie sind kein Hochstapler, Sie sind ein Designer, der Javascript noch nicht gelernt hat. Ich bin sicher, Sie werden einige grundlegende Programmierkenntnisse erlernen können, wenn Sie dranbleiben.
Ehrlich gesagt, haben Sie die Stellenbezeichnung einfach nicht klar gelesen. Sie weist alle Merkmale eines Jobs auf, der mindestens minimale Programmierkenntnisse erfordert, und es ist aus der Beschreibung ziemlich offensichtlich, dass, wenn sie nicht-informatische Studiengänge als Option auflisten, sie möchten, dass Sie nicht-gradbezogene Erfahrung in den Informatikthemen haben, und umgekehrt, wenn Ihre gradbezogene oder berufsbezogene Historie in der Informatik liegt.
Sie hätten die FizzBuzz-Frage mit nur ein wenig Erfahrung in JS lösen können. Sie müssen nur die grundlegenden mathematischen Operatoren und die Durchführung von Schleifen kennen, um sie zu lösen. Es ist sehr, sehr einfach.
Sie haben einen Fehler beim Lesen der Stellenanzeige gemacht, stehen Sie dazu und bereiten Sie sich das nächste Mal besser vor, aber die Schimpftirade ist wirklich ungerechtfertigt.
Die Berufsbezeichnung lautete „UX Engineer“, und die dritte Anforderung in der Beschreibung war „Javascript Frameworks“… besser vorbereitet sein, um zumindest das Verständnis von
modzu demonstrierenZu faul, um Kommentare zu lesen, also hat es vielleicht schon jemand erwähnt, aber Informatiker werden in UX/Interaktionsdesign unterrichtet, und es ist ein sehr wichtiger Teil des Fachgebiets.
Ich bin kein qualifizierter Trainer und habe einer Gruppe von 14-Jährigen JS sechs Stunden lang beigebracht und sie eine Variante von Fizzbuzz selbst machen lassen. Sie wussten alle, wie es geht.
Es sei denn, Sie meinen natürlich, dass ein UI-Designer keine Kenntnisse von For-Schleifen in JavaScript benötigt, was Ihre Fähigkeiten definitiv einschränkt.
Ehrlich gesagt, wenn Sie FizzBuzz nicht schnell und einfach lösen können, sollten Sie lieber keinen Job annehmen, der mit Programmierung zu tun hat. Sie wären im Job garantiert regelmäßig frustriert. Selbst die Netzwerkadministration wäre eine Herausforderung. Design wäre in Ordnung, wenn es *nur* Design wäre, d.h. wenn jemand anderes die Implementierung übernehmen würde. Aber wenn die Position erfordert, dass Sie Javascript kennen, beinhaltet sie auch eine Implementierung.
Es gibt eine Reihe von Problemen mit dem FizzBuzz-Test, und ich persönlich würde ihn weder verwenden noch empfehlen; aber zu schwierig zu sein oder zu viel Mathematik zu beinhalten, gehören nicht zu seinen Problemen. Es geht im Grunde nur darum, zu prüfen, ob Sie das Prinzip von if/then/else verstehen, und ich sehe nicht, wie Sie selbst den trivialsten UI-Code in Javascript oder einer anderen Programmiersprache ohne das schreiben können. Zum Beispiel verwenden Sie Bedingungen jedes Mal, wenn Sie Code schreiben, um den erweiterten/eingeklappten Zustand eines UI-Elements umzuschalten, weil Sie prüfen, ob es gerade erweitert ist, um zu entscheiden, was zu tun ist.
„Frontend“ ist eines dieser Wörter, die für verschiedene Leute verschiedene Dinge bedeuten. In meinem jetzigen Unternehmen würde Ruby definitiv als Frontend betrachtet werden, da unser Mainframe und Legionen von COBOL-Programmierern das Backend sind. In einem anderen Unternehmen ist der Browser das Frontend und der Webserver das Backend. In einem weiteren könnten der Browser und der Webserver das Frontend und die Oracle-Datenbank, Trigger und gespeicherte Prozeduren das Backend sein.
Zwei Dinge
Deshalb habe ich „Front End Developer“ vor einiger Zeit aus meinem Titel entfernt. Im Grunde genommen können wir uns nicht Front End Developer nennen, wenn wir JavaScript nicht kennen. JS-Kenntnisse sind in diesem Bereich ZWINGEND ERFORDERLICH.
Wahre Geschichte
Ich bin Webdesigner, vor einiger Zeit wurde ich auf eine Stellenbeschreibung aufmerksam gemacht, die folgendes auflistete
Anforderungen
Sicher im Umgang mit RWD und Mobile – Check! 1 Punkt
Bereit, neue Themen selbstständig zu lernen, und großer Drang, Neues zu lernen – Check! 1 Punkt
Sehr gutes Verständnis von CSS, HTML und JavaScript – Pseudo-Check! 0,75 Punkte
Gut mit Photoshop und/oder anderen Design-Tools – Check! 1 Punkt
Fortgeschrittene Kenntnisse in Maßstab, Farbtheorie und Typografie – Check! 1 Punkt
Erwünscht (jedoch nicht erforderlich) (beachten Sie den Teil „nicht erforderlich“ :])
Fähigkeiten in Projektmanagement und agile – Check! 1 Punkt
Erfahrung mit Angularjs, Emberjs und anderen Javascript MVC-Frameworks – Fehlschlag! 0 Punkte
Gute Fähigkeiten in der Datenvisualisierung – Check! 1 Punkt
Ich bin kein JavaScript-Programmierer, aber ich erfülle 99% der Anforderungen: 4,75 von 5 Punkten (nicht schlecht), was sie suchen. Und ich erfülle 66% der „gewünschten“ Fähigkeiten, 2 von 3 Punkten, wiederum bin ich kein JavaScript-Programmierer.
Insgesamt erfülle ich 6,75 von 8 Punkten, das sind über 84 %. Man muss jedoch bedenken, dass es ausschließlich um die Anforderungen (ich erfülle 99 %) geht, nicht um die Wunschliste.
Dann werde ich gefragt: „Würden Sie sich für das Erlernen von Angularjs interessieren?“
¬¬, FFS.
ROFL!
Ich verstehe nicht, warum du verärgert reagierst. Ja, du hast die Stellenbeschreibung gelesen, aber du hast sie nicht verstanden.
Vielleicht haben „Webdesigner“ eine andere Definition von „erwünscht“, aber für mich ist es schmerzlich offensichtlich, dass „erwünscht“ nicht „optional“ bedeutet.
„Erwünscht“ bedeutet: „Es wäre perfekt, wenn Sie die spezifischen Technologien, die unser Unternehmen verwendet, bereits kennen, aber wenn nicht, erwarten wir von Ihnen, dass Sie sie während der Arbeit lernen.“
Es ist großartig, dass du Prozentsätze verwendet hast, um dich besser zu fühlen, aber ehrlich gesagt: Du hast die einzige harte Fähigkeitsanforderung nicht erfüllt, die das Unternehmen in der Anzeige erwähnt hat.
Bruder, du musst es noch einmal lesen: Erwünscht (aber nicht ERFORDERLICH).
„NICHT ERFORDERLICH“ == Optional. Lass das Ego los.
Ich habe den JavaScript-Teil nicht geschafft, aber das ist nicht der Punkt. Der Punkt ist, dass ich praktisch alle „ERFORDERLICHEN“ Anforderungen erfülle ;}. Plus die meisten der erwünschten (aber nicht ERFORDERLICHEN) Fähigkeiten.
Ich fühle auch Schmerz, Schmerz, wenn ich sehe, wie das Ego eines Programmierers spricht. Autsch! Lol.
... und das Problem ist? Sie haben dich nicht gebeten, AngularJS zu kennen, sie haben dich nur gefragt, ob du bereit bist, es zu lernen.
Genug gesagt.
Ich glaube nicht, dass Sie das Konzept und den Grund für den FizzBuzz-Test erfassen. Es geht über Module und Algorithmen hinaus. Es ist ein einfacher Test, der dazu dient, die Kompetenz einer Person im Umgang mit Iterationen und Logik zu bewerten.
Nachdem ich Ihren Wutausbruch gelesen habe, kann ich Ihnen nur den Rat geben, dass Sie sich wirklich die Zeit nehmen sollten, einige grundlegende Programmierkonzepte zu lernen. Vertrauen Sie mir, es lohnt sich sehr.
SCSS ist zum Beispiel für viele Designer das bevorzugte Tool, wenn sie mit Stylesheets arbeiten. Und wie bei jedem CSS-Precompiler werden Sie, je tiefer Sie eintauchen, desto mehr Logik in Ihrem Code verwenden.
Oh, und nur für zukünftige Referenz, hier ist ein Beispiel für FizzBuzz in Javascript und SCSS.
http://jsbin.com/gojulonela/1/edit?js,console,css,output
Ich wünsche Ihnen viel Glück.
Du solltest mehr Programmierung und Logik lernen. Du schaffst das, du beschäftigst dich ständig mit Dingen, die genauso konzeptuell komplex sind. Und es wird dir einen weiteren Grund geben, deine Preise zu erhöhen!
Reddit zerlegt dich gerade in einer riesigen selbstverliebten Euphorie, aber ich werde hier gegen den Strom schwimmen und zustimmen, dass dies eine unzumutbare Stellenbeschreibung ist.
Ich bin ein hochkompetenter Javascript-Programmierer und würde diese Position nicht anfassen. Ich hätte denselben Eindruck: dass es hauptsächlich um Design geht, mit einem Schuss Javascript. Als -Javascript-Programmierer- und nicht als -Designer- möchte ich jeden Tag NodeJS schreiben oder HTML5 Canvas-Spiele entwickeln, wenn ich zur Arbeit gehe.
Was ich nicht verstehe, ist, wen sie wirklich erwarten zu finden? Welche Art von „echtem Programmierer“ würde diese Position wollen? Sicher, Sie MÖGEN tatsächlich den extrem seltenen Übermenschen finden, der sowohl ein großer Künstler als auch ein außergewöhnlicher Programmierer ist, aber wahrscheinlicher werden Sie jemanden finden, der in dem einen, dem anderen oder beidem mittelmäßig ist.
Wenn ihre Anforderungen wirklich großartiges Design und großartige Programmierung im Frontend erfordern, dann sollten sie zwei separate Leute einstellen und einen effektiven Prozess haben, der ihnen eine gute Zusammenarbeit ermöglicht. Wenn sie einen großartigen Designer wollen, der ein bisschen Javascript kann, sollten sie dich einfach einstellen und dich ausbilden. Wenn du bereits JQuery-Aufrufe zusammenfügen und Callbacks verstehen kannst, ist es kein großer Sprung, dich darin zu schulen, ein bisschen mehr Logik zu implementieren.
Ich stimme auch nicht zu, dass die Forderung nach einem Informatik-Abschluss und Angular/Ember/etc.-Erfahrung ihre Absichten klar macht. Jeder fragt nach einem Informatik-Abschluss, wenn auch nur der kleinste Hinweis auf Programmierung involviert ist. Stellenausschreibungen werfen alles Mögliche an die Wand, um zu sehen, was hängen bleibt. Das ist, als würde man sagen, man möchte jemanden daten, der 1,93 m groß ist und an einer Ivy League studiert hat, mit muskulösem Körper und einem großen Bankkonto. Sicherlich will man das, aber am Ende des Tages begnügt man sich mit jemandem, der 1,78 m groß ist, einen Bierbauch und einen großartigen Sinn für Humor hat.
Während ich zustimme, dass die Auflistung widersprüchlich und skizzenhaft ist, bedeutet die Tatsache, dass sie angaben, einen „Ingenieur“ und einen „Entwickler“ zu wollen, ausdrücklich, dass sie jemanden suchen, der Programmierer ist. Es gibt keine Mehrdeutigkeit darüber, was diese Wörter bedeuten. Wenn Sie sich also nicht auf eine Stelle bewerben wollen, in der Hoffnung, dass die Leute, die die Auflistung erstellt haben, sich über die tatsächlichen Anforderungen der Stelle irren, haben Sie wirklich nichts zu beklagen. Letztendlich hat sich diese Person auf die Stelle beworben, trotz der Skizzenhaftigkeit der Auflistung und trotz ihres eigenen Mangels an den für die Auflistung erforderlichen Qualifikationen. Wessen Schuld ist es, dass sie schlecht interviewt wurde?
Als jemand, der UI in der professionellen Spieleentwicklung macht (ich bin Ingenieur und mache UI im Grunde querbeet), muss ich mit vielen Aspekten des Designs vertraut sein (nicht jedoch mit Farbtheorie usw.), aber ich muss Photoshop, Batch-Jobs usw. effektiv nutzen können. Ich nehme Designs und implementiere sie, aber ich muss einiges auf der anderen Seite des Zauns wissen. FizzBuzz ist eine der einfacheren Programmierfragen, die man in einem Interview bekommen kann (ich habe auch schon Fragen zum Schreiben einer For-Schleife gesehen, aber ... ja, trivial).
Ehrlich gesagt, würde ich niemanden für irgendeinen Job in der Spieleentwicklung (es sei denn, sie machen reines Design oder Kunst) einstellen, ohne dass sie FizzBuzz lösen können. Ich bin schon frustriert genug über den Mangel an technischem Know-how einiger technischer Künstler, die Flash-Dateien erstellen, die ich dann in unser Spiel integriere. Das erhöht meine Arbeitsbelastung, um ihre Mängel zu beheben.
Es mag so aussehen, als ob die Stellenbezeichnung/Anforderungen nicht richtig kommuniziert wurden, aber im Titel der Stelle stand "Ingenieur". Ingenieure im traditionellen Sinne sind EE/ME-Studenten, die einen Großteil an mathematischem Hintergrund haben. Boolesche Logik und logische Operatoren sind in vielen Bereichen der Spieleentwicklung entscheidend. Das Gleiche gilt für die OO-Programmierung. Man muss es wirklich oft machen, um ein Gefühl dafür zu bekommen, sonst arbeitet man immer nur mit gerade genug Spielraum, um sich selbst zu erhängen.
Es fühlt sich an, als hätten sie den UX/UI-Teil überbetont, nur um dich mit Programmierfragen zu überhäufen. Sie versuchen wahrscheinlich, doppelt zu verdienen und jemanden mit Fähigkeiten auf beiden Seiten zu bekommen, ohne ihn angemessen zu bezahlen.
Ich möchte hinzufügen, dass ich es wichtig finde, dass all die „echten Programmier“-Sachen sozusagen unter den bevorzugten Qualifikationen aufgeführt waren. Das kommuniziert mir, dass sie in erster Linie einen guten Designer suchen, und wenn man auch ein guter Programmierer ist, dann werden ihre kühnsten Fantasien wahr. Wie du würde ich davon ausgehen, dass einige JQuery-Kenntnisse und die Fähigkeit zum Selbststudium ausreichen würden, um ein starker Kandidat für die Rolle zu sein (vorausgesetzt, du bist ein guter Designer).
Sie scheinen im Bewerbungsgespräch den Unterschied zwischen Anforderungen und wünschenswerten Eigenschaften vergessen zu haben.
Man kann FizzBuzz in CSS3 machen, wenn man eine Liste von Zahlen hat
http://www.boogdesign.com/b2evo/index.php/fizzbuzz-in-css3?blog=2
Entschuldigung, aber eine einfache Programmierübung sollte bei einer Stellenausschreibung, in der Kenntnisse in JavaScript und (vorzugsweise) Angular & anderen JS-Frameworks erwähnt werden, nicht völlig unerwartet sein.
Wie andere bereits erwähnt haben, soll FizzBuzz keine „realistische“ Herausforderung sein. Es geht darum zu sehen, ob man einfache arithmetische Operatoren und Schleifen in einer bestimmten Programmier- oder Skriptsprache verwenden kann. Wenn man nicht zumindest dieses Maß an Vertrautheit besitzt, kennt man JavaScript (oder Python oder PHP oder was auch immer) nicht. Ich bin kein großer Entwickler (einige College-Kurse, bevor ich das Hauptfach gewechselt habe, und eine Menge selbst erlerntes Zeug), aber ich könnte FizzBuzz in jeder der Sprachen, die ich verwende, lösen.
Der Jobtitel lässt vermuten, dass sie zwei verschiedene Personen suchen.
Sie haben, zumindest für mich, nicht klar gemacht, ob sie einen Designer oder einen Ingenieur wollten.
Es wäre besser, wenn sie sich auf eine Sache konzentrieren würden.
„Wir suchen einen Designer mit starker Affinität zur Ingenieurwissenschaft.“ oder „Wir suchen einen Ingenieur mit Designkenntnissen.“
Im Laufe der Jahre erkenne ich einen Missbrauch des Begriffs Designer.
Ein Designer löst Probleme in der visuellen Kommunikation, das habe ich zumindest vor Jahren studiert. (vielleicht verwenden wir das Wort Designer hier in Deutschland in einem anderen Kontext)
Dort steht „erfahren mit“. Wir alle haben Erfahrungen mit (verwendeten) Technologien gesammelt… Sie suchen etwas mehr als das. Das „ed“ am Ende macht einen Unterschied.
Auch die andere von Ihnen veröffentlichte Beschreibung verlangt recht deutlich, dass Sie Erfahrung in „JavaScript Frameworks“ haben. Das bedeutet MVC, Routing, Syntax usw.
„Man weiß nicht, was man nicht weiß“, aber dieser Beitrag lässt Sie so klingen, als wüssten Sie wirklich nicht, was Sie tun. Ich bezweifle, dass viele Entwickler mit Ihrer Sichtweise sympathisieren werden.
Full-Stack-Entwickler hier. Ich benutze CSS, HTML, JS und eine Reihe anderer Sprachen den ganzen Tag, jeden Tag. Kein Designer, aber ich komme im Notfall zurecht.
Ich denke, ich muss mich auf die Seite stellen, dass ich von jeder Webentwicklung, abgesehen von der Erstellung eines Designdokuments oder Layouts in Photoshop, ziemlich vertraut mit JavaScript erwarte. Viele der interaktiveren Elemente einer Website erfordern manchmal überraschend komplizierten Code. Noch mehr vor 5-10 Jahren, bevor wir viele der schöneren Funktionen von CSS3 hatten.
Ich weiß, dass ich als hauptsächlich Programmierer etwas voreingenommen sein werde, aber FizzBuzz ist kein so schwieriges Problem zu lösen, und obwohl es nicht viel praktischen Nutzen hat, demonstriert es ein einfaches Rätsel mit verschiedenen Zuständen, von denen der Bau von Websites ständig welche bietet.
Zufälligerweise tauchte dies heute, ein oder zwei Stunden bevor ich diesen Artikel las, in meinem Twitter-Feed auf; eine reine CSS-Implementierung von FizzBuzz.
http://jsfiddle.net/e9y4rsue/1
Es tut mir leid, aber der Interviewer hat völlig recht, eine grundlegende Programmieraufgabe in ein Vorstellungsgespräch aufzunehmen, dessen Stellenbeschreibung die Erwähnung von Javascript enthält.
Sie haben wahrscheinlich einzigartige Fähigkeiten und müssen diese daher in Ihrem Lebenslauf/Ihrer Bewerbung auf einzigartige Weise hervorheben. Versuchen Sie einfach, genau zu erklären, was Sie tun und wie Sie Mehrwert schaffen, um zukünftige Missverständnisse zu vermeiden. Versuchen Sie, das Vorstellungsgespräch aus der Sicht des Interviewers zu betrachten – er erwartete Ihre großartigen Fähigkeiten PLUS einen Programmierer – Sie haben eine Gelegenheit verpasst, ihn davon zu überzeugen, dass Sie auch ohne die Programmierung eine großartige Wahl sind!
Viele verschiedene Diskussionen hier.
Sicher, ein Entwickler sollte Fizzbuzz kennen, aber das kann auch zu weit gehen.
https://blog.svpino.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour
Reaktionen
Meine Meinung dazu
http://codepen.io/sakri/pen/MwKyeG
Es ist ein Team, wissen Sie nicht, wie man FizzBuzz macht? Fragen Sie jemanden im Team, der es kann.
Die Mathe-Sache? Meine Frau hatte einen schrecklichen Mathelehrer, der ihr unverblümt sagte, sie sei schlecht in Mathe. Sie war traumatisiert und glaubte ihm, bis ich sie langsam davon befreien konnte. Jeder kann Mathe, nicht jeder kann es lehren.
Personalbeschaffung ist eine Kunstform, wie Mathelehrer gibt es gute und schlechte Personalvermittler. Zeit ist Geld, daher werden leider Filter wie Fizzbuzz und Bildungsanforderungen oft verwendet.
Es tut mir leid, aber ich muss Ihnen widersprechen. Bitte nehmen Sie es nicht als persönlichen Angriff. Ich weiß wenig über Design, und ich bin mir sicher, dass Sie schöne und benutzerfreundliche Websites erstellen. Und noch wichtiger, ich denke, dass Sie eine großartige Person sind, weil Sie einen öffentlichen Beitrag darüber geschrieben haben, dass Sie eine einfache Aufgabe in einem Vorstellungsgespräch nicht bestanden haben – etwas, worüber die meisten Leute zu beschämt wären, um darüber zu sprechen. Das erfordert viel Mut und Offenheit, und diese Eigenschaften in einer Person sind wichtiger als Programmierfähigkeiten.
FizzBuzz ist kein „Programmierer“-Test. Es ist ein Test, der das grundlegendste Verständnis von Programmierkonzepten überhaupt prüft. Selbst wenn der Job hauptsächlich aus Design besteht und die Person nur gelegentlich jQuery schreiben muss, würde ich FizzBuzz immer noch als Pre-Interview-Test verwenden, um die offensichtlich inkompetenten Kandidaten auszusieben.
Der FizzBuzz ist ein unglaublich einfacher Test; der ganze Sinn besteht darin, dass, wenn man ihn nicht besteht, man überhaupt keinen Code in einer kommerziellen Codebasis schreiben sollte. FizzBuzz testet das Verständnis der grundlegendsten Kontrollstrukturen: Schleifen, Bedingungen und grundlegende mathematische Operatoren. Das ist alles. Wenn jemand einen FizzBuzz-Test nicht besteht, bedeutet das, dass der Code, den er schreibt, die Codebasis erheblich verschlechtern wird. Es ist nicht nur eine Frage geringer Produktivität; es ist eine Frage negativer Produktivität. Es tut mir leid, aber der JS-Code, den Sie schreiben würden, würde höchstwahrscheinlich mehr Arbeit für andere Entwickler im Team in Zukunft verursachen.
Vielleicht wäre es der beste Weg für einen großartigen Designer wie Sie, der Personalabteilung direkt mitzuteilen, dass Sie Code lesen können, sich aber nicht wohlfühlen, ihn zu schreiben.
Ich kann das voll und ganz nachvollziehen.
Das Problem ist, dass viele Stellenbeschreibungen CSS (SASS/LESS) und HTML immer noch mit JavaScript zusammenfassen. Das mag vor 6 oder 8 Jahren noch sinnvoll gewesen sein, aber heute braucht man wirklich eine Person, die UX/UI macht (ich nenne mich selbst einen „Frontend UX Designer“), mit im Grunde *genau* den Fähigkeiten, die Sie haben, und einen JavaScript-Entwickler (Programmierer), der alles andere erledigt, einschließlich des von Ihnen erwähnten FizzBuzz-Problems.
Wenn man früher „Webdesigner“ hatte, die nur Photoshop machten, und Frontend-Entwickler, die eine Website aus einem statischen Design erstellten, das pixelgenau in IE 6 passte (Gott sei Dank sind diese Zeiten vorbei), so kann man heute sicherlich einen UX-Designer haben, der eine Vorlage mit Atomic Design, SASS, HTML5, Responsivität, Photoshop, Webfonts usw. erstellt, und einen JS-Entwickler, der die gesamte Programmierung übernimmt.
Ich persönlich habe JS komplett aufgegeben und konzentriere mich als Freelancer ausschließlich auf UX und UI Design. Aber wenn jemand alles kann, umso besser für ihn.
Ganz einfach, lösen Sie FizzBuzz einfach in CSS! http://codepen.io/SachaG/pen/jCpba :)
Das habe ich schon einmal erlebt :-D, ich wurde einmal für eine C++-Position interviewt, von Anfang an sagte ich dem Arbeitgeber: „Ich habe keine Kenntnisse in diesem Bereich“, seine Antwort war ziemlich klar: „Ok, kein Problem, das ist keine echte Anforderung“, nachdem ich 3 Skype-Interviews erfolgreich absolviert hatte, musste ich eines in der Firma machen, nach einer 4-stündigen Fahrt in die Stadt… das Interview konzentrierte sich hauptsächlich auf die Technologie, über die ich nichts wusste…, ernsthaft… Arbeitgeber sollten über ihre Methodik nachdenken, nun, danach bekam ich einen besseren Job, also funktioniert Karma manchmal.
Wow, dieser Beitrag und viele dieser Kommentare sind wirklich entmutigend.
Erstens, wenn ein Interviewer Sie bittet, ein Logikrätsel zu lösen (wovon FizzBuzz so ziemlich das Grundlegendste ist, was man fragen kann), suchen sie nach zwei Dingen
1) Sie wollen Ihren Denkprozess sehen und wie Sie Probleme lösen. „Wie legt sie das Problem dar? Wo fängt sie an? Was sind ihre bevorzugten Methoden?“
2) Sie wollen sehen, wie gut Sie kommunizieren können, was Sie tun. Erklären Sie ihnen jeden Schritt, lassen Sie sie wissen, wie Sie vorgehen wollen, und artikulieren Sie jeden Schritt.
Wenn Sie diese beiden Dinge tun können und selbstbewusst und halbwegs kompetent sind, stehen die Chancen gut, dass sie mit Ihnen zufrieden sind, auch wenn Sie es nicht vollständig abschließen oder an einem schwierigen Teil hängen bleiben.
Das heißt, wie können Sie erwarten, ein „UX-Ingenieur“ zu sein, ohne programmieren und grundlegende Logik anwenden zu können? Ich bin ein Front-End-/UI-Entwickler. Ich mache keine Backend-Arbeit, ich würde mich niemals als Ingenieur oder Softwareentwickler bezeichnen, ich kenne keine Backend-Sprachen. Ich bin ein typischer Front-End-Entwickler mit einem sehr typischen Fähigkeitssatz. Meine gesamte Arbeit besteht darin, Objekte, die von unserer API übergeben werden, in unserer Webanwendung anzuzeigen, alles zu 100 % im Front-End. Wenn ich nicht wüsste, wie man Rekursion verwendet, würde ich keinen Tag in meinem Job überleben. Wie erwarten Sie, eine Benutzeroberfläche zu gestalten, ohne JS zu verwenden? Einfache Dinge wie die Darstellung eines Datensatzes basierend auf zwei Eigenschaften erfordern die gleiche Menge an Wissen (oder mehr) wie FizzBuzz. Außerdem haben Sie die StackOverflow-Antwort mit Ihrer Antwort verknüpft? Wenn Sie FizzBuzz nicht nur selbst nicht lösen können, sondern nicht einmal die Recherche betreiben können, um es auf eine andere Weise zu zeigen, die zeigt, dass Sie sich tatsächlich Gedanken gemacht haben, wie können Sie dann glauben, dass dies eine andere Antwort als ein Nein erhalten wird?
Ich möchte darauf hinweisen, dass es nichts Falsches daran ist, in einem Vorstellungsgespräch überfordert zu sein. Nachdem ich meine erste Webdesign-Stelle nach dem College hatte und feststellte, dass ich stattdessen ein Front-End-/UI-Entwickler sein wollte, dauerte es viele gescheiterte erste Anrufe und persönliche Vorstellungsgespräche sowie ein Jahr Selbststudium und miese persönliche Projekte, bevor ich bereit war, tatsächlich einen Entwicklerjob zu bekommen und ihn erfolgreich zu behalten. Wenn Sie kein Informatikstudium haben, müssen Sie es sich selbst beibringen. Menschen machen jeden Tag das durch, was Sie durchgemacht haben, aber anstatt eine lange Beschwerde zu veröffentlichen und die Schuld abzuschieben, gehen sie zurück und lernen die Fähigkeiten, die ihnen Probleme bereitet haben. Können Sie verstehen, warum die Leute das nicht ernst nehmen? Schauen Sie, jeder benutzt StackOverflow oder eine Google-Suche, wenn er feststeckt, aber wenn Sie etwas so Grundlegendes wie FizzBuzz nicht ohne Nachschlagen erledigen können, dann sind Sie nicht qualifiziert und werden mehr Schaden als Nutzen anrichten. Sie werden überfordert und unbehaglich sein, und das Unternehmen wird darunter leiden, Sie in seinem Team zu haben. Dafür sind Vorstellungsgespräche da, um zu sehen, ob Sie die für den Job erforderlichen Fähigkeiten besitzen.
Zweitens, wenn du Designer werden willst, das ist großartig. Webdesign ist ein toller Job, der von vielen Agenturen benötigt wird, und du wirst den ganzen Tag HTML/CSS schreiben und gestalten können. Wenn du Mockups und Demos erstellen möchtest, bewirb dich für UI-Designer-Positionen, und du wirst dieselben Fähigkeiten und dein UI-Know-how einsetzen können. Das habe ich getan, als ich daran arbeitete, gut genug darin zu werden, soliden Code zu schreiben, um einen Job als Entwickler zu bekommen, und es war lustig und erfüllend, auch wenn es nicht das war, was ich persönlich für immer tun wollte.
„Okay, um noch einmal ehrlich zu sein, mein JS-Wissen bezieht sich mehr auf UI/UX-basierte Aufgaben. Und ich verstehe den Sinn der Frage nicht wirklich. Zum Beispiel, was ist der Anwendungsfall? Wann würde das in der Rolle auftauchen?“
Das ist der Teil, der mich wirklich dazu brachte, das Mitgefühl zu verlieren, auch wenn ich Ihre Situation ursprünglich nachempfunden hatte, da ich vor einem Jahr in derselben unbequemen Lage gewesen war. Was ist der Anwendungsfall für FizzBuzz? UI/UX BASIERTE AUFGABEN! Das ist aber fast nebensächlich, denn wenn mich jemand so sarkastisch anbrüllen würde, während er gleichzeitig zeigte, wie unerfahren er auf diesem Gebiet war, würde ich ohne eine Sekunde Nachdenken ein automatisches „Nein“ geben. Alles, was ich sehen kann, ist, Sie in ein neues Projekt mit einer Sprache oder einem Framework einzubinden, das wir noch nie zuvor verwendet hatten, und Sie sagen: „Warum sollte ich wissen, wie man das macht? Das war kein Teil meiner Stellenbeschreibung.“
Drittens (dies richtet sich eher an die Kommentare als an den Artikel): Die „Einhorn“-Sache, die ich sowohl im Artikel als auch in einigen dieser Kommentare in Bezug auf Leute sehe, die UI/Design-Prinzipien sowie Skriptsprachen wie JS und Ruby kennen, ist lächerlich und ehrlich gesagt ein wenig traurig. JS und Ruby gelten absolut für das Frontend, besonders wenn man mit UI und nicht nur mit Design arbeitet.
Mir persönlich ist es egal, welchen Jobtitel Sie sich geben möchten, besonders in einer so seltsamen, multi-Nischen-Branche wie der Webentwicklung. Nennen Sie sich „Super-Raketengetriebener unglaublicher Web-Ingenieur“, wenn Sie wollen. Das Problem entsteht, wenn jeder, der sich Entwickler nennen möchte (was in Ordnung ist! jeder kann sich Entwickler nennen, das spielt keine Rolle), sich auf Entwicklerpositionen mit nur Kenntnissen in Design, Markup und Styling bewirbt und dann nicht bereit ist, die erforderlichen Fähigkeiten tatsächlich zu erlernen.
Zusammenfassend möchte ich wiederholen, dass ich Ihre Situation in einem schwierigen Interview mit Fragen, bei denen Sie sich unsicher sind, nachempfinde. Ich war dort und es ist mies. Es gibt Ihnen das Gefühl, unwürdig zu sein, und das ist das schlimmste Gefühl, das man an einem potenziellen Arbeitsplatz haben kann. Das war einfach der hundertprozentig schlechteste Weg, dem zu folgen.
Déjà-vu!
Diese Art von „Interviews“ und Stellenbeschreibungen ist in meinem Land üblich. Selbst wenn Sie als Designer und Entwickler (JS) gut sind, werden Sie nur Peanuts als Gehalt bekommen.
Die meisten Interviewer sind damit beschäftigt zu beweisen, dass sie besser sind als der Kandidat.
Ich komme auch aus Indien, und wenn mich jemand bitten würde, ein Problem wie FizzBuzz zu lösen, hätte ich es getan. Denn
Die Stellenanforderung sagt ein bisschen über JavaScript-Frameworks aus
Ich habe erwähnt, dass ich ein bisschen Wissen über JS und Frameworks habe
Ich bin kein Arschloch.
Aber das ist nur meine Ansicht und außerdem ist unser Land voller Manager, die keine Ahnung haben.
Es gibt einige FizzBuzz-Lösungen im Web, die etwas Mathematik erfordern, angefangen mit „Modulo“ (was im Grunde „der Rest nach der Division“ ist) und bis hin zu einigen wirklich esoterischen Dingen, die interessant sind, wenn man so etwas mag, aber man würde sie wahrscheinlich nie in einer Firma verwenden, wenn man wollte, dass andere Leute den Code warten, aber wenn man nicht in der Lage ist, FizzBuzz in mindestens einer Sprache auf mindestens eine Weise zu implementieren, ist man in dieser Sprache nicht so versiert, dass man sie in einem Lebenslauf erwähnt oder sich auf Stellen bewirbt, die sie erfordern.
Ich würde das als den einfachsten Weg betrachten. Er ist vielleicht nicht so „elegant“ wie andere Lösungen, aber er erledigt die Aufgabe, und solange Sie keinen Engpass in Ihrem Code identifiziert haben, ist es egal.
Möge dieses Stück wahnsinnig einfachen Codes Ihnen bei Ihren zukünftigen Unternehmungen helfen.
Hinweis: Ich habe diesen Code nicht von Stackoverflow.
Was wäre, wenn Sie stattdessen Folgendes gefragt würden, anstatt FizzBuzz: „Wir haben zwei CSS-Klassen, die zu Tabellenzeilenelementen in einem Tabellen-DOM-Objekt hinzugefügt werden müssen: eine davon zu jeder 3. Zeile und die andere zu jeder 5. Zeile – wie würden Sie dies in Javascript tun?“
Ich würde sagen, das war dein Fehler, jQuery-Kenntnisse sind nicht gleich JavaScript-Kenntnisse.
Ich stimme zu, dass die Anzeige den Eindruck erweckt, dass das Unternehmen einen Allrounder sucht. An den Orten, an denen ich gearbeitet habe, habe ich nie gesehen, dass dieselbe Person sowohl grafisches Design als auch Entwicklung betrieben hat, und ich habe keine gute Meinung über ein Unternehmen, das diese breite Palette an Kenntnissen verlangen würde.
Mir wurde diese Frage gestellt. Ich war überrascht, aber ich sah es als Herausforderung.
Ich konnte die Antwort finden, aber was sie wirklich testeten, war mein Denkprozess. Ich habe es mir zur Gewohnheit gemacht, laut zu denken. Das mache ich normalerweise nie.
Vorstellungsgespräche haben viel mehr „Show“ als tatsächliche Aufgaben. Ich verkaufe mich immer. Ich übertreibe in Bereichen, in denen ich mich wohlfühle, und bin offen in Bereichen, in denen ich keine Kenntnisse habe. Ich erzähle von coolen Projekten, an denen ich gearbeitet habe, usw.
Außerdem ist diese Frage nicht der Grund, warum du die Position nicht bekommen hast. Sie brauchen jemanden, der gut passt. Ich denke, sie haben dir einen Gefallen getan. Am besten ist ein Job, der für beide Seiten vorteilhaft ist.
Ich weiß nicht, warum mein Beitrag auf dich reagiert hat. Ignoriere es.
Ich bin erstaunt, dass fast jeder Kommentar hier das größere Problem übersehen hat: Es gibt in dieser Branche keine Standardisierung bei den Berufsbezeichnungen. Der „Entwickler“ eines Unternehmens könnte anderswo als „Designer“ betrachtet werden. Ein anderes Unternehmen sucht vielleicht einen „UX whatever“, obwohl es eigentlich einen Frontend-Entwickler sucht. Und „Strategist“? Vergiss es. Niemand hat eine Ahnung, was dieses Wort überhaupt bedeutet. Glaubst du mir nicht? Bitte sie, den Unterschied zwischen „Strategie“ und „Taktik“ zu erklären. Höchstwahrscheinlich erhalten Sie zwei Definitionen, die im Wesentlichen dasselbe bedeuten.
Oh, und ein weiteres Problem: Arbeitgeber müssen wirklich aufhören, Stellenbeschreibungen zu veröffentlichen, die jede erdenkliche Fähigkeit enthalten (oder von Stellenbeschreibungen anderer Unternehmen abschreiben). Wenn sie genau angeben, was die WIRKLICHEN Stellenanforderungen sind, können sie Äpfel mit Äpfeln vergleichen. Wenn sie eine Stelle ausschreiben, die alles von „mörderischen Fähigkeiten im Texten“ bis zu „Kenntnissen in Embedded Systems Engineering-Konzepten“ erfordert, können sie sich nicht wundern, wenn sie 8 Milliarden Lebensläufe von wild unterschiedlichen Kandidaten erhalten … oder gar nichts.
Es gibt wirklich keine Verwirrung bezüglich der Berufsbezeichnungen, wenn es um „Entwickler“ und „Designer“ geht. „Entwickler“ bedeutet, dass Sie programmieren. Unternehmen sagen selten „Entwickler“, wenn sie nicht „Programmierer“ meinen, und wenn doch, dann nur, weil sie es nicht besser wissen, zu 100 %. Bitte zeigen Sie mir eine Auflistung einer seriösen Agentur, die eine „Entwickler“-Auflistung hat, die keine anderen Dinge in der Auflistung enthält, die darauf hinweisen, dass sie einen Programmierer suchen. Selbst in Laras Auflistung gibt es mehrere offensichtliche Hinweise auf Programmierung. Sie listen sogar „OOP“ auf! Die Verwirrung kommt nicht von der Arbeitgeberseite oder sogar der Industrieseite, sie kommt von Bewerbern wie Lara und Ihnen selbst, die den Unterschied zwischen einem Entwickler und einem Designer nicht kennen und diese Wörter trotzdem willkürlich auf ihre Websites und Lebensläufe klatschen. Was „UX whatever“ betrifft. Das „whatever“ ist der wichtige Teil. „UX Designer“ beinhaltet nicht unbedingt Programmierung, kann aber je nach Auflistung der Fall sein. „UX Developer“ bedeutet *immer* Programmierung. „UX Strategist“ bedeutet fast immer eine Führungsposition und dass Sie ein gutes Verständnis sowohl für UX-Design als auch für Entwicklung haben sollten, auch wenn Ihre tatsächlichen Aufgaben diese Pflichten nicht umfassen – Sie geben oft UX-Richtung für andere Personen vor, die tatsächlich das Design und die Entwicklung übernehmen. Es ist wirklich nicht so kompliziert.
Im Zweifelsfall, ob Sie sich als Entwickler bezeichnen sollen oder nicht, tun Sie es nicht.
Die einfache Erklärung des Unterschieds zwischen Strategie und Taktik ist auch, dass Strategie ein weit gefasstes Ziel ist und Taktik auf ein spezifisches Ergebnis fokussiert ist. Ein UX-Stratege ist jemand, der eine Gesamtvision und einen Rahmen für das Benutzererfahrungsdesign eines Unternehmens liefert. Die spezifische Implementierung oder die „Taktiken“, die zur Erreichung der spezifischen Endziele jedes Projekts verwendet werden, werden den Personen überlassen, die diese Strategie umsetzen (Designer und Entwickler). UX-Strategie bedeutet also, was sie sagt.
Das ist urkomisch.
Personalvermittler sind zu faul, um zu lernen, was Kunden wollen, Kunden sind zu faul, um echte Stellenbeschreibungen zu erstellen, und wenn Teams keine präzisen Anforderungen zusammenstellen können, wissen sie nicht, was sie tun, und Sie wollen dort sowieso nicht arbeiten.
In vielen Interviews wurde ich mit Fizzbuzz konfrontiert, ich beende es und gehe, weil es ein sinnloser Test arbiträren Wissens ist, den ich niemals, niemals, NIEMALS verwenden werde. Ich benutze Ruby und Python für die Automatisierung, das war's. Nur weil ich Ruby und Python aufliste, macht mich das nicht zu einem Entwickler, und ich will auch kein Entwickler sein. Wenn ein Unternehmen nicht herausfinden kann, was meine Jobrolle beinhaltet, sind sie sowieso wertlos.
Die grundlegende Beschwerde ist berechtigt, ein Designer sollte kein gottgleicher Programmierer sein müssen. Aber diese Frage ist nicht so schwer. Es ist nur eine „for“-Schleife und zwei (oder drei, wenn man nicht klar genug darüber nachgedacht hat) „if“-Anweisungen
Eine Lösung, die in Python etwa 5 Minuten dauerte
Wenn du das nicht kannst, kannst du kein Excel-Diagramm über die Stunden erstellen, die du für Projekt X aufgewendet hast, du kannst keine JS-Funktion schreiben, die prüft, ob die Eingabe im E-Mail-Feld wirklich eine E-Mail-Adresse ist, du kannst kein Mock-up deines Designs schreiben. Es ist sehr berechtigt, dich durchfallen zu lassen, wenn du das nicht kannst.
Einen Designer zu bitten, QuickSort mit Javascript zu implementieren, ist zu viel, aber Fizzbuzz ist kaum die dümmste Programmierfrage, die möglich ist. Das Einzige, was einfacher wäre, wäre die Implementierung einer einfachen Ausgabe von 1 bis 100. Wenn Sie behaupten, JS zu kennen, ist implizit, dass Sie wissen, wie man eine Bedingung, eine Schleife und grundlegende Mathematik macht.
Aber generell stimme ich dem Beitrag zu, Sie wegen fehlender JS-Kenntnisse für eine UX-Position zu disqualifizieren, ist lächerlich.
Großartiger Artikel, Lara, und ich fühle mit.
Ich werde mit Stellenanzeigen von Personalvermittlern bombardiert, die das Unmögliche wollen – einen Assistenten für UI/UX-Design, der die gesamte Frontend-Codierung selbst übernehmen kann und mit den neuesten JS-Frameworks (Angular et al.) vertraut ist.
Diese Leute existieren *NICHT*.
Würde beispielsweise ein „Experte“ in Angular die Nuancen von responsivem Design verstehen? Wahrscheinlich nicht.
Wie wäre es mit Barrierefreiheit oder SEO-Best Practices?
Und wie „sauber“ wäre ihr CSS?
Usw. usw.
Wir müssen realistischer sein, was Frontend-/UI-Kenntnisse angeht. Und Personalvermittler auch.
Ich könnte stundenlang über dieses Zeug und das „Impostor-Syndrom“ schimpfen, aber ich habe einen Job zu erledigen.
:)
Okay, ich stimme also zu, dass Stellenbeschreibungen oft mangelhaft sind. Das liegt meist daran, dass es ein spezialisiertes Wissen erfordert, um eine spezialisierte Stellenbeschreibung richtig zu formulieren.
Wenn ich jedoch „Javascript“ in den erforderlichen Qualifikationen und „Erfahren mit objektorientiertem JavaScript und modernen JavaScript-Bibliotheken wie Ember, Backbone oder Angular.“ in den bevorzugten Qualifikationen sehe … muss ich zugeben, dass mich dies vermuten ließe, dass sie jemanden suchen, der die Art von FizzBuzz „programmatischem Denken“ *kann*. Schließlich beschreibt ihre bevorzugte Qualifikation einen framework-agnostischen JavaScript-Entwickler, jemanden, der gut genug im Programmieren ist, um Frameworks wie nichts zu wechseln.
Ist es unfair, es in den Abschnitt der bevorzugten Fähigkeiten anstatt der erforderlichen Fähigkeiten aufzunehmen? Vielleicht ein bisschen... aber andererseits ist bei der Qualität von Stellenbeschreibungen für Web-Technologie-orientierte Jobs die Grenze zwischen bevorzugt und erforderlich sehr verschwommen.
Die Beschreibung klingt, als ob sie einen Designer suchen, der die Grundlagen von JavaScript versteht.
Das Verständnis der Grundlagen würde die Fähigkeit einschließen, so etwas wie FizzBuzz zu tun.
Hallo zusammen! Chris Coyier hier. Inhaber dieser Seite. Professioneller Designer und Entwickler, seit 10 Jahren. Habe FizzBuzz vor zwei Wochen gelernt.
Auch Inhaber einer Jobbörse. Ich lerne aus erster Hand die Schwierigkeiten zwischen Jobsuchenden und Jobs, die Leute suchen, und die verwendete Sprache und den Prozess.
Auch der Betreiber einiger größerer Gemeinschaften. Gebe voll und ganz zu, hier eine Reihe von Kommentaren gelöscht zu haben. Das ist es, was ich tue. Das mache ich seit dem ersten Tag. Das ist mein Job als Community Manager.
Der Großteil dieser Diskussion war jedoch *großartig*, und das ist es, worauf Lara und ich gehofft hatten. Wir sind gerade zusammen auf derselben Webkonferenz. Wir lernen Neues und verbessern unser Verständnis und unsere Fähigkeiten in allen Dingen des Webs. Ich hoffe, ihr alle bekommt eines Tages die Gelegenheit, Lara kennenzulernen. Super klug. Großartige Lehrerin.
Ich denke, es ist völlig in Ordnung, nicht konstruktive Kommentare zu entfernen. Eine der Hauptregeln für eine konstruktive Diskussion ist, höflich zu bleiben. Ich habe hier viele Kommentare gesehen, die unnötig harsch oder unhöflich sind. Unhöflichkeit trägt nichts Konstruktives zur Konversation bei, daher bin ich völlig einverstanden damit, unhöfliche, harsche oder nicht konstruktive Kommentare zu entfernen.
Einige Leute schreiben, dass man nicht in diese Branche gehört, wenn man nicht „FizzBuzz“ kann. Das ist eine harte Aussage und es stimmt einfach nicht. Für jeden Kommentator hier, der ein FizzBuzz-Programm schreiben kann, gab es eine Zeit, in der er es nicht konnte. Sie haben sich die Zeit genommen, ihre Programmierkenntnisse zu erwerben und/oder zu verbessern, und jetzt können sie es. Und das kann Lara oder jeder andere, der diesen Artikel und diese Kommentare liest, auch, wenn sie wollen.
Es scheint auch eine Diskussion darüber zu geben, welcher Grad an Programmierkenntnissen erforderlich ist, um ein Webentwickler zu sein. Ich würde sagen, wenn Sie ein „Entwickler“ sein wollen, müssen Sie die Kunst des Programmierens lernen. Die Kunst des Programmierens beinhaltet sowohl die Theorie als auch die praktische Erfahrung, die zum Schreiben von gutem Code erforderlich ist.
Wenn Sie sich jedoch auf den konzeptionelleren Teil spezialisieren möchten, wie Design und/oder UX, sind grundsolide Programmierkenntnisse möglicherweise weniger wichtig – zumindest vorerst.
Nun, für die Leute, die mit Code arbeiten *müssen*, gibt es ein kniffliges Problem, das viele der harscheren Kritiker hier zu vergessen scheinen: Es braucht ein gewisses Maß an Programmierkenntnissen, um zu erkennen, dass man nicht so viel über Programmierung weiß.
Dies ist ein Wendepunkt, den viele Leute, die einfach nur „mit Code herumspielen“, noch nicht erreicht haben. Wenn Sie diesen Punkt jedoch erreicht haben, gut gemacht! Verbreiten Sie Ihr Wissen und helfen Sie anderen, ihre Fähigkeiten zu verbessern, um diesen Wendepunkt zu erreichen und zu überwinden. Das ist verdammt besser, als Ihren Kollegen zu sagen, dass sie Idioten sind, die nicht in diese Branche gehören…
@Chris, vielleicht ist dies ein guter Zeitpunkt, um einen Beitrag zu erstellen, der einige gute Ressourcen zusammenfasst, um mit grundlegenden Programmierkenntnissen zu beginnen?
Hallo noch einmal! Ich werde diesen Thread schließen. Wir sind über dem Niveau „mehr als die Hälfte Gift und Galle“, was für CSS-Tricks ziemlich verrückt ist. Das ist nicht die CSS-Tricks-Community, die spricht.
Aber gute Gespräche darüber sind weiterhin erwünscht! Fühlen Sie sich frei, mir direkt eine E-Mail an [email protected] zu senden, wenn Sie es mit mir besprechen möchten (nur dem Website-Besitzer, nicht dem Autor), oder bloggen Sie auf Ihrem eigenen Blog über dieses Thema. Altmodische Blog-Hin- und Her-Diskussionen gehören zu meinen liebsten Dingen überhaupt =).