Recentemente cheguei a uma triste conclusão: boa parte dos programadores com os quais lido não sabe ler, o que me tranquiliza com relação ao desabafo que farei neste e-mail (afinal de contas, não será lido).
No meu dia a dia, é muito comum responder a uma média de 5 a 10 e-mails relativos a dúvidas de programação (em sua maior parte, Groovy/Grails e Java em geral). Destes e-mails que respondo, em aproximadamente 60% dos casos, envio um artigo relacionado para complementar a minha resposta ou que, simplesmente, já contém a solução para o problema/dúvida.
E é exatamente ai que a coisa fica interessante: quando envio um e-mail contendo um artigo em inglês, há dois comportamentos distintos (claro, há excessões (e significativas)): ou o remetente me envia uma dúvida que já se encontra elucidada no artigo em questão ou simplesmente me envia a dúvida novamente, porém relativa a algum código presente no artigo (a pessoa só leu o código fonte).
Se o artigo não possui código algum, a dúvida inicial normalmente volta em sua forma original, expondo assim que o artigo sequer foi lido. Ao indagar estas pessoas do porquê (de uma maneira sutil, como “uai, você não leu isto no artigo?”, é muito comum receber a resposta: “sim, mas estava em inglês”.
E é neste ponto que o bicho pega. Se você trabalha com desenvolvimento, e não sabe inglês, você é analfabeto. Isto porque infelizmente, 90% do (bom) conteúdo produzido para a nossa área ESTÁ em inglês. Isto quer dizer que não há conteúdo de qualidade em português? Claro que não! Muito pelo contrário, a DevMedia e a Editora Mundo tem feito um trabalho maravilhoso neste aspecto, porém, por mais que se esforcem neste sentido, não mudarão o fato de que a maior parte da produção intelectual AINDA é produzida em inglês.
Quando o artigo é escrito em português, também observo um comportamento muito interessante: se o artigo contém código fonte, a partir dos e-mails que recebo em resposta, fica nítido que o sujeito só leu o código fonte, ignorando completamente o texto que o envolve. E ai recebo respostas maravilhosas: “o código que você me passou naquele artigo não funciona”.
Percebe-se neste caso um triste comportamento: há preguiça de se ler algo que não seja código Java/C/Groovy/Pascal/etc. Um argumento que escuto normalmente é “eu não tenho tempo”. Mas por trás dos panos, o que percebe-se é o famoso comportamento do “siga o exemplo”.
Entra o “usuário avançado”
Acredito que se trate, em nosso caso, de um problema grave de formação cuja raiz se encontre no usuário avançado: aquele sujeito que vai um pouco além do Windows/Office básico, e que inicia sua “carreira” escrevendo algumas macros e arquivos em lote.
Infelizmente, boa parte dos “profissionais” presentes no mercado atualmente não passam de usuários avançados. Pergunte-lhes o que é uma árvore binária e receberá um olhar interrogativo (sério: faça a experiência). Para este tipo de profissional, curso superior se trata de um luxo desnecessário, o que é facilmente compreensível levan
do em consideração que 99% dos trabalhos realizados por estas pessoas consiste em produzir formulários que alimentem bancos de dados e, em seguida, exponham estes dados na tela.
Realmente, para este tipo de trabalho, conhecimento de algoritmos é quase desnecessário. Afinal de contas, temos ai o Access que produz formulários automaticamente, ou mesmo o Visual Basic e Delphi, que possibilitam a criação de aplicações apenas arrastando componentes e relacionando-os com tabelas e campos presentes em um banco de dados.
(nada contra Visual Basic ou Delphi (minto: tenho alguma coisa contra). Sei que vão além da “programação orientada a mouse”, porém é inegável que em 90% das vezes são usados desta maneira)
E, pior ainda: aqueles que se esforçam em crescer na profissão, e trabalham com ambiente visual de desenvolvimento, ao comprarem algum livro nas livrarias, 95% das vezes topam com livros que apenas ensinam a arrastar e soltar componentes. São raríssimos os livros para estes ambientes de desenvolvimento que realmente cheguem a descrever de maneira decente como funciona a linguagem por trás dos mesmos.
É quando a bomba explode: invariavelmente chega um dia em que estes “programadores” cometerão erros graves, capazes de gerar prejuízos reais a seus clientes. Neste momento, toda uma classe é desmoralizada: a dos desenvolvedores.
Sim, porque para o cliente, não há distinção entre um usuário avançado e um desenvolvedor. Se um usuário avançado se apresenta como desenvolvedor, a partir daquele momento todos serão nivelados para o cliente. E, pior que isto: como este “usuário avançado” considera fácil o que está produzindo, acaba por minar o mercado cobrando preços baixíssimos pelo seu produto, tornando “caro” qualquer serviço prestado por um desenvolvedor de verdade.
Sendo assim, criei um pequeno checklist para se identificar este tipo de profissional:
- Conhece algum algoritmo básico de ordenação ou busca?
- E estruturas de dados? Quais além da matriz você conhece?
- Já trabalhou em algum ambiente de desenvolvimento não visual?
- Quais os outros sistemas operacionais além do Windows você já trabalhou?
- Consegue imaginar uma aplicação que não utilize um banco de dados?
- Uma aplicação sem interface gráfica é possível? Como seria? (este tipo de desenvolvedor não consegue sequer SONHAR em uma aplicação sem janelas)
- E o mais cruel de todos: observe que o sujeito simplesmente não consegue trabalhar em NENHUM outro ambiente de desenvolvimento que não seja o visual NO QUAL aprendeu a programar.
Caso o sujeito em questão se encaixe no perfil descrito acima, escute meu conselho: CORRA!
Deixe uma resposta