O Flávio escreveu: …este post, como o título sugere, é sobre a grade curricular de alguns cursos superiores (e alguns […]

8 comentários
Geral

Padrões Web e os Cursos Universitários

O Flávio escreveu:

…este post, como o título sugere, é sobre a grade curricular de alguns cursos superiores (e alguns técnicos) que encontro por aí nos sites das faculdades e universidades que ministram tais cursos.

Quando se olha a grade curricular destes cursos, voce vê de tudo lá, menos o que realmente importa prá começo de conversa: Os Padrões Web.

Bem, na curiosidade ampliada, você resolve dar uma olhada no código fonte do site das faculdades e universidades que oferecem tais cursos, e o que você encontra é um monte de tables, td, tr etc.

Enfim, a história é mais ao menos assim: “Se a sua casa é suja, você quer que eu te contrate pra limpar a minha?”

Bem colocado, embora nossa posição seja um pouco mais moderada. A coisa mais importante a se dizer é que o argumento de quem cria os cursos faz sentido. A faculdade é, ou ao menos deveria ser, algo pensado para valer para a vida inteira. Então, ao invés de se ensinar uma linguagem de programação, a faculdade deve ensinar a programar. Ou seja, ensinar a lógica, os conceitos, as técnicas, as características do bom trabalho de programação e todo aquele repertório de conhecimentos e soluções que um programador deve conhecer e que serão úteis em qualquer linguagem, mesmo daqui a dez anos.

Por isso, um dos fatos descritos pelo Flávio, de matérias chamadas “Programação para a Web” e “Banco de Dados”. Porque o que a proposta escrita da faculdade diz é que o curso deve apresentar os conceitos que serão úteis em qualquer linguagem, então tanto faz se a faculdade vai ensinar Python+Postgre, PHP+MySQL, Java+Oracle ou .NET+MSSQL Server porque os conceitos que o aluno aprender ali serão úteis em qualquer plataforma, em qualquer combinação de linguagem e banco de dados.

Os problemas, que levam alunos (e futuros alunos como o Flávio) a reclamar, incluem:

  1. Na maioria dos casos, o professor não leu, ou não entendeu, ou entendeu e não está afim de cumprir o que diz a proposta pedagógica da faculdade. O que acaba acontecendo é um curso de uma tecnologia específica, por um professor que é especialista naquela tecnologia e não nos conceitos que podem ser abstraídos para o desenvolvimento em qualquer linguagem.
  2. Na maioria dos casos, o aluno também não entendeu nada. E a culpa é da faculdade. A proposta de ensino não é detalhada, o currículo consiste apenas numa lista de matérias e não há nem mesmo uma descrição do que é cada uma e quais os objetivos de se estudar aquilo. O aluno apenas ouviu as pessoas, no serviço ou sabe-se lá onde, dizendo que ele deve aprender “Java”, ou “PHP”, ou “SQL”, ou … bem, você entendeu. O que ele quer é aprender determinada tecnologia, e a faculdade não explica porque acha que é melhor aprender os fundamentos, conceitos e técnicas.
  3. Não dá para dissociar tanto assim os conceitos das tecnologias. As ferramentas de programação funcional, a introspecção e a tipagem forte e dinâmica do Python levam a um jeito de programar e a um repertório de técnicas e soluções diferentes das de um programador Java. Evite o flamewar: veja bem, eu não disse que as soluções do Python são melhores que as do Java, ou que a linguagem é melhor do que Java, embora eu prefira trabalhar com Python. Disse apenas que são diferentes. O arroz-com-feijão, ou seja, a lógica de programação, os fundamentos da orientação a objetos e boa parte das boas práticas de desenvolvimento são úteis em qualquer linguagem. Mas quando as coisas vão chegando a um nível de abstração que se espera de alguém se preparando para programar profissionalmente, as soluções vão se tornando diferentes. Às vezes, radicalmente diferentes.
  4. Para algumas coisas, não há resposta certa. Veja, por exemplo, as discussões a respeito de Design Patterns. Ou tente pesquisar a web para escolher entre Unified Process ou eXtreme Programming, e em seguida leia o Getting Real para ver uma abordagem radicalmente diferente dos dois. Cada tecnologia e ferramenta é criada baseada em conceitos e idéias. Java foi criada para oferecer aos gerentes e arquitetos controle, para evitar que o programador faça besteira. Python e Ruby foram criados com um conceito diferente, oferecendo ao programador liberdade. Você pode fazer besteira se quiser. Mas também pode fazer coisas impossíveis em Java. Para saber qual é melhor para você, é preciso avaliar muita coisa, incluindo a cultura da empresa onde você trabalha. O problema é que as faculdades de maneira geral ensinam uma ou duas linguagens de programação e passam longe do resto, dando aos alunos uma visão unilateral. Quando você só conhece uma resposta, ela é sempre certa para você.
  5. A web é especial. As coisas que estamos fazendo na web são muito diferentes, em vários aspectos, de tudo o que foi feito até aqui em desenvolvimento de software. E a web é um conjunto de tecnologias, ou seja, se seu curso é sobre desenvolvimento de software, você certamente tem uma série de respostas certas para cada pergunta, mas quando você vai falar da web, em muitos assuntos, por enquanto há uma resposta certa. Por exemplo, não dá para falar de web sem falar de HTTP. Só existe uma web, e ela é feita com HTTP. Você pode falar dos conceitos de “redes mundiais distribuídas”, mas só existe uma Internet, então é melhor falar dela logo. Pode falar de “protocolos de rede para transferência de hipertexto”, mas só existe uma web, então a escolha certa ao falar de desenvolvimento web é a dobradinha HTTP sobre TCP/IP. Da mesma forma, não dá para falar de web sem falar de navegadores, de XML, HTML, XHTML, CSS e Javascript. E, desde o final do século passado, as respostas certas nessas tecnologias específicas são os padrões web.

Mas, em tecnologia, a maioria das faculdades está alguns anos atrás do resto do mundo, embora algumas poucas estejam alguns anos a frente de todos nós.

Jabá: o curso de Ruby on Rails daqui a duas semanas falar bastante de HTTP, tão importante, útil e desconhecido por tantos desenvolvedores. Vale a pena conhecer os detalhes do protocolo e descobrir o que você pode fazer com ele.

8 Responses to “Padrões Web e os Cursos Universitários”

  1. […] O Elcio postou um artigo muito bom cujo título é Padrões Web e os Cursos Universitários. […]

  2. Renato disse:

    Não estudo lá, mas eles estão tentando:

    http://www.feevale.br/home/

  3. Esse semestre tive a matéria de Web Design na faculdade onde estudo, e foi um desapontamento completo. Não por não ter sido, sequer, mencionado sobre padrões web ou outras coisas, mas sim por que, simplesmente, não foi ensinado nada. Foram aulas de Dreamweaver e Flash.

    Precisam rever as grades curriculares de alguns cursos e até mesmo o conteúdo das matérias em sí. Pelo menos comigo foi “brochante” e não me serviu de nada.

    Até

  4. André disse:

    …e cobram um absurdo para ensinar essas coisas e no final entregarem um diploma ridículo. Acredito que é cada vez melhor comparmos livros, acessarmos blogs e consultar outras fontes se quisermos realmente aprender.

  5. felipe disse:

    ano passado, 2006, em plena revolução, no sexto período da faculdade de design gráfico, eu aprendi a fazer frames e layers em html. estudo na puc-pr. como a matéria era dividida em duas, em uma delas uma professora falava de acessibilidade e usabilidade e citava jakob nielsen, na outra, a outra professora ensinava a gente a dividir a página em 3 maravilhosos quadros logo/menu/conteúdo e dava noções totalmente distorcidas de css. o que aquelas duas mulheres fizeram foi um desserviço pra quem pretende trabalhar com web mas não sabia nada do assunto. se eles construírem sites do jeito que aprenderam lá, não só não vão ganhar o emprego como vão ser ridicularizados.

  6. Erick Wilder disse:

    Não sei se concordam, mas quando a faculdade falha e já estamos dentro dela fazendo uma graduação, creio que é de nossa responsabilidade cobrar. Bater o pé mesmo e porque não, ser até chato. Creio que isso é uma coisa de interesse profissional de cada um e eu pelo menos não pretendo me acomodar quando o assunto chegar em Web, pular pra HTML e descambar para Dreamweaver + Flash.
    Começo meu curso este ano e realmente eu já tinha essa idéia na cabeça, de que as faculdades ensinam mais Dreamweaver e TABLE,TR, TD do que o que realmente importa: padrões web.
    Acho que quando o aluno bota pressão na faculdade ela (cedo ou tarde) acaba cedendo e modificando suas metodologias de ensino. É a lei de oferta/procura, vivemos numa sociedada capitalista e faculdade hoje em dia virou meio “carne de vaca”, onode eles só estão interessados mesmo em captação de alunos, então já que é mercado. Porque não ter postura de consumidor?

  7. Pedro Luis disse:

    …e o pior é que muitos mestres e doutores sabem perfeitamente da existência e da função da W3C…
    Do ponto de vista comercial, eu quero mais é que as faculdades continuem do mesmo jeito…
    Eheheheheh…

  8. Roberto disse:

    Eu discordo. Faculdade deve ensinar não uma linguagem, um programa em si e sim um método de pensar. Tudo bem que padrões web são bem vindos, mas creio que isso seja facilmente aprendido num curso extra-curricular. A faculdade em si não é obrigada a te ensinar algo desde o zero, pois não estamos mais na “escolinha da profa. raimundinha”, onde a profa. nos pegava pela mão e ia desenhando a letra pelo “caderno de caligrafia”. Entendo que, se queremos aprender algo do zero, devemos procurar um curso por fora e/ou aprendermos por nós mesmos. O fim da faculdade é ensinar a pensar.

Deixe uma resposta