Existem desvantagens em aceitar um emprego em que usarei uma linguagem de programação exclusiva? [fechadas]

37

Acabei de me formar na faculdade com um diploma em CS, então gostaria de encontrar um emprego em que possa aprender mais sobre o campo e criar alguma experiência profissional.

Eu entrevistei uma empresa que usa sua própria linguagem de programação interna e não acho que outras pessoas a usem. Eles não mencionaram o uso de outras linguagens ou o que eles usam para um ambiente de desenvolvimento.

O que devo me preocupar em aceitar um emprego como este? Se eu trocasse de emprego mais tarde, teria que começar a procurar posições de nível de entrada novamente porque não adquiri nenhuma experiência específica de idioma?

AlexMA
fonte
8
O idioma não será importante desde que você se sinta confortável com seu trabalho, o ambiente de trabalho e suas responsabilidades.
611 Marcelo
5
A graduação com um diploma em CS significa que você tem a capacidade de aprender coisas novas. Você será continuamente apresentado a situações em que precisa adquirir / aprender um novo idioma ou tecnologia e isso não é diferente. O que você leva de emprego em emprego é a experiência na solução de problemas. A sintaxe de um idioma específico aparece no passeio.
22711 Chris
11
O idioma proprietário MUMPS está por acaso?
R0MANARMY
3
Se for Wasabi ( blog.fogcreek.com/the-origin-of-wasabi ) - pegue!
Gerry
3
@ DaveShaw: E as pessoas ainda correm com os touros. Não necessariamente torna uma boa ideia;).
R0MANARMY 07/07

Respostas:

28

As principais desvantagens:

  • trabalhar em um "ambiente personalizado" pode significar ferramentas / suporte limitados, o que pode ser irritante quando você fica preso em um problema.
  • O idioma que eles usam pode ser mal projetado, levando você a adotar maus hábitos desde o início e escrever código hacky para criar soluções alternativas.
  • Os baffoons de RH não reconhecerão sua experiência. (Tudo bem. Uma empresa que se apóia no RH para fazer contratações técnicas não é o tipo para o qual você normalmente quer trabalhar. Depois de alguns anos, a maioria dos bons trabalhos é feita por meio de conexões.)

Se fosse eu, perguntaria por que eles usam uma linguagem interna. Se for por uma razão legítima, como restrições de hardware malucas, um domínio que não é facilmente modelado em nenhum idioma existente, tudo está bem. Por outro lado, se a resposta deles sugerir que eles criaram seu próprio idioma para poderem agrupar um monte de hacks e lógica de negócios no que equivale a um monte de macros malucas, essa é uma grande bandeira vermelha. Você deseja garantir que eles usem bons princípios de engenharia, para que você possa aprender com eles e ter sucesso com eles.Nesse caso, você pode ver se eles podem justificar racionalmente o uso de uma linguagem caseira que não possui uma base de conhecimento da comunidade e suporte externo. Você pode achar que a decisão deles é perfeitamente racional (acredito que o Facebook construiu sua própria versão do PHP para lidar com a escalabilidade, o que foi muito bom para eles), ou você pode achar que eles criaram uma monstruosidade de uma linguagem que foi tão fortemente acoplados aos seus sistemas principais, que eles parecem não conseguir se separar dele. Confie em mim, você não deseja trabalhar em um idioma cujo tipo de dados principal seja chamado ImARInObj (Objeto de fatura de contas a receber imutáveis). O acoplamento estreito entre um idioma e uma empresa geralmente ocorre nesses tipos de situações, e seria um pesadelo absoluto lidar com esse tipo de sistema todos os dias.

Morgan Herlocker
fonte
12
Na verdade, não tem problema, porque baffoons RH executar a maior parte da contratação, mesmo para muitas empresas boas ....
Cervo
11
Eu concordo com as ferramentas / suporte. No meu antigo trabalho, usamos um mecanismo de acesso a dados personalizado. Não sei dizer quantas vezes eu quis pesquisar no Google a proliferação de erros de tempo de execução que encontrei, mas tive que me lembrar que isso era uma coisa interna. Você não pode nem postar perguntas no stackoverflow para obter ajuda. Você está à mercê da sua empresa e é melhor procurar que eles tenham documentos bem documentados, uma seção / página de seção de perguntas frequentes e / ou documentação sobre como resolver esses problemas imprevistos que normalmente levam horas para você rastrear. Sugou muito ruim. Estou feliz por estar de volta com o NHibernate novamente.
A-Dubb
"Você nem pode postar perguntas no stackoverflow para obter ajuda." E se você convencesse uma das pessoas que mantém a rede interna a configurar um clone SO da empresa?
21911 JAB
Eu tive um problema semelhante. Idiomas muito especializados, sem base de usuários, têm problemas com suas ferramentas. Uma opção que eu usei é pegar uma ferramenta semelhante a uma engrenagem e escrever um código para escrever o código. Especialmente se muitos deles forem clichê.
Spencer Rathbun
96

Fuja e fuja rapidamente. A menos que você esteja desesperado por um emprego e tenha muita fome, é uma situação que você deseja evitar.

Tenho experiência com uma empresa que fez isso e a única razão pela qual eles fizeram isso foi para que seus funcionários não ganhassem uma experiência significativa e transferível . Realmente era tudo sobre controle.

Outros que disseram aqui que "programar é programar" estão certos, mas eu diria isso de cabeça para baixo e pergunto: por que não usar uma linguagem padrão para a qual exista suporte externo, bibliotecas, fóruns e um conjunto de programadores disponíveis para escolher a partir de?

A única vez em que acho que essa situação seria boa seria se o idioma exclusivo da empresa fosse para hardware personalizado. Por exemplo, você precisa escrever tudo para o interferômetro gama 9000X usando um código de montagem / máquina específico para essa máquina.

antitônico
fonte
21
A potencial falta de suporte e documentação (nunca imaginei que as ferramentas internas fossem tão bem documentadas quanto as ferramentas padrão) é uma grande preocupação, IMO. E as razões para fazer as coisas dessa maneira precisam ser bem compreendidas.
Ethel Evans
15
+100 Apenas pense nisso ... a próxima posição que você procurar que tenha uma linguagem comum, você terá zero anos de experiência profissional / aplicável. Você começará novamente como desenvolvedor Junior.
2
E se ele estiver falando do Google e o idioma for sawzall ( labs.google.com/papers/sawzall.html ) ou Go (antes de ser público)? Não existem outras boas razões para inventar um novo idioma?
Neil G
3
@ Neil - Muitas razões excelentes e as pessoas costumam chamá-las de pequenos idiomas, DSLs (idiomas específicos do domínio) ou (no caso do Google) "a próxima grande novidade". Certamente não tenho nada contra linguagens proprietárias. O OP disse que este é o único idioma em uso. O Google não tem nada em relação aos idiomas padrão.
Unpythonic
3
Eu gosto da idéia de olhar para as motivações da empresa, mas IMHO, inventar sua própria linguagem com o único objetivo de prender seus funcionários não é uma idéia que teria saído do papel. Em vez disso, quase certamente, alguém inventou uma linguagem para resolver um problema específico, e agora ela é usada principalmente por motivos legados. Não é um ambiente ideal, mas pelo menos benigno.
tylerl
22

Como o seu currículo fica basicamente em branco depois que você se forma, seu primeiro emprego dá muito impulso à sua futura carreira. Seu próximo empregador potencial estará dando muito peso a esse trabalho. Portanto, a menos que você também esteja programando em outras linguagens (mais comercializáveis), eu recomendo não aceitar esse trabalho.

Digo isso por experiência própria, porque acabei de sair do primeiro emprego que tinha depois de me formar no curso de Administração, onde estava em uma posição quase exatamente como você descreve. A maior parte da programação foi feita em uma linguagem basicamente desconhecida chamada Progress (aka OpenEdge ABL). É horrível. Não é tão ruim quanto COBOL, mas perto. Eu estava preso lá porque a área em que me formei não tem muitos trabalhos de programação e estava esperando minha esposa se formar antes de se mudar.

Conseguir que esse idioma falasse com outros idiomas ou bancos de dados era quase impossível (ele também estava bloqueado com seu próprio banco de dados - bônus!). Passei muito tempo escrevendo estruturas por conta própria que já existiam em outros idiomas e provavelmente já foram melhor implementadas, pois o idioma não suportava muito bem esse tipo de paradigma de "extensão". O idioma foi adaptado para um "contato com a Progress Corp. com uma solicitação de recurso e aguarde até a versão n + 1 para o novo recurso". Escusado será dizer que a indústria de software não se move lentamente o suficiente para que essa seja uma abordagem viável. Não falarei sobre o quão ruim foi, mas presumo que você enfrentará algo semelhante se também estiver lidando com uma linguagem proprietária.

Para adicionar a isso, a base de código existente foi, digamos, subótima. Muitos códigos legados que datam do final dos anos 80 / início dos anos 90. Aposto que você deve esperar algo semelhante, já que acho que a maioria das empresas se apega apenas aos idiomas proprietários, porque carregam grande parte dessa bagagem herdada. Lembre-se de que provavelmente é difícil para um empregador encontrar programadores dispostos a codificar nesse ambiente legado / proprietário, além de provavelmente também terem que pagar pelo treinamento, já que ninguém nunca ouviu falar dele. Seus colegas de trabalho provavelmente também não serão titãs da engenharia de software, devido ao efeito do Mar Morto(qualquer pessoa com talento provavelmente já foi embora). Eu tive muitos problemas nas revisões de código tentando usar código orientado a objetos, muito menos qualquer tipo de padrão de design, pois eles simplesmente não o entendiam (as pessoas da minha equipe tinham, na melhor das hipóteses, um diploma MIS (sem ofensas) )).

Por fim, supondo que você aceite esse trabalho, mas anseie por fazer algo melhor assim que sair, para se tornar competitivo no próximo emprego, você deve sacrificar muito do seu tempo livre fora do trabalho, criando brinquedos quebráveis em idiomas mais comercializáveis ​​(e provavelmente código aberto a maior parte do que você cria) ou faça o que fiz e economize algum dinheiro antes de sair e passar um mês ou dois fazendo o mesmo. De qualquer forma, isso é uma coisa muito estressante, especialmente se você gosta de ter algum tipo de relacionamento social fora do trabalho ou passa o tempo livre fazendo algo que não é codificado de vez em quando.

Agora, minhas experiências podem não ser mapeadas diretamente para sua escolha, mas tenho certeza de que algumas delas serão aplicadas. Espero que pelo menos lhe dê algumas perguntas a serem apresentadas. Como outros já mencionaram, você provavelmente deseja descobrir quais ferramentas eles usam (hardware, ambiente de desenvolvimento de software / IDE e, definitivamente, controle de versão). O teste Joel pode ser um guia útil.

TL; DR

Não faça isso.

PS Para aqueles que dizem que aprender qualquer novo idioma é útil, isso por si só é verdadeiro. O problema é quando você fica preso usando esse idioma quase que exclusivamente em tempo integral por um longo período de tempo, perdendo a exposição a idiomas (e técnicas) mais úteis. É isso que você deseja evitar.

Abe Voelker
fonte
Este. Algo assim é bom para um trabalho confortável e de baixo estresse que dura até sua aposentadoria. É não uma boa maneira de alavancar uma carreira.
Wayne Molina
Essa é uma terrível pensou @Wayne: Aprenda uma linguagem proprietária apenas fora da escola, em seguida, usar essa linguagem exclusivamente para 50 anos ímpares ...
Morgan Herlocker
Aterrorizante é colocar isso de ânimo leve. Não se preocupe, se você fosse demitido ou a empresa falisse, você teria zero habilidades negociáveis ​​de valor para ninguém. Você também pode não ter existido no mundo dos negócios.
Wayne Molina
Acabei de terminar um contrato em local de tamanho médio, cujo sistema principal está escrito em andamento - não é tão desconhecido. Felizmente, eu era um dos novos codificadores .Net que faz interface com o sistema por meio de chamadas de serviço da web. Eles ainda conseguiam obter codificadores Progress sempre que precisavam deles.
dave
16

A desvantagem óbvia é que você não poderá adicionar este trabalho ao requisito "5+ experiência usando o idioma x" que terão os futuros trabalhos aos quais você deseja se candidatar. Isso pode ser mais irritante do que você imagina (falando como alguém que teve muitos anos de experiência, mas uma ampla variedade de linguagens de programação). Tenho uma experiência profissional com o VBA que também poderia ter sido com o LOLCODE, com base nos trabalhos que procuro hoje.

Mas, eles usam esse idioma exclusivamente? É raro que uma empresa use apenas um idioma. Até o meu tempo no VBA incluiu ASP, Java e PostgreSQL.

Brian Cable
fonte
Editei minha pergunta para torná-la mais específica; eles não mencionaram nenhum outro idioma até agora, então preciso perguntar a eles sobre a próxima vez que falar com eles.
AlexMA #
3
Na verdade, tenho problemas porque quero um trabalho em Java e toda a minha experiência é em .NET, para que ninguém me contrate e eles são MUITO parecidos. Com uma linguagem totalmente personalizada, você terá ainda mais dificuldade. Pessoas de recursos humanos e a maioria dos recrutadores são idiotas e acho que você precisa de 5 anos de experiência em todas as tecnologias que você toca ....
Cervo
8

Costumo concordar com o mantra: " programação é programação ", independentemente da linguagem em que você está trabalhando. Grande parte da programação está aprendendo a pensar e o resto é apenas sintaxe. Um potencial empregador futuro ficará mais impressionado com " realizei X com a empresa Y " do que com " conheço a linguagem X há Y anos ".

O último trabalho que envolvi envolveu muito trabalho em PL / SQL e nunca havia escrito uma única linha de PL / SQL - eu o peguei em cerca de duas semanas.

Dito isto, eu continuaria em prática com outros idiomas, apenas para me manter atualizado. Enquanto estiver no novo emprego, tenha um ou dois projetos que manterão seu braço de programação em forma com uma linguagem mais padrão, mas não se preocupe muito com isso.

Jarrod Nettles
fonte
Esse era o meu plano; escreva meus próprios aplicativos (ou o que for) nos finais de semana para aprimorar minhas habilidades com as tecnologias nas quais estou interessado. Dito isso, como Brian menciona, talvez eu não consiga qualificações para ofertas de emprego que exigem X anos de experiência com o idioma Y. Realizou o trabalho você tomou requer uma certa quantidade de experiência em PL / SQL?
AlexMA #
@ Alex: "... pode não obter as qualificações para anúncios de emprego que exigem X anos de experiência com o idioma Y" é uma casualidade de aceitar qualquer emprego. Aceitar um trabalho específico significa que você está perdendo outras oportunidades.
22411 Chris
2
@ Chris Yeah ... mas é um pouco diferente se você está aprendendo "FooBar" e não tem esperança de transferir isso para outra empresa que também usa "FooBar". se você aprender PHP ... com certeza você não está aprendendo C ... mas há muitas empresas que pagam pelo PHP.
WernerCD
3
-1 Esta é a resposta correta, mas não para esta pergunta.
Wilhelmtell
2
"Um potencial empregador futuro ficará mais impressionado com" realizei X com a empresa Y "do que com" conheço a linguagem X há anos Y "." --- Minha experiência nos dois lados das entrevistas técnicas tem sido exatamente o oposto disso.
6

Em TI, a empresa geralmente tem a ver com o recrutador para encontrar bons candidatos. Os recrutadores não são especialistas em TI, por isso têm alguns critérios e combinam os candidatos com eles e os enviam de volta à empresa. Ele segue o mesmo caminho com os recursos humanos nas grandes empresas.

Você tem um problema com isso. Você não se enquadra nos critérios de recrutamento. Então, eu diria que não é um problema em relação às suas competências. Programar é programar, e um programador sólido deve saber como alternar de um idioma para outro, porque a sintaxe é menos importante do que saber como executar código confiável, código testável e código de manutenção. Essas capacidades são principalmente independentes do idioma.

No entanto, desde que você não se enquadre nos critérios correspondentes de nenhuma equipe de TI recrutando você, provavelmente será um inconveniente encontrar um emprego futuro. Mesmo se você for concorrente de qualquer maneira. Essas pessoas não sabem como julgar isso porque não são de TI.

Eu definitivamente não recomendo este trabalho para um primeiro. Mas se você já tem alguma entrada em seu currículo sobre tecnologias amplamente usadas (Java, PHP, C, C ++, C #,...), Faça isso se quiser.

deadalnix
fonte
Obrigado pela sua compreensão sobre os recrutadores; isso soa certo.
AlexMA #
5

Definitivamente, existem habilidades que você pode adquirir / aprimorar usando idiomas e ambientes proprietários. Como já foi mencionado em outras respostas, algumas habilidades transcendem a linguagem e podem ser muito valiosas em um currículo.

No entanto, essas habilidades são frequentemente ignoradas quando as pessoas que revisam os currículos não são técnicas. Frequentemente (na extremidade inferior do espectro de qualidade do trabalho, que, infelizmente, é frequentemente a melhor aposta para desenvolvedores relativamente inexperientes), os currículos serão avaliados principalmente em x anos de linguagem y , e as outras habilidades que você pode não ter adquirido jogue até depois de colocar um pé na porta com uma entrevista.

Um outro fator a considerar é que os ambientes proprietários tendem (pelo menos) a ser mais propensos a serem mal projetados, exigentes e geralmente frustrantes do que os ambientes comuns. Trabalhar exclusivamente em um sistema proprietário ruim pode ser muito desanimador, especialmente para alguém que está começando uma carreira em programação.

Dito isto, lembre-se de que a experiência com um sistema proprietário, embora não seja tão boa quanto a experiência semelhante ao trabalhar com linguagens populares populares, ainda é melhor do que nenhuma experiência a longo prazo. Você terá uma vantagem além do nível de entrada para algumas posições e, para outras, ainda poderá (ou não) se qualificar como nível de entrada para idiomas específicos, mas sua experiência o colocará significativamente à frente da maioria das outras pessoas competindo para esses trabalhos.

Antes de pensar em deixar uma oferta por causa do foco em um idioma proprietário, não deixe de considerar o mercado de trabalho atual e como as aplicações estão sendo recebidas.

Beofett
fonte
3

Tudo se resume a quais idiomas e habilidades auxiliares você aprenderá. Se, de fato, o idioma interno não for usado ou mesmo conhecido fora da empresa, será de benefício limitado em termos de carreira (a menos que seja provável que comece e seja a próxima grande novidade). Passei alguns anos trabalhando com uma ferramenta de terceiros que, por si só, é inútil para mim (no sentido da carreira), mas trabalhando nesses projetos, minhas habilidades em HTML, css e javascript melhoraram. Também aprendi muito sobre como os projetos empresariais são executados e estruturados, lidando com clientes, gerenciando expectativas. Todas as coisas que fazem parte do desenvolvimento moderno de software que não são realmente a linguagem.

Kevin D
fonte
Eu editei minha pergunta para observar que eles não mencionaram nenhum idioma auxiliar; no entanto, bons pontos sobre habilidades não específicas do idioma.
AlexMA #
2

E a estrutura: IDE, editor, bibliotecas? Aplicativos de negócios mais complexos. nos dias de hoje não pode ser feito com um editor de texto sem formatação e um compilador de linha de comando.

Eles têm um pouco disso para sua linguagem de programação personalizada?

umlcat
fonte
Bom ponto. Mais uma vez, eles não mencionaram isso. Eu preciso perguntar.
AlexMA #
2
Às vezes, os IDEs / conjuntos de ferramentas proprietários são terrivelmente ruins (trabalhei com alguns).
FrustratedWithFormsDesigner
2

Muitas vezes, aprender um negócio é mais importante do que aprender uma tecnologia. Se você acha que deseja permanecer no setor específico em que a empresa se encontra, vá em frente e aceite. Se é um nicho de mercado, ou um no qual você não está particularmente interessado, sugiro ignorá-lo. Conhecer os meandros da (digamos) farmacocinética e o processo de descoberta de drogas abrirá portas que, sendo apenas mais um programador C # / Python / Java, não. E, a menos que essa linguagem "única" seja mais um gerador ou configurador de código, você ainda estará resolvendo problemas comuns, e ainda assim terá uma experiência geral, mesmo que as técnicas específicas possam não ser diretamente transferíveis.

TMN
fonte
Isso também. A única maneira de esse trabalho ser um benefício é se o conhecimento do setor ajudar e você desejar migrar para o domínio comercial real. Se você quiser continuar a ser um desenvolvedor, nas palavras imortais de Almirante Ackbar,IT'S A TRAP!
Wayne Molina
2

Eu consideraria usá-lo se, e somente se, você puder ter muita experiência em outros idiomas. Se você fazer aceitar o trabalho, você pode (e deve) manter suas habilidades com línguas tradicionais, trabalhando em projetos de código aberto no seu tempo livre.

O que você deseja evitar é a possibilidade de suas habilidades se tornarem altamente ajustadas a essa empresa específica e intransferíveis para outras. Tecnicamente, programação é programação, e a experiência fora de um único ambiente de programação é benéfica, não prejudicial, pois ajuda a ver os problemas com mais clareza.

Pense da seguinte maneira: se você aceitar um emprego escrevendo programas Perl, isso não o condenará por uma eternidade ao escrever programas Perl. Tentar um emprego no .NET também não significa que você estará sempre vinculado à Microsoft.

Mas aqui está a parte importante: eu nunca contrataria um programador que conhece apenas um idioma , mesmo que seja o que eu quero que ele use. Um programador que não tem uma vasta gama de experiência em muitos idiomas geralmente é pobre mesmo com o idioma de sua escolha. Também reflete a falta de ambição de aprender coisas novas.

Por outro lado, se um programador conhece Python, Ruby, C #, PHP, C e Erlang, o fato de ele também conhecer o APL não é um ataque contra ele, mesmo que não haja chance no inferno de usarmos o APL para qualquer coisa.

Portanto, se você tem a disciplina de impedir que o idioma se torne seu único foco, aceite o trabalho.

E vale a pena afirmar novamente: contribua para projetos de código aberto. Eles contam para toneladas mais do que "experiência de trabalho", porque não é algo que você acabou de fazer para receber um salário. Programadores que trabalham em projetos de código aberto são como ouro.

tylerl
fonte
2

Meu primeiro emprego, depois de me formar em ciências da computação, envolveu o desenvolvimento de uma linguagem obscura. Não Único. Não desenvolvido internamente. Mas um VMS 4GL obscuro o suficiente para que eu nunca vi mais ninguém usá-lo.

Em retrospecto, essa foi uma decisão imprudente. Embora eu tenha aprendido muito sobre o desenvolvimento profissional de software fazendo esse trabalho, teria sido muito melhor também desenvolver uma proficiência em linguagem comercializável para acompanhar as habilidades "suaves".

Tive sorte - meu segundo trabalho foi trabalhar com outro VMS 4GL obscuro. Eles me contrataram porque sabiam que não podiam encontrar pessoas que já conheciam o idioma - o fato de eu ter experiência na plataforma VMS com um 4GL foi suficiente. E nesse trabalho, tive a oportunidade de ser treinado em um idioma comercializável, pois eles procuravam se afastar do VMS para os servidores Windows.

Mas eu poderia facilmente não ter tido essa sorte e me encontrei cinco anos em minha carreira com absolutamente nenhuma experiência que persuadiria um recrutador ou uma pessoa de RH a olhar para o meu currículo.

Para o seu primeiro emprego depois da formatura, eu realmente não recomendo.

Carson63000
fonte
2

Para dar uma meta-resposta, notei que muitas respostas dizem: "Por experiência pessoal, isso é uma coisa ruim".

Muitos outros dizem: "Em teoria, isso não precisa ser ruim".

Mas nenhuma das respostas que eu vi são de pessoas que fizeram algo semelhante e pensaram que era uma boa experiência.

Agora, talvez algumas pessoas tenham feito isso e estejam entusiasmadas com seus trabalhos, mas não estejam no Stack Exchange. Isso é verdade para alguns softwares comerciais. Por exemplo, existem alguns administradores realmente dedicados da Software AG Natural / Adabas, mas não há muitas discussões relacionadas no Stack Exchange. No entanto, pelo menos alguém está procurando até mesmo esses especialistas em nichos. Isso não seria verdade para uma linguagem completamente proprietária.

Portanto, se o objetivo é avançar em direção ao tipo de tecnologias discutidas aqui, o fato de poucos apoiarem isso com base na experiência real sugere que não é necessariamente o melhor começo. Pode não ser o beijo da morte. Mas você gostaria de trabalhar para evitar que se torne um terrível obstáculo, como iniciar ou contribuir com um projeto de código aberto relacionado às suas aspirações.

GargantuChet
fonte
1

Aceite o trabalho se achar que há bons / ótimos programadores que o ajudarão e orientarão. Você pensaria que um lugar que faz isso tem pessoas muito boas, mas não pode ter certeza. Além disso, essa empresa tem algum tipo de reputação para contratar os principais candidatos? Você pode ser contratado por outra pessoa, independentemente dos idiomas usados ​​no trabalho.

JeffO
fonte
1

Seja particularmente cauteloso se o domínio do problema for dominado por um ou alguns idiomas do setor. O desenvolvimento do banco de dados está intimamente ligado ao SQL. O desenvolvimento de FPGA é principalmente dividido entre Verilog e VHDL. Compare isso com os aplicativos da Web escritos em (combinações de) Java, PHP, perl, python, Scala, C ++ etc. na sua língua de escolha. Um gerente de contratação que procura alguém para escrever consultas no banco de dados espera uma experiência em SQL.

Ben Jackson
fonte
1

Eu programei em uma linguagem proprietária. Mas essa não era a linguagem usada em todo o lugar. Não tenho nada contra essa experiência agora, apesar de ter me atrapalhado a cada momento fazendo esse trabalho. Eu tive a chance de usar esse idioma, mantê-lo e melhorá-lo, além de manter o programa que foi escrito nesse idioma.

Ao longo do caminho, aprendi a ler e entender como um pequeno intérprete funcionaria. Se o seu potencial empregador tiver as fontes para o compilador / intérprete para o idioma proprietário, você poderá ter a chance de trabalhar em seus internos. Posso dizer que, por experiência, você valorizará essa experiência de trabalho nos próximos anos.

Quais são as habilidades transferíveis que você teria adquirido, trabalho em equipe, engenharia de software, redação de um compilador / intérprete ou partes dele, algoritmos etc. Se for um intérprete, a linguagem proprietária é apenas uma máscara sob a qual você encontrará o intérprete escrito em, digamos, C ou em outro idioma. Se a linguagem proprietária for compilada, você terá a chance de trabalhar em um compilador de produção totalmente desmontado. Portanto, quando você procurar o próximo trabalho, precisará vender essas habilidades mais do que, digamos, C / C ++ / Java / Python para desenvolvedor de aplicativos ou, Python, Perl, Java, HTML, CSS, JavaScript, Flash para desenvolvimento web ou Verilog, VHDL para desenvolvimento incorporado ou qualquer outro conjunto de idiomas para outro domínio de aplicativos.

Tudo isso, supondo que seu empregador em potencial tenha as fontes para o idioma proprietário e você esteja disposto a trabalhar mais do que nos programas escritos no idioma proprietário. Ainda assim, admito que estou sendo extremamente otimista ao dizer que você pode ter uma oportunidade semelhante à que tive alguns anos atrás.

Nas entrevistas, anos de experiência e habilidades técnicas não estão sozinhos nas decisões de contratação. Sua sede de aprender, adequação cultural, inclinação cultural, faz uma grande parte da decisão.

Portanto, para um primeiro trabalho, se seu trabalho não se limitar aos programas escritos apenas na linguagem proprietária, mas permitir que você trabalhe também na implementação, faça-o.

vpit3833
fonte
1

Eu acho que há dois lados nisso. Primeiro, há esse trabalho específico e, segundo, há como isso afeta suas perspectivas de carreira.

O que eu gostaria de saber sobre esse trabalho é por que eles criaram sua própria linguagem de programação. Isso faz sentido? Caso contrário, eu aceitaria um emprego diferente.

Nos últimos dez anos, trabalhei para três empresas com seu próprio idioma. O primeiro porque, quando o projeto foi iniciado, não havia nada que pudesse fazer o que eles precisavam. (Eles escreveram uma versão técnica do Visual Basic, mas isso foi no Unix e anos antes da existência do VB.) Os outros dois tinham requisitos de desempenho que não podiam ser atendidos com os idiomas existentes. Eu considero essas boas razões.

No lado da perspectiva de carreira, como já mencionado, recrutadores e pessoas de RH que não entendem de programação e trabalham usando uma série de caixas de seleção terão dificuldades com o seu currículo. Muitas empresas que desejam um programador C ++ plug-and-play ficam confusas ao pagar por você para aprender um novo idioma. Tudo isso é verdade.

Mas você realmente quer trabalhar para uma empresa como essa?

Se a resposta for sim, provavelmente você deve recusar esse trabalho e procurar um com requisitos mais convencionais. Além disso, dependendo de onde você mora, talvez você não tenha muitas opções e teria que trabalhar para empresas que realmente não entendem programadores.

Pessoalmente, não quero trabalhar para uma empresa como essa e acho justo dizer que não achei minhas escolhas excessivamente limitantes. Se você tem um histórico de aprender rapidamente novas tecnologias, resolver problemas do mundo real e, talvez, algum conhecimento de "negócios", acho que você deve ficar bem.

Também há pontos positivos. Quantos outros lugares você brinca com o compilador / intérprete? Com que frequência você influencia novos recursos e sintaxe do idioma que você usa todos os dias?

Stephen Darlington
fonte
1

Antes de tudo, uma linguagem de programação interna não é uma coisa ruim; no entanto, existem algumas regras básicas necessárias para justificar uma linguagem personalizada.

Você escreve que acha que eles não usam nenhum outro idioma. A primeira pergunta que você deve fazer é se eles também usam outro idioma.

Linguagens de programação personalizadas podem ter boas justificativas. Eu sei que a matemática trabalha com linguagens especializadas. Ouvi dizer que a agência tributária usa uma linguagem especial para calcular os impostos com as mudanças anuais das leis sobre eles. Bem-vindo ao domínio da metaprogramação .

Qualquer idioma personalizado, no entanto, nunca deve implementar um idioma completo. Fora do domínio, você ainda deve recorrer a uma linguagem de programação clássica / amplamente conhecida. Mesmo no domínio do idioma, não é provável que todos os pequenos detalhes sejam cobertos pelo idioma do domínio.

Boas perguntas a serem feitas:

  1. Existem outros idiomas usados ​​nesta empresa?
  2. Por que outro idioma não se encaixava neles?
  3. O idioma é usado fora da empresa (por pesquisadores ou sob licença para outras empresas)
  4. Quantas pessoas conhecem o idioma.
  5. Quantos projetos / programas (bem-sucedidos) são feitos com o idioma.

A partir dessas respostas, você deve descobrir qual é o estado do idioma. se é uma linguagem de domínio que agrega grande valor, está tudo bem. Se alguém tiver um projeto para substituir Java ou C #, saia daí o mais rápido possível .

Edit: eu sugiro que você leia o artigo sobre idioma específico do domínio na wikipedia, que deve fornecer mais informações.

Dorus
fonte
1

Podemos não gostar, mas como programador de computadores, temos que ter um currículo que os agentes e os departamentos de RH estejam dispostos a encaminhar aos gerentes de projeto . Nosso currículo também deve se destacar por corresponder ao conjunto necessário ainda dentro de 30 segundos depois de alguém olhar para ele; também deve ter as palavras-chave corretas para corresponder a uma pesquisa no banco de dados cv.

Portanto, apenas trabalhar em uma linguagem de programação exclusiva é um grande risco! No entanto, o uso de uma mistura de DSL e uma linguagem de fluxo principal pode ser bem apresentado no CV. (Você deve dizer a verdade em seu currículo, mas não precisa ser toda a verdade!)

Ian
fonte
1

Eu ficaria menos nervoso em aceitar um emprego como esse se você já tivesse uma ampla gama de conhecimentos de programação. Se você é novo no setor, isso pode te prejudicar profissionalmente, possivelmente até o ponto em que você teria que recomeçar virtualmente como júnior ou estagiário mais tarde ... Isso pode ser particularmente ruim se você ficar com esta empresa por algum tempo, apenas para sair sem habilidades transferíveis.

Se você já é bastante experiente no setor, isso pode ser um ponto muito interessante para sua carreira. E a percepção se / quando você saiu deste lugar seria mais do que "caramba, ele é um jedi, ele fez tudo"

Rikon
fonte
1

Junte-se à empresa apenas se você estiver trabalhando na empresa durante toda a sua vida, ou então nunca pense em adotá-la, mesmo se você estiver recebendo um bom pacote salarial. muitas frustrações no trabalho, porque não há experiência em outras linguagens de programação para procurar outro emprego.

bem desejador
fonte
Este. Cuidado com essa "oportunidade", é apenas uma oportunidade para uma rápida aposentadoria.
Wayne Molina
0

Eu vi alguém com 15 anos de experiência, principalmente como desenvolvedor principal ou principal, incapaz de conseguir um emprego por um longo tempo, principalmente porque a empresa o deixou sem experiência no que havia se tornado linguagens e APIs contemporâneas.

Os programadores são colocados mentalmente nos caixotes do lixo, assim como os atores dos filmes (herói, vilão, etc ...) e, depois de estabelecer qual é a sua lixeira, acho que você pode tornar muito mais difícil encontrar um emprego do que se você não tiver mais dinheiro. Faculdade.

Ou seja, se você possui um diploma em CS, provavelmente é candidato a vários empregos.

Mas se você tem um diploma de CS com 3 anos de experiência em PHP, na verdade você é menos candidato a uma posição de desenvolvedor web Java do que quando se formou. Você se identificou como desenvolvedor PHP e até ter experiência em contrário, é para isso que será contratado. (Estranho, mas eu acho que é verdade, você tem uma experiência mais total, mas seu currículo será desconsiderado como irrelevante porque é o tipo errado de experiência, enquanto que, depois da faculdade, seu currículo pode não ter sido)

E se você tem um diploma de CS com 1 ano de experiência no SpecialtyLanguageX, então você fechou todos os tipos de portas para si mesmo.

Essas são apenas minhas opiniões e observações, é claro, eu nunca fiz a contratação, é exatamente isso que me parece.

John Robertson
fonte