Não consigo programar porque o código que estou usando usa estilos de codificação antigos. Isso é normal para programadores?

29

Tenho meu primeiro trabalho real como programador, mas não consigo resolver nenhum problema por causa do estilo de codificação usado. O código aqui:

  • Não possui comentários
  • Não possui funções (50, 100, 200, 300 ou mais linhas executadas em sequência)
  • Usa muitas ifinstruções com muitos caminhos
  • Tem variáveis que não fazem sentido (eg .: cf_cfop, CF_Natop, lnom, r_procod)
  • Usa um idioma antigo (Visual FoxPro 8 de 2002), mas há novos lançamentos a partir de 2007.

Sinto que voltei a 1970. É normal que um programador familiarizado com OOP, código limpo, padrões de design etc. tenha problemas com a codificação dessa maneira antiga?

EDIT : Todas as respostas são muito boas. Para minha (des) esperança, parece que existe muito desse tipo de código em todo o mundo. Um ponto mencionado em todas as respostas é refatorar o código. Sim, eu realmente gosto de fazer isso. No meu projeto pessoal, eu sempre faço isso, mas ... não posso refatorar o código. Os programadores só podem alterar os arquivos na tarefa para a qual foram projetados.

Toda mudança no código antigo deve ser mantida comentada no código (mesmo com o Subversion como controle de versão), além de meta informações (data, programador, tarefa) relacionadas a essa alteração (isso se tornou uma bagunça, há código com 3 linhas usadas e 50 linhas antigas comentadas). Estou pensando que não é apenas um problema de código, mas um gerenciamento de problemas de desenvolvimento de software.

Renato Dinhani
fonte
43
Sim, claro que é normal. Você foi treinado para trabalhar de uma certa maneira e a maior parte do seu treinamento é inútil ao enfrentar uma base de código que foi implementada de uma maneira bem diferente. Que disse que os princípios fundamentais não mudaram muito, e após o choque inicial que você vai começar a ajustar ...
yannis
12
Você não está perdendo muito por não usar comentários. Se alguma coisa as pessoas os usam demais.
precisa saber é
22
@JohnFx Não discordo de você, mas tendo enfrentado mais do que poucas porcarias herdadas sem comentários, eu diria que prefiro comentários redundantes / obsoletos do que nenhum comentário.
yannis
25
Isso vai parecer ruim - mas estou feliz que você esteja sentindo esse tipo de dor no início de sua carreira, pois será uma grande motivação não escrever código como o que você está mantendo.
Bork Blatt
19
Uma das habilidades mais importantes que você pode desenvolver como programador é ser capaz de entender e refatorar o código de outras pessoas. Se você não domina, nunca será um bom programador. Você tem sorte de ter a chance de aprender a habilidade.
Paul Tomblin

Respostas:

0

Ok, eu vou ser franco. Esse é um péssimo lugar para trabalhar ... Eu já estive nessas situações e geralmente termina com você sendo engolido por esse código. Depois de mais ou menos um ano, você se acostumará e perderá a noção de como as alternativas modernas podem ser usadas para realizar a mesma tarefa de maneira mais fácil, de maneira mais sustentável e também mais rápida em tempo de execução. na maioria dos casos.

Saí de um local de trabalho como esse, porque, depois de apenas um mês, senti que estava sendo arrastado para um código skool antigo. Eu tentei tentar, mas decidi não. Eu não conseguia usar código limpo e comecei a perder habilidades por falta de prática cotidiana. Qualquer abordagem moderna teve que ser aprovada por três camadas de desenvolvedores, o que nunca aconteceu, porque a idéia era que as coisas pudessem quebrar quando as abordagens modernas fossem usadas. E a natureza frágil do código que sai quando você não usa abordagens modernas é bastante assustadora.

Não me interpretem mal, há casos em que as pessoas projetam demais as soluções e sou totalmente contra. Mas ser arrastado para convenções e estilos de codificação de 80 por um período extenso de tempo interromperá seu progresso e, também, penso, oportunidades de carreira.

Então, novamente, você precisa ganhar dinheiro, então, às vezes, precisa fazer o que não gosta. No entanto, fique de olho nos sintomas de burnout e transforme a codificação em uma tarefa mundana.

Codificador
fonte
1
Como você pode dizer que é um mau lugar para trabalhar? Não há nada de errado com o código embutido herdado. O código legado tem um lugar neste mundo. Sem o código legado, teríamos novas explorações nos aplicativos que usamos diariamente.
Ramhound 12/06
1
@ Ramhound: Porque tenho experiência em primeira mão nesses lugares. Você não poderá usar contêineres eficazes, não poderá usar construções seguras, não terá entrada nenhuma na arquitetura. O medo da mudança é o principal motivo. E se você permanecer nesse local por mais de um ano, será arrastado para ele. O código moderno torna seus designs mais simples, rápidos e MAIS SEGUROS! Tenho certeza de que o local está cheio de ajustes de memória bruta, construção rápida de consultas SQL, provavelmente nem mesmo parametrizada, e assim por diante.
Coder
1
O código legado do Ramhound está ok. Escrever código legado hoje não está bem.
Renato Dinhani
@ Codificador, esta é uma descrição perfeita do trabalho e, como você, deixei o emprego depois de um mês e alguns dias. A melhor coisa que fiz e agora, no meu tempo livre, estou aprendendo muitas coisas úteis.
Renato Dinhani
Atualização após 6 anos: deixei a empresa alguns dias depois de postar esta pergunta e, olhando para trás, foi a melhor decisão que tomei. Tive a oportunidade de trabalhar em muitos outros projetos em outras empresas e nenhum deles teve as mesmas práticas ruins ou falta de qualidade que encontrei naquele primeiro emprego. Ficar em casa aprendendo o estado atual do mercado de trabalho me permitiu trabalhar em projetos mais interessantes e melhores empresas.
Renato Dinhani
35

Esse estilo de codificação (se você quiser chamá-lo de qualquer tipo de estilo) é um estilo de codificação ruim .

Pode-se escrever funções curtas com nomes descritivos de variáveis ​​e controle de fluxo são na maioria das linguagens modernas (o Visual FoxPro é moderno, sim).

Os problemas que você está tendo são com uma base de código ruim , nada mais, nada menos.

Essas bases de código existem e são muitas - o fato de você estar tendo problemas com elas atesta como elas podem ser ruins (e que você tem um bom treinamento).

O que você pode tentar fazer é melhorar as coisas, onde pode - variáveis renomear, extrato de pontos comuns e funções grandes dividir em partes menores etc ... obter uma cópia de trabalhar efetivamente com Legacy Code ...

Estou em um projeto C # com uma estrutura muito ruim, a menos de um quilômetro do que você descreve. Apenas combinamos 12 funções separadas (copiar e colar óbvias) em uma que aceita um único parâmetro.

Oded
fonte
33
Bons programadores podem lidar com qualquer tipo de história de horror. Não vai ser divertido, mas é por isso que eles pagam dinheiro para isso. O trabalho não deve ser divertido e brincalhão.
tp1
9
@ tp1 - Sim, mas você deve admitir que a primeira base de código que encontrar pode ser um choque para o sistema.
Oded
10
@ Renato: todos os programadores trabalham para manter o código muito mais do que escrever / projetar novo código. E todo o código que está sendo constantemente modificado fica pior com o tempo, a menos que você gaste muito esforço para evitá-lo. Bons programadores também são melhores em lidar com bases de código ruins, gostem ou não, de modo que os gerentes frequentemente lhes dão essas tarefas, e poucos estão em posição de evitá-las completamente. Na verdade, eu argumentaria que um programador não pode afirmar ser realmente bom, a menos que tenha alguma experiência em lidar com códigos incorretos (que podem muito bem ser dele).
22612 Michael Borgwardt
13
@ RenatoDinhaniConceição, eu nunca consideraria contratar um desenvolvedor para fazer um design original que não tivesse feito seu tempo em manutenção, você NÃO PODE ser um bom designer sem essa experiência (deixar de fazer isso é uma das principais causas de projetos ruins em minha experiência). Você não pode ser um bom programador e ser péssimo em manutenção. Você pode não gostar, mas é necessário entender como projetar bem. E a capacidade de realizar um trabalho árduo de perseverança também é uma característica de um bom programador. Se fosse fácil, eles não precisariam de nós.
HLGEM
8
@ tp1 O trabalho deve ser divertido e divertido, caso contrário, você estará fazendo errado.
Kevin McCormick
18

Isso não é realmente "antiquado", exceto que as boas práticas (atuais) de design nem sempre eram tão populares. Isso é apenas um código ruim. Código incorreto atrasa qualquer pessoa. Você acaba se acostumando, mas isso é apenas porque você se acostuma a peculiaridades específicas em seu sistema específico. Dado um novo projeto, você pode encontrar maneiras totalmente novas de escrever códigos incorretos. O bom é que você já sabe como identificar esses odores de código.

A maior coisa que você pode fazer é não propagar o problema . Não tome essas práticas ruins como uma convenção, a menos que sua equipe o faça. Mantenha o novo código limpo de maneira a não forçar um refator. Se é tão ruim e você tem tempo, considere um grande refator ... mas na prática você raramente tem esse luxo.

Considere adicionar comentários à medida que descobre as coisas e troque pequenos pedaços da maneira mais prática. A menos que você esteja codificando sozinho, precisará resolver isso com sua equipe; se não houver convenções, você deve dedicar algum tempo para elaborá-las e talvez comprometer-se a melhorar lentamente a base de código, se a estiver mantendo regularmente.

Se você encontrar uma função totalmente isolada com nomes de variáveis ​​inválidos e a estiver corrigindo de qualquer maneira, você também pode tornar os nomes de variáveis ​​úteis, refatorar os ifs. Não faça alterações nos recursos comuns, a menos que você refatore uma grande parte dele.

Ben Brocka
fonte
4
"boas práticas de design nem sempre foram tão populares" Não se trata necessariamente de popularidade. O que é considerado um bom design ou prática recomendada evolui com o tempo. É algo a ter em mente ao analisar o código antigo.
Burhan Ali
@BurhanAli, abosiolutely, o que era uma boa prática em 2000 quando nosso aplicativo foi originalmente projetado não é necessariamente uma boa prática agora. Os desenvolvedores mais jovens geralmente não têm idéia de que o que lhes foi ensinado como práticas recomendadas pode não existir no momento em que o código foi escrito ou pode não funcionar com o idioma mais antigo usado pelo software.
HLGEM
2
Eu não acho que as funções de 500 linhas já foram consideradas "boas" ... o livro principal que aprendi sobre montagem nos anos 80 mencionou que você talvez devesse dividir as coisas em sub-rotinas quando elas começassem a ficar grandes demais para ramificar no final para o começo. Isso chega a algo entre 40-120 linhas nesse processador (6502).
Mjfgates #
11
  • não tem comentários - corrija-o conforme você o aprende
  • não tem funções (50, 100, 200, 300 ou mais linhas executadas em sequência)

Isso provavelmente data de uma iteração anterior do código. Neste ponto, eu deveria ter cuidado com diferenças sutis entre blocos de código com aparência semelhante que se tornaram "recursos". Mas, independentemente de quão ruim seja essa ideia, é muito simples de entender ... então não tenho certeza de onde você teria problemas com isso.

  • usa muitas declarações if com muitos caminhos - não tenho certeza do que você quer dizer aqui
  • tem variáveis ​​que não fazem sentido (por exemplo: cf_cfop, CF_Natop, lnom, r_procod) -

Eu enfatizaria cautela com o bit 'renomeando variáveis'. Há uma boa chance de você simplesmente não entender a linguagem ainda, e os nomes das variáveis ​​farão muito mais sentido depois que você estiver lá por um tempo. Para não dizer que também não pode haver nomes de variáveis ​​problemáticos, mas seus exemplos parecem ter uma lógica para eles, se você soubesse quais são os acrônimos comuns em seu site. Obviamente, isso não é tão importante se você é um time de 1.

  • usa um idioma que eu não conheço (Visual FoxPro 8 de 2002) - Esse é seu problema, não o código
jkerian
fonte
7
+1: Este é o seu problema, não :) do código
aleroot
Seu último ponto foi gramaticalmente incorreto; Eu não conseguia entender o seu significado original. Eu adivinhei, e posso ter adivinhado errado, então ele pode não ter dito que não estava familiarizado com o Visual FoxPro.
Myrddin Emrys
Sobre o FoxPro, minha pergunta foi editada. Eu disse que é uma linguagem detalhada e, para mim, isso não é bom, mas é uma opinião pessoal. Eu entendo, mas não gosto, e o ponto principal é a idade da linguagem. Não foi atualizado na minha empresa, mas há novos lançamentos (Visual FoxPro 9 de 2007).
Renato Dinhani
3
@ RenatoDinhaniConceição, é comum não atualizar um produto de banco de dados, pois as atualizações quebram as coisas que atualmente funcionam e não há dinheiro ou tempo para gastar para fazer alterações que você não precisa se manter a versão mais antiga. Esta é uma escolha de negócios.
HLGEM # 6/12
1
@renato, a maioria dos aplicativos de banco de dados não é facilmente compatível com versões anteriores.
HLGEM
11

Isso me parece uma oportunidade .

É claro que você já pode ver muitos problemas em como as coisas são feitas e gerenciadas. Você pode reclamar que é tudo lixo e que não pode fazer nada, ou pode usar isso como uma oportunidade de ouro para realmente mostrar ao seu empregador o seu valor.

Agora, isso não vai ajudá-lo se você for até o seu empregador e lhe disser que tudo precisa mudar. Portanto, o truque é seguir em frente por um tempo, fazer MUITAS perguntas e, quando você precisar escrever um código, precisará seguir as regras deles com todos os comentários, etc., pois precisará manter outros desenvolvedores informado usando o sistema que preferir atualmente, e ao mesmo tempo você pode introduzir refatorações sensatas que não arriscarão nada. Você pode extrair alguns métodos e, se o seu idioma suportar, introduzir alguns testes de unidade. Quando perguntado por que você fez dessa maneira, ou se lhe disseram que está fazendo algo "errado", evite ficar na defensiva ou argumentar enquanto faz uma boa apresentação de sua posição para o seu estilo preferido de codificação. Por exemplo, você pode consultar livros como o Clean Code de Bob Martin ou outros livros, artigos ou mesmo perguntas e respostas que você encontrou no Programmers.SE. Qualquer coisa que você considere útil para apoiar sua posição com fatos que podem estar além da sua experiência aos olhos das pessoas com quem você está trabalhando.

No que diz respeito aos comentários excessivos, parte disso pode ser esclarecida se você adicionar alguns nomes descritivos para as variáveis ​​e métodos, mas também poderá defender um bom sistema de controle de versão e usá-lo. para manter o registro das alterações e datas, etc., e para o uso de uma ferramenta para comparar as diferentes versões dos seus arquivos de origem, se ainda não houver um com o VCS escolhido.

Como eu disse, esta é uma oportunidade de contribuir para a melhoria de uma equipe de desenvolvimento que parece estar meio que perdida, por assim dizer. Você tem a oportunidade de se destacar como habilidoso e conhecedor, e como alguém que pode liderar pelo exemplo. Tudo isso é bom para ajudá-lo mais tarde, à medida que sua carreira avança.

S.Robins
fonte
2
Primeiro, todas as respostas aqui são boas e me ajudaram. Esta resposta não recebeu alta votação ou comentário, mas eu realmente gosto. Eu acho que esse ponto de fazer muitas perguntas e não ficar na defensiva é muito importante. Conversei com meu chefe sobre alguns pontos que mencionei aqui e, como esperado, não tenho o poder de fazer grandes mudanças, mas sinto que um pouco será melhorado depois disso. Obrigado, S. Robbins e os outros pelas palavras sábias.
Renato Dinhani 16/04/12
1
Bem, eu fiz isso uma vez e consegui. Isso é cansativo. Eu nunca vou fazer isso de novo. Isso é realmente difícil: você não pode desanimar ANTES de refatorar, o código é fraco e, portanto, provavelmente explodirá em seu rosto a qualquer momento, e você enfrentará uma resistência muito importante devido aos hábitos de trabalho das pessoas (entre outros problemas). Sei que trabalho apenas para pessoas que se preocupam com a qualidade do código.
deadalnix
1
@deadalnix Os primeiros empregos raramente oferecem a oportunidade de escolher as pessoas com quem você trabalha. Frequentemente, você não saberá o quanto as pessoas realmente se importam com a qualidade do código até que você trabalhe com elas por um tempo. Minha resposta ajuda o OP a entender isso. Sua declaração sobre a incapacidade de testar a unidade antes da refatoração está claramente errada. Tentar refatorar antes dos testes de unidade aumenta o risco geral. Perseguir bugs sem testes é ineficiente e desgastante. As pessoas que se preocupam com a qualidade do código se concentram muito nos testes e na técnica de codificação limpa. Eu não entendo sua objeção implícita, feliz para conversar sobre este desligada :-)
S.Robins
@ S.Robins Perseguir erros sem teste é ineficiente e desgastante e refatorar sem unittest é muito arriscado (e ambos combinam bem). É exatamente por isso que essa situação é um pesadelo. Geralmente, uma base de código herdada maciça não é unittestable (cheia de estados globais, dependências codificadas no sistema de produção ou em outros sistemas, sem separações de preocupações, repetição maciça de código, etc.). Você terá que fazer um primeiro passe de refatoração para tornar o código unittestable. Acho que nós dois concordamos com o aspecto de codificação do problema, mas nos entendemos mal.
deadalnix
1
É também uma oportunidade de reunir conteúdo para thedailywtf.com
Arkh
8

Bem vindo a selva !

Infelizmente, muitas vezes começar a trabalhar em uma empresa significa começar a enfrentar esse tipo de situação, a menos que você trabalhe para uma empresa estruturada e bem organizada, essas situações são bastante comuns ...

Meu conselho é:

  1. Comece a aprender e se familiarize com: linguagem de programação usada (Clipper / dBase) e ambiente (Visual FoxPro)

  2. Leia e analise a base de código e comece a comentar

  3. organizar / refatorar o código (abordar o problema de muitas linhas executadas em sequência)

Tendo problemas para enfrentar uma base de código semelhante, é normal, mas pode se tornar um grande desafio, tentando melhorar a qualidade do código e dar "seu toque" ao programa, melhorando a base de código e talvez tornando-o um programa melhor ...

aleroot
fonte
7

Para responder à sua pergunta: Sim, pessoas / empresas em todos os lugares utilizam infraestrutura que pode ser construída com códigos ruins. Ao se integrar a essas situações, pode ser muito difícil de lidar.

No verão passado, trabalhei como estagiário desenvolvendo um aplicativo para ser usado pela equipe de controle de qualidade ligada a um departamento específico. A equipe de controle de qualidade usou muitos scripts independentes (VBScript, Perl, Bash) para executar testes em bancos de dados e outros, e queria reuni-los em um único aplicativo. O problema com isso, no entanto, é que esses scripts foram usados ​​em outras partes da empresa (portanto, os nomes das principais funcionalidades / variáveis ​​não puderam ser alterados) e o código foi "adicionado a" por quase 10 anos; muita porcaria se acumulou.

Aqui está o que você pode fazer sobre isso:

  1. Peça ajuda: seus colegas de trabalho que tiveram que procurar, embora esse código provavelmente esteja familiarizado com suas idiossincrasias. O que é obtuso e confuso para você é perfeitamente adequado para eles. Então peça ajuda!
  2. Refatorar sempre que possível: se você precisar observar / manter esse código por um longo período de tempo, refatore-o sempre que puder. Mesmo se você estiver executando uma busca e substituição em um nome de variável, tudo ajudará. A empresa que estagiei no último verão teve um problema semelhante ao usar nomes de variáveis ​​ruins. Sempre que possível, eu corria o código deles através de um pente fino, alterando nomes de variáveis, otimizando a lógica (agrupando várias funções em 1, por exemplo), etc. Faça o mesmo sempre que tiver oportunidade!

Como é o caso em todos os lugares, desde que os recursos externos do código funcionem corretamente, não importa como os internos funcionam.

Zach Dziura
fonte
+1 em "pedir ajuda". Trabalhar em equipe adiciona custos, mas também traz benefícios.
7

Vou fazer alguns comentários diferentes de muitos dos respondentes aqui. Muitos dos meus comentários podem ser óbvios para você, mas é preciso dizer de qualquer maneira.

  • Seja cauteloso ao alterar o código que você não entende, até entender.
  • Se você estiver trabalhando em um ambiente de equipe, com o código no qual seus colegas trabalham, discuta suas alterações com eles antes de fazer as alterações. Ninguém gosta de um "atirador solitário" para entrar e mudar o código com o qual todos os outros estão familiarizados. Isso não quer dizer que suas alterações não sejam garantidas ou a coisa "certa" a ser feita.
  • Obtenha adoção de suas idéias. Junte todos os participantes com suas idéias e use as habilidades de sua equipe para refatorar, em vez de sobrecarregar toda a carga de trabalho.
  • Ganhe adesão da gerência. Eles podem alocar fundos para você re-fatorar o código.
  • Fale com a gerência nos termos que eles entenderem sobre os benefícios de refazer sua base de códigos. Um código mais sustentável significa menos tempo gasto resolvendo bugs, adicionando recursos etc. O que significa desenvolvimento econômico. Tempo de resposta mais rápido etc.

É fácil adicionar codificação pura, sugestões de práticas recomendadas sem entender a política do seu ambiente. As pessoas com quem você trabalha podem não querer mudar ou alocar tempo para alterar sua base de código, mas tente vender a ideia para todos antes de entrar e mudar tudo (que tem riscos inerentes).

Espero que isto ajude.

funkymushroom
fonte
1
Além disso: teste, faça backups, use o controle de versão. Se você é novo, há coisas acontecendo na fonte que você simplesmente não entende, e o que parece ser uma mudança inócua pode causar problemas que você não prevê.
Scott C Wilson
Eu acrescentaria ainda mais. Não mude nada até que você tenha um teste que exige ação . Comece a escrever testes. Quando você tiver um teste com falha, verifique se isso importa. Então você tem um forte mandato para mudar. Mesmo assim, aguarde até o sistema estar saturado com testes. Sempre tente deixar o sistema tão bom ou melhor (nunca pior) do que você o encontrou.
Emory
5

Uma das coisas que se destaca é o seu comentário editado

Todas as alterações no código antigo devem ser mantidas comentadas no código, além das meta-informações (data, programador, tarefa) relacionadas a essa alteração (isso se tornou uma bagunça, existem códigos com 3 linhas usadas e 50 linhas antigas comentadas). Estou pensando que não é apenas um problema de código, mas um gerenciamento de problemas de desenvolvimento de software.

Também tenho um projeto em que herdei uma base de código FoxPro herdada com muitos dos problemas que você descreve. Uma das primeiras coisas que apresentei ao projeto foi um bom repositório de código-fonte. O FoxPro pode se integrar ao SourceSafe, mas esse produto é difícil de usar.

Peguei uma cópia da ferramenta scx de Paul McNett http://paulmcnett.com/scX.php e a integrei ao meu ciclo de desenvolvimento. Ele faz um bom trabalho ao extrair o código binário do FoxPro para um formato de texto que pode ser colocado em um repositório de origem, como Subversion, Mercurial ou até git. (Você pode encontrar o projeto SubFox em http://vfpx.codeplex.com útil.

Essas ferramentas fornecem o histórico e permitem que os programadores continuem com o trabalho de manter o código. Definitivamente, leva algum tempo para aprender a usar essas ferramentas, mas como todas elas são gratuitas, não faz sentido não investir algum tempo nelas. (mesmo que você não consiga que os projetos de trabalho se movam dessa maneira).

Scott-Pascoe
fonte
4

Vou concordar fortemente com a resposta do funkymushroom. Se você é um ambiente de equipe, certifique-se de que outras pessoas saibam que você está refatorando ou reorganizando o código, se você planeja obter boas atribuições futuras.

Por experiência pessoal, sei que, embora não seja seu estilo de codificação, se você estiver mantendo um código, que outros também modificam e mantêm, permanece no estilo do código existente. Adicionar comentários e esclarecimentos é bom, mas o layout e as convenções básicas devem permanecer. Os velhos gurus / armas do projeto esperam que o código seja semelhante ao que vêm vendo há anos.

Quando um cliente está gritando sobre um bug, sua gerência recorre às armas antigas para corrigir o problema o mais rápido possível. Se essas armas antigas, sob pressão, descobrirem que você “limpou o código” e agora elas precisam dedicar um tempo para descobrir onde você mudou ou renomeou que uma variável que eles conhecem precisa de ajustes, seu nome na empresa será alterado para “ lama".

Depois que a crise terminar, primeiro a arma antiga o culpará lentamente pela atualização crítica. Em seguida, você descobrirá que mantém o código limpo durante o tempo em que estiver na empresa. Finalmente, quando novos projetos interessantes estiverem disponíveis, seus gerentes perguntarão aos gurus sobre quem deve trabalhar no projeto e, se você os ferrou uma vez, nunca o fará no novo projeto, até que sua forragem seja lançada no final cumprir um prazo.

Se você aprendeu na faculdade a maneira "certa" de codificar e agora está no mercado de trabalho, esqueça a maneira "certa". Estes não são trabalhos de faculdade, esses projetos não duram apenas um semestre, eles podem viver por anos e terão que ser mantidos por um grupo de pessoas com diferentes níveis de conhecimento e diferentes níveis de interesse na última tendência de CS. Você tem que ser um jogador da equipe.

Você pode ser a maior programação hot shot da escola, mas no local de trabalho, seu primeiro emprego, você é um novato com zero crédito de rua. As pessoas que estão programando há anos não se importam com a escola ou com as notas, é o quão bem você brinca com os outros e quanta perturbação você traz à vida deles.

Nos meus 20 anos, pareço vários programadores ace despedidos, principalmente porque eles exigem fazer as coisas da maneira "certa". A menos que você traga algo muito, muito, muito exclusivo para o trabalho, você é substituível. Você pode ter sido o melhor da sua turma, mas no próximo ano alguém será o melhor da turma e estará procurando emprego.

Eu vejo isso como seu trabalho principal, é mantê-lo, até você decidir mudar de emprego. Para manter seu emprego, você precisa se divertir no playground que alguém construiu e pagou.

Sei que soo negativo, mas sempre há esperança. À medida que você ganha experiência, obtém sucesso, ganha influência e pode mudar as coisas de uma maneira melhor. Ao escrever um novo código ou em um novo projeto, pressione as alterações que você procura. Se for um código novo, as armas antigas não esperam que seja do jeito que deixaram, e quando virem as vantagens, poderão aprender e adaptar o novo caminho.

O sistema antigo pode mudar, mas leva tempo. Mudar algo introduz riscos e os negócios aborrecem, e você precisa dedicar tempo e trabalho para tornar a empresa confortável com a mudança.

Scott S
fonte