Primeiro, deixe-me explicar um pouco antes de realmente fazer a pergunta. Eu estudo física e todas as minhas aulas de programação foram em linguagens de programação fáceis como o MATLAB. Por fácil, quero dizer que a linguagem faz muito do seu pensamento ... Nos próximos anos, estarei fazendo cursos de ciência da computação e estou pensando em seguir uma carreira em programação.
Considerando que muitos cursos universitários são em C ++, o uso de um pacote de álgebra linear (Armadillo) com sintaxe semelhante ao MATLAB será considerado preguiçoso?
Atualmente, estou codificando um algoritmo genético e, embora tenha sido rápido no MATLAB, está demorando muito tempo em C ++ sem a ajuda desses pacotes.
Como isso funciona na vida real? Quais pacotes você tem permissão para usar?
Por exemplo, eu não gostaria de desenvolver meu conhecimento de C ++ com o tatu e não ter conhecimento profundo de outros pacotes mais amplamente utilizados, como "vector.h" "algoritmo" "lista" etc.
fonte
lazy
parasensible
no seu título e a resposta é "sim" (supondo que você esteja executando uma tarefa que envolva álgebra linear, é claro).Respostas:
O comentário de Richard já é a maior parte da resposta. Sempre que você estiver programando algo que não seja um exercício de classe, reutilize o máximo de código existente possível, com apenas algumas outras considerações para equilibrar.
As vantagens da reutilização de código são:
Há apenas algumas coisas a considerar:
Como diz o ditado, em um programador, a preguiça é uma virtude.
fonte
O que você quer dizer com "permitido"? Eu acho que posso adicionar algo aqui que pode ajudar a esclarecer um equívoco de alguns alunos iniciantes: você é solicitado a escrever seu próprio código e algoritmos etc. etc. na universidade, porque está aprendendo um curso e deseja consolidar o que você aprendeu nas aulas escrevendo realmente o código. Essa codificação é um auxiliar do seu processo de aprendizagem . Por exemplo, depois de aprender uma estrutura / algoritmo de dados específica, você escreve seu próprio código para ver como ele realmente funciona e aprofundar sua compreensão. Isso faz sentido.
Quando você está desenvolvendo um projeto de programação da vida real, não está escrevendo código como um auxiliar para aprender alguns conceitos / conhecimentos; você está tentando produzir um produto de engenharia. Engenharia não é realmente sobre invenção, mas sobre os fundamentos apresentados por outros já, para atender a uma necessidade prática específica. Dizem que a programação é 80% de leitura / reutilização de bibliotecas / códigos de outras pessoas e 20% de criação da sua. Pode ser um pouco exagerado, mas você recebe o espírito.
No seu caso, se você estiver executando um projeto de programação para um curso e solicitar explicitamente a codificação de seu próprio algoritmo, você não desejaria usar bibliotecas externas. Se você estiver executando seu próprio projeto de engenharia, use o maior número possível de bibliotecas antes de tentar criar o seu.
Deixe essa distinção clara e você entenderá o que está fazendo.
fonte