Skip to content

Instantly share code, notes, and snippets.

@juanplopes
Created November 22, 2011 17:40
Show Gist options
  • Select an option

  • Save juanplopes/1386328 to your computer and use it in GitHub Desktop.

Select an option

Save juanplopes/1386328 to your computer and use it in GitHub Desktop.
RANT: A graduação em si não é importante. Mas e o que ensinam lá?

A graduação em si não é importante. Mas e o que ensinam lá?


Correndo o grande risco de recomeçar um flame antigo aqui da lista, vou pegar o bonde no Void Podcast #14, em que participei como convidado.

Lá discutimos sobre o futuro do desenvolvimento de software. Como é possível prever, não chegamos a conclusão alguma. Mas passamos pelo tema da importância da graduação na construção de sistemas mais inteligentes.

Quero propor hoje que conversemos não sobre graduação, diplomas e reserva de mercado, mas sobre o conhecimento científico que a maioria dos programadores deixam de adquirir lá.

Concordo com muitos que dizem que a grande maioria do trabalho que se realiza em TI hoje em dia não usa quase nada do que se aprende na faculdade. Entretanto, estava lendo um rant na lista java-ce, e indicaram um post antigo do Silvio Meira, que sintetiza bem o que penso sobre o assunto.

a maior parte do software sendo escrito no planeta, hoje, é irrelevante, como as dezenas de milhares [só?...] de “folhas de pagamento” sendo contínua e concorrentemente desenvolvidas e em evolução no brasil [só pra falar daqui]. este software “commodity” e completamente desnecessário [em seu estado atual] tende [e pode] a ser desenvolvido por competências muito abaixo do que um graduado em computação tem ou deveria ter.


Por outro lado, estou, faz pouco tempo, tentando falar mais sobre algoritmos nas comunidades onde participo. Mostrar que não é um monstro de sete cabeças. Mas, nesse caminho, vejo muita gente dizendo que esse é um assunto "do mal", muito difícil, mas que gostaria de aprender. E me pergunto a falta que a graduação faz nisso. Já vi dizerem que "graduação é para gente preguiçosa", e que é possível aprender tudo isso na internet. Não discordo. Mas isso é possível também com Física, Filosofia ou qualquer assunto.

Estou acompanhando de perto um colega de trabalho estudando em casa sobre B+Trees, através de papers que encontra na internet. Mas ele é exceção. O que faz com que seja tão raro encontrar um programador que entenda de ciência da computação? Por que eles tem que ser a exceção e não a regra?


No último encontro do DNARJ, tirei 15 minutos (literalmente 15 minutos) para mostrar uma implementação de ordenação topológica em grafos. A implementação em si tem menos de 15 linhas, absurdamente simples. Mas é o tipo do problema que o programador mediano vai dizer "não vou aprender essa parada de grafos, vou encontrar uma biblioteca pronta". E quando muito, cola uma classe de 200 linhas que achou no codeproject. Isso não é o espírito de um bom programador.

Repetindo o meu questionamento no último void, é essa a geração de cientistas e engenheiros da computação que vão pavimentar o futuro do desenvolvimento de software?

@porcelli

Copy link
Copy Markdown

Concordo em gênero, número e degrau!

btw: não tenho a tal graduação e tento correr para buscar estes conhecimento que me faltam assim como seu colega (q não tenho idéia de quem seja :P).

[]s
Alexandre Porcelli

@mmacedo

mmacedo commented Nov 22, 2011

Copy link
Copy Markdown

Eu digo que as faculdades não tem bom ensino e o mercado é a prova disso, mas a maioria das pessoas pensa que devem ser duas carreiras distintas, que um programador/analista precisa saber fazer SQL, if e while, mas não grafos, não AST, não redes neurais ou qualquer coisa que a faculdade ensine. Uso como argumento o trabalho de um verdadeiro cientista (tudo bem que ele é pago para trabalhar em OSS, mas alguém sem conhecimento de uma disciplina considerada acadêmica não consegueria entregar o mesmo valor que ele):

RailsConf 2011: Aaron Patterson, "Double Dream Hands: So Intense!" - http://www.youtube.com/watch?v=kWOAHIpmLAI

Obs.: Eu acho esses conhecimentos relevantes, mas tenho dificuldade de defender requisitos de graduacão dado o baixo nível da maioria.

@porcelli

Copy link
Copy Markdown

"tudo bem que ele é pago para trabalhar em OSS, mas alguém sem conhecimento de uma disciplina considerada acadêmica não consegueria entregar o mesmo valor que ele": discordo totalmente desta afirmação, não tenho esta formação acadêmica mas sou pago para trabalhar em OSS... uma coisa não está relacionada com a outra.
Só digo que o que se ensina em um BOM curso de ciências da computação é importante sim, mas você pode buscar este conhecimento por você mesmo, caso você tenha interesse... vai doer mais, porém você deve aguentar as consequências de suas decisões.

@mmacedo

mmacedo commented Nov 22, 2011

Copy link
Copy Markdown

Aiaiai, desculpe minhas palavras confusas, eu não quis dizer que um tem a ver com outro. Só quis dizer que Rails não é exatamente o tipo de aplicacão que desenvolvemos no nosso cotidiano, mas ainda assim o exemplo dele é válido para demonstrar que se você procurar esses conhecimentos não importa o tipo de aplicacão você pode achar aplicabilidades para entregar melhores softwares. E um bom curso de graduacão ensina isso.

@juanplopes

Copy link
Copy Markdown
Author

Eu acho esses conhecimentos relevantes, mas tenho dificuldade de defender requisitos de graduacão dado o baixo nível da maioria.

Pois é. O problema é que o baixo nível da maioria faz com que a maior parte dos profissionais estejam trabalhando em sistemas irrelevantes que requerem muito pouco ou quase nenhum conhecimento real de software. Sistemas que poderiam ser feitos por máquinas.

O @vquaiato comentou no void e eu concordo com ele. É possível que num futuro próximo aconteça com os programadores de CRUD o que aconteceu com os metalúrgicos no final do último século: a perda de emprego para as máquinas. Ele chamou isso de "a informatização da informática".

@henriquebastos

Copy link
Copy Markdown

Concordo plenamente com você quando diz que este tipo de conhecimento é muito importante e para mim isso não tem discussão.

O problema que observo é acreditar que "fazer graduação" implica em "adquirir estes conhecimentos". O que se questiona não é a relevância destes conhecimentos, mas a universidade/faculdade como canal de fornecimento. Muito deste material é até "mostrado", exibido, durante uma graduação. Mas quando em uma turma de 60, 50 passam, sendo que 5 conseguem implementar os algoritmos estudados no papel, tem que ver isso aê.

Convivendo com você, eu sempre entendi que a sua experiência com graduação foi muito boa. Dai vem meu questionamento: Será que você também não é exceção? Tanto quanto este seu amigo? A diferença não seria que, enquanto ele se deparou com um "paper aleatório", você se deparou com "algo aleatório" dentro da universidade/faculdade?

Levanto estas questões, pois ainda hoje a maioria das pessoas fazem graduação. E na minha opinião, simplesmente dizer que a maioria dos estudantes não são interessados é inadmissível. As universidades/faculdades tem muita gente boa, muitos professores geniais, mas deveriam ter também uma estrutura de ensino que promovessem o aprendizado. Investir no ensino, na aula, na dinâmica, na didática, no material é fundamental. Tão fundamental quanto investir em pesquisas e publicações.

Novamente, concordo com você que estes conhecimentos são muito importantes. Mas na minha opinião, enquanto a universidade/faculdade considerar o aluno à margem do sistema, uma pessoa tem maior probabilidade de desenvolver estes conhecimentos participando de Dojos com você do que fazendo uma graduação.

Sobre o comentário do @vquaiato, eu não tenho dúvidas que isso vai acontecer com o mercado de TI.

[]'s, HB!

@mmacedo

mmacedo commented Nov 22, 2011

Copy link
Copy Markdown

Hahaha, não gosto do void, mas esse eu vou ter que escutar. Eu acredito que você pode ser muito mais que um desenvolvedor CRUD sem a ajuda da universidade, mas há quase uma exigência de não ter esses conhecimentos por parte do mercado: se você souber alguma coisa você faz telas/UCs ou core/tecnologia, se você não entende nada de software então você vira gerente ou faz relatórios, se você sabe mais que isso... get a life!

@juanplopes

Copy link
Copy Markdown
Author

@henriquebastos

Mas quando em uma turma de 60, 50 passam, sendo que 5 conseguem implementar os algoritmos estudados no papel, tem que ver isso aê.

Acho que isso é meio que um círculo vicioso. Se você acompanha o progresso de um estudante de outras carreiras baseadas na matemática (como Física ou Atuária) você vê que o aluno não tem outra opção senão realmente aprender o que está sendo falado lá. Dentro ou fora da faculdade ele vai precisar aprender isso para o que fará no dia-a-dia.

Mas, a partir do momento que um aluno de graduação em qualquer curso de TI se vê na decisão de aprender coisas que ele ainda não sabe para que serve ou se focar naquilo que o mercado precisa imediatamente, é difícil competir. A ciência sempre vai perder.

@adorilson

Copy link
Copy Markdown

@henriquebastos, plenamente de acordo com a necessidade do investimento em "ensino, na aula, na dinâmica, na didática, no material". A maior preocupação das universidades é a publicação de papers.

@mmacedo

mmacedo commented Nov 22, 2011

Copy link
Copy Markdown

Foi-se a época que o salário dos professores era proporcional ao número de artigos. A qualidade dos artigos serve como medida para a evolucão científica da comunidade, mas a pesquisa científica tem muito pouco a ver com o ensino e isso que faz os nossos softwares irrelevantes. Softwares que tem grande impacto no nosso dia a dia vem de empresas (boas ou ruins) que acreditam na importância da ciência no desenvolvimento de software como o Google e seus papers e mega implementacões de aprendizagem de máquina.

@henriquebastos

henriquebastos commented Nov 22, 2011 via email

Copy link
Copy Markdown

@mmacedo

mmacedo commented Nov 22, 2011

Copy link
Copy Markdown

E se dinheiro é realmente a desculpa para excluir a ciência, então eu lhe pergunto quem fatura mais: a Google ou qualquer uma das startups inovadoras que ela comprou por centenas de milhões de dólares ou a sua empresa de sistema de cartão ponto?

@tapajos

tapajos commented Nov 22, 2011

Copy link
Copy Markdown

Existe um exagero de quem defende que a graduação não é necessária assim como tem um exagero de quem defende que é fundamental. Fundamental para mim é o conhecimento e não me interessa muito se você vai adquirir ele na sua graduação, num livro ou na internet.

Na última RubyConf eu fiz um comentário onde eu dizia que eu teria boiado na apresentação do @tenderlove se eu não tivesse estudado na UFRJ e acabei de saber pelo @juanplopes que meu comentário foi massacrado pela galera. Fiquei bastante curioso para saber o que as pessoas falaram sobre isso.

A palestra em questão foi muito baseada nas cadeiras de Linguagens Formais e de Compiladores. Tenho certeza que muita gente sem graduação estava lá e entendeu assim como muitos graduados não entenderam nada. Quando eu fiz o meu comentário eu estava me referindo a minha experiência.

Eu sou formado em Ciência da Computação pela UFRJ e quem me conhece a mais tempo sabe como foi a minha graduação e que tipo de aluno eu fui.

Hoje, alguns anos depois e muito mais maduro do que eu era quando eu entrei na UFRJ eu já consigo separar um pouco melhor o que foi importante e o que não foi na minha graduação.

A minha graduação não me tornou especialista em nada porém me deu uma visão mais ampla do que é a computação e com certeza me forneceu uma base sólida de conhecimentos que me torna capaz de ao encarar um problema elaborar soluções que vão além de procurar algo pronto.

Já aconteceu algumas vezes de eu encarar um problema e lembrar (por alto) de um modelo matemático que se aplicava no problema e por já ter visto aquilo em algum momento anterior eu fui capaz de saber onde pesquisar e solucionar o problema.

Acho que o maior mérito da UFRJ foi ter me ensinado que muita coisa existe e identificar quando preciso usar esse conhecimento e onde procurar por ele. Provavelmente muita coisa eu já teria estudado mesmo sem ter feito faculdade mas provavelmente muita coisa eu teria deixado em segundo plano por n razões.

Afinal de contas, quantos programadores BONS você conhece por aí que estudaram cadeia de Markov, automatos e gramáticas livre de contexto fora de uma universidade? Como é algo que se usa pouco a gente deixa para segundo plano, isso é normal!

Novamente, não estou defendendo que graduação é fundamental e nem que não é. Estou contando a minha experiência e dizendo que não existe certo ou errado.

Não dá para ser radical, todo radicalismo é burro porque não enxerga os pontos positivos do outro lado.

Que venham as pedras!

@juanplopes

Copy link
Copy Markdown
Author

@mmacedo

Foi-se a época que o salário dos professores era proporcional ao número de artigos.

Mais ou menos. A quantidade de publicações e citações rege a maior parte das regras de concessão de bolsas pelo CNPq e afins.

O podcast Fronteiras da Ciência fala um pouco sobre esse assunto no episódio sobre a Susan Haack.

http://www6.ufrgs.br/frontdaciencia/arquivos/Fronteiras_da_Ciencia-T02E34-SusanHaack-14.11.2011.mp3

@juanplopes

Copy link
Copy Markdown
Author

A minha graduação não me tornou especialista em nada porém me deu uma visão mais ampla do que é a computação e com certeza me forneceu uma base sólida de conhecimentos que me torna capaz de ao encarar um problema elaborar soluções que vão além de procurar algo pronto.

Perfeita frase.

@mmacedo

mmacedo commented Nov 22, 2011

Copy link
Copy Markdown

@henriquebastos Ai é que você peca e mesmo discordando você justifica a ignorância difundida no nosso setor: uma empresa não precisa ser filantropa para valorizar a ciência, eu dei o exemplo do Aaron Patterson e seu trabalho admirável e não filantropo no Rails 3, mas já vi trabalho desse tipo sendo realizado em software fechado e pago e isso agrega valor ao produto e ao profissional.

@juanplopes @tapajos Perfeita frase. [2]

@mmacedo

mmacedo commented Nov 22, 2011

Copy link
Copy Markdown

O mais legal dessa discussão é que todo mundo concorda em tudo, apesar de diferencas de experiência e discrepâncias semânticas.

Se depender de nós as palavras sábias do profeta @vquaiato se tornarão realidade em um futuro não muito distante. Viva as máquinas! o/

@henriquebastos

Copy link
Copy Markdown

@mmacedo o que tentei dizer, no nosso contexto, é que a motivação das empresas são diferentes das da universidade. Acredito que as universidades tem um papel importante e acho que, por mais que empresas influenciem a evolução do conhecimento, isso não substitui o papel da universidade.

@mmacedo

mmacedo commented Nov 22, 2011

Copy link
Copy Markdown

@henriquebastos Eu entendo, apenas discordo que a motivacão do dinheiro rápido exigido pelos acionistas deva ser usada como desculpa para deixar a ciência e o profissionalismo de lado, afinal é isso que nos pôs na crise econômico-social atual.

@henriquebastos

Copy link
Copy Markdown

@mmacedo eu concordo com você que não se deve usar como desculpa. Não estou endossando este comportamento, apenas constatando que ele se manifesta.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment