O que você escolherá?

Oi, Habr!

O que você escolherá? Quem estudar? Devo estudar ciência da computação ou me tornar engenheiro de software? Essas questões são muito relevantes em nosso tempo.

O que você escolherá?

Pessoas que estão apenas começando sua jornada na área de TI e vão se matricular em alguma universidade técnica ou simplesmente procuram programas de treinamento em programação, na maioria das vezes se deparam com um grande número de direções. A questão é que em cada uma dessas áreas as disciplinas são semelhantes, principalmente no 1º e no 2º ano.

Para maior clareza, dividiremos todas as áreas em dois campos – Ciência da Computação e Engenharia de Software. A diferença fundamental é que a primeira direção é mais flexível e estuda melhor os fundamentos, enquanto a segunda visa habilidades mais práticas na criação de programas para o mercado. Qualquer que seja essa área que você escolher, você acabará se tornando um programador. Muito provavelmente, você irá trabalhar em algum lugar depois ou durante seus estudos, e exatamente em qual setor de desenvolvimento você terá permissão e para o qual você pode se inscrever determinará a direção que você escolherá.

Ambos os campos cobrem assuntos semelhantes nos primeiros 2 a 4 semestres, como álgebra linear, cálculo, matemática discreta e equações diferenciais. Toda essa matemática costuma ser estudada em ambos os campos, mas a Ciência da Computação acrescenta mais um curso em matemática discreta e equações diferenciais. Também comum a todas as áreas é uma introdução à Ciência da Computação geral, e é aqui que começam as diferenças. Na direção de Ciência da Computação, eles falam sobre arquitetura de computadores, teoria dos algoritmos de computação, estrutura de dados e sua análise, como funcionam os programas e como podem ser escritos usando designs clássicos, sistemas operacionais, compiladores e assim por diante. Ou seja, uma base maior está sendo coberta. Por sua vez, a Engenharia de Software fala sobre design OOP, testes de software, noções básicas de sistemas operacionais e assim por diante. Ou seja, o estudo de técnicas está sendo contemplado para que o aluno aprenda a utilizar soluções prontas e, com a ajuda delas, resolver uma gama diferente de problemas de negócio. Tudo isso geralmente é estudado no primeiro ano de estudo.

Além disso, já no 2º ano, ambas as áreas começam a estudar disciplinas como arquitetura de computadores e sistemas operacionais, mas a Engenharia de Software estuda essas disciplinas de forma mais superficial. Isso se deve ao fato de formarem pessoas que terão pouca ligação com esses assuntos. A partir do 2º ano de estudos, a Ciência da Computação começa a colocar mais pressão na microarquitetura e nos kernels dos sistemas operacionais, e no desenvolvimento de software dão mais ênfase às interfaces de usuário, testes, análise de software, todos os tipos de técnicas de gerenciamento, etc. OOP é estudado em ambas as direções com bastante profundidade, já que esse paradigma de programação é muito popular hoje em dia e você só precisa conhecê-lo.

O 3º ano de estudo em Ciência da Computação é dedicado ao estudo de combinatória, criptografia, IA, noções básicas de desenvolvimento de software, gráficos 3D e teoria de compiladores. E em Engenharia de Software estudam segurança de sistemas, redes e Internet, gestão de software e gestão em geral. Mas dependendo da universidade, essas disciplinas e a profundidade delas podem variar.

Talvez a questão principal deste artigo continue sendo a questão de onde é melhor ir. Tudo depende das suas preferências. Se você quer ser um engenheiro muito flexível e versátil, então você deve estudar Ciência da Computação. E se você deseja conectar sua vida ao desenvolvimento de software e ser capaz de criar alguns programas úteis para usuários finais, então Engenharia de Software é para você.

O que você escolherá?

Para resumir, gostaria de dizer que na Ciência da Computação você aprenderá a resolver problemas e a encontrar maneiras elegantes de resolvê-los, e na Engenharia de Software você se transformará em um programador de negócios capaz de gerenciar projetos, pessoas e criar software atualizado.

Fonte: habr.com

Adicionar um comentário