Estudar para que se eu já sei o que fazer

Tenho severas críticas ao modelo educacional, principalmente o superior. Vou e volto para a faculdade de tempos em tempos, minha escola real está nos livros, a faculdade é pelo diploma porque a falta dele as vezes fecha portas que não tem como serem abertas e em determinados momentos precisam serem ultrapassadas.

Minhas críticas derivam principalmente da falácia e do sofismo, as pessoas acreditam que possuir um nível superior as credita para a qualificação necessária a uma determinada tarefa simplesmente. Quantos alunos estão se formando esse ano em Ciência da Computação sem a necessária qualificação? A maioria? Todos? Nenhum? Como saber se não existe um mecanismo eficiente de provar isso?

Na ausência de um mecanismo eficiente, o mercado sempre adota pontos factuais para basear suas contratações, e uma delas é o porte de um diploma de curso superior.

Fiz quase todas as cadeiras que envolvem desenvolvimento de software: Estrutura de dados, laboratório 1 e 2, técnicas de programação 1 e 2, lógica matemática, teoria da computação, entre outras que não lembro no momento. Em todas essas cadeiras nunca ouvi o professor(a) sequer mencionar coisas como: Closure, Currying, Continuation, Design By Contract, Actor model, Lazy evaluation, Tail recursion, Quine, Engine, Liskov substitution principle, … mais algumas coisas que não lembrei no momento …

O básico de orientação a objetos é ensinado, o aluno consegue até responder o que é herança e encapsulamento, mas eu nunca vi sequer mencionarem Orientação a Objetos Prototype-based, aí tenho que me deparar com gente dizendo que Javascript ou Lua fede porque simplesmente não entende como funciona os conceitos e acha estranho a sintaxe das linguagens.

Eu mesmo passei a faculdade inteira sem discutir design patterns, com exceção de DAO, que eventualmente pula na frente dos alunos em alguma cadeira obscura de "desenvolvimento web" (sic). Hoje um amigo estava impressionado com as recomendações que o pessoal da SUN passou sobre o GoF na caravana de ontem, e eu falei para ele que isso é naftalina, sério, se em 2007, o GoF é novidade para você, algo de muito sério aconteceu com sua formação.

Tive um professor muito bom, Hélio Moura, que usava na época a primeira edição do livro "Applying UML and Patterns"(que é de 1997 e faz portanto 10 anos) do Craig Larman, referência na época para RUP, e passou alguns princípios legais como GRASP, Law of Demeter, Open/closed principle, entre mais algumas coisas legais que não lembro agora. Mas isso foi uma exceção, e esse professor não ministra mais aulas na faculdade onde estudo. Isso era coisa de 99 ou 2000, início do milênio, vi que os professores de lá ainda usam a mesma versão do livro do Craig. Detalhe, já estamos na terceira edição e com mudanças significativas.

Agora PoEAA do Martin Fowler que é bom, voce vai passar batido, nem tenha esperança de discutir isso em sala de aula.

Domain Model? isso é anos-luz da academia brasiliana, vá estudar que é melhor. Domain Driven Design também é assunto inexistente, procure outra freguesia.

Metodologias ágeis, enquanto a academia está descobrindo XP (timidamente claro), o mercado já discute a fusão entre XP, Scrum, FDD, Crystal, DSDM. Até a Microsoft tem métodos ágeis enquanto a academia consolida UPs como novidade.

A maioria sai da faculdade monoglota, com apenas o conhecimento específico de uma linguagem de programação, enquanto deveriam estudar princípios, estão estudando linguagem. Programação funcional até pode ser vista, talves raramente em uma cadeira de calculo, ou IA (com LISP) se der tempo, alguns confundem sentenças com paradigmas, tinha um professor que falava que por a linguagem ter sentença condicional como um "IF", ela não poderia ser considerada 100% Orientada a objetos, entre outras sandices bizarras. DSL? bah!

Conversando com um amigo dia desses lá na faculdade, entramos no assunto banco de dados, sem querer surgiu no meio da discussão sobre formas normais, para minha surpresa ele disse que não sabia do que eu estava falando, achei estranho porque o professor de banco de dados 1, cadeira responsável por esse conteúdo, é um excelente professor, Fernando Siqueira, e conhecendo ele eu sabia que não passaria ninguém sem ensinar formas normais. Depois esse meu amigo voltou e falou que deu uma "olhada" no livro e "lembrou". Ora, isso me causa apreensão, mesmo eu sabendo que o professor tem a competência sobre uma matéria e tenho certeza que a aplicou, porque um aluno simplesmente esquece o principal conteúdo de uma determinada matéria?

São mistérios, mas mistério mesmo é uma menina que se forma esse ano e não sabe ainda para que serve um banco de dados, mesmo evidentemente ter cursado todas as cadeiras de banco de dados. Isso sim merece estudo, tese, trabalhos científicos e tudo que nós pudessemos descobrir.

Livros

A minha escola real são os livros, tive e tenho alguns bons professores, uns poucos excelentes, mas os autores clássicos são os mestres dos meus mestres. Não procure livro específico, procure autor, e toda a cultura por volta desse autor.

Posso indicar alguns que são a base da carreira de qualquer desenvolvedor que se preze: Alan S. Koch, Alistair Cockburn, Bertrand Meyer, Craig Larman, Eric Evans, Joshua Kerievsky, Kent Beck, Martin Fowler, Rod Johnson, Ron Jeffries, Steve McConnell, Robert C. Martin, … isso só dando uma olhadela aqui na minha "biblioteca". Sei que esqueci nomes importantes, mas se você seguir essa lista, vai acabar caindo neles.

O pior disso tudo é que o pessoal fica empolgado com título aqui, o cara virou doutor já se acha semi-deus, são praticamente inacessíveis, é muito mais facil você falar com Martin Fowler do que falar com um Doutor brasileiro.

Então voce tem duas alternativas, estudar ou frequentar a faculdade, dá para conciliar as duas, mas a preferência será sempre para o estudo, ele que pagará o leite de cada dia, aliás… leite não que esse está matando ultimamente, e ei que pensei que era a cerveja 🙂

22 thoughts on “Estudar para que se eu já sei o que fazer

  1. Rafael Ponte

    Complicado mesmo.. hoje o que não falta é gente saindo de faculdades de Ciência da Computação ou afins sem aquele conhecimento “base” para entrar no mercado, e pior são os que já estão no mercado há um bom tempo com uma qualidade duvidosa e ninguém se toca!

    Enfim, no final das contas o mercado separa os bons dos duvidosos, mesmo que demore algum tempo :)) Mas não deixe de ter seu diploma, por pior que seja como você mesmo disse, abrirá algumas portas onde o mesmo nada mais é que uma chave.

    Excelente post Milfont.

  2. Rafael Carneiro

    Esse post foi tão bom que não tenho palavras para qualificá-lo e parabenizá-lo. Só tenho a dizer: “meus parabéns Milfont, continue escrevendo excelentes posts e fazendo com que a comunidade de T.I acorde para os avanços e mudanças do novo mundo”.

  3. Pingback: Rafael Carneiro » Blog Archive » Atenção: não faça mais nada antes de ler o post mencionado abaixo

  4. Emanoel Tadeu

    Livro é essencial. Muita coisa do que aprendi hoje foi lendo, não em sala de aula escutando o professor. Excelente post!

  5. Chico

    Ótimo post!

    Ao ler o título, logo pensei: “Lá vem mais um defensor da prática dizer que teoria é bobagem!”

    Felizmente, a cada linha você me provou ser exatamente o contrário. Parabéns!

    Já tive excelentes professores – geralmente aqueles detestados pela maioria – e tenho saudade deles. Educadores? Só conheci um em toda a minha vida …

    Existe uma zona de conforto perigosa em nossas salas de aula. De um lado, professores fingindo que ensinam. Do outro lado, alunos jurando que aprendem.

    Agora, o pior mesmo é a pose…

    Abraço,

  6. Handerson Frota

    Muito massa milfont, como sempre digo: “A faculdade é apenas um complemento, assim como uma certificação, mas nenhum desses diplomas vai garantir que você é bom no que faz ou tem conhecimento para fazê-lo.”

    Temos vários exemplos de “profissionais” que são formados e acreditem, estão lecionando, e não tem o mínimo de conhecimento, mas tem um diploma, isso é errado, putz é triste mesmo. Um já é professor de FGF é inacreditável e intragável.

    Parabêns Milfont.

    Abraços

  7. Mário Aragão

    é muito mais facil você falar com Martin Fowler do que falar com um Doutor brasileiro

    hahaha! Ótima! Consegue falar sério e ainda me fazer rir.

    É isso, disse tudo e eu preciso atualizar minha “biblioteca”.

    Abraço!

  8. Pingback: Rafael Ponte » Blog Archive » Uma pitada de verdade.. com Christiano Milfont

  9. Hebert Aquino

    Milfont, acho que você escreveu um excelente post, mas algumas coisas que você falou acho que são questões mutio complexa de serem resolvidas na nossa profissão. Vou te dar um exemplo bem claro, o que diferencia um bom aluno é se “ele aprendeu aquilo para a vida” e não para passar na cadeira de Banco de Dados porque ele queria era apenas se formar na faculdade e ter um diploma, mas ter diploma não significa ter emprego garantido e nem que você é melhor do que uma pessoa que não tenha diploma. A nossa profissão não classifica se uma pessoa está qualificada o suficiente para assumir um cargo como a OAB, acho que se a classe fosse unida e exitisse uma forma de regulamentar a profissão algumas dissiparidade podessem ser resolvidas.
    Espero que algumas dessas questões possam um dia ainda serem resolvidas.

    Mas no meu ponto de vista o diploma serve para uma pessoa não apenas ingressar no mercado de trabalho, mas muitas vezes realizar concurso público que é nada mais que um novo vestibular.

    Cara as vezes nem todos os professores estão correto do que estão falando e são donos da verdade, embora você quando é aluno está acreditando em tudo que ele está passando…

    Já conheci todos os tipos de mestres aqueles que mesmo errado lhe convence de quer está certo e até mesmo aqueles que você vê que é um charlatão e outros que dá prazer de assitir as suas aulas.

    Na minha opnião você acertou em todos os pontos, mas temos que ver que o mercado seleciona os aptos.

  10. Rafael de F. Ferreira

    Oi Christiano, eu concordo na maior parte do que você disse, mas tenho só duas contemporizações:

    “a linguagem ter sentença condicional como um “IF”, ela não poderia ser considerada 100% Orientada a objetos”
    Não que seja uma consideração particularmente relevante, mas isso até tem fundamento, sim. Você conhece Smalltalk? Veja como condições são implementadas no ambiente.

    Outra coisa é que a área de computação é muito ampla. Por exemplo, a maioria das referências que você citou vem do que o Fowler recentemente denominou de “escola OOPSLA de pensamento”. Se você pegar um pesquisador de alto nível na área de algoritmos para combinatória, p. ex., o tipo de trabalho que ele faz não tem absolutamente nada a ver com OO ou XP. Para ficar mais próximo do mercado, pense que as core competencies do Google (recuperação de informações e sistemas distribuídos) passam longe de requerer um bom entendimento de domain modeling.

    Eu digo isso pq eu tb fico frustrado com o que vejo na facul, mas entendo que aquele tipo de conhecimento é válido. Embora eu esteja ca#ando e andando para Programação Linear, faz algum sentido que isto seja ensinado, pois é uma área de pesquisa científica frutífera e, afinal, o nome do curso começa com “ciência”…

  11. Moacir

    Geralmente nas faculdades, eu acredito que seja em todas, os professores dão uma maior ênfase ao conhecimento acadêmico como pós-graduações, mestrados, doutorados, mas o que realmente dá “sustento” eles não incentivam, salário de professor é razoável, mas imagina o de um programador de uma grande empresa.
    Acho que é o melhor post que já li sobre professores, alunos e conhecimento. Isso é tudo que eu sempre quis falar, mas nunca encontrei palavras o suficiente para dizer.

  12. Paulo

    Simplesmente perfeito! Você escreveu o que a gente tá querendo dizer há anos. Obrigado !
    Tem alguém do MEC lendo este blog ? Tá na hora de tirar a poeira da universidade brasileira…

  13. @#$%¨&

    Fale pela sua faculdade. Estou no 3o (de 10 semestres) de eng computação cefet/ce e eu e minha turma, cerca de 20, conhece pelo menos a metade dos assuntos que vc citou. Claro, nem tudo devido apenas a contato com professores, afinal esta é uma da áreas do conhecimento mais abrangentes e esperar conhecer tudo em um curso de graduação é, no mínimo, ingenuidade.

    E se seus amigos, depois de uma disciplina de banco de dados, não conhece interpretar/entender para o que serve BD… ou não assistiu aula, ou não realizou os trabalhos, ou vive em outro mundo! Não acredito que isto seja culpa do curso/faculdade, mas incompetência dos alunos.

    BD por exemplo eu ainda não estudei nada diretamente na faculdade, mas participando de atividades com profs, já sei usar linguagem sql, desenvolver aplicativos java/c# relacionando tabelas, claro que ainda está um pouco longe de um conceito técnico formal, mas já sei usar e sei a complexidade teórica do assunto, apesar de ter somente uma noção da prática! =]

    Objetivo da faculdade não é lhe tonar um certificado em todas as linguagens do mundo. Ela lhe dar uma orientação, do que pricinpalmente é usado, quer apreder todas? Boa sorte! Acesso ao prof para orientar a quem tem interesse em ESPERCIALIZAR-SE em conhecedor de linguagens. Até pq, linguagem por linguagem… não se aprende linguagem.. aprende-se programar! Linguagem é sintaxe. Muda uma coisa ou outra.. paradigmas… conhecer programação estruturada e programação O.O. já meio caminho para se programar em quase tudo, a diferença depois disso será sintaxe. Vc, pelo bom conhecedor do assunto que parece querer mostrar ser, deve saber.

    Então muito cuidado. Onde vc estuda? Aposto que em faculdade pública. Nosso sistema educacional precisa de mudanças, mas com certeza mudanças mais urgentes na educação básica. Na universidade, inclusive a pública, se pode reclamar dos profs, ter contato com acadêmicos de outros lugares, principalmente quando o curso esta relacionando a TI… existem fórum, cursos, apostilas, google… quem quer aprender, aprende. Agora na educação básica, as crianças não tem acessos a estas facilidades.

    Se liga antes de falar besteira pro ai!

  14. cmilfont Post author

    Sério, dá preguiça de responder a alguém que escreve “ESPERCIALIZAR-SE” em caixa alta evidenciando sua própria ignorância.
    Conheço o CEFET-CE e sei que não é essas coisas lá. Outra coisa, deixe de mentir que você não conheçe metade do que foi escrito aqui.

  15. Fabrício Costa

    Eu acho que você foi infeliz em algumas colocações, o papel do curso de ciência da computação é de dar base teórica para entender os conceitos computacionais na qual são utilizados algumas tecnologias para tal fim. Se você fez ciência da computação deve saber que é completamente impossível a abordagem de todos esses assuntos que também acho importantes, saiba que além desses existem diversos que você não citou. Hoje temos a obrigação de fazer uma faculdade e além disso temos que mergulhar nos livros, isso se quisermos acompanhar as novidades. Que cursa o curso de CC sabe a importância e a mudança de mentalidade que ele nos tráz.

  16. Pingback: Adolfo Neto: Outros

  17. cléber dos santos

    Excelente post!

    “Fico triste que na minha faculdade possui uma boa grade com materias bem alinhadas para o curso, todavia é freiada drasticamente pela qualidade de ensino, que vão desde a coordenação do curso(pela sua falta de motivação – eventos…) a qualidade profissional dos professores”, sem falar nos livros obsoletos na biblioteca.

    É claro qua nao devemos culpar os outros, procurar formas de aprender é tão importante quanto ter uma boa faculdade, mas a parte que me toca foi que o curso de sistema de informação deu um salto no período em que o MEC deu uma visita para dar o conceito do curso, lembrei do JK nessa época, dos 50 anos em 5. Porém o MEC se foi o curso ganhou conceito B e retornou ao seu declínio, triste não?

    Não conto com a faculdade para a aceitação no mercado de trabalho, mas seria interessante se as faculdades criassem mecanismos de apredizagem coerentes com a realidade, algo que motivasse os alunos, ja que estamos estudando teoria e tals é importante sim, é o principal erro dos acadêmicos eles ficam no mundo universitário, quando percebem ja estão apresentando a monografia e olham para trás e perguntam: urfa!! apresentei a monografia e passei e agora? será se estou pronto? o que eu sei?

    A perguntamos: é culpa do aluno, da faculdade ou um poquinho dos dois?

  18. cL aUg

    Parabén cara … Gostei muito do post, e quanto a facul concordo com tudo que você disse. Bem, eu não faço faculdade, tenho apenas 16 anos, porém estudo pra caramba, compro um monte de livros, tenho a minha biblioteca …

    😀

  19. Eduardo

    Acho que o grande problema é a falta de propósito. Muitas pessoas entram na faculdade e acham que um diploma significa tudo para uma carreira de sucesso…

    Parabéns pelo post…

  20. 양반

    I savour, lead to I discovered just what I was having a look for.

    You’ve ended my four day long hunt! God Bless you man. Have a great day.
    Bye

Leave a Reply

Your email address will not be published. Required fields are marked *