Programadores, estudem, pesquisem!

Vou voltar a bater numa tecla que já bati há algum tempo: programador que evita conhecer a ferramenta que tem em mãos.

Eu sabia que essa era uma prática comum, mas tenho visto cada vez mais casos como esses. Um exemplo prático interessante, em Java (acontece o mesmo em algumas outras linguagens):

public static void main(String[] args) {
    int a = 14;
    int b = 014;

    if (a == b) {
        System.out.println("São iguais");
    } else if (a > b) {
        System.out.println("a é maior que b");
    } else {
        System.out.println("a é menor que b");
    }
}

Simples, não? A questão é: o que vai aparecer na tela quando esse programa for executado?

Enquanto pensa, vou passar o fundo histórico desse exempo. Um programador gostava de deixar o seu código muito bem identado e alinhado. Acho isso muito bom. Porém, ao criar uma lista de constantes, com poucos valores, sendo um deles com três dígitos e os demais com dois, ele acabou fazendo o seguinte:

VALOR1 = 015;
VALOR2 = 061;
VALOR3 = 122;

Quando foi fazer uma comparação, ele percebeu que tinha algo errado. Ele pesquisou e descobriu o que aconteceu e substituiu os zeros iniciais por espaços.

Este é o ponto chave desse post. Eu já não sei quantas noites eu também perdi tentando entender o que deu errado em determinado programa.

Normalemente a solução imediata para o problema aparece rápido (como no caso das constantes com zero acima, basta remover o zero e pronto). Mas o que me desanima nessa área é que boa parte dos profissionais se limita a achar que basta funcionar e o resto que se dane. Não se preocupam em entender o que acontece e acabam sendo bastante limitados.

Muitas vezes demontram total ignorância com relação à ferramenta que usam. Gosto de perguntar: “Por que você fez isso?”. Escolha uma das respostas abaixo:

  1. Ah! Não sei. Não deu erro assim.
  2. Eu estava fazendo do jeito que você me falou, mas deu uns erros e eu resolvi fazendo assim. Agora está funcionando. (A parte boa neste aqui é perguntar pro figura o que estava dando errado).
  3. Cliquei no “Quick Fix” e funcionou. Agora só estou com este outro probleminha aqui.
  4. Peguei esse exemplo na net. É bom, mas está um pouco difícil de adaptar pro nosso programa.

E por aí vai.

Não tem coisa mais irritante do que dar suporte para isso. Usuário não tem obrigação de conhecer o funcionamento interno do sistema, mas o programador? O cara que diz que manda na máquina?

A propósito, se você ainda não se deparou com o problema dos números iniciados em zero em linguagens como Java ou C/C++, esta é uma boa oportunidade de pesquisar um pouco e entender por que a resposta do programa será: “a é maior que b”.

Uma resposta

Deixe uma resposta