Edsger Wybe Dijkstra era um cientista da computação holandês.
Ele recebeu o Prêmio Turing de 1972 por contribuições fundamentais para o desenvolvimento de linguagens de programação , uma vez disse:
"CIÊNCIA DE COMPUTADOR NÃO É MAIS SOBRE COMPUTADORES DO QUE ASTROMIA É SOBRE TELESCÓPIOS."
CS é REALMENTE DIFERENTE DE UM SE. (CS! = SE).
Um CS é um cientista que adquiriu conhecimento de CIÊNCIA DO COMPUTADOR.
CIÊNCIA DO COMPUTADOR ou ciência da computação (CS às vezes abreviado) é o estudo dos fundamentos teóricos da informação e da computação e de técnicas práticas para sua implementação e aplicação em sistemas de computadores. É frequentemente descrito como o estudo sistemático de processos algorítmicos que criam, descrevem, e transformar informações.
A ciência da computação tem muitos subcampos, por exemplo:
- Ciência da computação teórica
- Teoria da computação
- Algoritmos e estruturas de dados
- Arquitetura e elementos do computador
- Multiprocessamento
- Ciência computacional
- Inteligência artificial
- Sistemas de software
Muitos de nós não precisamos de nenhuma dessas habilidades no trabalho diário ou pelo menos um pouco delas.
O ENGENHEIRO DE SOFTWARE (SE) é uma profissão dedicada ao design, implementação e modificação de software, para que seja de qualidade superior, mais acessível, sustentável e mais rápida de construir. É uma "abordagem sistemática para a análise, projeto, avaliação, implementação, teste, manutenção e reengenharia de um software, aplicando engenharia ao software"
Como um conhecimento de CS, ele deve ter o conhecimento necessário para gerenciar problemas complexos reais sem conhecer uma linguagem de programação realmente boa. IMHO aqui podemos abrir outro tópico, onde um GRAU para mim é apenas um ponto de partida e não um objetivo final.
Como conhecimento de SE, ele deve ter o conhecimento necessário para gerenciar a produção desse problema complexo real e gerenciar o desenvolvimento de uma equipe ou projeto sobre esse campo.
Juntos, fazer a pesquisa em ciência feita por um CS em Ciência aplicada, com a ajuda de um SE.
Não quero dizer que CS é melhor que SE, quero dizer CS! = SE.
Esse tipo de pergunta é a mesma pergunta que pessoas que não são de computadores perguntam a si mesmas quando perguntam por que, como programadores, você não é capaz de resolver por telefone o problema do programa X, Y, Z no sistema operacional J, M, N. ;)
Na verdade, eu estou realmente entediado de codificar depois de 10 anos de desenvolvimento de sistemas unix no campo da segurança e depois de ler essa pergunta, entendi o ponto, preciso estudar mais ciência da computação e menos linguagem e sistema ou protocolo de computador!
Ninguém no meu trabalho pode lidar com a diferença entre SE e CS! é realmente uma coisa ruim.
Se você acha que um CS pode ser uma desculpa para uma péssima habilidade de programação, você realmente não entende o que é um CS e o que é SE.
Suponho que você seja um SE, você sabe, por exemplo, que toda a linguagem, todo paradigma e todas as coisas relacionadas à linguagem do computador podem ser expressas matematicamente em um conjunto de funções recursivas parciais e o que você aprende em um novo idioma, QUALQUER NOVA LÍNGUA, você é apenas aprendendo uma nova abstração sobre a mesma função parcial recursiva?
diverta-se :)