Do corpo inteiro do artigo de Steve Yegge,
Os candidatos devem saber o que são bits e bytes. Eles devem ser capazes de contar em binário; por exemplo, eles devem ser capazes de dizer o que é 2 ^ 5 ou 2 ^ 10, em decimal. Eles não devem olhar fixamente para você quando você perguntar com 2 ^ 16 é. É um número especial. Eles deveriam saber disso.
Fui expulso da parte que você citou na pergunta; parecia que um candidato deveria ser capaz de descrever sua importância, mas, no contexto, ele está dizendo que os candidatos devem saber, de cabeça para baixo, qual é a conversão decimal de 2 16 .
O significado disso é que, uma vez que nós, humanos, ainda usamos decimal para contagem, especialmente em nossas cabeças (na maioria das circunstâncias), precisamos conhecer as capacidades aproximadas dos blocos de bytes comuns que usamos para armazenamento, memória ou até codificação de caracteres. Como um byte tem 8 bits, os mais comuns são 8, 16, 24, 32 e 64.
No momento, eu diria que 2 32 é a capacidade mais comum com a qual um desenvolvedor lida. Desconfio de desenvolvedores que não sabem que 2 32 é de aproximadamente 4 bilhões (valor máximo de ~ 2 bilhões se assinado), pois significa que eles nunca se preocuparam em descobrir aproximadamente quantos registros podem ser armazenados em seus bancos de dados que use s de 32 bits int
para chaves primárias ou quando o código antigo usando int
s de 32 bits para IDs, datas etc. precisará ser refatorado para 64 bits. 1 1
2 16 é a capacidade total do Java short
. (Número total entre -2 15 e 2 15 -1)
Um desenvolvedor deve saber de cor o que é 8 bits. Entre os muitos usos comuns, está a codificação de caracteres ASCII.
Eu não esperaria que um programador conhecesse 2 14 ou 2 18 , mas provavelmente esperaria que eles conhecessem 2 16, pois é um número muito comum e um número curto o suficiente (65536) para lembrar facilmente o número inteiro.
1: Se você navegar nas tabelas de classificação de Call of Duty: MW2 ou iPhone Game Center, verá frequentemente trapaceiros no topo com altos valores de pontuação de 2.147.483.647, que é 2 31 -1, o valor máximo de um número 2 32 assinado .