Gibt es gemeinsame Erwartungen von Arbeitgebern, wenn sie einen Perl-Entwickler einstellen?
Was würden Sie einem Studenten empfehlen, der Perl und Linux mag und einen Job als Perl-Entwickler bekommen möchte?
Ich suche nach Dingen, die allgemein gehalten sind und auf die meisten / alle Perl-Positionen anwendbar sind , im Gegensatz zu spezifischen Details der Anforderungen eines bestimmten Unternehmens.
Mit anderen Worten, was sollte ich wissen können, um für JEDES Unternehmen, das einen Perl-Entwickler sucht, attraktiver zu werden?
Antworten:
Ein paar Punkte:
Als Perl-Entwickler erwartet so ziemlich jedes Unternehmen, dass Sie MEHR wissen als Perl. Selbst im reinen Perl-Shop müssen Sie (idealerweise) JavaScript / die gesamte Webentwicklung kennen. und SQL für Backend-Arbeit.
Und die meisten Unternehmen haben eine Mischung aus Sprachen, daher sollten Sie darauf vorbereitet sein, Perl / C ++ oder Perl / Java zu sein oder was auch immer sonst benötigt wird. So sehr mich die Tatsache auch beeindruckt, es gibt nicht allzu viele gute "Perl-only" -Läden, die mir bekannt sind.
Wie bei jeder Sprache würde ein Unternehmen von Ihnen erwarten, dass Sie die Sprache effektiv verwenden. Dies hat mehrere Facetten, einige sind in Perl wichtiger
Verfügbare Bibliotheken. Dies ist natürlich ein wichtiger Punkt für Perl. Eine gute Vertrautheit mit CPAN und das Wissen, welche Bibliotheken für bestimmte allgemeine Aufgaben als "Stand der Technik" / "am häufigsten" gelten, ist ein Muss.
Können Sie - ohne SO zu fragen - die "Standard" -Bibliothek zum Laden einer CSV-Datei rasseln? Zum Parsen von Daten aus einem HTML-Dokument? Zum Schreiben von Unit-Tests? Zum Verspotten von Objekten? Zum Generieren von JSON-Daten? Zum Lesen einfacher XML-Konfigurationsdateien? Für den Umgang mit bestellten Hashes? Zur Ausnahmebehandlung (Try / Catch-Logik)?
Das Gleiche gilt für Frameworks. Wissen Sie, wie Sie Unit-Tests für Perl-Module und Integrationstests für Perl-Code erstellen? Kennen Sie mindestens ein Web Templating Framework oder besser noch ein MVC Web Development Framework (Hinweis: Catalist :)? Wissen Sie, wie man Datenbankkonnektivitätsbibliotheken verwendet?
Kennen Sie die Interna von Perl? Können Sie mit XS-Modulen arbeiten oder zumindest den Code lesen?
Kennen Sie die Funktionen, die Perl in Bezug auf Ausdruckskraft zu einer einzigartigen Sprache machen, und wissen Sie, wie Sie sie verwenden? Können Sie ganz einfach nutzen
map
,grep
, Reguläre Ausdrücke, verschachtelte Datenstrukturen, Unterprogramm Referenzen? Wissen Sie, was Autovivifizierung ist und wie Sie damit 1 Zeile Perl-Code schreiben können, der einer Seite mit Java-Code entspricht ?Kennen Sie erweiterte Perl-Funktionen? Haben Sie Perl höherer Ordnung gelesen und können alle darin enthaltenen Techniken effektiv anwenden? Denken Sie daran, dass eine der Stärken von Perl darin besteht, dass es "fast Lisp" ist :) - Sie müssen also in der Lage sein, die Lispy-Stärken für Ihre Produktivität zu nutzen.
Wissen Sie, dass die Perl-Community als eines ihrer wichtigsten Vermögenswerte angesehen wird? Wissen Sie, an welche zwei Hauptorte Sie gehen müssen, um Perl-Fragen zu stellen?
Haben Sie am Perl-Tag auf StackOverflow teilgenommen - sowohl intelligente Fragen gestellt als auch versucht, Fragen zu beantworten (selbst wenn Sie die perfekte Antwort nicht kennen und selbst wenn sie bereits beantwortet wurde -, werden Sie durch die PRAXIS, zu antworten, zu einem viel besseren Perl Entwickler).
Als Perl-Entwickler würde das Unternehmen wahrscheinlich erwarten, dass Sie entweder mit Legacy-Perl (5.8 und früher) oder, wenn Sie Glück haben, mit Modern Perl umgehen können. Das heißt, Sie müssen sowohl wissen, wie Sie das Objekt auf die alte Art konstruieren (im Detail - wissen Sie, wie man mit Inside-Out-Objekten arbeitet? Wie man Standard-OO-Muster implementiert?) - als auch, wie man Elch-basierte OO macht; Catalyst MVC-Webentwicklung und DBIx ORM-Datenzugriff. Für letztere ist das Lesen von Modern Perl von chromatic ein Muss.
Ein Unternehmen erwartet von Ihnen, dass Sie sprachunabhängige Kenntnisse haben. Algorithmen, Datenstrukturen, Vernetzung, gleichzeitige Programmierung, GUI-Design, Unit-Tests, Betriebssystem-Interna (oder Externals - manchmal können Sie 30 Sekunden damit verbringen, ein Unix-Shell-Pipe-Tool zu erstellen, das selbst ein erfahrener Perl-Entwickler 1-2 Stunden zum Abpolieren benötigt - und manchmal würde ein guter Chef das bemerken :))
Ein Unternehmen würde erwarten, dass Sie mehr als ein Perl-Code-Affe sind. Haben Sie Kommunikationsfähigkeiten? Können Sie effektiv mit Benutzern und anderen Entwicklern kommunizieren? Können Sie klaren Code / Kommentare / Dokumentation schreiben? Schreiben Sie Ihren Code so, als wäre der nächste Entwickler, der ihn verwaltet, ein wütender Psycho, der weiß, wo Sie leben? Und was am wichtigsten ist: Sind Sie bereit, das Geschäft zu lernen, das Ihr Code unterstützt ? Der Wert eines Entwicklers steigt um eine Größenordnung, wenn er versteht, was seine Benutzer tun und wie und warum sie es tun, und dies in "Wie kann ich ihre Arbeit mit meinem Produkt effizienter gestalten" umsetzen kann.
quelle
Ich denke du hast ziemlich recht. Es hängt ganz davon ab, was die Besonderheiten eines Unternehmens erfordern, wie viel Erfahrung die bereits dort tätigen Personen haben und wie ihre Kundenbasis ist (dh welche Probleme sie lösen, um Umsatz zu generieren). Am besten lesen Sie einfach die Stellenausschreibungen durch und finden heraus, welche Probleme Perl-Entwickler lösen. Versuchen Sie, ein Unternehmen zu finden, das Ihnen ein Gleichgewicht zwischen Wachstum / Erfahrung, Kultur und Vergütung bietet, das mit dem übereinstimmt, was Sie suchen.
Für mich muss ich an der Lösung interessanter Codierungsprobleme beteiligt sein, und in diesem Bereich sind nicht alle Orte gleich. Zum Beispiel habe ich Interesse an Webentwicklung, Automatisierung, großen Datenmengen und Benutzererfahrung. Aus diesem Grund mag ich Orte mit Webanwendungen, die eine große und vielfältige Benutzerbasis haben, mit denen ich interagieren kann, um Feedback zu erhalten, was sie wollen, damit ich es für sie erstellen kann. Es ist ein Plus, wenn der Datensatz, an dem ich arbeite, groß / komplex ist (weil mir das Spaß macht) und wenn es Möglichkeiten gibt, Automatisierungsskripte zu schreiben (z. B. Stapelverarbeitung zum Versenden von E-Mail-Benachrichtigungen, regelmäßige DB-Bereinigungs- und Massageaufgaben, automatisierte Berichte , usw.).
Welche Art von Code schreiben Sie in Ihrer Freizeit, wenn Sie nicht für den Unterricht codieren? Versuchen Sie, einen Ort zu finden, an dem dieselbe Art von Code geschrieben wird.
quelle
Zusammen mit den von @DVK und anderen Entwicklern erwähnten Punkten suchen Unternehmen möglicherweise nach guten C-Programmierkenntnissen, da aus Leistungsgründen viele Parsing-Module in C geschrieben sind, sodass Sie manchmal für einige Probleme debuggen müssen. Also besser, wenn Sie Code in C-Sprache kennen.
quelle