Saltar para: Post [1], Comentários [2], Pesquisa e Arquivos [3]






Arquivo



Super programadores

por jonasnuts, em 06.01.08
Em conversa com um professor universitário, não interessa nem onde nem quando, ouvi uma das coisas que mais me chocaram, profissionalmente falando, nos últimos tempos. E olhem que eu oiço muito bullshit.

O senhor dizia que ao SAPO faltavam super programadores. Aquelas pessoas que, de acordo com a descrição do senhor, têm alguns problemas de relacionamento social, mas descobrem soluções e resolvem problemas. Pessoas para quem (e passo a citar) users are loosers.

Não me lembro exactamente o que é que disse para disfarçar a minha cara de repugnância, mas saí dali o mais rápido que pude.

Muitas vezes perguntam-me porque é que as empresas e o mundo académico não estão mais ligados, porque, de facto, faria sentido. Mas enquanto tivermos professores universitários a destilar este tipo de ensinamento, tentarei manter-me o mais longe possível dos seus alunos.

Um programador, e, já agora, qualquer pessoa que trabalhe num projecto, tem de pensar nos utilizadores do serviço em que está a trabalhar com respeito. Se vem da faculdade a julgar que é superior aos utilizadores, pela parte que me toca vai direitinho tirar fotocópias, que não tenho outro uso para ele.

Nós somos 6, na equipa dos Blogs. Tudo pessoas normais. Bom, estou lá eu, mas para o efeito, considerem-me normal. Ninguém tem problemas sociais, toda a gente fala normalmente, ninguém tem grandes pancadas (novamente neste caso, para o efeito, considerem-me incluída). O facto de sermos normais, permite-nos compreender o utilizador. Como é que um gajo que não percebe os utilizadores lhes vai resolver os problemas?

Eu tinha uma sugestão a fazer ao tal professor, no final do curso, dê aos seus alunos uns formulários de candidatura a um qualquer centro de atendimento telefónico (call centre). É um estágio de desintoxicação que lhes será muito útil.

Autoria e outros dados (tags, etc)



14 comentários

Sem imagem de perfil

De Manuel Padilha a 06.01.2008 às 02:08

"Como é que um gajo que não percebe os utilizadores lhes vai resolver os problemas?"

Nem tudo na vida de um programador é resolver problemas de utilizadores. Nos sistemas e aplicações mais complexos há enormes porções de código que estão completamente desligadas da interface com o utilizador. Normalmente correspondem a algoritmos complexos, processamentos em série, etc.
É frequente que as pessoas que melhor resolvem esse tipo de problemas sejam mais introspectivas e menos sociáveis, o que - na medida em que aumenta a sua concentração - os favorece no tipo de trabalho que têm. A designação de super programadores é infeliz, porque não são melhores nem piores do que os programadores "normais". São apenas diferentes, melhores a resolver determinado tipo de problemas, e seguramente piores a "aturar" utilizadores.

Há espaço e mérito para todos.
Imagem de perfil

De jonasnuts a 06.01.2008 às 02:28

Na minha equipa TODOS "aturam" utilizadores. Mesmo aqueles que têm de desenvolver as funcionalidades e fazer lá essa coisa complicada das enormes quantidades de código que estão completamente desligadas da interface com o utilizador.

E todos têm voto na matéria.

Qualquer programador que seja orientado para pensar "users are loosers" (e acreditar nisso) nunca poderá ser um bom programador.
Sem imagem de perfil

De Manuel Padilha a 06.01.2008 às 03:10

Não me parece que os blogs do SAPO sejam uma amostra representativa da comunidade de programadores, por isso não me custa acreditar que todos tenham que "aturar" utilizadores (e se coloquei entre aspas é precisamente para não levar à letra), nem que todos sejam óptimos a fazê-lo.

Há vários exemplos (alguns até famosos, Richard Stallman, por exemplo) de programadores que desprezam a opinião do utilizador final e, ainda assim, são excelentes programadores. Como é que isto é possível? Simples: o código que produzem não vai ser visível para utilizadores finais. Vai ser usado por outros programas, outros sistemas, que por sua vez vão ser usados por outros programas ainda. Só várias camadas depois é que surge o utilizador.

E toda a gente sabe que uma boa interface para um utilizador é, frequentemente, uma péssima interface para um programa.

E continuo a achar que o juízo de valor (bom/mau programador) é despropositado.
Imagem de perfil

De jonasnuts a 06.01.2008 às 13:51

Ok, então eu reformulo :)
Um desses "super programadores" não teria lugar na minha equipa, mesmo que fosse muito bom, tecnicamente falando :)

Ah, a informação de que Richard Stallman é um desses casos, pode ser a explicação para o facto de eu ter embirrado solenemente com o senhor ainda antes dele ter aberto a boca :)
Sem imagem de perfil

De Miguel a 06.01.2008 às 02:33

Eu penso que nem todos os programadores necessitam de estar atentos aos utilizadores. Os que trabalham num mundo mais prático, orientado ao serviço, é necessário ter em atenção os utilizadores.
Num mundo de trabalho onde Deus é Donald Knuth, há espaço para estes programadores vingarem: menos sociais e dedicam-se a um tipo de trabalho que a maioria já não pensa existir.
Imagem de perfil

De jfd a 06.01.2008 às 13:09

Jonas, os Profs falam a caravana passa ;)
Não os confundas com os alunos:)
Sem imagem de perfil

De jsilas a 06.01.2008 às 14:05

A sociedade é feita de pessoas normais e super programadores, esse professor, devia estar a ser irónico com certeza ;)
Imagem de perfil

De pedrocs a 06.01.2008 às 16:31

A tecnologia é um circo e os programadores malabaristas.

Uns fazem truques com 4 bolas, outros equilibram ursos montados em monociclos na ponta do nariz.

Mas quem é que ainda tem pachorra para ir ao circo?
Imagem de perfil

De AnaD a 06.01.2008 às 18:41

Resisto ....

Não resisto ...

Resisto ....

Não resisto ...

Resisto ....

Não resisto ...

... E pergunto eu, são eles "super-programadores" porque usam as cuecas por cima das calças????
Sem imagem de perfil

De Pedro Santos a 06.01.2008 às 20:15

Eu como programador muitas vezes estou alocado em equipas em que a componente social não é a melhor. Isso faz muita diferença. sabe muito bem tar numa equipa porreira onde de vez em quando se tira uma pausa para estar na galhofa.

Agora, eu já andei por não sei quantas entrevistas, e em nenhuma os entrevistadores ligaram ao factor "social", apenas se liga ao factor técnico. Sem factor social não há espírito de equipa, e sem espírito de equipa, as coisas não funcionam tão bem.
Imagem de perfil

De jonasnuts a 06.01.2008 às 20:25

Normalmente quem contrata técnicos, são técnicos. Na equipa dos Blogs havia, inicialmente, vários programadores. Justificava-se a quantidade, porque estávamos a desenvolver a plataforma, para lançar. Com o lançamento, as necessidades de recursos humanos com competências técnicas diminuiu. Ficaram os melhores, quer em competências técnicas que em competências sociais.

Quando entrevistámos uma pessoa para integrar a equipa dos Blogs (e sim, foi toda a equipa dos Blogs a entrevistar os vários candidatos), a boa disposição foi um dos aspectos referidos.

Como em tudo, uma entrevista não resolve. Pode ficar-se com uma ideia geral, mas só no dia-a-dia é que se vêem quer as competências técnicas quer as competências sociais. Até agora, na equipa dos Blogs, temos tido uma sorte do caraças :)
Sem imagem de perfil

De Crisálida a 06.01.2008 às 20:38

Se eu fosse chefa da Microsoft, eu colocava o programador que fez o IE6 e 7 para tirar fotocópia. Ele deve odiar os utilizadores desses programas ou deve ser um sabotador da concorrência infiltrado por lá. E ele não deve gostar de CSS.

Quanto ao Sapo, "se mexer estraga". :-))

*Lu, à mais de duas horas tentanto tirar uma linha de 10px horrível do template dela, que só aparece no IE6, que é o navegador mais usado por suas visitas. E o IE7 não mostra falhas que os outros mostram...*
Imagem de perfil

De anikin a 07.01.2008 às 00:05

É a segunda vez que falas deste assunto (a outra foi relativamente a um episódio passado no Codebits).

O que eu acho é que esse professor é parvo e tu alinhas com ele ao aceitar como verdadeira a definição dele de "superprogramador" - um termo que nem me agrada.

De facto, a programação é das actividades técnicas onde existem maiores diferenças de produtividade entre os melhores técnicos e os medianos. Muitos textos e livros falam em diferenças de produtividade de cerca de 10 vezes, como por exemplo:

* O "Code Complete" - http://en.wikipedia.org/wiki/Code_Complete

* "The Mythical Man-Month" - http://en.wikipedia.org/wiki/The_Mythical_Man-Month

* Ou o mais conhecido Joel on Software - http://www.joelonsoftware.com/articles/HighNotes.html

Nenhum destes textos refere que esse tipo de programador tem de ser uma perfeita besta, em termos sociais.

E de facto não tem.

Existem, no entanto, uma série de factores que explicam essa tendência. É conhecido que muitos indivíduos intelectualmente dotados têm dificuldades de sociabilização durante o estágio crítico da adolescência como se pode ler aqui:

* http://en.wikipedia.org/wiki/Intellectual_giftedness

(Nota que não se fala de génios mas apenas de pessoas algo acima da média.)


Para agravar a coisa:

* A programação é (ou pode ser) uma actividade solitária, o que não ajuda nada a contrariar deficiências de sociabilização;

* Os bons programadores são "pensadores visuais", possuindo um tipo de raciocínio em que as possíveis soluções para um problema são encontradas explorando diversos caminhos em paralelo de uma forma aparentemente (até para o próprio) intuitiva. Visuais porque muito do pensamento (a sua representação interior) é "geométrico", em vez de verbal. Infelizmente este tipo de raciocínio tem um custo: embora possam escrever bem, os "pensadores visuais" tendem a ter dificuldades na expressão verbal.

A dificuldade de expressão verbal vem do tipo de raciocínio "não linear". O discurso é unidimensional/linear ao contrário enquanto o "pensamento visual" tem uma representação interna multi-dimensional/geométrica.

As pessoas que pensam desta forma - especialmente quando exploram um assunto em voz alta - tendem a alternar rapidamente o discurso entre vários aspectos ou tópicos associados (por vezes estranhamente) ao assunto inicial fazendo "parentesis" e mais "parentesis" antes de regressar (ou não) ao assunto inicial, e deixando o interlocutor completamente perdido ou baralhado.

Muitos tornam-se indivíduos bastante contidos/calados, para evitar as más reacções.

Os mais "normais" (auto?) educam-se (como possivelmente o teu cara metade) fazendo, por exemplo, pausas longas q.b. antes de responder a uma pergunta (ou desenvolver um assunto) complicada, o que lhes permite encontrar a melhor resposta "em paralelo" (mas em silêncio) e começar a serializar a resposta e as suas razões para o formato linear do discurso verbal sem baralhar ninguém.

OU SEJA:
Existem tipicamente diversos factores nos bons programadores que dificultam a suas capacidades sociais, MAS esses factores são um obstáculo a ultrapassar e não um impedimento.


Esse professor de que falas parece ser um péssimo educador, ao encorajar um tipo de atitude tão limitativo para a actividade profissional futura dos seus alunos. A mesma actividade para a qual ele os devia preparar.

Em geral, fora do meio académico a tolerância para esse tipo de atitude é bem mais baixa. A todos nos pagam salário porque existem pessoas que utilizam os nossos serviços/produtos.

Mas não aconselho nada a tua solução de colocar os "meninos" num "call center"/helpdesk como forma de os reeducar. São frequentemente centros onde se cultiva o mantra do "users are loosers", até porque apanham frequentemente com os maiores loosers de entre os users.

Pois, não é apenas entre os "superprogramadores" que se encontram profissionais que não entendem a finalidade do seu trabalho, há simplesmente alguns que disfarçam melhor do que outros.

O local certo seria mesmo o ensino superior, onde já estão a ficar para trás as crises da adolescência e o ensino se especializa para uma determinada actividade profissional.

Depois disso, é a vida dura "cá fora" e, nas empresas, o tipo de resposta a problemas de atitude pode ser muito mais "intolerante".
Imagem de perfil

De anikin a 07.01.2008 às 00:05

É a segunda vez que falas deste assunto (a outra foi relativamente a um episódio passado no Codebits).

O que eu acho é que esse professor é parvo e tu alinhas com ele ao aceitar como verdadeira a definição dele de "superprogramador" - um termo que nem me agrada.

De facto, a programação é das actividades técnicas onde existem maiores diferenças de produtividade entre os melhores técnicos e os medianos. Muitos textos e livros falam em diferenças de produtividade de cerca de 10 vezes, como por exemplo:

* O "Code Complete" - http://en.wikipedia.org/wiki/Code_Complete

* "The Mythical Man-Month" - http://en.wikipedia.org/wiki/The_Mythical_Man-Month

* Ou o mais conhecido Joel on Software - http://www.joelonsoftware.com/articles/HighNotes.html

Nenhum destes textos refere que esse tipo de programador tem de ser uma perfeita besta, em termos sociais.

E de facto não tem.

Existem, no entanto, uma série de factores que explicam essa tendência. É conhecido que muitos indivíduos intelectualmente dotados têm dificuldades de sociabilização durante o estágio crítico da adolescência como se pode ler aqui:

* http://en.wikipedia.org/wiki/Intellectual_giftedness

(Nota que não se fala de génios mas apenas de pessoas algo acima da média.)


Para agravar a coisa:

* A programação é (ou pode ser) uma actividade solitária, o que não ajuda nada a contrariar deficiências de sociabilização;

* Os bons programadores são "pensadores visuais", possuindo um tipo de raciocínio em que as possíveis soluções para um problema são encontradas explorando diversos caminhos em paralelo de uma forma aparentemente (até para o próprio) intuitiva. Visuais porque muito do pensamento (a sua representação interior) é "geométrico", em vez de verbal. Infelizmente este tipo de raciocínio tem um custo: embora possam escrever bem, os "pensadores visuais" tendem a ter dificuldades na expressão verbal.

A dificuldade de expressão verbal vem do tipo de raciocínio "não linear". O discurso é unidimensional/linear ao contrário enquanto o "pensamento visual" tem uma representação interna multi-dimensional/geométrica.

As pessoas que pensam desta forma - especialmente quando exploram um assunto em voz alta - tendem a alternar rapidamente o discurso entre vários aspectos ou tópicos associados (por vezes estranhamente) ao assunto inicial fazendo "parentesis" e mais "parentesis" antes de regressar (ou não) ao assunto inicial, e deixando o interlocutor completamente perdido ou baralhado.

Muitos tornam-se indivíduos bastante contidos/calados, para evitar as más reacções.

Os mais "normais" (auto?) educam-se (como possivelmente o teu cara metade) fazendo, por exemplo, pausas longas q.b. antes de responder a uma pergunta (ou desenvolver um assunto) complicada, o que lhes permite encontrar a melhor resposta "em paralelo" (mas em silêncio) e começar a serializar a resposta e as suas razões para o formato linear do discurso verbal sem baralhar ninguém.

OU SEJA:
Existem tipicamente diversos factores nos bons programadores que dificultam a suas capacidades sociais, MAS esses factores são um obstáculo a ultrapassar e não um impedimento.


Esse professor de que falas parece ser um péssimo educador, ao encorajar um tipo de atitude tão limitativo para a actividade profissional futura dos seus alunos. A mesma actividade para a qual ele os devia preparar.

Em geral, fora do meio académico a tolerância para esse tipo de atitude é bem mais baixa. A todos nos pagam salário porque existem pessoas que utilizam os nossos serviços/produtos.

Mas não aconselho nada a tua solução de colocar os "meninos" num "call center"/helpdesk como forma de os reeducar. São frequentemente centros onde se cultiva o mantra do "users are loosers", até porque apanham frequentemente com os maiores loosers de entre os users.

Pois, não é apenas entre os "superprogramadores" que se encontram profissionais que não entendem a finalidade do seu trabalho, há simplesmente alguns que disfarçam melhor do que outros.

O local certo seria mesmo o ensino superior, onde já estão a ficar para trás as crises da adolescência e o ensino se especializa para uma determinada actividade profissional.

Depois disso, é a vida dura "cá fora" e, nas empresas, o tipo de resposta a problemas de atitude pode ser muito mais "intolerante".

Comentar post






Arquivo