Por décadas, o grau aceito para se tornar um desenvolvedor de software foi "Compter Science".
Já temos algumas perguntas sobre se esse diploma realmente prepara os alunos para o desenvolvimento de software.
Algumas escolas começaram, nos últimos 8 anos ou mais, a oferecer vários cursos distintos de programação. Usando o currículo da minha escola:
- Ciência da Computação , que começa com alguns cursos de programação introdutória no primeiro ano e depois se concentra na ciência da computação teórica, algoritmos e um pouco de coisas do sistema operacional. A maioria das aulas envolve vários projetos menores e trabalhos de casa, feitos sozinhos ou em pares.
- A Engenharia de Software , que começa com os mesmos cursos de programação introdutória, faz algumas aulas teóricas e depois pratica práticas de desenvolvimento de software (testes, metodologias de processo, métricas de software, coleta de requisitos) e design de software (design de sistema distribuído, design de sistema de informação) , design em tempo real / incorporado, design de subsistema etc.)
Escolas diferentes fazem isso de maneira diferente, portanto, o exposto acima é apenas um exemplo do mundo real com o qual estou familiarizado. O que pergunto é: Há necessidade de especializações distintas na programação?
computer-science
engineering
Fishtoaster
fonte
fonte
Respostas:
Sim, deveriam ser.
A relação entre ciência da computação e engenharia de software é a mesma que entre física e engenharia mecânica. Um fornece a base teórica, enquanto o outro pega essas teorias, juntamente com bons princípios de engenharia, e as aplica ao projeto e implementação de software.
Você precisa dos dois para produzir um software novo e melhor. Uma boa educação em ciência da computação treina as pessoas a produzir novos e melhores algoritmos, estruturas de dados, linguagens e paradigmas de programação, compiladores e várias outras coisas que podem ser usadas para aprimorar os sistemas de software. Por outro lado, uma boa educação em engenharia de software o treina para levar essas ferramentas e conhecimentos obtidos através de um estudo científico da computação, juntamente com o conhecimento do ciclo de vida de desenvolvimento de software e modelos de processos para realmente construir o sistema que um cliente deseja e precisa .
fonte
É sabido que um currículo típico de CS não prepara um para a indústria, nem tanto quanto deseja que você esteja preparado de qualquer maneira. Então, sim, há uma necessidade de um especialista em engenharia de software, e os dois devem ser distintos, embora definitivamente na mesma faculdade.
fonte
Eles devem ser disciplinas diferentes, mas não no nível de graduação. Eu simplesmente não vejo como eles podem reduzir tudo o que é necessário para a Engenharia de Software em um curso de graduação. Da mesma forma que não vemos os cursos de graduação em Engenharia de Sistemas (onde as pessoas obtêm um MS depois de se formar em EE, CE, Eng. Mecânica ou CS), é o caso da Engenharia de Software.
É uma abordagem multidisciplinar baseada fortemente em ciência da computação e / ou MIS. As pessoas realmente se tornam engenheiros de software na prática (e não apenas no título) depois de seguirem o curso avançado e / ou a experiência de trabalho no campo, desde que o posterior seja feito em ambientes condutores da engenharia de software.
A maioria das pessoas tem títulos de engenharia de software, mas realmente não avançou além da codificação. Isso não é um problema para eles, mas uma observação - eles não foram suficientemente expostos ao tipo de trabalho que os ajudaria a acumular experiência de trabalho além da codificação. Pior ainda, a maioria dos trabalhos e organizações é atrozmente executada e não conduz a engenharia de software adequada.
Além disso, sem algum trabalho ou maturidade escolar, o material de engenharia de software simplesmente sobrevoará a cabeça da maioria dos estudantes de graduação.
fonte