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?
fonte
Respostas:
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.
fonte
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.
fonte
Esta pergunta é baseada em uma suposição inválida:
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.
fonte
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.
fonte
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.
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.
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.
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.
fonte
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.
fonte
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
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.
fonte
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.
fonte
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á.
fonte
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.
fonte