Estou lendo este livro maravilhoso chamado "Codificadores em ação: reflexões sobre o ofício da programação", de Peter Seibel, e estou em parte em que a conversa é com Joshua Bloch e achei essa resposta que é um ponto importante para um programador. O parágrafo é mais ou menos assim.
Existe esse problema, ou seja, a programação é uma meritocracia intelectual e geralmente essas pessoas são as pessoas mais inteligentes da organização; portanto, eles acham que devem poder tomar todas as decisões. Mas apenas o fato de serem as pessoas mais inteligentes da organização não significa que devam tomar todas as decisões, porque a inteligência não é uma quantidade escalar; é uma quantidade vetorial.
Aqui, na última frase, não consigo entender o que ele está tentando compartilhar. Alguém pode explicar um pouco mais a fundo o que ele quer dizer com quantidade vetorial, possivelmente tentando apresentar o mesmo insight.
Mais abaixo, entendo que ele não está assumindo uma organização em que pessoas não técnicas (às vezes sem noção) podem ser gerentes das pessoas técnicas por algum motivo, para que possam dedicar mais tempo a escrever bem os e-mails, porque o próximo declaração após o parágrafo acima foi.
E se você não tem empatia ou inteligência emocional, não deve criar APIs, GUIs ou idiomas.
Entendo que ele está dizendo que, em engenharia de software, os programadores devem saber como os usuários verão seu produto e o design para eles.
Eu senti o parágrafo acima foi muito interessante.
fonte
Respostas:
Um vetor tem uma magnitude e uma direção. Ele está dizendo que você não pode descrever a inteligência apenas pela sua magnitude. Você também deve saber a direção em que a inteligência está apontando. Einstein disse:
Bloch está dizendo não suponha que o melhor nadador da sua organização seja tão bom em escalar árvores.
fonte
Não posso falar pelo autor, mas eu o leria como uma analogia ao fato de que não há uma única dimensão para a inteligência prática como programador.
Outra maneira de colocar isso pode ser que algumas pessoas são impressionantes ao lidar com pessoas, outras são incríveis ao lidar com problemas difíceis da ciência da computação e algumas pessoas são incríveis ao escrever códigos bem projetados.
Nenhum deles é "mais inteligente" que o outro, eles são igualmente inteligentes e igualmente hábeis em coisas diferentes - mas desigualmente hábeis nas mesmas coisas.
Eu li isso como dizendo que, se você não tem as habilidades necessárias para entender como os usuários da ferramenta funcionam, como eles se sentem, como funcionam, então você não deve projetar a interface com a qual trabalham. (Que inclui a API, para valores de "usuários" == "programadores")
Em outras palavras: só porque você é incrível em uma coisa, não assuma que você é incrível em tudo.
fonte