No post anterior, algo propositalmente não foi discutido: em momento algum tentei convencer alguém de que o conhecimento da CCP era útil. E não fiz isso por um motivo simples: tava com uma puta preguiça.
Não, perai. Eu não fiz por outro motivo: porque eu na verdade não queria convencer ninguém naquela hora a cursar CCP, e sim a parar de querer de estranhamente mudar a grade curricular de um curso que as pessoas não compreendiam as premissas ou evitavam compreender (Clarice Lispector feat. Edsger W. Dijkstra).
Agora sim eu quero te convencer a fazer CCP, porque a Ciência é linda e tal. O conhecimento científico aprendido na faculdade é foda e definitivamente será útil na maioria dos ambientes de trabalho, ainda que as pessoas achem que a única coisa que um programador precisa saber é programar em determinada linguagem.
Primeiramente, inspirado na discussão com o Gabriel no post anterior, vale afirmar: – na maioria dos casos, não existe apenas uma forma de se resolver um problema. Você pode criar softwares de diversas formas, com diversas linguagens, diversas técnicas (avançadas ou não); pode pegar softwares prontos, pode até pagar para alguém fazer o software para você.
Então, se você diz: – “aff, mas nada disso que eu aprendo na faculdade eu vou usar no emprego”, você está errado. Porque você provavelmente vai poder utilizar o que aprendeu na faculdade e apenas não vai querer ou não vai saber como (e isso nem é uma crítica).
Mas é claro, nem todo mundo tem tempo para estudar tudo que é importante ou tem saco para isso. É você quem decide para você o que é melhor para sua qualificação profissional (eu deixo, juro).
Agora, vamos ao que interessa…
A resposta é: sim. Só tem uma ressalva: você tem que saber utiliza-las. E é claro que nem tudo é útil a todo tempo.
Argumentar sobre todas as disciplinas e todo conteúdo aprendido nelas demandaria muito tempo e muito mais conhecimento do que eu realmente tenho (mesmo pesquisando na wikipédia vê se pode!!!), então vamos de leve.
Como eu já disse, provavelmente vão existir várias formas de se chegar a um mesmo objetivo. Algumas serão mais caras, outras mais baratas, algumas serão mais fáceis, outras mais difíceis. Algumas serão mais gays, outras… pera ai, isso não.
No mundo real, você provavelmente vai ter que escolher entre o custo-benefício da sua forma de se resolver um problema. E dificilmente você vai poder maximizar o custo e o tempo de você resolver um determinado problema, porque todo mundo sabe que seu chefe é mão de vaca e enrolou 3 meses pra te passar o problema e agora quer na hora!!! Então é por isso que você aprende as ~coisas~, para que você faça sozinho e ganhe dinheiro com isso (ao invés de perder dinheiro pagando para outro fazer).

Se vocẽ não atender as expectativas dos seus chefes, você pode acabar como um viciado na gatolândia.
Vamos supor um exemplo simples: você quer filtrar os perfils de spammers no twitter. Você pode fazer isso de 10 mil formas diferentes. Você pode:
- Procurar manualmente os perfis;
- Utilizar expressões regulares para pesquisar perfis cujos nomes comecem com letras e terminem com números (quase todos fazem isso, você já reparou?);
- Utilizar um algoritmo de aprendizado de máquina como o k-NN ou uma Rede Neural Artificial;
- Procurar alguma empresa que faça isso para você;
- Dizer para seu chefe que não tem como fazer isso e torcer para ele acreditar;
- (Repita as formas citadas anteriormente com pequenas variações até dar 10 mil).
Veja bem, cada uma dessas alternativas vai demandar de você um esforço diferente, vai demorar tempos diferentes, custos diferentes e principalmente conhecimentos diferentes. Se você entrou na faculdade e não dormiu na aula de Inteligência Artificial, vai saber como usar um k-NN e vai ter essa opção para testar para eventualmente resolver o seu problema. E, veja só, ainda que não se aprenda isso na faculdade, utilizar expressões regulares também pode ser uma boa alternativa.
Mas você vai me dizer: – “mas procurar spammers no twitter parece mais uma brincadeira de estudante do que um problema real mimimimi”. É, até é mesmo. Vamos supor outro exemplo: você tem um site de vendas. Você deseja saber o que os compradores sempre costumam comprar ao mesmo tempo. Você pode: procurar manualmente pelo seu banco de dados de 100 mil tuplas ou pode utilizar um algoritmo de regras de associação e extrair essa informação automaticamente.
Se você sabe modelar seu problema para utilizar essas técnicas mais avançadas, você definitivamente irá utiliza-las. E esses são só dois exemplos dentro da Inteligência Artificial! Outros conhecimentos também são importantes, saber sobre arquiteturas de processadores é importante se você deseja atingir um tempo de resposta determinado com seu software ou trabalhar com sistemas embarcados. Geometria e Álgebra são a base de basicamente tudo que há na CCP. Desde complexidade de algoritmos, até as técnicas de Inteligência Artificial etc. Isso sem falar em estatística – útil para que você analise corretamente seus dados -, engenharia de software – que vai servir para você organizar sua equipe para criar um software – etc.
Enfim. Você pode até discordar de mim e dizer que mesmo assim essas coisas não são úteis para seu trabalho em sua empresa. O que provavelmente é ingenuidade sua, mas é seu direito. Só que antes de reclamar da grade curricular da sua faculdade, tenha em mente: isso pode não ser útil para você, mas definitivamente é útil para muitas outras pessoas que escolheram conscientemente o curso e utilizam o conhecimento dele. Como eu. Como grande parte das pessoas que conheço que se formaram em CCP nesse nosso Brasil varonil.
Fim.

