Gibt es Nachteile bei einem Job, bei dem ich eine einzigartige Programmiersprache verwende? [geschlossen]


37

Ich habe gerade mein Studium mit einem Abschluss in CS abgeschlossen und möchte einen Job finden, bei dem ich mehr über das Gebiet lernen und Berufserfahrung sammeln kann.

Ich habe ein Interview mit einer Firma geführt, die ihre eigene Programmiersprache verwendet, und ich glaube, keine anderen verwenden sie. Sie haben nicht erwähnt, dass sie andere Sprachen verwenden oder was sie für eine Entwicklungsumgebung verwenden.

Was muss ich tun, wenn ich so einen Job annehme? Wenn ich später den Job wechseln würde, müsste ich dann erneut nach Einstiegspositionen suchen, weil ich keine sprachspezifischen Erfahrungen gesammelt habe?


8
Die Sprache wird nicht wichtig sein, solange Sie sich mit Ihrer Arbeit, dem Arbeitsumfeld und Ihrer Verantwortung wohl fühlen.
Marcelo

5
Wenn Sie mit einem CS-Abschluss abschließen, haben Sie die Möglichkeit, neue Dinge zu lernen. Sie werden ständig mit Situationen konfrontiert, in denen Sie eine neue Sprache oder Technologie erlernen müssen, und dies ist nicht anders. Was Sie von Job zu Job mitnehmen, ist die Erfahrung beim Lösen von Problemen. Die Syntax einer bestimmten Sprache kommt für die Fahrt mit.
Chris

11
Ist die proprietäre Sprache MUMPS zufällig?
R0MANARMY

3
Wenn es Wasabi ist ( blog.fogcreek.com/the-origin-of-wasabi ) - nimm es!
Gerry

3
@ DaveShaw: Und die Leute rennen immer noch mit den Bullen. Macht es nicht unbedingt zu einer guten Idee;).
R0MANARMY

Antworten:


28

Die Hauptnachteile:

  • Das Arbeiten in einer "benutzerdefinierten Umgebung" kann zu einer Einschränkung der Tools / des Supports führen, die ärgerlich sein kann, wenn Sie bei einem Problem stecken bleiben.
  • Die Sprache, die sie verwenden, ist möglicherweise schlecht gestaltet, was dazu führt, dass Sie schlechte Gewohnheiten frühzeitig erkennen und Hacky-Code schreiben, um Problemumgehungen zu erstellen.
  • HR-Baffoons erkennen Ihre Erfahrung nicht. (Das ist in Ordnung. Ein Unternehmen, das sich bei technischen Einstellungen auf die Personalabteilung stützt, ist nicht die Art, für die Sie normalerweise arbeiten möchten. Nach ein paar Jahren kommen die meisten großartigen Jobs ohnehin über Verbindungen.)

Wenn ich es wäre, würde ich sie fragen, warum sie eine Inhouse-Sprache verwenden. Wenn es aus einem legitimen Grund, wie verrückten Hardware-Beschränkungen, eine Domäne ist, die in keiner der vorhandenen Sprachen leicht modelliert werden kann, ist dies völlig in Ordnung. Auf der anderen Seite ist dies eine große rote Fahne, wenn ihre Antwort darauf hindeutet, dass sie ihre eigene Sprache entwickelt haben, um eine Menge Hacks und Geschäftslogik zu einer Menge verrückter Makros zusammenzufassen. Sie möchten sicherstellen, dass sie gute technische Prinzipien anwenden, damit Sie daraus lernen und mit ihnen erfolgreich sein können.In diesem Fall können Sie sehen, ob sie es rational rechtfertigen können, eine einheimische Sprache zu verwenden, die nicht über eine Community-Wissensbasis und externe Unterstützung verfügt. Sie werden vielleicht feststellen, dass ihre Entscheidung vollkommen rational ist (ich glaube, Facebook hat eine eigene Version von PHP entwickelt, um mit der Skalierbarkeit umzugehen, was für sie ziemlich gut funktioniert hat), oder Sie werden feststellen, dass sie eine Monstrosität einer Sprache geschaffen haben, die dies war eng mit ihren Kernsystemen verbunden, dass sie sich nicht davon zu lösen scheinen. Vertrauen Sie mir, Sie möchten nicht in einer Sprache arbeiten, deren Kerndatentyp ImARInObj (Immutable Accounts Receivable Invoice Object) heißt. In solchen Situationen kommt es häufig zu einer engen Kopplung zwischen einer Sprache und einem Geschäftsbedürfnis, und es wäre ein absoluter Albtraum, jeden Tag mit einem solchen System umzugehen.


12
Eigentlich ist es nicht in Ordnung, weil HR-Baffoons die meisten Einstellungen vornehmen, auch für viele gute Unternehmen ...
Cervo

1
Ich würde den Tools / Support zustimmen. In meinem alten Job verwendeten wir eine benutzerdefinierte Datenzugriffs-Engine. Ich kann Ihnen nicht sagen, wie oft ich die Ausbreitung von Laufzeitfehlern überprüfen wollte, aber ich musste mich daran erinnern, dass dies eine interne Sache war. Sie können nicht einmal Fragen an stackoverflow senden, um Hilfe zu erhalten. Sie sind der Gnade Ihres Unternehmens ausgeliefert und es ist besser, wenn Sie dafür sorgen, dass sie Dokumente mit nützlichen Informationen, einen Abschnitt mit häufig gestellten Fragen (FAQs) und eine Dokumentation zur Behebung dieser quälenden, unvorhergesehenen Probleme haben, deren Aufspüren normalerweise Stunden in Anspruch nimmt. Es war ziemlich schlimm. Ich bin froh, wieder bei NHibernate zu sein.
A-Dubb

"Sie können nicht einmal Fragen an Stackoverflow senden, um Hilfe zu erhalten." Was wäre, wenn Sie eine der Personen, die das interne Netzwerk unterhalten, davon überzeugt hätten, einen internen SO-Klon einzurichten?
JAB

Ich bin auf ein ähnliches Problem gestoßen. Sehr spezialisierte Sprachen ohne Benutzerbasis haben Probleme mit ihren Werkzeugen. Eine Option, die ich verwendet habe, ist, ein zahnähnliches Werkzeug zu nehmen und Code zu schreiben, um den Code zu schreiben. Vor allem, wenn es sich viel um Boilerplate handelt.
Spencer Rathbun

96

Lauf weg und lauf schnell weg. Dies ist eine Situation, der Sie aus dem Weg gehen möchten, es sei denn, Sie sind verzweifelt nach einem Job und haben großen Hunger.

Ich habe Erfahrung mit einem Unternehmen, das dies tat, und der einzige Grund, warum sie dies taten, war, dass ihre Mitarbeiter keine aussagekräftigen, übertragbaren Erfahrungen sammelten. Es ging wirklich nur um Kontrolle.

Andere, die hier sagten, dass "Programmieren ist Programmieren", haben Recht, aber ich würde es auf den Kopf stellen und fragen, warum nicht eine Standardsprache verwenden, für die externe Unterstützung, Bibliotheken, Foren und ein Pool verfügbarer Programmierer zur Auswahl stehen von?

Das einzige Mal, wenn ich denke, dass eine solche Situation in Ordnung wäre, wäre es, wenn die Nur-Firmensprache für kundenspezifische Hardware wäre. Sie müssen beispielsweise alles für das 9000X-Gamma-Ray-Interferometer mit einem für dieses Gerät spezifischen Baugruppen- / Maschinencode schreiben.


21
Der potenzielle Mangel an Support und Dokumentation (ich habe noch nie erlebt, dass Inhouse-Tools so gut dokumentiert sind wie Standard-Tools) ist ein großes Problem, IMO. Und die Gründe für diese Vorgehensweise müssen gut verstanden werden.
Ethel Evans

15
+100 Denken Sie nur darüber nach ... die nächste Stelle, die Sie suchen, hat eine Standardsprache, mit der Sie keine Jahre Berufserfahrung haben. Sie werden wieder ganz von vorne als Junior-Entwickler anfangen.

2
Was ist, wenn er über Google spricht und die Sprache sawzall ( labs.google.com/papers/sawzall.html ) oder Go (bevor es öffentlich war) ist? Gibt es keine anderen guten Gründe, eine neue Sprache zu erfinden?
Neil G

3
@Neil - Viele gute Gründe, und die Leute nennen sie normalerweise kleine Sprachen, DSLs (domänenspezifische Sprachen) oder (im Fall von Google) "die nächste große Sache". Ich habe sicherlich nichts gegen proprietäre Sprachen. Das OP sagte, dass dies die einzige Sprache ist, die verwendet wird. Google hat nichts gegen Standardsprachen.
unpythonic

3
Ich mag die Idee, sich mit den Motivationen des Unternehmens zu befassen, aber meiner Meinung nach ist es keine Idee, eine eigene Sprache zu erfinden, um Ihre Mitarbeiter in die Falle zu locken. Stattdessen hat mit ziemlicher Sicherheit jemand eine Sprache erfunden, um ein bestimmtes Problem zu lösen, und jetzt wird sie hauptsächlich aus alten Gründen verwendet. Keine ideale Umgebung, aber immerhin gutartig.
Tyler

22

Da Ihr Lebenslauf nach Ihrem Abschluss im Grunde genommen leer ist, bringt Ihre erste Stelle viel Schwung in Ihre berufliche Zukunft. Ihr nächster potenzieller Arbeitgeber wird diesem Job viel Gewicht beimessen. Wenn Sie also nicht auch in anderen (marktfähigeren) Sprachen programmieren, würde ich Ihnen dringend empfehlen, diesen Job nicht anzunehmen.

Ich sage dies aus Erfahrung, weil ich gerade meinen ersten Job nach dem Abschluss meines CS-Studiums verlassen habe, wo ich in einer Position war, die fast genau Ihrer Beschreibung entspricht. Der größte Teil der Programmierung erfolgte in einer im Grunde unbekannten Sprache namens Progress (auch bekannt als OpenEdge ABL). Es ist schrecklich. Nicht so schlimm wie COBOL, aber nah dran. Ich saß dort fest, weil es in der Gegend, in der ich meinen Abschluss gemacht habe, nicht viele Programmierjobs gibt und ich darauf wartete, dass meine Frau vor dem Umzug ihren Abschluss machte.

Es war fast unmöglich, diese Sprache mit anderen Sprachen oder Datenbanken in Kontakt zu bringen (es war auch mit einer eigenen proprietären Datenbank verbunden - Bonus!). Ich habe viel Zeit damit verbracht, selbst Frameworks zu schreiben, die bereits in anderen Sprachen vorhanden waren, und sie wurden wahrscheinlich bereits besser implementiert, da die Sprache diese Art von "Erweiterungs" -Paradigma nicht sehr gut unterstützte. Die Sprache war eher auf einen "Kontakt mit Progress Corp. mit einer Funktionsanforderung" zugeschnitten, und warten Sie bis zur Version n + 1 auf den neuen Funktionsansatz. Es ist unnötig zu erwähnen, dass die Softwareindustrie nicht langsam genug ist, um einen gangbaren Ansatz zu finden. Ich werde nicht weiter darüber reden, wie schlimm es war, aber ich gehe davon aus, dass Sie mit einer ähnlichen Situation konfrontiert werden, wenn Sie sich ebenfalls mit einer proprietären Sprache befassen.

Hinzu kommt, dass die vorhandene Codebasis suboptimal war. Viele alte Codes stammen aus den späten 80ern / frühen 90ern. Ich würde wetten, dass Sie etwas Ähnliches erwarten sollten, da ich denke, dass die meisten Unternehmen nur bei den proprietären Sprachen bleiben, weil sie einen Großteil dieses alten Gepäcks mit sich führen. Denken Sie daran, dass es für einen solchen Arbeitgeber wahrscheinlich schwierig ist, Programmierer zu finden, die bereit sind, in dieser alten / proprietären Umgebung zu programmieren. Außerdem müssen sie wahrscheinlich auch für die Schulung bezahlen, da noch niemand davon gehört hat. Aufgrund des Dead Sea-Effekts werden Ihre Mitarbeiter wahrscheinlich auch keine Titanen des Software-Engineerings sein(Wer Talent hat, ist wahrscheinlich schon gegangen). Ich hatte große Probleme bei Code-Reviews, die versuchten, objektorientierten Code zu verwenden, geschweige denn irgendwelche Designmuster, da sie es einfach nicht verstanden (die Leute in meinem Team hatten bestenfalls einen MIS-Abschluss (kein Vergehen) )).

Angenommen, Sie übernehmen diese Aufgabe, möchten aber nach Ihrer Abreise etwas Besseres tun. Um für Ihre nächste Aufgabe wettbewerbsfähig zu sein, müssen Sie entweder viel Freizeit außerhalb der Arbeit opfern, um zerbrechliches Spielzeug in marktfähigeren Sprachen zu erstellen (und wahrscheinlich das meiste von dem, was du machst, Open Source) oder mache, was ich getan habe, und spare etwas Geld, bevor du aufhörst und ein oder zwei Monate damit verbringst, dasselbe zu tun. In jedem Fall ist dies eine sehr stressige Angelegenheit, besonders wenn Sie es genießen, soziale Beziehungen außerhalb der Arbeit zu pflegen oder Ihre Freizeit damit zu verbringen, etwas zu tun, das nicht ab und zu programmiert wird.

Meine Erfahrungen lassen sich möglicherweise nicht direkt auf Ihre Wahl übertragen, aber ich bin sicher, dass einige davon zutreffen werden. Hoffentlich gibt es dir wenigstens ein paar Fragen, die du zur Sprache bringen kannst. Wie bereits erwähnt, möchten Sie wahrscheinlich herausfinden, welche Tools sie verwenden (Hardware, Software-Entwicklungsumgebung / IDE und definitiv Versionskontrolle). Der Joel-Test könnte ein nützlicher Leitfaden sein.

TL; DR

Tu es nicht.

PS: Für diejenigen, die sagen, dass das Erlernen einer neuen Sprache nützlich ist, ist das allein wahr. Das Problem besteht darin, dass Sie diese Sprache über einen längeren Zeitraum fast ausschließlich auf Vollzeitbasis verwenden und sich nicht mehr mit nützlicheren Sprachen (und Techniken) auseinandersetzen müssen. Das wollen Sie vermeiden.


Dies. So etwas ist gut für einen bequemen, stressfreien Job, der bis zu Ihrer Pensionierung anhält. Es ist kein guter Weg, eine Karriere zu starten.
Wayne Molina

Das ist ein schrecklicher Gedanke @Wayne: Lernen Sie eine proprietäre Sprache, die gerade nicht in der Schule ist, und verwenden Sie diese Sprache dann 50 oder mehr Jahre lang ausschließlich ...
Morgan Herlocker

Furchterregend ist das leicht gesagt. Vergiss die Tatsache , wenn Sie jemals gefeuert wurden oder das Unternehmen ging unter, dann würden Sie haben null vermarktbare Fähigkeiten von Wert für jeden. Sie hätten genauso gut nicht in der Geschäftswelt existieren können.
Wayne Molina

Ich habe gerade einen Vertrag bei einem mittelgroßen Unternehmen abgeschlossen, dessen Kernsystem in Progress geschrieben ist - es ist nicht so unbekannt. Zum Glück war ich einer der neuen .NET-Codierer, die über Webservice-Aufrufe mit dem System verbunden sind. Sie haben es immer noch geschafft, Progress-Codierer zu bekommen, wann immer sie sie brauchten.
Dave

16

Der offensichtliche Nachteil ist, dass Sie diesen Job nicht zur Anforderung "5+ Erfahrung mit Sprache x" hinzufügen können, die die zukünftigen Jobs haben, für die Sie sich bewerben möchten. Dies kann ärgerlicher sein, als Sie vielleicht denken (wenn Sie als jemand sprechen, der über langjährige Erfahrung verfügt, aber über eine breite Palette von Programmiersprachen verfügt). Ich habe Berufserfahrung mit VBA, die genauso gut Erfahrung mit LOLCODE hätte sein können, basierend auf den Jobs, die ich heute suche.

Aber benutzen sie diese Sprache ausschließlich? Es ist selten, dass ein Unternehmen nur eine Sprache verwendet. Sogar meine Zeit mit VBA umfasste einige ASP, Java und PostgreSQL.


Ich habe meine Frage bearbeitet, um sie genauer zu formulieren. Sie haben bisher keine anderen Sprachen erwähnt, deshalb muss ich sie danach fragen, wenn ich das nächste Mal mit ihnen spreche.
AlexMA

3
Tatsächlich habe ich Probleme, weil ich einen Java-Job haben möchte und meine ganze Erfahrung in .NET ist, so dass mich niemand einstellen wird und sie SEHR ähnlich sind. Mit einer völlig benutzerdefinierten Sprache werden Sie es noch schwerer haben. Personalabteilung und die meisten Personalvermittler sind Trottel und denken, Sie brauchen 5 Jahre Erfahrung in jeder Technologie, die Sie berühren ....
Cervo

8

Ich stimme dem Mantra zu: " Programmieren ist Programmieren ", unabhängig davon, in welcher Sprache Sie gearbeitet haben. Bei so viel Programmieren wird das Denken gelernt, und der Rest ist nur Syntax. Ein potenzieller zukünftiger Arbeitgeber ist mehr beeindruckt von " Ich habe X mit Unternehmen Y erreicht " als von " Ich kenne X seit Y Jahren ".

Der letzte Job, den ich annahm, war mit viel PL / SQL-Arbeit verbunden, und ich hatte noch nie eine einzige PL / SQL-Zeile geschrieben - ich habe sie in etwa zwei Wochen gelernt.

Das heißt, ich würde definitiv mit anderen Sprachen üben, nur um auf dem Laufenden zu bleiben. Haben Sie ein oder zwei Lieblingsprojekte, die Ihren Programmierarm mit einer Standardsprache in Form halten, aber nicht zu viel Aufhebens machen.


Das war mein Plan. Schreiben Sie an Wochenenden eigene Apps (oder was auch immer), um meine Fähigkeiten mit Technologien zu verbessern, an denen ich interessiert bin. Brian erwähnt jedoch, dass ich möglicherweise nicht die Qualifikationen für Stellenausschreibungen erhalte, für die X Jahre Erfahrung in Sprache Y erforderlich sind Sie benötigen eine gewisse PL / SQL-Erfahrung?
AlexMA

@Alex: "... kann möglicherweise nicht die Qualifikation für Stellenausschreibungen erlangen, für die X Jahre Erfahrung mit Sprache Y erforderlich sind." Wenn Sie einen bestimmten Job annehmen, verpassen Sie andere Möglichkeiten.
Chris

2
@ Chris Ja ... aber es ist ein bisschen anders, wenn du "FooBar" lernst und keine Hoffnung hast, das auf eine andere Firma zu übertragen, die auch "FooBar" verwendet. Wenn Sie PHP lernen ... sicher, dass Sie nicht C lernen ... aber es gibt Tonnen von Unternehmen, die für PHP bezahlen.
WernerCD

3
-1 Dies ist die richtige Antwort, aber nicht für diese Frage.
Wilhelmtell

2
"Ein potenzieller zukünftiger Arbeitgeber wird mehr beeindruckt sein von" Ich habe X mit Unternehmen Y erreicht "als von" Ich kenne X seit Y Jahren "." --- Meine Erfahrung auf beiden Seiten von technischen Interviews war genau das Gegenteil davon.

6

In der IT hat das Unternehmen oft mit Personalvermittlern zu tun, um gute Kandidaten zu finden. Personalvermittler sind keine IT-Spezialisten, haben also einige Kriterien und passen Kandidaten an und senden sie dann an das Unternehmen zurück. Es geht genauso mit Humman-Ressourcen in großen Unternehmen.

Du hast ein Problem damit. Sie passen nicht in die Kriterien des Personalbeschaffers. Ich würde also sagen, dass es kein Problem ist, Ihre Konkurrenten zu überwachen. Programmierung ist Programmierung, und ein solider Programmierer sollte wissen, wie man von einer Sprache in eine andere wechselt, da die Syntax weniger wichtig ist als zu wissen, wie man zuverlässigen Code, testbaren Code und wartbaren Code ausführt. Diese Fähigkeiten sind meist sprachunabhängig.

Solange Sie jedoch nicht mit den Kriterien übereinstimmen, nach denen Sie von keinem IT-Mitarbeiter eingestellt wurden, wird es wahrscheinlich schwierig sein, eine zukünftige Anstellung zu finden. Auch wenn Sie sowieso konkurrenzfähig sein werden. Diese Personen wissen nicht, wie sie das beurteilen sollen, weil sie keine IT-Mitarbeiter sind.

Ich würde diesen Job definitiv nicht für einen ersten empfehlen. Wenn Sie jedoch bereits einen Eintrag in Ihrem Lebenslauf über weit verbreitete Technologien (Java, PHP, C, C ++, C #, ...) haben, können Sie diesen wählen, wenn Sie möchten.


Vielen Dank für Ihre Erkenntnisse über Personalvermittler. das hört sich richtig an.
AlexMA

5

Es gibt definitiv Fähigkeiten, die Sie mit proprietären Sprachen und Umgebungen erlernen / verbessern können. Wie bereits in anderen Antworten erwähnt, gehen einige Fähigkeiten über die Sprache hinaus und können in einem Lebenslauf sehr wertvoll sein.

Diese Fähigkeiten werden jedoch häufig übersehen, wenn die Personen, die die Lebensläufe überprüfen, nicht technisch sind. In vielen Fällen (im unteren Bereich des Spektrums der Jobqualität, das leider häufig die beste Wahl für relativ unerfahrene Entwickler ist) werden die Lebensläufe in erster Linie nach x Sprachjahren und den anderen Fähigkeiten bewertet, auf die Sie möglicherweise nicht gekommen sind spielen Sie, bis Sie mit einem Interview einen Fuß in die Tür bekommen haben.

Ein weiterer zu berücksichtigender Faktor ist, dass proprietäre Umgebungen (zumindest imo) mit größerer Wahrscheinlichkeit schlecht gestaltet, klug und im Allgemeinen frustrierend sind als Mainstream-Umgebungen. Die ausschließliche Arbeit in einem schlechten proprietären System kann sehr entmutigend sein, insbesondere für jemanden, der gerade eine Karriere in der Programmierung beginnt.

Denken Sie jedoch daran, dass die Erfahrung mit einem proprietären System zwar nicht so gut ist wie die Erfahrung mit gängigen Standardsprachen, aber bei weitem immer noch besser ist als keine Erfahrung. In einigen Positionen haben Sie einen Vorsprung über das Einstiegsniveau hinaus, und in anderen Positionen können Sie sich zwar für bestimmte Sprachen als Einstiegsniveau qualifizieren (oder auch nicht), aber Ihre Erfahrung wird Sie den meisten anderen Teilnehmern deutlich voraus sein für diese Jobs.

Bevor Sie ein Angebot ablehnen, weil Sie sich auf eine proprietäre Sprache konzentrieren, sollten Sie den aktuellen Stellenmarkt und den allgemeinen Eingang Ihrer Bewerbungen berücksichtigen.


3

Es kommt darauf an, welche Hilfssprachen und Fähigkeiten Sie erwerben. Wenn ihre Inhouse-Sprache in der Tat außerhalb des Unternehmens nicht verwendet wird oder gar nicht bekannt ist, hat dies nur eingeschränkte berufliche Vorteile (es sei denn, es könnte herausplatzen und die nächste große Sache sein). Ich habe einige Jahre mit Tools von Drittanbietern gearbeitet, die für mich (beruflich) nutzlos sind. Durch die Arbeit an diesen Projekten haben sich jedoch meine HTML-, CSS- und Javascript-Kenntnisse verbessert. Ich habe auch viel darüber gelernt, wie Unternehmensprojekte ausgeführt und strukturiert werden, wie man mit Kunden umgeht und wie man mit Erwartungen umgeht. All die Dinge, die zur modernen Softwareentwicklung gehören und nicht die eigentliche Sprache sind.


Ich habe meine Frage bearbeitet und festgestellt, dass sie keine Hilfssprachen erwähnt hat. jedoch gute Punkte über nicht sprachspezifische Fähigkeiten.
AlexMA

2

Was ist mit dem Framework: IDE, Editor, Bibliotheken? Die komplexesten Geschäftsanwendungen. An diesen Tagen kann nicht mit einem Nur-Text-Editor und Befehlszeilen-Compiler durchgeführt werden.

Haben sie etwas davon für ihre eigene Programmiersprache?


Guter Punkt. Wieder haben sie es nicht erwähnt. Ich muss fragen.
AlexMA

2
Manchmal sind die proprietären IDEs / Toolsets augenfällig schlecht (ich habe mit einigen gearbeitet).
FrustratedWithFormsDesigner

2

Oft ist das Erlernen eines Geschäfts wichtiger als das Erlernen einer Technologie. Wenn Sie der Meinung sind, dass Sie in der Branche bleiben möchten, in der sich dieses Unternehmen befindet, dann machen Sie weiter. Wenn es ein Nischenmarkt ist, oder einer, an dem Sie nicht besonders interessiert sind, dann würde ich vorschlagen, ihn zu überspringen. Das Wissen über die Besonderheiten der Pharmakokinetik und den Wirkstoffentdeckungsprozess wird Türen öffnen, die ein weiterer C # / Python / Java-Programmierer nicht öffnen wird. Und wenn diese "einzigartige" Sprache nicht eher ein Codegenerator oder -konfigurator ist, werden Sie weiterhin häufig auftretende Probleme lösen, sodass Sie immer noch allgemeine Erfahrungen sammeln, auch wenn die spezifischen Techniken möglicherweise nicht direkt übertragbar sind.


Das auch. Die einzige Möglichkeit, wie dieser Job von Vorteil sein kann, besteht darin, dass Branchenkenntnisse hilfreich sind und Sie in den eigentlichen Geschäftsbereich einsteigen möchten. Wenn Sie ein Entwickler bleiben möchten, in den unsterblichen Worten von Admiral Ackbar,IT'S A TRAP!
Wayne Molina

2

Ich würde es in Betracht ziehen, wenn und nur wenn Sie viel Erfahrung in anderen Sprachen haben können. Wenn Sie tun , um den Job nehmen, können Sie (und sollte) halten Sie Ihre Fähigkeiten mit Mainstream - Sprachen durch die Arbeit an Open-Source - Projekte in Ihrer Freizeit.

Was Sie vermeiden möchten, ist die Möglichkeit, dass Ihre Fähigkeiten stark auf dieses eine Unternehmen abgestimmt und nicht auf andere übertragbar sind. Technisch gesehen ist Programmieren Programmieren, und Erfahrung außerhalb einer einzigen Programmierumgebung ist vorteilhaft und nicht schädlich, da Sie Probleme klarer erkennen können.

Stellen Sie sich das so vor: Wenn Sie einen Job beim Schreiben von Perl-Programmen annehmen, bedeutet das nicht, dass Sie für immer Perl-Programme schreiben müssen. Ein Job in .NET kann Sie auch nicht dazu verurteilen, für immer an Microsoft gebunden zu sein.

Aber hier ist der wichtige Teil: Ich würde niemals einen Programmierer einstellen, der nur eine Sprache beherrscht , selbst wenn es die ist, die er verwenden soll. Ein Programmierer, der nicht viele Erfahrungen in vielen Sprachen hat, ist oft selbst mit der Sprache seiner Wahl arm. Es spiegelt auch den Mangel an Ehrgeiz wider, neue Dinge zu lernen.

Wenn ein Programmierer hingegen Python, Ruby, C #, PHP, C und Erlang kennt, ist die Tatsache, dass er auch APL kennt, kein Schlag gegen ihn, obwohl es in der Hölle keine Chance gibt, dass wir APL verwenden würden etwas.

Wenn Sie also die Disziplin haben, die Sprache nicht zu Ihrem alleinigen Fokus zu machen, dann nehmen Sie den Job an.

Und es lohnt sich noch einmal zu erwähnen: Tragen Sie zu Open-Source-Projekten bei. Sie zählen für Tonnen mehr als "Berufserfahrung", weil es nicht etwas ist, was Sie gerade getan haben, um einen Gehaltsscheck zu machen. Programmierer, die an Open-Source-Projekten arbeiten, sind wie Gold.


2

Mein erster Job nach dem Abschluss meines CS-Studiums bestand darin, mich mit einer dunklen Sprache zu entwickeln. Nicht einzigartig. Nicht im eigenen Haus entwickelt. Aber ein VMS 4GL, das so dunkel ist, dass ich nie jemanden gesehen habe, der es benutzt hat.

Rückblickend war dies eine unkluge Entscheidung. Während ich in diesem Job viel über die professionelle Softwareentwicklung gelernt habe, wäre es viel besser gewesen, auch marktfähige Sprachkenntnisse zu entwickeln, die mit den "Soft Skills" einhergehen.

Ich hatte Glück - mein zweiter Job war die Arbeit mit einem anderen obskuren VMS 4GL. Sie stellten mich ein, weil sie wussten, dass sie keine Leute finden konnten, die die Sprache bereits beherrschten - die Tatsache, dass ich Erfahrung auf der VMS-Plattform mit einer 4GL hatte, reichte aus. Bei diesem Job hatte ich die Gelegenheit, mich in einer marktfähigen Sprache ausbilden zu lassen, als sie sich von VMS zu Windows-Servern abwandten.

Aber ich hätte dieses Glück leicht nicht haben können und fand mich fünf Jahre in meiner Karriere mit absolut null Erfahrung wieder, die einen Personalvermittler oder eine HR-Person dazu bringen würde, meinen Lebenslauf anzusehen.

Für deinen ersten Job nach dem Abschluss empfehle ich es wirklich, wirklich nicht.


2

Um eine Meta-Antwort zu geben, habe ich bemerkt, dass viele Antworten sagen: "Aus persönlicher Erfahrung ist dies eine schlechte Sache."

Viele andere sagen: "Theoretisch muss das nicht schlecht sein."

Aber keine der Antworten, die ich gesehen habe, ist von Leuten, die etwas Ähnliches gemacht haben und dachten, dass es eine gute Erfahrung war.

Nun, vielleicht haben einige Leute das getan und sind begeistert von ihren Jobs, aber nicht bei Stack Exchange. Dies gilt für einige kommerzielle Software. Zum Beispiel gibt es einige wirklich engagierte Software AG Natural / Adabas-Administratoren, aber es gibt nicht viele verwandte Diskussionen zu Stack Exchange. Zumindest sucht aber jemand auch diese Nischenspezialisten. Das würde für eine völlig proprietäre Sprache nicht zutreffen.

Wenn das Ziel darin besteht, auf die hier diskutierten Technologien zuzugehen, deutet die Tatsache, dass nur wenige dies aus realer Erfahrung bestätigen, darauf hin, dass dies nicht unbedingt der beste Start ist. Es kann nicht der Kuss des Todes sein. Aber Sie möchten daran arbeiten, dass es nicht zu einer fürchterlichen Blockade wird, indem Sie beispielsweise ein Open-Source-Projekt starten oder dazu beitragen, das mit Ihren Ambitionen zusammenhängt.


1

Nehmen Sie den Job an, wenn Sie der Meinung sind, dass es gute / großartige Programmierer gibt, die Ihnen helfen und Sie betreuen. Man könnte meinen, ein Ort, an dem dies geschieht, hat ziemlich gute Leute, kann sich aber nicht sicher sein. Hat dieses Unternehmen auch einen guten Ruf für die Einstellung von Spitzenkandidaten? Sie werden möglicherweise von einer anderen Person eingestellt, unabhängig von den für den Job verwendeten Sprachen.


1

Seien Sie besonders vorsichtig, wenn die Problemdomäne von einer oder mehreren Sprachen der Branche beherrscht wird. Die Datenbankentwicklung ist eng mit SQL verbunden. Die FPGA-Entwicklung wird hauptsächlich zwischen Verilog und VHDL aufgeteilt. Vergleichen Sie dies mit Webanwendungen, die in (Kombinationen von) Java, PHP, Perl, Python, Scala, C ++ usw. geschrieben sind. Ein Personalchef, der nach Webentwicklern sucht, wird die übertragbaren Fähigkeiten viel besser verstehen, wenn Sie keine besondere Erfahrung haben in der Sprache ihrer Wahl. Ein Personalchef, der jemanden sucht, der Datenbankabfragen schreibt, erwartet SQL-Erfahrung.


1

Ich habe in einer proprietären Sprache programmiert. Aber das war nicht die Sprache, die überall gebraucht wurde. Ich habe nichts gegen diese Erfahrung jetzt, obwohl ich jeden Moment davon geschleudert habe, diese Arbeit zu tun. Ich hatte die Chance, diese Sprache zu verwenden, diese Sprache beizubehalten und sie zu verbessern sowie das in dieser Sprache geschriebene Programm beizubehalten.

Unterwegs lernte ich zu lesen und zu verstehen, wie ein kleiner Dolmetscher funktionieren würde. Wenn Ihr potenzieller Arbeitgeber die Quellen für den Compiler / Interpreter für die proprietäre Sprache hat, haben Sie möglicherweise auch die Möglichkeit, an deren Interna zu arbeiten. Ich kann aus Erfahrung sagen, dass Sie diese Berufserfahrung jahrelang schätzen werden.

Die übertragbaren Fähigkeiten, die Sie erworben hätten, sind Teamarbeit, Softwareentwicklung, Schreiben eines Compilers / Interpreters oder Teile davon, Algorithmen usw. Wenn es sich um einen Dolmetscher handelt, ist die proprietäre Sprache nur eine Maske, unter der Sie den Dolmetscher finden geschrieben in, sagen wir, C oder einer solchen anderen Sprache. Wenn eine proprietäre Sprache kompiliert wird, haben Sie die Möglichkeit, an einem Produktionscompiler zu arbeiten, der vollständig bootfähig ist. Wenn Sie also nach der nächsten Arbeit suchen, müssen Sie diese Fähigkeiten besser verkaufen als beispielsweise C / C ++ / Java / Python für Anwendungsentwickler oder Python, Perl, Java, HTML, CSS, JavaScript und Flash für die Webentwicklung oder Verilog, VHDL für die eingebettete Entwicklung oder ein beliebiger anderer Satz von Sprachen für andere Anwendungsbereiche.

Dies alles unter der Annahme, dass Ihr potenzieller Arbeitgeber die Quellen für die proprietäre Sprache hat und Sie bereit sind, mehr als nur an den Programmen zu arbeiten, die in der proprietären Sprache geschrieben sind. Trotzdem gebe ich zu, dass ich äußerst optimistisch bin, wenn ich sage, dass Sie möglicherweise eine ähnliche Chance bekommen, wie ich sie vor ein paar Jahren hatte.

Bei Vorstellungsgesprächen sind jahrelange Erfahrung und technische Fähigkeiten nicht allein bei Einstellungsentscheidungen. Ihr Wissensdurst, Ihre kulturelle Passform und Ihre kulturelle Neigung machen einen großen Teil der Entscheidung aus.

Wenn Ihre Arbeit für einen ersten Job nicht nur auf die in der proprietären Sprache geschriebenen Programme beschränkt ist, sondern Sie auch an deren Implementierung arbeiten können, nehmen Sie sie.


1

Ich denke, das hat zwei Seiten. Erstens gibt es diesen speziellen Job, und zweitens beeinflusst er Ihre Karrierechancen.

Was ich über diesen Job wissen möchte, ist, warum sie ihre eigene Programmiersprache erstellt haben. Macht das Sinn? Wenn nicht, würde ich einen anderen Job annehmen.

In den letzten zehn Jahren habe ich für drei Unternehmen mit einer eigenen Sprache gearbeitet. Das erste, weil es zu Beginn des Projekts nichts gab, was sie tun konnten, was sie brauchten. (Sie haben eine Techie-Version von Visual Basic geschrieben, aber dies war unter Unix und Jahre vor der Existenz von VB.) Die anderen beiden hatten Leistungsanforderungen, die mit vorhandenen Sprachen nicht erfüllt werden konnten. Ich halte diese Gründe für ziemlich gut.

Auf der Karriereseite haben, wie andere bereits erwähnt haben, Personalvermittler und Personalverantwortliche, die das Programmieren und Arbeiten mit einer Reihe von Kontrollkästchen nicht verstehen, Schwierigkeiten mit Ihrem Lebenslauf. Viele Unternehmen, die einen Plug-and-Play-C ++ - Programmierer suchen, müssen nicht zahlen, um eine neue Sprache zu lernen. All das ist wahr.

Aber wollen Sie wirklich für so ein Unternehmen arbeiten?

Wenn die Antwort auf diese Frage "Ja" lautet, sollten Sie diesen Job wahrscheinlich ablehnen und einen mit konventionelleren Anforderungen suchen. Abhängig von Ihrem Wohnort haben Sie möglicherweise keine große Auswahl und müssen für Unternehmen arbeiten, die Programmierer nicht wirklich verstehen.

Persönlich möchte ich nicht für ein Unternehmen wie dieses arbeiten und ich denke, es ist fair zu sagen, dass ich meine Entscheidungen nicht als übermäßig einschränkend empfunden habe. Wenn Sie Erfahrung im schnellen Erlernen neuer Technologien, Lösen von Problemen in der Praxis und vielleicht ein wenig "geschäftliches" Wissen haben, dann sollten Sie meiner Meinung nach in Ordnung sein.

Auch gibt es positive. An wie vielen anderen Orten können Sie mit dem Compiler / Interpreter herumspielen? Wie oft haben Sie Einfluss auf neue Funktionen und die Syntax der Sprache, die Sie täglich verwenden?


1

Zunächst einmal ist eine interne Programmiersprache nicht unbedingt erforderlich. Es gibt jedoch einige Grundregeln, die Sie zur Rechtfertigung einer benutzerdefinierten Sprache benötigen.

Sie schreiben, Sie denken , dass sie keine andere Sprache verwenden. Die erste Frage, die Sie stellen sollten, ist, ob sie auch eine andere Sprache verwenden.

Benutzerdefinierte Programmiersprachen können gute Rechtfertigungen haben. Ich weiß, dass Mathematik mit Fachsprachen arbeitet. Ich habe gehört, dass die Steuerbehörde eine spezielle Sprache verwendet, um die Steuern mit den sich jährlich ändernden Gesetzen zu berechnen. Willkommen auf der Domain der Metaprogrammierung .

Jede benutzerdefinierte Sprache sollte jedoch niemals eine vollständige Sprache implementieren. Außerhalb der Domäne sollten Sie immer noch auf eine klassische / weithin bekannte Programmiersprache zurückgreifen. Selbst in der Sprachdomäne ist es nicht wahrscheinlich, dass jedes Detail von der Domänensprache abgedeckt wird.

Gute Fragen zu stellen:

  1. Werden bei dieser Firma andere Sprachen verwendet?
  2. Was ist der Grund, warum eine andere Sprache nicht zu ihnen passte?
  3. Wird die Sprache außerhalb des Unternehmens verwendet (von Forschern oder unter Lizenz an andere Unternehmen)
  4. Wie viele Leute kennen die Sprache?
  5. Wie viele (erfolgreiche) Projekte / Programme werden mit der Sprache durchgeführt?

Anhand dieser Antworten sollten Sie herausfinden können, wie der Zustand der Sprache ist. Wenn es sich um eine Domänensprache handelt, die einen hohen Mehrwert bietet, ist alles in Ordnung. Wenn es Jemande Haustier Projekt Java oder C # ersetzen dann von dort aus so schnell wie möglich .

Bearbeiten: Ich schlage vor, Sie lesen in der Domain-spezifischen Sprache Artikel auf Wikipedia, die etwas mehr Einblick geben sollte.


1

Wir mögen es vielleicht nicht, aber als Computerprogrammierer müssen wir einen Lebenslauf haben, den Agenten und Personalabteilungen gerne an Projektmanager weiterleiten . Unser Lebenslauf muss außerdem so aussagekräftig sein, dass er dem benötigten Satz innerhalb von 30 Sekunden entspricht. Außerdem muss er die richtigen Stichwörter enthalten, damit er mit einer Suche in der Lebenslauf-Datenbank übereinstimmt.

Es ist also ein großes Risiko, nur in einer einzigartigen Programmiersprache zu arbeiten! Die Verwendung einer Mischung aus DSL und einer Hauptstream-Sprache kann jedoch im Lebenslauf gut dargestellt werden. (Sie müssen die Wahrheit in Ihrem Lebenslauf sagen, aber es muss nicht die ganze Wahrheit sein!)


1

Ich wäre weniger nervös, wenn Sie einen Job wie diesen annehmen würden, wenn Sie bereits ein ziemlich breites Spektrum an Programmierkenntnissen hätten. Wenn Sie brandneu in der Branche sind, könnte dies Sie beruflich ziemlich schlecht einordnen, möglicherweise bis zu dem Punkt, an dem Sie als Junior oder später als Praktikant von vorne anfangen müssten ... Dies könnte besonders schlimm sein, wenn Sie bleiben mit dieser Firma für eine Weile, nur ohne übertragbare Fähigkeiten zu verlassen.

Wenn Sie in der Branche bereits ziemlich erfahren sind, könnte dies ein sehr cooler Wendepunkt für Ihre Karriere sein. Und die Wahrnehmung, wenn / wenn Sie diesen Ort verlassen würden, wäre eher "Verdammt, er ist ein Jedi, er hat alles getan".


1

Treten Sie dem Unternehmen nur bei, wenn Sie Ihr ganzes Leben lang im Unternehmen arbeiten, oder denken Sie nicht einmal daran, es in Anspruch zu nehmen, selbst wenn Sie ein gutes Gehaltspaket erhalten von vielen Frustrationen im Job, weil keine Erfahrung in anderen Programmiersprachen, um nach einem anderen Job Ausschau zu halten.


Dies. Hüten Sie sich vor dieser "Gelegenheit", es ist nur eine Gelegenheit zu einem schnellen Ruhestand.
Wayne Molina

0

Ich habe jemanden mit 15 Jahren Erfahrung gesehen, in erster Linie als leitender oder leitender Entwickler, der über einen langen Zeitraum keinen Job bekommen konnte, vor allem, weil das Unternehmen ihm keine Erfahrung in den heutigen Sprachen und APIs hinterließ.

Programmierer werden mental in die Mülleimer geworfen, genau wie Schauspieler in Filmen (Helden, Bösewichte usw.), und wenn Sie erst einmal festgestellt haben, was Ihre Mülleimer sind, können Sie es Ihrer Meinung nach viel schwieriger machen, einen Job zu finden, als wenn Sie frisch sind Hochschule.

Das heißt, wenn Sie einen CS-Abschluss haben, sind Sie wahrscheinlich ein Kandidat für eine Reihe von Jobs.

Aber wenn Sie einen CS-Abschluss mit 3 Jahren Erfahrung in PHP haben, sind Sie tatsächlich WENIGER als bei Ihrem Abschluss ein Kandidat für eine Java-Webentwicklerposition. Sie haben sich als PHP-Entwickler festgelegt, und bis Sie die gegenteilige Erfahrung gemacht haben, werden Sie dafür eingestellt. (Seltsam, aber ich denke wahr, Sie haben mehr Gesamterfahrung, aber Ihr Lebenslauf wird als irrelevant ignoriert, weil es die falsche Art von Erfahrung ist, während Ihr Lebenslauf nach dem Abitur möglicherweise nicht gewesen ist.)

Und wenn Sie einen CS-Abschluss mit 1 Jahr Erfahrung in SpecialtyLanguageX haben, haben Sie alle möglichen Türen für sich geschlossen.

Das sind natürlich nur meine Meinungen und Beobachtungen, ich habe noch nie etwas eingestellt, so sieht es für mich aus.

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