Existe-t-il des inconvénients à accepter un travail pour lequel je vais utiliser un langage de programmation unique? [fermé]


37

Je viens tout juste d'obtenir un diplôme universitaire en informatique. Je voudrais donc trouver un emploi qui me permette d'en apprendre plus sur le domaine et d'acquérir une certaine expérience professionnelle.

J'ai interviewé dans une entreprise qui utilise son propre langage de programmation interne, et je ne pense pas que d'autres l'utilisent. Ils n'ont pas mentionné l'utilisation d'autres langages ni ce qu'ils utilisent pour un environnement de développement.

À quoi devrais-je m'inquiéter en acceptant un emploi de ce type? Si je devais changer d'emploi plus tard, devrais-je recommencer à chercher des postes de premier échelon parce que je n'ai acquis aucune expérience linguistique?


8
La langue ne sera pas importante si vous vous sentez à l'aise avec votre travail, l'environnement de travail et vos responsabilités.
Marcelo

5
Diplômé avec un diplôme CS signifie que vous avez la capacité d'apprendre de nouvelles choses. Vous serez continuellement confronté à des situations dans lesquelles vous devez acquérir / apprendre une nouvelle langue ou une nouvelle technologie, ce qui n’est pas différent. Ce que vous prenez d’un emploi à l’autre, c’est l’expérience de la résolution de problèmes. La syntaxe d'une langue spécifique vient pour le tour.
Chris

11
Le langage propriétaire MUMPS est-il un hasard?
R0MANARMY

3
Si c'est Wasabi ( blog.fogcreek.com/the-origin-of-wasabi ) - prenez-le!
Gerry

3
@ DaveShaw: Et les gens courent toujours avec les taureaux. Ne fait pas nécessairement une bonne idée;).
R0MANARMY

Réponses:


28

Les principaux inconvénients:

  • Travailler dans un "environnement personnalisé" peut signifier des outils / support limités qui peuvent être exaspérants lorsque vous êtes bloqué sur un problème.
  • Le langage utilisé peut être mal conçu, ce qui vous oblige à prendre de mauvaises habitudes dès le début et à écrire du code hacky pour créer des solutions de contournement.
  • Les baffoons HR ne reconnaîtront pas votre expérience. (Ce n'est pas grave. Une entreprise qui compte sur les ressources humaines pour recruter des techniciens n'est pas celle avec laquelle vous voulez généralement travailler. Après quelques années, la plupart des emplois intéressants se réalisent malgré tout.)

Si c'était moi, je leur demanderais pourquoi ils utilisent une langue interne. Si c'est pour une raison légitime, telle que des contraintes matérielles insensées, un domaine qui n'est pas facilement modélisé dans les langages existants, c'est tout à fait correct. D'un autre côté, si leur réponse suggère qu'ils ont créé leur propre langage afin de pouvoir rassembler un tas de bidouilles et de logique métier dans ce qui équivaut à un tas de macros loufoques, alors c'est un grand drapeau rouge. Vous voulez vous assurer qu'ils utilisent de bons principes d'ingénierie, afin de pouvoir apprendre d'eux et réussir avec eux.Dans ce cas, vous pouvez voir s'ils peuvent justifier rationnellement l'utilisation d'une langue maison qui ne dispose pas d'une base de connaissances de la communauté et d'un support externe. Vous constaterez peut-être que leur décision est parfaitement rationnelle (je pense que Facebook a construit sa propre version de PHP pour gérer l’évolutivité, ce qui leur a plutôt bien servi), ou vous pouvez constater qu’ils ont créé la monstruosité d’un langage étroitement couplés à leurs systèmes centraux, ils ne peuvent pas sembler en sortir. Croyez-moi, vous ne voulez pas travailler dans une langue dont le type de données principal est appelé ImARInObj (objet de facture immuable pour comptes recevables). Dans ce type de situation, il existe souvent un lien étroit entre une langue et un besoin professionnel, et gérer ce type de système au quotidien serait un cauchemar absolu.


12
En fait, ce n’est pas acceptable, parce que les baffoons des RH gèrent la plupart des recrutements, même pour de nombreuses bonnes entreprises ....
Cervo

1
Je suis d'accord avec les outils / support. À mon ancien emploi, nous utilisions un moteur d'accès aux données personnalisé. Je ne peux pas vous dire combien de fois j'ai voulu google la prolifération d'erreurs d'exécution que j'ai rencontrées mais je devais me rappeler qu'il s'agissait d'une chose interne. Vous ne pouvez même pas poser de questions à stackoverflow pour obtenir de l'aide. Vous êtes à la merci de votre entreprise et vous feriez bien de vous prémunir. Ils ont de bons documents, une page / section de FAQ, ou une documentation sur la résolution de ces problèmes imprévus qui vous prendraient normalement des heures. C'était vraiment nul. Je suis heureux d'être de retour avec NHibernate.
A-Dubb

"Vous ne pouvez même pas poser de questions à stackoverflow pour obtenir de l'aide." Et si vous persuadiez l’un des responsables de la maintenance du réseau interne de mettre en place un clone SO interne?
JAB

J'ai rencontré un problème similaire. Des langages très spécialisés sans base d'utilisateurs ont des problèmes avec leurs outils. Une option, que j’ai utilisée, est de prendre un outil comme un rouage et d’écrire du code pour écrire le code. Surtout si c'est en grande partie un passe-partout.
Spencer Rathbun

96

Fuis et fuis vite. À moins que vous ne cherchiez désespérément un emploi et que vous ayez très faim, c'est une situation que vous voulez éviter.

J'ai déjà travaillé avec une entreprise qui a fait cela, et la seule raison pour laquelle ils l'ont fait était pour que leurs employés ne gagnent pas une expérience significative et transférable . C'était vraiment une question de contrôle.

D'autres qui ont dit ici que "la programmation, c'est de la programmation" ont raison, mais je voudrais bien tourner la tête et demander: pourquoi ne pas utiliser un langage standard pour lequel il existe un support externe, des bibliothèques, des forums et un groupe de programmeurs disponibles de?

La seule fois où je pense qu'une telle situation serait acceptable serait si le langage réservé à l'entreprise était celui du matériel personnalisé. Par exemple, vous devez tout écrire pour l’interféromètre gamma à rayons 9000X en utilisant un code d’assemblage / de machine spécifique à cette machine.


21
Le manque potentiel de support et de documentation (je n'ai jamais vu d'outils internes aussi bien documentés que des outils standard) est une préoccupation majeure, IMO. Et les raisons de faire les choses de cette façon doivent être bien comprises.
Ethel Evans

15
+100 Pensez-y ... le prochain poste que vous recherchez a un langage courant, vous n'aurez aucune année d'expérience professionnelle / pertinente avec. Vous recommencerez en tant que développeur junior.

2
Que se passe-t-il s'il parle de Google et si la langue est sawzall ( labs.google.com/papers/sawzall.html ) ou Go (avant que cela soit public)? N'y a-t-il pas d'autres bonnes raisons d'inventer une nouvelle langue?
Neil G

3
@Neil - Beaucoup de bonnes raisons, et les gens les appellent généralement des petites langues, des DSL (langues spécifiques à un domaine), ou (dans le cas de Google) "la prochaine grande chose". Je n'ai certainement rien contre les langages propriétaires. Le PO a déclaré que c'était la seule langue utilisée. Google n'a rien contre les langues standard.
Unpythonic

3
J'aime l'idée d'examiner les motivations de l'entreprise, mais à mon humble avis, inventer son propre langage dans le seul but de piéger ses employés n'est pas une idée qui aurait pu voir le jour. Au lieu de cela, presque certainement, quelqu'un a inventé un langage pour résoudre un problème spécifique, qui est maintenant principalement utilisé pour des raisons héritées du passé. Pas un environnement idéal, mais au moins bénin.
tylerl

22

Étant donné que votre CV est pratiquement vide après l'obtention de votre diplôme, votre premier emploi donne une grande impulsion à votre future carrière. Votre prochain employeur potentiel mettra beaucoup de poids dans cet emploi. Donc, à moins que vous ne programmiez également dans d'autres langues (plus commercialisables), je vous recommande fortement de ne pas accepter ce poste.

Je le dis par expérience parce que je viens de quitter le premier emploi que j’avais obtenu après avoir obtenu mon diplôme en informatique, où j’étais dans un poste presque identique à celui que vous décrivez. La plupart de la programmation a été réalisée dans un langage pratiquement inconnu appelé Progress (alias OpenEdge ABL). C'est horrible. Pas aussi mauvais que COBOL, mais proche. J'étais coincé là-bas parce que la région autour de laquelle j'ai obtenu mon diplôme ne compte pas beaucoup d'emplois en programmation et j'attendais que ma femme obtienne son diplôme avec son diplôme avant de déménager.

Il était presque impossible de parler cette langue avec d'autres langues ou avec des bases de données (elle possédait également sa propre base de données propriétaire - bonus!). J'ai passé beaucoup de temps à écrire moi-même des cadres qui existaient déjà dans d'autres langues et qui étaient probablement mieux implémentés car le langage ne supportait pas très bien ce type de paradigme "d'extension". Le langage était plus adapté à une approche "contactez Progress Corp. avec une demande de fonctionnalité et attendez la version n + 1 pour la nouvelle fonctionnalité". Il va sans dire que l’industrie du logiciel n’avance pas assez lentement pour que cette approche soit viable. Je ne parlerai pas de la gravité de la situation, mais je suppose que vous devrez faire face à la même chose si vous utilisez également un langage propriétaire.

Pour ajouter à cela, la base de code existante était, dirons-nous, sous-optimale. Beaucoup de codes hérités remontant à la fin des années 80 / au début des années 90. Je parierais que vous devriez vous attendre à quelque chose de similaire, car je pense que la plupart des entreprises s'en tiennent uniquement aux langages propriétaires, car elles transportent une grande partie de cet héritage. N'oubliez pas qu'il est probablement difficile pour un tel employeur de trouver des programmeurs disposés à coder dans cet environnement patrimonial / propriétaire. De plus, ils doivent probablement également payer pour la formation, car personne n'en a jamais entendu parler. Vos collègues ne seront probablement pas des titans du génie logiciel, non plus, en raison de l' effet Mer Morte.(quiconque ayant du talent est probablement déjà parti). J'avais beaucoup de difficulté lors des revues de code à essayer d'utiliser un code orienté objet, sans parler de tout type de modèle de conception, car ils ne le comprenaient pas (les membres de mon équipe avaient, au mieux, un diplôme en informatique (aucune infraction). )).

Enfin, en supposant que vous preniez cet emploi mais aspiriez à faire quelque chose de mieux après votre départ, vous devez sacrifier une grande partie de votre temps libre hors de votre travail pour créer des jouets cassables dans des langues plus vendables (et probablement open source la plupart de ce que vous faites), ou faites ce que j'ai fait et économisez de l'argent avant de quitter et passez un mois ou deux à faire de même. Quoi qu’il en soit, c’est une chose très stressante, surtout si vous aimez avoir tout type de relations sociales en dehors du travail ou passez votre temps libre à faire quelque chose qui n’est pas codé de temps en temps.

Mes expériences ne correspondent peut-être pas directement à votre choix, mais je suis sûr que certaines d’entre elles s’appliqueront. Espérons que cela vous donnera au moins quelques questions à poser. Comme d'autres l'ont mentionné, vous souhaiterez probablement savoir quels outils ils utilisent (matériel, environnement de développement logiciel / IDE et, bien sûr, le contrôle de version). Le test de Joël pourrait être un guide utile.

TL; DR

Ne le fais pas.

PS Pour ceux qui disent qu'apprendre une nouvelle langue est utile, c'est en soi vrai. Le problème, c’est que lorsque vous vous retrouvez coincé à utiliser cette langue presque exclusivement à temps plein pendant une longue période, vous perdez le contact avec des langues (et des techniques) plus utiles. C'est ce que vous voulez éviter.


Cette. Quelque chose comme ça est bien pour un travail pépère et peu stressant jusqu'à la retraite. Ce n'est pas un bon moyen de démarrer une carrière.
Wayne Molina

C'est une pensée terrifiante @Wayne: Apprenez un langage propriétaire à peine sorti de l'école, puis utilisez-le exclusivement pendant une cinquantaine d'années ...
Morgan Herlocker

Terrifiant, c'est mettre ça à la légère. Peu importe le fait, si vous étiez licencié ou si votre entreprise était mise en faillite, vous n'auriez aucune compétence commercialisable de valeur pour quiconque. Vous pourriez aussi bien ne pas avoir existé dans le monde des affaires.
Wayne Molina

Je viens de terminer un contrat dans un lieu de taille moyenne dont le système principal est écrit dans Progress - ce n'est pas si inconnu. Heureusement, j’étais l’un des nouveaux codeurs .Net s’interfaçant avec le système via des appels de service Web. Ils ont quand même réussi à obtenir des codeurs Progress chaque fois qu'ils en avaient besoin.
Dave

16

L'inconvénient évident est que vous ne pourrez pas ajouter cet emploi à l'exigence "5+ expérience utilisant le langage x" imposée aux futurs emplois auxquels vous souhaitez postuler. Cela peut être plus agaçant que vous ne le pensez (parler comme quelqu'un qui a plusieurs années d’expérience, mais un large éventail de langages de programmation). J'ai une expérience professionnelle avec VBA qui pourrait aussi bien être une expérience avec LOLCODE, basée sur les emplois que je recherche aujourd'hui.

Mais utilisent-ils exclusivement cette langue? Il est rare qu'une entreprise utilise une seule langue. Même lorsque je travaillais avec VBA, je comprenais des logiciels ASP, Java et PostgreSQL.


J'ai modifié ma question pour la rendre plus précise; jusqu'à présent, ils n'ont pas mentionné d'autres langues. Je dois donc les interroger à ce sujet la prochaine fois que je leur parlerai.
AlexMA

3
En fait, j'ai des problèmes parce que je veux un travail en Java et que toute mon expérience est dans .NET, donc personne ne m'engagera et ils sont TRÈS similaires. Avec un langage totalement personnalisé, vous passerez encore plus de temps. Les ressources humaines et la plupart des recruteurs sont des débiles et pensent qu'il vous faut 5 ans d'expérience dans toutes les technologies que vous touchez ....
Cervo

8

J'ai tendance à être d'accord avec le mantra, " programmer, c'est programmer ", quel que soit le langage dans lequel vous avez travaillé. La programmation consiste donc en grande partie à apprendre à penser et le reste n'est que syntaxe. Un futur employeur potentiel sera plus impressionné par " J'ai accompli X avec la société Y " que par " Je connais le langage X depuis Y ans ".

Le dernier travail que j'ai occupé impliquait beaucoup de travail PL / SQL et je n'avais jamais écrit une seule ligne de PL / SQL - je l'ai repris en deux semaines environ.

Cela dit, je resterais certainement dans la pratique avec d'autres langues, juste pour rester au courant. Pendant que vous êtes au nouvel emploi, créez un ou deux projets qui garderont votre bras de programmation en forme avec un langage plus standard, mais ne vous embêtez pas trop dessus.


C'était mon plan. J'écris mes propres applications (ou autre) les week-ends pour améliorer mes compétences avec les technologies qui m'intéressent. Cela dit, comme Brian l'a mentionné, il est possible que je n'obtienne pas les qualifications requises pour les offres d'emploi qui nécessitent X années d'expérience de la langue Y. Fait le travail vous avez pris besoin d'une certaine quantité d'expérience PL / SQL?
AlexMA

@Alex: "... ne peut pas obtenir les qualifications requises pour les offres d'emploi qui nécessitent X années d'expérience de la langue Y" est une victime de l'emploi. Prendre un travail particulier signifie que vous manquez d'autres opportunités.
Chris

2
@Chris Ouais ... mais c'est un peu différent si vous apprenez "FooBar" et n'avez aucun espoir de le transférer à une autre société qui utilise également "FooBar". Si vous apprenez le PHP, assurez-vous de ne pas apprendre le C, mais de nombreuses entreprises paient pour le PHP.
WernerCD

3
-1 C'est la bonne réponse, mais pas pour cette question.
wilhelmtell

2
"Un futur employeur potentiel sera plus impressionné par" j'ai accompli X avec la société Y "que par" je connais le langage X depuis Y ans "." --- Mon expérience des deux côtés des entretiens techniques a été exactement le contraire.

6

En informatique, la compagnie a souvent à faire avec le recruteur pour trouver de bons candidats. Les recruteurs ne sont pas des spécialistes de l'informatique. Par conséquent, certains critères sont appliqués et les candidats sont ensuite sélectionnés, puis renvoyés à l'entreprise. Il en va de même pour les ressources humaines dans les grandes entreprises.

Tu as un probleme avec ca. Vous ne rentrerez pas dans les critères de recrutement. Donc, je dirais que ce n'est pas un problème de sauvegarde de vos compétences. La programmation est de la programmation, et un solide programmeur doit savoir comment passer d’une langue à l’autre, car la syntaxe importe moins que de savoir comment créer un code fiable, vérifiable et un code maintenable. Ces capacités sont principalement indépendantes de la langue.

Cependant, tant que vous ne vous conformerez pas aux critères de non-recrutement d'informaticiens, ce sera probablement un inconvénient de trouver un emploi. Même si tu seras compétant quand même. Ces personnes ne savent pas comment juger cela car elles ne sont pas des technologies de l'information.

Je ne recommanderais définitivement pas ce travail pour un premier. Mais si votre CV contient déjà quelques informations sur les technologies largement utilisées (Java, PHP, C, C ++, C #,...), Allez-y si vous l'aimez.


Merci pour votre compréhension des recruteurs. ça sonne bien.
AlexMA

5

Il existe certainement des compétences que vous pouvez acquérir / améliorer en utilisant des langages et des environnements propriétaires. Comme cela a été mentionné dans d'autres réponses, certaines compétences transcendent le langage et peuvent être très utiles dans un CV.

Cependant, ces compétences sont souvent négligées lorsque les personnes qui consultent les CV ne sont pas techniques. Souvent (dans la partie inférieure du spectre de qualité de l'emploi, ce qui est malheureusement malheureusement souvent le meilleur choix pour les développeurs relativement inexpérimentés), les CV seront évalués principalement sur x années de langue y , et les autres compétences que vous pourriez avoir n'entrent pas jouez jusqu'à ce que vous ayez un pied dans la porte avec une interview.

Un autre facteur à prendre en compte est que les environnements propriétaires ont tendance (du moins, à être moins) à être plus susceptibles d’être mal conçus, mal à l'aise et généralement frustrants que les environnements classiques. Travailler exclusivement dans un mauvais système propriétaire peut être très décourageant, surtout pour quelqu'un qui commence une carrière dans la programmation.

Cela dit, rappelez-vous que l'expérience d'un système propriétaire, même si elle ne vaut pas une expérience similaire de travail avec les langages grand public populaires, est toujours meilleure que l'absence d'expérience de loin. Vous aurez une longueur d’avance au-delà du niveau d’entrée pour certains postes, et pour d’autres, vous pouvez (ou ne pouvez pas) toujours être qualifié (e) comme niveau d’entrée pour des langues spécifiques, mais votre expérience vous placera nettement en avance sur la plupart des autres concurrents. pour ces emplois.

Avant d’envisager de laisser passer une offre parce que vous vous concentrez sur un langage propriétaire, veillez à tenir compte du marché du travail actuel et de la manière dont vos candidatures sont reçues.


3

Cela dépend des langues et compétences auxiliaires que vous apprendrez. Si leur langage interne n'est en fait pas utilisé ou même connu en dehors de l'entreprise, les avantages en termes de carrière seront limités (à moins que sa langue ne risque d'éclater et d'être la prochaine grande chose). J'ai passé quelques années à travailler avec un outil tiers qui, en soi, ne me servait à rien (en termes de carrière), mais en travaillant sur ces projets, mes compétences en HTML, en CSS et en javascript se sont améliorées. J'ai aussi beaucoup appris sur la manière dont les projets d'entreprise sont gérés et structurés, avec les clients, avec la gestion des attentes. Toutes les choses qui font partie intégrante du développement logiciel moderne et qui ne sont pas réellement le langage.


J'ai modifié ma question pour noter qu'ils n'ont mentionné aucune langue auxiliaire; Toutefois, les points positifs concernent des compétences non spécifiques à une langue.
AlexMA

2

Qu'en est-il du framework: IDE, éditeur, bibliothèques? La plupart des applications d'entreprise complexes. ces jours-ci ne peut pas être fait avec un éditeur de texte brut et un compilateur en ligne de commande.

Ont-ils une partie de cela pour leur langage de programmation personnalisé?


Bon point. Encore une fois, ils ne l'ont pas mentionné. Je dois demander.
AlexMA

2
Parfois, les IDE / outils propriétaires sont d'une mauvaise qualité (j'ai déjà travaillé avec certains).
FrustratedWithFormsDesigner

2

Souvent, apprendre une entreprise est plus important que d’apprendre une technologie. Si vous pensez que vous souhaitez rester dans le secteur d'activité de cette société, allez-y, prenez-le. S'il s'agit d'un marché de niche, ou d'un marché qui ne vous intéresse pas particulièrement, alors je vous suggère de le sauter. Connaître les tenants et les aboutissants de (disons) la pharmacocinétique et le processus de découverte de médicaments ouvrira des portes qu’un autre programmeur C # / Python / Java ne le fera pas. Et à moins que ce langage "unique" ne soit plus un générateur de code ou un configurateur, vous allez toujours résoudre des problèmes courants, vous aurez donc toujours une expérience globale, même si les techniques spécifiques risquent de ne pas être directement transférables.


Cela aussi. La seule façon dont cet emploi présenterait un avantage est que si la connaissance de l'industrie vous aidera et que vous souhaitez passer au domaine commercial actuel. Si vous voulez rester développeur, pour reprendre les termes immortels de l'amiral Ackbar,IT'S A TRAP!
Wayne Molina

2

J'envisagerais de le prendre si, et seulement si, vous pouvez avoir beaucoup d'expérience dans d'autres langues. Si vous faites prendre le travail, vous pouvez (et devez) maintenir vos compétences avec les langues traditionnelles en travaillant sur des projets open source dans votre temps libre.

Ce que vous voulez éviter, c’est la possibilité que vos compétences deviennent très à l’écoute de cette entreprise en particulier et non transférables à d’autres. Techniquement, la programmation est une programmation et une expérience en dehors d'un environnement de programmation unique est bénéfique et non nuisible, car elle vous aide à voir les problèmes plus clairement.

Pensez-y ainsi: si vous prenez un travail en écrivant des programmes Perl, cela ne vous condamne pas nécessairement à une éternité d'écriture de programmes Perl. Prendre un emploi dans .NET ne vous condamne pas non plus à être lié à jamais à Microsoft.

Mais voici la partie importante: je n’engagerais jamais un programmeur qui ne connaît qu’une langue , même si c’est celle que je veux qu’il utilise. Un programmeur qui n'a pas une grande expérience dans de nombreuses langues est souvent pauvre même avec la langue de son choix. Cela reflète également le manque d'ambition d'apprendre de nouvelles choses.

D'un autre côté, si un programmeur connaît Python, Ruby, C #, PHP, C et Erlang, le fait qu'il connaisse également APL n'est pas une grève contre lui, même s'il n'y a aucune chance que nous utilisions APL pour n'importe quoi.

Donc, si vous avez la discipline pour garder la langue de devenir votre seul objectif, alors prenez le travail.

Et cela vaut la peine de le répéter: contribuez à des projets open-source. Ils comptent beaucoup plus que "l'expérience de travail" car ce n'est pas quelque chose que vous venez de faire pour faire un salaire. Les programmeurs qui travaillent sur des projets open-source sont comme de l'or.


2

Mon premier emploi après avoir obtenu mon diplôme en informatique consistait à développer un langage obscur. Pas unique. Pas développé en interne. Mais un assez obscur VMS 4GL que je n'ai jamais vu quelqu'un d'autre l'utiliser.

Rétrospectivement, cette décision était imprudente. Bien que j'aie beaucoup appris sur le développement de logiciels professionnels en faisant ce travail, il aurait été beaucoup mieux de développer également une compétence linguistique commercialisable pour aller de pair avec les compétences non techniques.

J'ai eu de la chance - mon deuxième travail consistait à travailler avec un autre obscur VMS 4GL. Ils m'ont embauché parce qu'ils savaient qu'ils ne pouvaient pas trouver de personnes qui connaissaient déjà la langue - le fait que j'avais de l'expérience sur la plate-forme VMS avec un 4GL était suffisant. Et à ce poste, j’ai eu l’occasion de suivre une formation dans une langue commercialisable alors qu’ils cherchaient à passer de VMS à des serveurs Windows.

Mais je n'aurais peut-être pas eu cette chance et je me suis retrouvé au début de ma carrière au cours des cinq dernières années sans aucune expérience susceptible de persuader un recruteur ou une personne des ressources humaines de consulter mon CV.

Pour ton premier emploi après ton diplôme, je ne le recommande vraiment pas vraiment.


2

Pour donner une méta-réponse, j'ai remarqué que de nombreuses réponses disaient: "Par expérience personnelle, c'est une mauvaise chose."

Beaucoup d'autres disent: "En théorie, cela ne doit pas nécessairement être mauvais."

Mais aucune des réponses que j'ai vues ne vient de gens qui ont fait quelque chose de similaire et qui ont pensé que c'était une bonne expérience.

Maintenant, peut-être que certaines personnes l'ont fait et sont ravis de leur travail, mais ne sont pas sur Stack Exchange. Cela est vrai pour certains logiciels commerciaux. Par exemple, il y a des administrateurs vraiment dédiés à Software AG Natural / Adabas, mais il n'y a pas beaucoup de discussions connexes sur Stack Exchange. Cependant, au moins quelqu'un cherche même ces spécialistes de niche. Ce ne serait pas vrai d'un langage complètement propriétaire.

Donc, si l’objectif est de s’orienter vers le type de technologies discuté ici, le fait que peu de personnes l’approuvent par expérience montre que ce n’est pas nécessairement le meilleur départ. Ce n'est peut-être pas le baiser de la mort. Mais vous voudriez travailler pour l'empêcher de devenir un barrage routier terrible, par exemple en démarrant ou en contribuant à un projet open source lié à vos aspirations.


1

Prenez le poste si vous pensez qu’il existe de bons / grands programmeurs qui vous aideront et vous guideront. Vous penseriez qu'un endroit qui fait cela a de très bonnes personnes, mais vous ne pouvez pas en être certain. En outre, cette société a-t-elle une sorte de réputation pour le recrutement des meilleurs candidats? Vous pouvez être embauché par une autre personne, peu importe la langue utilisée au travail.


1

Soyez particulièrement vigilant si le domaine problématique est dominé par une ou plusieurs langues de l’industrie. Le développement de la base de données est étroitement lié à SQL. Le développement de FPGA est principalement divisé entre Verilog et VHDL. Comparez cela aux applications Web qui sont écrites en (combinaisons de) Java, PHP, Perl, Python, Scala, C ++, etc. Un responsable du recrutement à la recherche de développeurs Web va être beaucoup plus compréhensif sur les compétences transférables si vous n'avez pas d'expérience spécifique dans la langue de leur choix. Un responsable du recrutement qui recherche une personne pour écrire des requêtes dans la base de données s’attend à une expérience SQL.


1

J'ai programmé dans un langage propriétaire. Mais ce n'était pas la langue qui était utilisée partout. Je n'ai rien contre cette expérience maintenant, bien que je siffle chaque instant de faire ce travail. J'ai eu la chance d'utiliser cette langue, de la conserver et de l'améliorer, ainsi que de maintenir le programme écrit dans cette langue.

En cours de route, j'ai appris à lire et à comprendre le fonctionnement d'un petit interprète. Si votre employeur potentiel dispose des sources pour le compilateur / interprète du langage propriétaire, vous pouvez également avoir la possibilité de travailler sur ses ressources internes. Je peux dire que, par expérience, vous chérirez cette expérience de travail pour les années à venir.

Quelles sont les compétences transférables que vous avez acquises, travail en équipe, ingénierie logicielle, rédaction d’un compilateur / interprète ou de parties de celui-ci, d’algorithmes, etc. S'il s'agit d'un interpréteur, le langage propriétaire n'est qu'un masque sous lequel vous retrouverez l'interprète. écrit en C, ou dans une autre langue. Si un langage propriétaire est compilé, vous aurez l'occasion de travailler sur un compilateur de production entièrement amarré. Ainsi, lorsque vous recherchez le prochain travail, vous devez vendre ces compétences plus difficilement que, par exemple, C / C ++ / Java / Python pour développeur d'applications ou, Python, Perl, Java, HTML, CSS, JavaScript et Flash pour le développement Web. ou Verilog, VHDL pour le développement intégré ou tout autre ensemble de langages pour un autre domaine d'applications.

Tout cela, en supposant que votre employeur potentiel ait les sources du langage propriétaire et que vous êtes prêt à faire plus que travailler sur les programmes écrits dans ce langage. Néanmoins, je reconnais que je suis extrêmement optimiste en disant que vous pourriez obtenir une opportunité similaire à celle que j'avais moi-même il y a quelques années.

Lors des entretiens, des années d’expérience et des compétences techniques ne sont pas les seules décisions en matière d’embauche. Votre soif d’apprentissage, votre culture, votre penchant culturel jouent un rôle important dans la décision.

Donc, pour un premier emploi, si votre travail ne se limite pas aux programmes écrits dans le langage propriétaire, mais vous permet également de travailler sur sa mise en œuvre, prenez-le.


1

Je pense qu'il y a deux côtés à cela. Premièrement, il y a cet emploi spécifique et, deuxièmement, il y a une incidence sur vos perspectives de carrière.

Ce que j'aimerais savoir à propos de ce travail, c'est pourquoi ils ont créé leur propre langage de programmation. Est-ce que ça fait du sens? Sinon, je prendrais un travail différent.

Au cours des dix dernières années, j'ai travaillé pour trois entreprises avec leur propre langue. Le premier parce que, lorsque le projet a été lancé, rien ne pouvait faire ce dont ils avaient besoin. (Ils ont écrit une version technique de Visual Basic, mais c'était sur Unix et des années avant VB.) Les deux autres avaient des exigences de performances qui ne pouvaient pas être satisfaites avec les langages existants. Je considère ces très bonnes raisons.

Du côté des perspectives de carrière, comme d'autres l'ont mentionné, les recruteurs et les ressources humaines qui ne comprennent pas la programmation et qui utilisent une série de cases à cocher auront des difficultés avec votre CV. De nombreuses entreprises qui recherchent un programmeur C ++ plug-and-play hésiteront à payer pour que vous appreniez un nouveau langage. Tout cela est vrai.

Mais voulez-vous vraiment travailler pour une entreprise comme celle-là?

Si la réponse à cette question est «Oui», vous devriez probablement refuser cet emploi et en rechercher un dont les exigences sont plus conventionnelles. En outre, selon votre lieu de résidence, vous aurez peut-être peu de choix et devrez travailler pour des entreprises qui ne comprennent pas vraiment les programmeurs.

Personnellement, je ne veux pas travailler pour une entreprise comme celle-là et je pense qu'il est juste de dire que je n'ai pas trouvé mes choix trop restrictifs. Si vous avez l'habitude d'apprendre rapidement de nouvelles technologies, de résoudre des problèmes du monde réel et, peut-être, une certaine connaissance du monde des affaires, alors tout ira bien.

Il y a aussi des points positifs. À combien d'autres endroits jouez-vous avec le compilateur / interprète? À quelle fréquence avez-vous l'occasion d'influer sur les nouvelles fonctionnalités et la syntaxe de la langue que vous utilisez tous les jours?


1

Tout d'abord, un langage de programmation interne n'est pas nécessairement une mauvaise chose, cependant, il existe quelques règles de base dont vous avez besoin pour justifier un langage personnalisé.

Vous écrivez, vous pensez qu'ils n'utilisent aucune autre langue. La première question à poser est de savoir s’ils utilisent également une autre langue.

Les langages de programmation personnalisés peuvent avoir de bonnes justifications. Je sais que les mathématiques fonctionnent avec des langues spécialisées. J'ai entendu dire que l'agence fiscale utilisait un langage spécial pour calculer les taxes avec les lois changeant chaque année à leur sujet. Bienvenue dans le domaine de la métaprogrammation .

Toute langue personnalisée ne devrait toutefois jamais implémenter une langue complète. En dehors de son domaine, vous devriez toujours vous rabattre sur un langage de programmation classique / largement connu. Même dans le domaine de la langue, il est peu probable que chaque détail soit couvert par la langue du domaine.

Bonnes questions à poser:

  1. D'autres langues sont-elles utilisées dans cette entreprise?
  2. Quelle est la raison pour laquelle l'autre langue ne leur convenait pas?
  3. La langue est-elle utilisée à l'extérieur de l'entreprise (par des chercheurs ou sous licence d'autres entreprises)?
  4. Combien de personnes connaissent la langue.
  5. Combien de projets / programmes (réussis) sont réalisés avec la langue.

À partir de ces réponses, vous devriez pouvoir savoir quel est l’état de la langue. si c'est une langue de domaine qui ajoute une grande valeur, tout va bien. Si elle est somebodies du projet animal de compagnie pour remplacer Java ou C # , puis sortir de là le plus tôt possible .

Edit: Je suggère que vous lisiez l'article de domaine sur le langage spesific sur wikipedia, qui devrait vous donner plus de perspicacité.


1

Cela ne nous plaît peut-être pas, mais en tant que programmeur informatique, nous devons avoir un CV que les agents et les départements des ressources humaines sont disposés à transmettre aux chefs de projet . Notre CV doit également se démarquer comme correspondant au nécessaire encore défini dans les 30 secondes qui suivent sa lecture, il doit également comporter les mots-clés corrects correspondant à une recherche dans la base de données cv.

Alors que travailler dans un langage de programmation unique est un grand risque! Cependant, l'utilisation d'un mélange de DSL et d'un langage de flux principal peut être bien présentée sur le CV. (Vous devez dire la vérité sur votre CV, mais il n'est pas nécessaire que ce soit toute la vérité!)


1

Je serais moins inquiet à l'idée de prendre un tel travail si vous aviez déjà une assez grande connaissance en programmation. Si vous êtes un nouvel utilisateur du secteur, vous risquez fort de ne pas vous qualifier professionnellement, si bien que vous devrez peut-être recommencer plus tard en tant que stagiaire ou stagiaire ... Cela pourrait être particulièrement grave si vous restiez avec cette société pendant un certain temps, seulement pour quitter sans compétences transférables.

Si vous êtes déjà assez expérimenté dans le secteur, cela pourrait être un atout majeur pour votre carrière. Et la perception si / quand vous quittez cet endroit serait plutôt "putain, c'est un jedi, il a tout fait"


1

Rejoignez la société uniquement si vous souhaitez travailler dans celle-ci tout au long de votre vie, ou encore ne pensez même pas à la reprendre, même si vous recevez un bon package salarial. J'ai l'expérience de rejoindre une telle société et d'y rester bloqué beaucoup de frustrations dans le travail, car aucune expérience dans les autres langages de programmation pour chercher un autre travail.


Cette. Méfiez-vous de cette "opportunité", ce n'est qu'une opportunité pour une retraite rapide.
Wayne Molina

0

J'ai vu quelqu'un qui avait 15 ans d'expérience, principalement en tant que développeur principal ou principal, incapable de trouver un emploi pendant une longue période, principalement parce que la société ne lui laissait aucune expérience de ce qui était devenu des langages et des API contemporains.

Les programmeurs sont placés mentalement dans des bacs, comme le font les acteurs de films (héros, villian, etc.) et une fois que vous avez défini votre bac, vous pouvez rendre la tâche beaucoup plus difficile à trouver que si vous veniez de sortir Université.

Autrement dit, si vous avez un diplôme en informatique, vous êtes probablement candidat à plusieurs emplois.

Mais si vous avez un diplôme CS avec 3 ans d’expérience en PHP, vous êtes en réalité moins candidat à un poste de développeur Web Java que lorsque vous avez obtenu votre diplôme. Vous vous êtes assimilé à un développeur PHP et, jusqu’à preuve du contraire, c’est pour cela que vous allez être embauché. (Bizarre, mais je pense que c'est vrai, votre expérience est plus complète, mais votre CV ne sera pas considéré comme non pertinent car il s'agit d'un type d'expérience incorrect, alors que votre CV n'aurait pas été fraîchement sorti de l'université)

Et si vous avez un diplôme en informatique avec 1 ans d’expérience dans SpecialtyLanguageX, vous avez fermé toutes sortes de portes.

Ce ne sont que mes opinions et observations bien sûr, je n’ai jamais embauché, c’est à quoi ça ressemble pour moi.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.