¿Hay inconvenientes en tomar un trabajo donde usaré un lenguaje de programación único? [cerrado]

37

Me acabo de graduar de la universidad con un título en CS, por lo que me gustaría encontrar un trabajo donde pueda aprender más sobre el campo y acumular experiencia profesional.

Me entrevisté en una compañía que usa su propio lenguaje de programación interno, y no creo que otros lo usen. No han mencionado el uso de ningún otro idioma o lo que usan para un entorno de desarrollo.

¿Qué debería preocuparme al tomar un trabajo como este? Si tuviera que cambiar de trabajo más tarde, ¿tendría que comenzar a buscar puestos de nivel de entrada nuevamente porque no he adquirido ninguna experiencia específica de idioma?

AlexMA
fuente
8
El idioma no será importante mientras se sienta cómodo con su trabajo, el entorno laboral y sus responsabilidades.
Marcelo
55
Graduarse con un título de CS significa que tiene la capacidad de aprender cosas nuevas. Continuamente se le presentarán situaciones en las que tendrá que adquirir / aprender un nuevo idioma o tecnología y esto no es diferente. Lo que lleva de un trabajo a otro es la experiencia de resolución de problemas. La sintaxis de un lenguaje específico aparece durante el viaje.
Chris
11
¿El lenguaje propietario MUMPS por casualidad?
R0MANARMY
3
Si es Wasabi ( blog.fogcreek.com/the-origin-of-wasabi ), ¡ tómalo !
Gerry
3
@DaveShaw: Y la gente todavía corre con los toros. No necesariamente lo convierte en una buena idea;).
R0MANARMY

Respuestas:

28

Los principales inconvenientes:

  • trabajar en un "entorno personalizado" puede significar herramientas / soporte limitados que pueden ser irritantes cuando te quedas atrapado en un problema.
  • El lenguaje que usan puede estar mal diseñado, lo que lleva a que recojas los malos hábitos desde el principio y escribas código hacky para crear soluciones.
  • Los bafones de recursos humanos no reconocerán su experiencia. (Esto está bien. Una empresa que se apoya en RR. HH. Para realizar contrataciones técnicas no es del tipo en el que normalmente desea trabajar. Después de un par de años, la mayoría de los grandes trabajos se realizan a través de las conexiones).

Si fuera yo, les preguntaría por qué usan un lenguaje interno. Si es por una razón legítima, como las contracciones de hardware locas, un dominio que no se modela fácilmente en ninguno de los idiomas existentes, entonces esto está muy bien. Por otro lado, si su respuesta sugiere que crearon su propio idioma para poder juntar un montón de hacks y lógica de negocios en lo que equivale a un montón de macros extravagantes, entonces esta es una gran bandera roja. Debes asegurarte de que utilizan buenos principios de ingeniería, para que puedas aprender de ellos y tener éxito con ellos.En este caso, puede ver si pueden justificar racionalmente el uso de un idioma propio que no tenga una base de conocimiento comunitario y soporte externo. Puede descubrir que su decisión es perfectamente racional (creo que Facebook creó su propia versión de PHP para hacer frente a la escalabilidad, que les ha ido bastante bien), o puede encontrar que han creado una monstruosidad de un lenguaje que ha sido tan estrechamente acoplados con sus sistemas centrales, que parecen no poder separarse de él. Confíe en mí, no desea trabajar en un idioma cuyo tipo de datos principal se llama ImARInObj (Objeto de factura de cuentas por cobrar inmutables). El acoplamiento estrecho entre un idioma y una necesidad comercial a menudo ocurre en este tipo de situaciones, y sería una pesadilla absoluta lidiar con ese tipo de sistema todos los días.

Morgan Herlocker
fuente
12
En realidad no es aceptable porque baffoons de recursos humanos corren mayor parte de la contratación, incluso para muchas empresas buenas ....
Cervo
1
Estoy de acuerdo con las herramientas / soporte. En mi antiguo trabajo, utilizamos un motor de acceso a datos personalizado. No puedo decirte cuántas veces quise googlear la proliferación de errores de tiempo de ejecución que encontré, pero tuve que recordarme que esto era algo interno. Ni siquiera puede publicar preguntas en stackoverflow para obtener ayuda. Está a merced de su empresa y es mejor que aproveche que tienen documentos bien documentados, una página / sección de preguntas frecuentes y / o documentación sobre cómo resolver esos problemas imprevistos persistentes que normalmente le tomarían horas localizar. Apestaba bastante mal. Me alegra volver con NHibernate nuevamente.
A-Dubb
"Ni siquiera puedes publicar preguntas en stackoverflow para obtener ayuda". ¿Qué pasa si convenció a una de las personas que mantiene la red interna para configurar un clon SO interno?
JAB
Me encontré con un problema similar. Los idiomas muy especializados sin base de usuarios tienen problemas con sus herramientas. Una opción, que utilicé, es tomar una herramienta de engranaje y escribir código para escribirlo. Especialmente si mucho es repetitivo.
Spencer Rathbun
96

Huir y huir rápidamente. A menos que esté desesperado por un trabajo y tenga mucha hambre, esta es una situación de la que desea mantenerse alejado.

Tengo experiencia con una empresa que hizo esto, y la única razón por la que lo hicieron fue para que sus empleados no obtuvieran una experiencia significativa y transferible . Realmente se trataba de control.

Otros que dijeron aquí que "programar es programar" tienen razón, pero yo diría eso y pregunto, ¿por qué no usar un lenguaje estándar para el cual hay soporte externo, bibliotecas, foros y un grupo de programadores disponibles para elegir? ¿desde?

La única vez que creo que tal situación estaría bien sería si el lenguaje exclusivo de la empresa fuera para hardware personalizado. Por ejemplo, debe escribir todo para el interferómetro de rayos gamma 9000X utilizando un código de ensamblaje / máquina específico para esa máquina.

poco pitón
fuente
21
La posible falta de soporte y documentación (nunca he sabido que las herramientas internas estén tan bien documentadas como las herramientas estándar) es una gran preocupación, en mi opinión. Y las razones para hacer las cosas de esta manera deben ser bien entendidas.
Ethel Evans
15
+100 Solo piénselo ... la próxima posición que busque que tenga un lenguaje convencional, tendrá cero años de experiencia profesional / aplicable. Comenzarás de nuevo como desarrollador Junior nuevamente.
2
¿Qué sucede si habla de Google y el idioma es sawzall ( labs.google.com/papers/sawzall.html ) o Go (antes de que fuera público)? ¿No hay otras buenas razones para inventar un nuevo idioma?
Neil G
3
@Neil: hay muchas buenas razones, y la gente generalmente los llama pequeños idiomas, DSL (idiomas específicos del dominio) o (en el caso de Google) "la próxima gran cosa". Ciertamente no tengo nada en contra de los lenguajes propietarios. El OP dijo que este es el único idioma en uso. Google no tiene nada en contra de los idiomas estándar.
antipático el
3
Me gusta la idea de analizar las motivaciones de la compañía, pero en mi humilde opinión, inventar su propio idioma con el único propósito de atrapar a sus empleados no es una idea que hubiera despegado. En cambio, casi con certeza, alguien inventó un lenguaje para resolver un problema específico, y ahora se usa principalmente por razones heredadas. No es un ambiente ideal, pero al menos benigno.
tylerl
22

Dado que su currículum está básicamente en blanco después de graduarse, su primer trabajo le da un gran impulso a su futura carrera profesional. Su próximo potencial empleador (s) estará poniendo mucho peso en este trabajo. Por lo tanto, a menos que también esté programando en otros lenguajes (más comercializables), recomendaría encarecidamente no tomar este trabajo.

Digo esto por experiencia porque acabo de dejar el primer trabajo que tuve después de graduarme con mi título de CS, donde estaba en una posición casi exactamente como usted describe. La mayor parte de la programación se realizó en un lenguaje básicamente desconocido llamado Progress (también conocido como OpenEdge ABL). Es horrible. No es tan malo como COBOL, pero está cerca. Estaba atrapado allí porque el área alrededor de donde me gradué no tiene muchos trabajos de programación, y estaba esperando que mi esposa se graduara con su título antes de mudarse.

Hacer que ese idioma hablara con otros idiomas o bases de datos era casi imposible (también estaba bloqueado con su propia base de datos propietaria, ¡una bonificación!). Pasé mucho tiempo escribiendo frameworks por mi cuenta que ya existían en otros idiomas, y probablemente ya estaban mejor implementados ya que el lenguaje no soportaba muy bien este tipo de paradigma de "extensión". El lenguaje se adaptó más a un "contacto Progress Corp. con una solicitud de función, y espere hasta la versión n + 1 para el enfoque de la nueva función". No es necesario decir que la industria del software no se mueve lo suficientemente lento como para que este sea un enfoque viable. No continuaré sobre lo malo que fue, pero supongo que enfrentarás algo similar si también estás lidiando con un lenguaje propietario.

Para agregar a eso, la base de código existente era, digamos, subóptima. Gran cantidad de código heredado que data de finales de los 80 y principios de los 90. Apuesto a que debería esperar algo similar, ya que creo que la mayoría de las empresas solo se adhieren a los lenguajes patentados porque llevan una gran cantidad de este equipaje heredado con ellos. Recuerde, probablemente sea difícil para un empleador encontrar programadores dispuestos a codificar en este entorno heredado / propietario, además de que probablemente también tengan que pagar por la capacitación ya que nadie ha oído hablar de ella. Sus compañeros de trabajo probablemente tampoco serán titanes de la ingeniería de software, debido al efecto del Mar Muerto.(Alguien con talento probablemente ya se fue). Tuve muchos problemas en las revisiones de código tratando de usar código orientado a objetos, y mucho menos cualquier tipo de patrones de diseño, ya que simplemente no lo entendían (las personas de mi equipo tenían, en el mejor de los casos, un título de MIS (sin ofender) )).

Finalmente, suponiendo que tomas este trabajo pero anhelas hacer algo mejor una vez que te vayas, para hacerte competitivo para tu próximo trabajo tienes que sacrificar una gran parte de tu tiempo libre fuera del trabajo creando juguetes frágiles en idiomas más comercializables (y probablemente de código abierto la mayor parte de lo que haces), o haz lo que hice y ahorra algo de dinero antes de dejar de fumar y pasar un mes o dos haciendo lo mismo. De cualquier manera, esto es algo muy estresante, especialmente si disfrutas tener algún tipo de relación social fuera del trabajo o pasas tu tiempo libre haciendo algo que no está codificando de vez en cuando.

Ahora, mis experiencias pueden no corresponder directamente a su elección, pero estoy seguro de que algunas de ellas se aplicarán. Afortunadamente, al menos le dará algunas preguntas para plantear. Como otros han mencionado, probablemente desee saber qué herramientas usan (hardware, entorno de desarrollo de software / IDE y, definitivamente, control de versiones). La prueba de Joel podría ser una guía útil.

TL; DR

No lo hagas

PD Para aquellos que dicen que aprender cualquier idioma nuevo es útil, eso en sí mismo es cierto. El problema es cuando te quedas atascado usando ese idioma casi exclusivamente a tiempo completo durante un largo período de tiempo, perdiendo la exposición a lenguajes (y técnicas) más útiles. Eso es lo que quieres evitar.

Abe Voelker
fuente
Esta. Algo como esto es bueno para que un trabajo cómodo y de bajo estrés dure hasta su jubilación. Es no una manera buena para reactivar una carrera.
Wayne Molina
Ese es un pensamiento aterrador @Wayne: aprende un idioma patentado justo después de la escuela, luego usa ese idioma exclusivamente durante 50 años impares ...
Morgan Herlocker
Aterrador es poner eso a la ligera. No importa el hecho de que si alguna vez te despidieron o la empresa se hundió, no tendrías ninguna habilidad comercial que valga la pena para nadie. Es muy posible que no haya existido en el mundo de los negocios.
Wayne Molina
Acabo de terminar un contrato en un lugar de tamaño medio cuyo sistema central está escrito en progreso, no es tan desconocido. Afortunadamente, fui uno de los nuevos codificadores .Net que interactúan con el sistema a través de llamadas de servicio web. Todavía lograron obtener codificadores de Progreso cuando los necesitaban.
Dave
16

La desventaja obvia es que no podrá agregar este trabajo al requisito de "5+ experiencia usando el lenguaje x" que tendrán los trabajos futuros a los que querrá postularse. Esto puede ser más molesto de lo que piensas (hablando como alguien que ha tenido muchos años de experiencia, pero una amplia gama de lenguajes de programación). Tengo experiencia profesional con VBA que bien podría haber sido experiencia con LOLCODE, según los trabajos que busco hoy.

Pero, ¿usan ese lenguaje exclusivamente? Es raro que una empresa solo use un idioma. Incluso mi tiempo con VBA incluía ASP, Java y PostgreSQL.

Brian Cable
fuente
Edité mi pregunta para hacerlo más específico; no han mencionado ningún otro idioma hasta ahora, así que necesito preguntarles sobre eso la próxima vez que hable con ellos.
AlexMA
3
En realidad, tengo problemas porque quiero un trabajo en Java y toda mi experiencia está en .NET, por lo que nadie me contratará y son MUY similares. Con un lenguaje totalmente personalizado, tendrá un momento aún más difícil. La gente de recursos humanos y la mayoría de los reclutadores son imbéciles y piensan que necesitas 5 años de experiencia en cada tecnología que toques ...
Cervo
8

Tiendo a estar de acuerdo con el mantra, " programar es programar ", independientemente del lenguaje en el que hayas estado trabajando. Gran parte de la programación es aprender a pensar y el resto es solo sintaxis. Un posible empleador futuro estará más impresionado por " Logré X con la Compañía Y " que por " He conocido el lenguaje X durante Y años ".

El último trabajo que tomé implicaba mucho trabajo de PL / SQL y nunca había escrito una sola línea de PL / SQL; lo recogí en aproximadamente dos semanas.

Dicho esto, definitivamente seguiría practicando con otros idiomas, solo para estar al día. Mientras esté en el nuevo trabajo, tenga uno o dos proyectos favoritos que mantendrán su brazo de programación en forma con un lenguaje más estándar, pero no se preocupe demasiado.

Ortigas Jarrod
fuente
Ese era mi plan; escribir mis propias aplicaciones (o lo que sea) los fines de semana para mejorar mis habilidades con las tecnologías que me interesan. Dicho esto, como Brian menciona, es posible que no obtenga las calificaciones para los puestos de trabajo que requieren X años de experiencia con el idioma Y. Hice el trabajo ¿requirió cierta experiencia PL / SQL?
AlexMA
@Alex: "... no puede obtener las calificaciones para las ofertas de trabajo que requieren X años de experiencia con el lenguaje Y" es una casualidad de tomar cualquier trabajo. Tomar un trabajo en particular significa que está perdiendo otras oportunidades.
Chris
2
@Chris Sí ... pero es un poco diferente si estás aprendiendo "FooBar" y no tienes la esperanza de transferirlo a otra compañía que también usa "FooBar". si aprendes PHP ... seguro que no estás aprendiendo C ... pero hay toneladas de compañías que pagan PHP.
WernerCD
3
-1 Esta es la respuesta correcta, pero no para esta pregunta.
wilhelmtell
2
"Un posible futuro empleador quedará más impresionado con" Logré X con la Compañía Y "que con" Conocí el lenguaje X durante Y años ". --- Mi experiencia en ambos lados de las entrevistas técnicas ha sido exactamente lo contrario de esto.
6

En TI, la empresa a menudo tiene que ver con el reclutador para encontrar buenos candidatos. Los reclutadores no son especialistas en TI, por lo que tiene algunos criterios y coincide con los candidatos y luego los envía de vuelta a la empresa. Sigue el camino de sam con recursos humanos en grandes empresas.

Tienes un problema con eso. No encajará en los criterios de reclutador. Por lo tanto, diría que no es un problema proteger sus competencias. La programación es programación, y un programador sólido debe saber cómo cambiar de un idioma a otro, porque la sintaxis es menos importante que saber cómo hacer un código confiable, un código comprobable y un código que se pueda mantener. Estas capacidades son en su mayoría independientes del idioma.

Sin embargo, siempre y cuando no cumpla con los criterios de coincidencia de que ninguna persona de TI lo reclute, probablemente será un inconveniente encontrar un futuro empleado. Incluso si serás competente de todos modos. Esas personas no saben cómo juzgar eso porque no son TI.

Definitivamente no recomendaría este trabajo para el primero. Pero si ya tiene alguna entrada en su CV sobre tecnologías ampliamente utilizadas (Java, PHP, C, C ++, C #, ...), hágalo si lo desea.

deadalnix
fuente
Gracias por su comprensión sobre los reclutadores; eso suena bien.
AlexMA
5

Definitivamente, hay habilidades que puede adquirir / mejorar utilizando lenguajes y entornos propietarios. Como se ha mencionado en otras respuestas, algunas habilidades trascienden el lenguaje y pueden ser muy valiosas en un currículum.

Sin embargo, esas habilidades se pasan por alto con frecuencia cuando las personas que revisan los currículums no son técnicas. A menudo (en el extremo inferior del espectro de calidad del trabajo, que, desafortunadamente, es con frecuencia la mejor apuesta para desarrolladores relativamente inexpertos), los currículums se evaluarán principalmente en x años de idioma y , y las otras habilidades que quizás no haya adquirido juega hasta que hayas puesto un pie en la puerta con una entrevista.

Otro factor a tener en cuenta es que los entornos propietarios tienden (al menos) a tener un diseño más pobre, ser poco convincentes y, en general, frustrantes que los entornos convencionales. Trabajar exclusivamente en un mal sistema patentado puede ser muy desalentador, especialmente para alguien que recién comienza una carrera en programación.

Dicho esto, recuerde que la experiencia con un sistema propietario, aunque no es tan buena como una experiencia similar trabajando con lenguajes dominantes populares, es aún mejor que ninguna experiencia a largo plazo. Tendrá una ventaja más allá del nivel de entrada para algunos puestos, y para otros, aún puede (o no) calificar como nivel de entrada para idiomas específicos, pero su experiencia lo pondrá significativamente por delante de la mayoría de las otras personas que compiten para esos trabajos

Antes de considerar dejar pasar una oferta por centrarse en un lenguaje propietario, asegúrese de considerar el mercado laboral actual y cómo se reciben sus aplicaciones en general.

Beofett
fuente
3

Se trata de los idiomas y habilidades auxiliares que aprenderá. Si de hecho su idioma interno no se usa o incluso se conoce fuera de la compañía, será de beneficio limitado en cuanto a la carrera profesional (a menos que sea probable que explote y sea la próxima gran cosa). Pasé unos años trabajando con una herramienta de terceros que en sí misma es inútil para mí (profesionalmente), sin embargo, al trabajar en esos proyectos mejoraron mis habilidades de HTML, CSS y JavaScript. También aprendí mucho sobre cómo se ejecutan y estructuran los proyectos empresariales, cómo tratar con los clientes y cómo gestionar las expectativas. Todas las cosas que forman parte del desarrollo de software moderno que en realidad no son el lenguaje.

Kevin D
fuente
He editado mi pregunta para tener en cuenta que no han mencionado ningún idioma auxiliar; sin embargo, buenos puntos sobre habilidades no específicas del idioma.
AlexMA
2

¿Qué pasa con el marco: IDE, editor, bibliotecas? Las aplicaciones empresariales más complejas. en estos días no se puede hacer con un editor de texto sin formato y un compilador de línea de comandos.

¿Tienen algo de eso para su lenguaje de programación personalizado?

revs umlcat
fuente
Buen punto. De nuevo, no lo han mencionado. Necesito preguntar.
AlexMA
2
A veces, los IDE / conjuntos de herramientas patentados son increíblemente malos (he trabajado con algunos).
FrustratedWithFormsDesigner
2

A menudo, aprender un negocio es más importante que aprender una tecnología. Si crees que te gustaría quedarte en la industria particular en la que se encuentra esta compañía, entonces adelante y tómalo. Si se trata de un nicho de mercado, o uno en el que no estás particularmente interesado, entonces te sugiero omitirlo. Conocer los entresijos de (por ejemplo) la farmacocinética y el proceso de descubrimiento de fármacos abrirá puertas que no será más que ser otro programador de C # / Python / Java. Y a menos que este lenguaje "único" sea más un generador de código o un configurador, seguirá resolviendo problemas comunes, por lo que aún obtendrá algo de experiencia general, incluso si las técnicas específicas pueden no ser directamente transferibles.

TMN
fuente
Esto también La única forma en que este trabajo sería un beneficio es si el conocimiento de la industria ayudará y desea pasar al dominio comercial real. Si quieres seguir siendo desarrollador, en palabras inmortales del Almirante Ackbar,IT'S A TRAP!
Wayne Molina
2

Consideraría tomarlo si, y solo si, puedes tener mucha experiencia en otros idiomas. Si haces tomar el trabajo, puede (y debe) mantenerse al día con sus habilidades de idiomas principales por los que trabajan en proyectos de código abierto en su tiempo libre.

Lo que desea evitar es la posibilidad de que sus habilidades se sintonicen mucho con esta compañía específica y no sean transferibles a otras. Técnicamente, la programación es programación, y la experiencia fuera de un solo entorno de programación es beneficiosa, no perjudicial, ya que le ayuda a ver los problemas con mayor claridad.

Piénselo de esta manera: si toma un trabajo escribiendo programas de Perl, eso no necesariamente lo condena a una eternidad de escribir programas de Perl. Tampoco tomar un trabajo en .NET lo condena a estar siempre vinculado a Microsoft.

Pero aquí está la parte importante: nunca contrataría a un programador que solo sepa un idioma , incluso si es el que quiero que use. Un programador que no tiene una amplia gama de experiencia en muchos idiomas a menudo es pobre incluso con su idioma de elección. También refleja la falta de ambición por aprender cosas nuevas.

Por otro lado, si un programador conoce Python, Ruby, C #, PHP, C y Erlang, entonces el hecho de que él también conozca APL no es un ataque contra él, aunque no hay ninguna posibilidad de que usemos APL para cualquier cosa.

Entonces, si tiene la disciplina para evitar que el idioma se convierta en su único enfoque, entonces tome el trabajo.

Y vale la pena declarar de nuevo: contribuir a proyectos de código abierto. Cuentan para toneladas más que la "experiencia laboral" porque no es algo que simplemente hiciste para hacer un cheque de pago. Los programadores que trabajan en proyectos de código abierto son como el oro.

tylerl
fuente
2

Mi primer trabajo después de graduarme con mi título de CS consistió en desarrollarme con un lenguaje oscuro. No es único. No desarrollado internamente. Pero un VMS 4GL lo suficientemente oscuro que nunca vi a nadie más usándolo.

En retrospectiva, esta fue una decisión imprudente. Si bien aprendí mucho sobre el desarrollo de software profesional haciendo ese trabajo, hubiera sido mucho mejor desarrollar también un dominio del lenguaje comercializable para acompañar las habilidades "blandas".

Tuve suerte: mi segundo trabajo fue trabajar con otro VMS 4GL oscuro. Me contrataron porque sabían que no podían encontrar personas que ya conocieran el idioma; el hecho de que tenía experiencia en la plataforma VMS con un 4GL fue suficiente. Y en ese trabajo, tuve la oportunidad de capacitarme en un lenguaje comercializable mientras buscaban alejarse de VMS hacia los servidores de Windows.

Pero fácilmente no podría haber tenido esa suerte, y me encontré cinco años en mi carrera con absolutamente cero experiencia que persuadiría a un reclutador o una persona de Recursos Humanos a mirar mi currículum.

Para su primer trabajo después de la graduación, realmente no lo recomiendo.

Carson63000
fuente
2

Para dar una meta-respuesta, he notado que muchas respuestas dicen: "Por experiencia personal, esto es algo malo".

Muchos otros dicen: "En teoría, esto no tiene que ser malo".

Pero ninguna de las respuestas que he visto proviene de personas que hicieron algo similar y pensaron que fue una buena experiencia.

Ahora, tal vez algunas personas hayan hecho esto y estén encantadas con sus trabajos, pero no están en Stack Exchange. Esto es cierto para algunos programas comerciales. Por ejemplo, hay algunos administradores de Software AG Natural / Adabas realmente dedicados, pero no hay muchas discusiones relacionadas sobre Stack Exchange. Sin embargo, al menos alguien está buscando incluso a estos especialistas especializados. Eso no sería cierto para un lenguaje completamente propietario.

Entonces, si el objetivo es avanzar hacia el tipo de tecnologías discutidas aquí, el hecho de que pocos respalden esto de la experiencia real sugiere que no es necesariamente el mejor comienzo. Puede que no sea el beso de la muerte. Pero querrá trabajar para evitar que se convierta en un obstáculo terrible, como comenzar o contribuir a un proyecto de código abierto relacionado con sus aspiraciones.

GargantuChet
fuente
1

Acepta el trabajo si crees que hay buenos / excelentes programadores que te ayudarán y orientarán. Uno pensaría que un lugar que hace esto tiene gente bastante buena, pero no puedo estar seguro. Además, ¿esta empresa tiene algún tipo de reputación para contratar a los mejores candidatos? Puede ser contratado por otra persona, independientemente de los idiomas utilizados en el trabajo.

JeffO
fuente
1

Tenga especial cuidado si el dominio del problema está dominado por uno o algunos idiomas en la industria. El desarrollo de bases de datos está estrechamente relacionado con SQL. El desarrollo de FPGA se divide principalmente entre Verilog y VHDL. Compare eso con las aplicaciones web que están escritas en (combinaciones de) Java, PHP, perl, python, Scala, C ++, etc. Un gerente de contratación que busque desarrolladores web comprenderá mucho más las habilidades transferibles si no tiene experiencia específica en su idioma de elección. Un gerente de contratación que busque a alguien para escribir consultas en la base de datos esperará experiencia SQL.

Ben Jackson
fuente
1

He programado en un lenguaje propietario. Pero ese no era el lenguaje que se usaba por todas partes. No tengo nada en contra de esa experiencia ahora, aunque me quejé cada momento de hacer ese trabajo. Tuve la oportunidad de usar ese idioma, mantener ese idioma y, mejorarlo, junto con el mantenimiento del programa escrito en ese idioma.

En el camino, aprendí a leer y entender cómo funcionaría un pequeño intérprete. Si su empleador potencial tiene las fuentes para el compilador / intérprete del lenguaje propietario, es muy posible que tenga la oportunidad de trabajar en sus componentes internos. Puedo decir, por experiencia, que atesorarás esta experiencia laboral en los años venideros.

Las habilidades transferibles que habría adquirido son: trabajo en equipo, ingeniería de software, redacción de un compilador / intérprete o, partes de él, algoritmos, etc. Si se trata de un intérprete, el lenguaje propietario es solo una máscara bajo la cual encontrará al intérprete escrito en, digamos, C, u otro lenguaje. Si se compila un lenguaje propietario, tendrá la oportunidad de trabajar en un compilador de producción que esté completamente bloqueado. Entonces, cuando busque el próximo trabajo, necesita vender estas habilidades más duro que, por ejemplo, C / C ++ / Java / Python para desarrolladores de aplicaciones o Python, Perl, Java, HTML, CSS, JavaScript, Flash para desarrollo web o Verilog, VHDL para desarrollo integrado o cualquier otro conjunto de idiomas para otro dominio de aplicaciones.

Todo esto, suponiendo que su empleador potencial tenga las fuentes para el lenguaje propietario y que esté dispuesto a trabajar más que a trabajar en los programas escritos en el lenguaje propietario. Aún así, admito que estoy siendo extremadamente optimista al decir que podría tener una oportunidad similar a la que tuve hace unos años.

En las entrevistas, años de experiencia y habilidades técnicas no están solos en las decisiones de contratación. Su sed de aprendizaje, ajuste cultural, inclinación cultural, son una gran parte de la decisión.

Entonces, para un primer trabajo, si su trabajo no se limitará a los programas escritos solo en el lenguaje propietario, sino que también le permitirá trabajar en su implementación, tómelo.

vpit3833
fuente
1

Creo que hay dos lados en esto. Primero está este trabajo específico y, segundo, cómo afecta sus perspectivas profesionales.

Lo que me gustaría saber sobre este trabajo es por qué crearon su propio lenguaje de programación. ¿Tiene sentido? Si no, tomaría un trabajo diferente.

En los últimos diez años he trabajado para tres empresas con su propio idioma. El primero porque, cuando se inició el proyecto, no había nada que pudiera hacer lo que necesitaban. (Escribieron una versión técnica de Visual Basic, pero esto estaba en Unix y años antes de que existiera VB). Los otros dos tenían requisitos de rendimiento que no se podían cumplir con los lenguajes existentes. Considero estas muy buenas razones.

En el lado de las perspectivas de carrera, como han mencionado otros, los reclutadores y las personas de recursos humanos que no entienden la programación y trabajan usando una serie de casillas de verificación tendrán dificultades con su CV. Muchas empresas que desean un programador de C ++ plug-and-play se negarán a pagarle para que aprenda un nuevo idioma. Todo esto es verdad.

¿Pero realmente quieres trabajar para una empresa así?

Si la respuesta a eso es 'Sí', entonces probablemente debería rechazar este trabajo y buscar uno con requisitos más convencionales. Además, dependiendo de dónde viva, es posible que no tenga muchas opciones y tenga que trabajar para empresas que realmente no entienden a los programadores.

Personalmente, no quiero trabajar para una empresa así y creo que es justo decir que no he encontrado que mis opciones sean demasiado limitantes. Si tiene un historial de aprendizaje rápido de nuevas tecnologías, solución de problemas del mundo real y, tal vez, algún conocimiento de "negocios", entonces creo que debería estar bien.

También hay aspectos positivos. ¿En cuántos otros lugares puedes jugar con el compilador / intérprete? ¿Con qué frecuencia puede influir en las nuevas características y la sintaxis del idioma que usa todos los días?

Stephen Darlington
fuente
1

En primer lugar, un lenguaje de programación interno no es necesariamente algo malo, sin embargo, hay algunas reglas básicas que necesita para justificar un lenguaje personalizado.

Escribes y crees que no usan ningún otro idioma. La primera pregunta que debe hacer es si también usan otro idioma.

Los lenguajes de programación personalizados pueden tener buenas justificaciones. Sé que las matemáticas trabajan con idiomas especializados. Escuché que la agencia tributaria usa un lenguaje especial para calcular los impuestos con las leyes que cambian anualmente sobre ellos. Bienvenido al dominio de la metaprogramación .

Sin embargo, cualquier lenguaje personalizado nunca debe implementar un lenguaje completo. Fuera de su dominio, aún debe recurrir a un lenguaje de programación clásico / ampliamente conocido. Incluso en el dominio del idioma no es probable que cada pequeño detalle esté cubierto por el idioma del dominio.

Buenas preguntas para hacer:

  1. ¿Se utilizan otros idiomas en esta empresa?
  2. ¿Cuál es la razón por la que otro idioma no era adecuado para ellos?
  3. Es el lenguaje utilizado fuera de la empresa (por investigadores o bajo licencia de otras empresas)
  4. ¿Cuántas personas conocen el idioma?
  5. Cuántos proyectos / programas (exitosos) se realizan con el idioma.

A partir de estas respuestas, debería poder averiguar cuál es el estado del idioma. Si es un lenguaje de dominio que agrega un gran valor, está todo bien. Si el proyecto de mascota de alguien reemplaza Java o C #, salga de allí lo antes posible .

Editar: le sugiero que lea en el artículo de lenguaje específico de dominio en wikipedia, eso debería dar más información.

Dorus
fuente
1

Puede que no nos guste, pero como programador de computadoras tenemos que tener un CV que los agentes y departamentos de recursos humanos estén dispuestos a enviar a los gerentes de proyecto . Nuestro CV también debe destacarse ya que coincide con el conjunto necesario aún dentro de los 30 segundos de alguien que lo mira, también debe tener las palabras clave correctas para que coincida con una búsqueda en la base de datos de cv.

¡Tan solo trabajar en un lenguaje de programación único es un gran riesgo! Sin embargo, el uso de una combinación de DSL y un idioma principal se puede presentar bien en el CV. (Debe decir la verdad en su CV, ¡pero no tiene que ser toda la verdad!)

Ian
fuente
1

Estaría menos nervioso por tomar un trabajo como ese si ya tuvieras una amplia gama de conocimientos de programación. Si eres nuevo en la industria, esto podría encasillarte profesionalmente bastante mal, posiblemente hasta el punto de que tendrías que comenzar de nuevo como Jr o pasante más tarde ... Esto podría ser particularmente malo si te quedas con esta compañía por un tiempo, solo para irse sin habilidades transferibles.

Si ya tienes bastante experiencia en la industria, entonces este podría ser un punto genial para tu carrera. Y la percepción de si / cuando dejaste este lugar sería más de "maldición, él es un Jedi, ha hecho todo"

Rikon
fuente
1

Únase a la empresa solo si trabajará en la empresa durante toda su vida útil, o de lo contrario, nunca piense en aceptarlo, incluso si obtiene un buen paquete salarial. Tengo experiencia en unirme a esa empresa y quedarme atrapado allí a pesar de de muchas frustraciones en el trabajo, porque no hay experiencia en otros lenguajes de programación para buscar otro trabajo.

bienqueriente
fuente
Esta. Tenga cuidado con esta "oportunidad", es solo una oportunidad para una jubilación rápida.
Wayne Molina
0

He visto a alguien con 15 años de experiencia, principalmente como desarrollador principal o principal, incapaz de conseguir un trabajo durante mucho tiempo, principalmente porque la compañía lo dejó sin experiencia en lo que se había convertido en lenguajes contemporáneos y API.

Los programadores se colocan mentalmente en contenedores como lo hacen los actores en las películas (héroe, villano, etc.) y una vez que estableces cuál es tu contenedor, creo que puedes hacer que sea mucho más difícil encontrar un trabajo que si no tienes más Universidad.

Es decir, si tiene un título de CS, es probable que sea candidato para varios trabajos.

Pero si tiene un título de CS con 3 años de experiencia en PHP, en realidad es MENOS candidato para un puesto de desarrollador web Java que cuando se graduó. Te has vinculado como desarrollador de PHP y hasta que tengas experiencia en contrario, eso es lo que vas a ser contratado para hacer. (Extraño, pero creo que es cierto, tienes más experiencia total, pero tu currículum no se considerará irrelevante porque es el tipo de experiencia incorrecto, mientras que recién salido de la universidad podría no haber sido tu currículum)

Y si tienes un título de CS con 1 año de experiencia en SpecialtyLanguageX, entonces has cerrado todo tipo de puertas por ti mismo.

Estas son solo mis opiniones y observaciones, por supuesto, nunca he hecho la contratación, esto es lo que me parece.

John Robertson
fuente