Qual é a diferença entre programação corporativa e corporativa? [fechadas]

28

Acabei de concluir meu diploma de bacharel em TI. Tenho profundo interesse em codificação e realmente quero ser um profissional nela. Agora, além dos cursos da faculdade, eu tenho aprendido programação (C #) sozinho (a programação no nível da faculdade é muito básica). Agora sinto que preciso de um pouco mais de tempo para estar perto de programadores profissionais. Mas alguns de meus veteranos dizem que a programação corporativa do mundo é muito diferente da programação livre, portanto, não faz sentido perder tempo. (Eles não são programadores, isso pode ser o que eles ouviram).

Eu me beneficiaria alcançando um nível avançado de c #? ou como o nível medíocre é suficiente para interromper as entrevistas, os níveis mais altos não importam para as empresas, porque eles dependem de seu treinamento apenas para ensinar como as coisas funcionam no mundo corporativo e aprender mais não vai me ajudar muito? Por favor, se houver alguns programadores profissionais que possam ajudar, prometo que isso é algo que todo estudante interessado em programação deseja perguntar no meu estágio. "Como você realmente muda de aprendiz para profissional no campo da programação?" - continue aprendendo até que você seja perfeito ou se junte a uma empresa, uma vez que os princípios básicos estejam cobertos?

vish213
fonte
24
A escola nunca foi sobre dar a você as habilidades necessárias para encontrar um emprego. Trata-se de fornecer as ferramentas necessárias para encontrar um emprego. Nada substitui a experiência do mundo real, mas você ainda precisa da escola.
Robert Harvey
5
Acho que o título apresenta uma pergunta útil, mas o corpo da pergunta está pedindo conselhos de carreira que estão fora do tópico neste site.
22913 Bryan Oakley
Você pode achar que o canal de bate - papo para Programmers.SE (o quadro branco) é um local útil para fazer essas perguntas - muitas vezes existem pessoas com uma ampla variedade de habilidades no mundo corporativo.
3
Em espera??? Isso NÃO está pedindo conselhos de carreira. Sim, esta pergunta é pouco sobre discussão, mas é responsável. Há tantas respostas legais para essa pergunta de nenhuma maneira que ela deva ser removida ou algo assim, a menos que o stackexchange esteja ficando sem memória. Veja as respostas aceitas. Está dando alguns conselhos de carreira?
vish213

Respostas:

32

Existem muitas diferenças entre a programação na escola e no mundo real. Não tenho certeza de que exista algo como programação corporativa .

Dependendo de onde você está realmente trabalhando, haverá enormes diferenças. Também haverá grandes diferenças dependendo das tarefas em questão.

No entanto, ainda existem alguns problemas comuns.

  • o ciclo de vida do código do mundo real é muito diferente do dever de casa da faculdade. Na programação do mundo real, você geralmente está trabalhando em alguma base de código existente. Um dos maiores problemas é evitar a quebra de compatibilidade com o código usado por seus clientes (que podem ser clientes internos ou externos, dependendo do local de trabalho e do caso). O código que você está escrevendo também provavelmente será usado nos anos seguintes (isso depende: o problema não é o mesmo para um site ou código incorporado em alguns dispositivos). Se você quiser se preparar para isso, adquira o hábito de escrever testes de unidade e testes funcionais para cada pedaço de código. Isso nem sempre é feito com o código do mundo real, mas deve tornar sua vida mais simples, tanto na faculdade quanto no mundo corporativo.

  • os projetos / requisitos geralmente são muito mais confusos no mundo real do que em uma atmosfera colegiada. Ao escrever um código profissional, alguém precisa definir o objetivo do código, e você simplesmente não recebe problemas de brinquedo ou problemas conhecidos. É muito provável que, mais cedo ou mais tarde, seja você quem faça o design! Os clientes geralmente não sabem o que querem (e mesmo quando sabem o que querem, pode não ser o que precisam), e os gerentes geralmente apenas descrevem o quadro geral, deixando muitos detalhes e opções para os programadores. Dependendo dos métodos seguidos ("ágil" -vs- "ciclo V" etc.), escolhas e definição detalhada de problemas podem ocorrer mais cedo ou mais tarde, mas você deve pelo menos manter a mente aberta e se perguntar se está realmente fazendo o que É necessário. Você também pode considerar alterar os requisitos se a tarefa em andamento for muito difícil de codificar ou for ineficiente. Você pode acabar escrevendo algo inútil ou muito complicado de qualquer maneira, porque o cliente ou seu gerente não entenderam o ponto ou discordaram de você. Ainda assim, você deve sempre questionar os requisitos (é uma habilidade de sobrevivência). Lembre-se também de que os requisitos podem mudar no meio de uma tarefa e você deve estar pronto para isso.

  • na faculdade, quando você recebe uma tarefa, costuma escrever um código. No mundo real, você geralmente começa verificando se pode usar o código existente: reutilizar ou alterar partes de um projeto, usar ou comprar bibliotecas, etc. ou não (pode haver problemas de manutenção, problemas de desempenho, direitos autorais ou mesmo problemas de preços), mas a opção de reutilizar o código existente geralmente deve ser considerada.

Obviamente, existem muitas outras questões relacionadas ao trabalho em equipe, escala do projeto etc. Mas os pontos acima são questões que você provavelmente verá em ambientes corporativos, mas que não precisará considerar em suas tarefas na faculdade.

kriss
fonte
Por Programação Corporativa, eu quis dizer o ambiente de programação nas empresas. Boa resposta btw :-)
vish213 14/07/2013
3
Boa resposta @kriss. Eu acrescentaria que é importante aprender a falar no idioma do cliente, não no "programa". Isso ajudará você e seu cliente.
Paddy Landau
38

A principal diferença entre programação corporativa e programação universitária é a escala. Na escola, você nunca recebe uma tarefa que uma pessoa não pode começar e terminar dentro de um semestre. Como profissional, você pode trabalhar com dezenas de outros programadores em software que dura anos sem ser "finalizado".

No nível micro, o trabalho não é tão diferente. Afinal, se fosse muito diferente, um diploma universitário não teria nenhum valor para as empresas. Mas é como a diferença entre assar 12 biscoitos e assar 12.000. Você pode ser realmente bom no primeiro e completamente ignorante no segundo.

Na escola, você se preocupa principalmente em fazer um programa correto . No trabalho, seu software está correto não é suficiente. Ele deve ser sustentável, testável, eficiente e capaz de ser trabalhado simultaneamente por várias pessoas. Isso é algo que as escolas tentam ensinar, mas você não pode realmente aprender completamente, exceto fazendo isso.

Karl Bielefeldt
fonte
Na minha experiência, a maioria do "código corporativo" não se esforça para ser sustentável, testável e eficiente, mas boa o suficiente para resolver o problema em questão em um curto período de tempo. Em muitos casos, o código nem está "correto", mas apenas "correto o suficiente".
simon
26

Esta pergunta é baseada em uma suposição inválida:

"Como você realmente muda de aprendiz para profissional no campo da programação?"

Você se torna um profissional sendo pago para fazê-lo. Você nunca deixa de ser um aprendiz. Se o fizer, sua carreira acabou.

Sair no mundo e conseguir um emprego. Seu entusiasmo pelo aprendizado é um trunfo.

Steven A. Lowe
fonte
4
Esse é um bom conselho, mas não responde realmente à pergunta, responde?
22913 Bryan Oakley
6
Concordo que um programador profissional nunca deixa de ser um aluno - mas não o fato de ser pago faz de você um profissional. Eu conheci muitos amadores que foram pagos para escrever um código terrível. Profissional é fazer o trabalho corretamente - e fazer o trabalho certo - não é ser pago para produzir código.
Bevan
@Bevan Também se pode argumentar que essa é a diferença entre um "programador" e um "desenvolvedor". Mas não tenho certeza de onde estou.
Izkata
3
@Bevan: A palavra "profissional" é genuinamente ambígua; os sentidos listados na entrada do Wikcionário incluem "De, pertencente a, ou de acordo com os (geralmente altos) padrões de uma profissão" e "Isso é realizado por dinheiro, especialmente como meio de vida". Ser pago automaticamente faz de você um programador profissional no último sentido, mesmo que não diga nada sobre o primeiro.
Ruakh
12

Resposta curta, sim - o mundo corporativo é bem diferente de muitos ambientes de faculdade.

Dito isto, as empresas sabem disso. Esperamos que os graduados sejam quase inúteis. Se você passou algum tempo aprendendo a programar, isso é ótimo. Você não precisa ser incrível demais para aplicar, mas entenda que permanecer medíocre não será suficiente.

Você não aprenderá muito do que precisa nos negócios por conta própria. Inscreva-se o mais rápido possível, continuando a aprender por conta própria.

Telastyn
fonte
4

Eu me beneficiaria alcançando um nível avançado de c #?

Não. Esperamos que os alunos sejam inúteis por vários meses enquanto os invadimos. O diploma é apenas uma estaca na mesa. Seu entusiasmo para aprender e seguir as instruções são seus melhores ativos. Ao entrevistar os graduados da faculdade, quero um membro da equipe que não se enquadre em nada que atrapalhe o grupo.

... os níveis mais altos não importam para as empresas porque eles dependem de seu treinamento apenas para ensinar como as coisas funcionam no mundo corporativo e aprender mais não vai me ajudar muito?

Isso é diferente para todas as empresas, mas, em geral, as empresas maiores terão um treinamento mais estruturado. Esta é sua primeira grande decisão, você gosta de treinamento formal e um alto grau de estrutura? Se sim, procure empregos que forneçam isso.

Como você realmente muda de aprendiz para profissional no campo da programação?

Você muda de aluno para profissional ao conseguir um emprego. Eu recomendo que os idosos obtenham uma cooperação com uma empresa através da sua escola. É a melhor maneira de molhar os pés e superar a ansiedade de uma nova profissão.

Continue aprendendo até ser perfeito ou ingressar em uma empresa é necessário, uma vez que os princípios básicos são cobertos?

Consiga um emprego, não espere. É comum ficar nervoso, mas seja honesto com suas habilidades e não esconda seu entusiasmo para aprender mais. É comum trocar de empresa várias vezes, principalmente no início de sua carreira.

Parabéns por terminar seu curso e boa sorte em sua jornada para a programação profissional.

Corrida Psíquica
fonte
1

Eu diria que a diferença fundamental entre a programação corporativa versus a faculdade é que a programação corporativa é muito mais um processo colaborativo do que o que você encontrará em uma sala de aula e a ênfase é muito mais no desenvolvimento de produtos do que na aprendizagem pedagógica.

Marc
fonte
1

Se você está realmente esperando que a programação do mundo corporativo seja uma cultura avançada de programação de alto nível, acho que você ficará bastante desapontado. Programar no mundo corporativo tem mais a ver com poder assumir a responsabilidade pelo código que você escreve e mantê-lo sustentável.

Mas a sua pergunta

Como você realmente muda de aprendiz para profissional no campo da programação?

Isso não tem nada a ver com a programação corporativa e universitária, mas com a programação em geral. Se você realmente deseja aprender, comece a criar seu próprio software, algo que deseja criar ou começar a trabalhar em projetos de software de código aberto. Faça as perguntas que você enfrentar. E leia o código de outras pessoas.

minusSeven
fonte
1

A resposta de Karl sobre escala é imediata. Você não consegue classificar uma matriz de 15 números, precisará classificar um conjunto de dados de um milhão, digamos, de números de conta.

Uma classe de estruturas de dados e algoritmos provavelmente lhe dirá uma dúzia de maneiras diferentes de classificar. Em um aplicativo real, é provável que você ative uma ordem por cláusula e deixe o banco de dados otimizá-lo.

Quanto à preparação para o mundo corporativo, há duas maneiras que eu sugeriria: a) Obter um estágio que até um salário mal pago ou sem salário permitirá que você observe os outros trabalhando. b) Com todas as lojas de aplicativos disponíveis, você pode tentar escrever e publicar um aplicativo nas lojas Apple / Google / MS. Isso ajudará você a entender melhor os fluxos de trabalho, o valor dos testes, a necessidade de configurar o ambiente, as ferramentas e muito mais.

SidJ
fonte
11
Só queria adicionar, além da loja de aplicativos, que você pode tentar se voluntariar para um projeto em pequena escala. Meu primeiro trabalho foi ajudando local de trabalho da minha mãe vir para cima com relatórios férias e horas extras :)
SidJ
0

A principal coisa que você precisa para se sair bem na programação corporativa é paciência e a capacidade de se comunicar com usuários que não entendem de tecnologia. Certifique-se de usar o teste de unidade, o controle de versão, depure cuidadosamente e use o rastreamento / registro adequado. Os idiomas podem mudar, mas permanecer calmo e procurar problemas com cuidado sempre funcionará.

Tim Spann
fonte
-1

além da excelente resposta fornecida, a "programação corporativa" também trata de requisitos que não são claros ou mudam.

O que você faria se o seu professor alterasse os requisitos do seu dever de programação dois dias antes de você ter que entregá-lo?

Na indústria isso é bastante comum.

k3b
fonte