You are hereBlogs / borfast's blog / A selecção natural da informática de hoje em dia...

A selecção natural da informática de hoje em dia...


By borfast - Posted on 30 October 2008

Há algo que me começa a afligir: a maioria dos estudantes de faculdade que se estão a formar actualmente não fazem ideia do que é programar. Pronto, já o disse!

Não é preciso serem pessoas com uma diferença de idades muito grande da minha, basta terem menos 5 ou 6 anos que eu e a diferença já é abismal.

Recentemente tenho tido a oportunidade de trabalhar com algumas dessas pessoas pouco mais novas que eu e fico abismado com a quantidade de conceitos base que essas pessoas não têm. Pior, quando lhes explico que deviam ter essas coisas em conta, irritam-se e chateiam-se porque acham que são picuinhices e manias de "cromos da informática"...

E se calhar o problema é esse mesmo. Se calhar estas pessoas não deviam estar num curso de informática porque não são "cromos" - nem o querem ser, porque ser "cromo" é considerada uma coisa má.

Sinceramente não entendo o que há de tão errado em ser-se "cromo" de informática. Um médico sabe o nome e a função de 206 ossos do corpo humano, compreende o funcionamento dos órgãos internos do nosso corpo, utiliza uma linguagem própria, entre muitas outras coisas "estranhas" - mas não lhe chamam "cromo", chamam-lhe "Sr. Doutor".

Se calhar isso tem que ver com o facto de muitos informáticos serem pequenos génios de cabeça mas terem fracas capacidades de socialização. Ou talvez seja por inveja da parte de quem lhes chama cromos, porque gostavam de ser capazes de compreender algo tão complexo quanto um computador. Um bocado assim como se chamam "meninos ricos" aos miúdos de 18 anos que andam com o Mercedes ou o BMW do pai, quando na verdade o que as pessoas que lhes chamam isso gostariam era de ter tido a mesma oportunidade.

Mas não tiveram. E seja porque motivo for, pelos vistos também não têm a mesma oportunidade relativamente aos computadores. Temos pena mas é assim mesmo: tal como nem toda a gente consegue ser médico, nem toda a gente consegue ser informático. Mas não é por isso que quem consegue é um "cromo".

Este é o ponto que provavelmente vai fazer com que me chamem mais nomes mas quanto mais rapidamente se aceitar que nem toda a gente é capaz de fazer o mesmo, mais rapidamente dormem descansados. Há pessoas que não são capazes de programar ou compreender como funciona um computador. E não é necessariamente por serem estúpidos ou mente-captos, podem simplesmente não ter o cérebro virado para aquele tipo de raciocínio; podem ser génios em matemática mas não ser capazes de compreender aritmética de apontadores ou os pormenores de uma sinapse. Não torna ninguém menos digno nem é nenhuma vergonha.

Posto isto, essas pessoas que não são capazes de lidar com computadore, ao continuarem o curso e insistirem numa carreira profissional na informática, só vão estar a contribuir para duas coisas: a sua própria infelicidade e a degradação da qualidade geral do mercado de trabalho da informática.

Esta é a parte que compete aos estudantes, a parte de compreender se estão onde devem estar. Por vezes não se apercebem do erro que estão a cometer mas sinceramente, a quem isso acontece, geralmente é porque não se preocupa muito em tentar perceber ou então tem os factos à frente (chumbar continuamente nas disciplinas de informática) e prefere ignorá-los. Por outro lado e para ser justo, essa inaptidão nem sempre é óbvia mas esse facto deve-se em grande parte à má preparação que se tem no ensino secundário e, mais importante ainda, aos primeiros anos de faculdade.

É que nesta dança de quem foi e quem não foi talhado para ser médico ou informático, há também uma parte mais importante que não compete aos estudantes mas sim às faculdades e estas não a estão a cumprir (as de informática, pelo menos).

A analogia que vou fazer não é a melhor, até porque tem que ver mais com memorização do que capacidade de raciocínio mas dá para perceber o que quero dizer. Tal como quem não consegue passar a Anatomia logo nos primeiros anos do curso de Medicina ser geralmente quem fica para trás no curso, num curso de informática quem costumava ficar para trás era geralmente o pessoal que não atinava com as disciplinas de Progração logo no primeiro ou segundo ano.

Isto separava à partida aqueles alunos que tinham aptidão para serem informáticos, daqueles que não a tinham. Quase como que uma selecção natural.

Mas tal como o Homem fez ao arranjar soluções para as desvantagens que eliminavam os indivíduos menos aptos a sobreviver, também as faculdades parecem estar a dar cabo da selecção natural no que toca a informáticos.

Quando eu fiz as primeiras disciplinas de programação, as disciplinas de arquitectura de sistemas de computadores, de sistemas de operação e outras do mesmo género, tínhamos mesmo de perceber o que ali se passava. Tínhamos que compreender como a informação circula do CPU para a RAM e vice-versa, tínhamos de passar pelo menos um semestre a programar em Assembly, tínhamos de perceber como funciona um sistema de ficheiros, tínhamos de perceber endereçamentos de memória... enfim, tínhamos de compreender muitas bases que hoje em dia é raro o aluno que passa a uma disciplina a compreendê-las correctamente.

Mas isso nem é o pior, porque desde que os conceitos sejam compreendidos de forma minimamente correcta e a ginástica mental tenha sido exercida, o aluno adquiriu a capacidade de raciocínio que lhe permitirá abordar e resolver certos problemas que de outra forma não iria conseguir.

O pior é que depois dessas cadeiras base, que pelos vistos hoje em dia já não são leccionadas como eram, os alunos nunca mais aplicam esses conceitos, porque, entre outras facilidades, passam a utilizar sempre "o Eclipse".

Digo "o Eclipse" porque pelos vistos muitos deles nem sequer percebem o que estão a fazer com aquilo. Há dias assisti a uma discussão de um aluno com um colega em que um deles não acreditava que a linguagem Java era independente do Eclipse...

E ao trabalhar com alguns destes alunos, vejo claramente que não têm a ginástica mental que é necessária de um bom programador. Não me considero um génio de programação mas por vezes escrevo código que é trivial para qualquer pessoa com a tal capacidade de raciocínio de que falei mas que esses outros alunos demoram 5 ou 10 minutos a compreender e por vezes até precisam que lhes explique o código passo a passo. Bolas, alguns deles não conseguem sequer utilizar apontadores, quanto mais outras técnicas e conceitos mais avançados!

Já agora, com isto tudo não estou a afirmar que Java é uma má linguagem de programação. Eu até gosto bastante de Java; só não acho que seja uma boa escolha para alunos novatos em programação, porque não exige deles o raciocínio e a ginástica mental que é necessária a um bom programador. Um atleta de culturismo pode treinar arduamente todos os dias, com o maior afinco mas se nunca pegar em pesos com mais massa que 5 Kg, nunca irá chegar longe. Por outro lado também poderá aperceber-se de que mesmo treinando há meses com 100 Kg, não consegue passar dali e compreende então que se calhar o seu corpo não lhe permite chegar mais longe naquele desporto. Por outro lado, quem sabe, se calhar pode vir a ser campeão mundial de atletismo!

Não sei porque é que as universidades o fazem mas aparentemente a tendência é neste sentido, de facilitar a vida aos alunos em deterimento de filtrar e formar bons informáticos.

Ou então sou eu que estou a ficar velho... :)

EDIT @ 30/10/2008 13:15

Um colega meu apontou-me estes dois excelentes (mas longos) artigos que põem um peso muito grande no que eu disse, pois foram ambos escritos por pessoas de nome na informática.

O primeiro, do Joel Spolsky, está em http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html. Um excerto interessante:

Heck, in 1900, Latin and Greek were required subjects in college, not because they served any purpose, but because they were sort of considered an obvious requirement for educated people. In some sense my argument is no different that the argument made by the pro-Latin people (all four of them). "[Latin] trains your mind. Trains your memory. Unraveling a Latin sentence is an excellent exercise in thought, a real intellectual puzzle, and a good introduction to logical thinking," writes Scott Barker. But I can't find a single university that requires Latin any more. Are pointers and recursion the Latin and Greek of Computer Science?

O outro, escrito por Robert B.K. Dewar e Edmond Schonberg, está em http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html.

E deixo ainda um excerto de um artigo que vi referenciado no Ajaxian. De http://svwebbuilder.wordpress.com/2008/10/20/html5-websocket-and-webjneering/:

I was at first overjoyed at the prospect of the World Wide Web’s new status as a real boy. But such feelings were just a precursor to the greatest technology-driven depression of my life. You see, as recently as twenty years ago the world was brimming with real programmers, who knew how to do such amazing things as write programs that conversed with far-away computers by using bsd sockets. We’ve traded those programmers, by and large, for JavaScript kiddies. Its not that the real programmers all died, retired, or gave up with programming; rather, every new programmer of the past decade is a bright-eyed 22 year old who thinks he’s the best thing since Google, what with his domination of rails (, java, or php) and javascript.

Penso que não é possível estares mais perto da verdade, quando o assunto é mesmo esse: a má qualidade de - e a ignorância desse mesmo facto da parte de - cromos formados em Informática. Quando metes o dedo n'A Ferida dessa maneira, não é difícil ver um lado exigente no teu argumento, no entanto penso também ser o lado correcto. É necessária boa formação.

E com licenciaturas a ensinar Java do 1º ao 3º ano não vamos lá. Confesso que conheci o Java na Faculdade com muitas más perspectivas mas após algum tornou-se numa ferramenta fantástica, uma quase weapon of choice não fosse a sua rapidez de execução. No entanto, apenas a consigo admirar porque tive conhecimento de outras linguagens tanto nos old days da LEI (em que aprendiamos Pascal, C++,...) como por curiosidade própria.

Penso que o problema está na vontade própria e no sentimento geral que os cromos deviam sentir em aprender informática. Não a necessidade de passar nos testes e exames, para fazer outros tantos no semestre seguinte. Não há interesse. E isso precisa de mudar se queremos formar informáticos decentes, capazes e dispostos a aprender.

João, penso que conseguiste resumir aí em poucas palavras uma ideia que andava aqui no meu subconsciente mas não tinha ainda passado o suficiente para o meu lado consciente para a conseguir pôr por palavras: o que motiva a maior parte deste pessoal a estudar e a "aprender" as coisas, é a necessidade de passar nos testes.

Não têm um verdadeiro interesse em aprender e isso vê-se quando dizem que estão fartos daquilo, e que querem é ir para casa ver televisão; quando respondem "deves é ser maluco" a sugestões de criar pequenos programas no seu tempo livre, para aprenderem melhor esta ou aquela linguagem.

Isso faz parte do tal lado dos alunos a que me referi, em que também têm que fazer um esforço por perceber se estão onde deviam estar. Mas penso que aí entramos para coisas bem mais complexas e talvez preocupantes do que apenas a informática, pois essa é a postura que me parece ser tomada pela esmagadora maioria do pessoal: estudar é feio, nem se sabe bem porquê mas sabe-se que não se quer fazer, sem nunca sequer dar hipótese de provar o prazer de compreender finalmente aquele assunto que há tanto nos confundia.

Se voltares cá a ler isto, sugiro que leias os artigos que adicionei no final do post. São interessantes ;)

Já conhecia o do Joel, pois leio o blog do Homem. O outro não conhecia mas é também bastante interessante. Rulas, e obrigado! :)

Boas!

Antes de mais, parabéns pelo texto! Neste momento ando a enviar CVs para todo o mundo e tenho ambições de começar a trabalhar ainda antes de Dezembro (que ingénuo que eu sou...), no entanto sempre que envio um CV e vejo os requisitos até tremo, tenho plena consciência que não estou minimamente preparado para o mundo de trabalho, fiz a licenciatura de Bolonha (LEI) e interrompi o Mestrado por achar que estava apenas a empatar tempo, não estava a aprender nada que fosse aplicar na vida real, apenas estava a conquistar um canudo para apresentar às empresas.

Considero-me como um gajo que aprende com uma relativa facilidade e de facto gosto de programar, mas que aprendi eu na faculdade relativamente a isso? Apenas consigo enumerar uma cadeira que de facto me fez trabalhar e pensar como um programador, AED, todas as outras trabalhei e pensei de acordo com o que o professor queria e não tinha muito por onde fugir, ou era como ele queria ou tentava para o ano seguinte.

Neste momento penso em realizar um mestrado, mas quero começar a trabalhar primeiro, quero realmente aprender a trabalhar e saber em que mestrados devo apostar e não em mestrados de Bolonha que neste momento estão feitos para darem títulos e não formações académicas.

Pegando nos teus últimos artigos..., o ensino de facto está a mudar, espera mais uns anos e os "não" cromos de hoje irão pensar de forma similar da próxima geração de "não" cromos.

Gil, penso que sim, que daqui por uns anos irão pensar o mesmo em relação ao pessoal mais novo.

Mas não deixa de ser preocupante. É que vejo cada vez menos gente a saber realmente o que está a fazer. Sabem agarrar no Eclipse e criar programitas em Java com umas janelinhas (e mesmo assim nem todos) mas perceber o que se está a passar é que não, dá muito trabalho...

Será que estamos destinados a deixar de ter software "leve" e eficiente daqui por uns anos, quando esta geração de pseudo-programadores estiver a ocupar o mercado de trabalho?

Olá!

A minha história académica corrobora (como qualquer outra, certamente) o teu texto. Entrei na Licenciatura em Informática em 1994, e fui alegremente recebido pelo Assembly, pelo Pascal e pelo C. Tempos áureos... Contudo, algum tempo depois, e por motivos pessoais, deixei a faculdade. Mas lembro-me perfeitamente das dificuldades a que algumas cadeiras nos sujeitavam.

Basicamente, sempre fui programador (profissionalmente). Trabalho numa grande empresa e, genericamente, penso que as minhas qualidades são reconhecidas. No passado ano voltei a estudar e estou a concluir a Licenciatura em Engenharia Informática (com as equivalências que me foram dadas, também já tenho metade do Mestrado feito).

...e sofri um choque terrível! Não consigo descrever todos os pormenores em poucas linhas, mas a exigência é de facto muito diferente. A trabalhar e a estudar, consegui facilmente concluir cadeiras que já tinha frequentado e eram muitíssimo complicadas, sempre com notas de 14 para cima. Nota que a minha faculdade não tem aulas à noite, pelo que apenas posso assistir a um reduzido número delas.

Concluindo: assisti a dois cenários completamente diferentes. E também posso afirmar que a culpa não é dos professores - pelo menos não totalmente. Muitos deles tentam "manter o nível" mas, por alguma razão, a certo ponto não o conseguem fazer. Quase todos já leccionavam há muitos anos atrás as mesmas cadeiras que leccionam hoje - alguns lembram-se de mim, devo ter deixado cá uma boa impressão...! :). O pior é que este problema não abrange só a engenharia de software, mas todas as áreas académicas.

A pouco e pouco, os cromos vão-se extinguindo...

P.S.: Parabéns pelo blog!

Obrigado pelo comentário, Rui.

Sim, é verdade que isto é um problema que afecta outras áreas que não a informática, tornando a situação um pouco pior.

O que me intriga é o que aí vem daqui por uns anos. É que das duas uma:

- as pessoas que têm realmente boa capacidade para trabalhar nas suas áreas vão estar empregadas, ao passo que as outras vão andar desempregadas por não terem conseguido encontrar a sua área de proficiência, ou;

- o país/planeta vai entrar num estado de caos porque já ninguém sabe fazer nada sem ser superficialmente.

Qualquer uma delas não me agrada, a segunda por motivos óbvios e a primeira porque apesar de, modéstia à parte, achar que serei das pessoas que se safa, não me será agradável ver alguns dos meus amigos passarem por dificuldades.

A ver vamos, como diz o cego...

Eu aposto numa terceira.

Regra geral, quem chefia sabe que necessita de um ou dois colaboradores que saibam aquilo que estão a fazer e assim safar o seu núcleo, que pelo meio conta com dez ou onze "sobrinhos". Infelizmente é frequente os que trabalham melhor não serem promovidos muitas vezes (para mais pormenores, ler Dilbert).

Há casos raros, e felizmente no meu departamento isso não acontece. Provavelmente porque as pessoas que estão à frente programaram durante muitos anos e ainda o fazem esporadicamente. Mas sei bem o que se passa noutros locais (e mais não digo!). O Mundo ainda gira à volta das aparências, sobretudo em grandes empresas.

Ou seja, vais sempre ter bons programadores no desemprego e maus programadores a desenvolver software.

Também é uma grande verdade. Bom ponto de vista :)

Post new comment

The content of this field is kept private and will not be shown publicly.