Chad Fowler - O Programador Apaixonado: Construindo uma carreira notável em desenvolvimento de software стр 12.

Шрифт
Фон

hierarquias, não é a relutância que impede as pessoas de fazê-lo. É a capacidade.

Programadores nerds não podem liderar, e os líderes e gerentes não podem escrever código. É raro encontrar alguém seja bom nos dois.

Suas habilidades transcendem tecnologias.

Outra falha imperdoável é encontrada quando falamos de plataformas e sistemas

operacionais. Ser um cara UNIX que se recusa a trabalhar com Windows é cada vez

mais inviável. O mesmo vale para .NET vs J2EE ou quaisquer outras plataformas de infraestrutura. O tempo vai exigir que você seja neutro com relação à plataforma no seu ambiente de trabalho. Todos nós temos nossas preferências, mas você vai

30

Casa do Código

Capítulo 7. Seja generalista

ter que deixar seus ideais em casa. Domine um e fique bom no outro. Suas habili-

dades devem transcender a tecnologia e plataforma. Ela é apenas uma ferramenta.

Se queremos alguém que só saiba Windows, podemos contratá-lo nas Filipinas. Se

quisermos alguém que realmente entenda de Windows e UNIX e pode integrá-los,

provavelmente vamos procurar aqui por perto. Não seja deixado de lado por causa

de algo que é essencialmente espírito de equipe.

A linha que divide o administrador de banco de dados (um papel solidificado

em TI na última década) e desenvolvedor de software também é tênue. Ser um ad-

ministrador de banco de dados ou DBA, significa em muitos lugares saber como

usar

alguma ferramenta visual de administração e como configurar um banco de

dados. Você não precisa necessariamente saber muito sobre como usar o banco nas

aplicações. Por outro lado, os desenvolvedores estão cada vez mais preguiçosos e ignorantes sobre como trabalhar com bancos de dados. Cada lado alimenta o outro.

O que mais me surpreendeu quando eu entrei na área de TI era que muitos pro-

gramadores (talvez a maioria) não sabiam como configurar os ambientes que eles

utilizavam para o desenvolvimento e para deploy. Eu trabalhei com desenvolvedores que não conseguiam sequer instalar um sistema operacional em um computador se

você pedisse, muito menos configurar um servidor de aplicações para fazer o deploy das suas aplicações. É raro encontrar um desenvolvedor que realmente entende a

plataforma em que está trabalhando. As aplicações são melhores por consequência, o trabalho costuma ser feito mais rápido.

Finalmente, como discutimos no capítulo 3, a barreira entre o negócio e TI deve

ser derrubada já! Comece a entender como sua empresa funciona.

Faça algo

1) Em um pedaço de papel ou em uma lousa, liste as dimensões em que você pode

ou não estar generalizando seus conhecimentos e habilidades. Para cada dimen-

são, escreva sua especialidade. Por exemplo, se sistema operacional é uma de

suas dimensões, você pode escrever Windows/.NET ao lado. Agora, à direita da

sua especialidade, escreva um ou mais tópicos que você deveria aprender. Conti-

nuando com o mesmo exemplo, você pode escrever Linux/Java (ou mesmo Ruby

ou Perl).

Assim que possível (mas ainda essa semana), pegue 30 minutos de seu tempo e comece a aprender alguma tecnologia que você listou. Não basta ler sobre ela. Se possível, faça um hands-on. Se é uma tecnologia web, então faça você mesmo a

31

Casa do Código

instalação e configuração do servidor. Se é um assunto relacionado a negócios,

escolha um de seus clientes no trabalho e chame-os para almoçar ou conversar.

32

Capítulo 8

Seja especialista

Como você escreveria um programa, em Java puro, que trave a Java Virtual Ma-

chine? Silêncio mortal. Oi?

Desculpa. Não entendi. Você pode repetir a pergunta, por favor? A voz soava

desesperada. Eu sabia que repetir a pergunta não iria ajudar em nada. Então, eu

repeti a pergunta, devagar e em um tom de voz mais alto. Como você escreveria

um programa, em Java puro, que faça Java Virtual Machine parar de funcionar?

Uh... desculpe. Eu nunca fiz isso.

Eu sei que não. Que tal essa pergunta: como é que você escreveria um programa

que NÃO trave a JVM"?

Eu estava procurando por programadores Java realmente bons. Para começar

a entrevista, perguntei para esta pessoa (e todos os outros candidatos que eu havia entrevistado naquela semana) para avaliar a si mesmo em uma escala de um a dez.

Ele disse nove. Estou esperando uma estrela aqui. Se esse cara se avalia de forma tão alta, por que ele não consegue pensar em algum simples truque que trave a JVM?

A falta de profundidade técnica.

Casa do Código

Muitos acreditam que ser especialista em algo significa que você não sabe outras coisas.

Essa pessoa se dizia especialista em Java. Se você o conhecesse em uma festa

e perguntasse o que ele fazia para viver, ele diria: Eu sou um desenvolvedor Java.

Ainda assim, ele não conseguia responder a esta simples pergunta. Ele não conseguia sequer chegar a uma resposta errada. Depois de intensas duas semanas e meia de entrevistas em uma viagem de recrutamento, esta foi a regra, não a exceção. Milhares de especialistas Java tinham se candidatado para as vagas abertas, mas quase nenhum deles sabia explicar como Classloader Java trabalhava ou então dar uma visão geral de como o gerenciamento de memória funciona em uma JVM.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке