Carreira Dev

12 mai, 2011

Como ser um programador em idade mais avançada?

Publicidade

Eu recebi a seguinte mensagem:

“Como alguém continua a construir uma carreira em desenvolvimento de software quando
existem pessoas jovens e famintas (p.e. pessoas que podem e irão trabalhar 16
horas por dia e podem aprender coisas em um ritmo ridicularmente rápido)
adentrando o campo?

Estou na madura idade de 33 anos, e já estou sentindo o desafio de acompanhar as pessoas
de 23, 24 e 25 anos… :/

Além disso – e eu sei que isso é em parte uma função do crescimentoexplosivo do campoao longo dos anos – eu não vejo muitos
desenvolvedores de software dos 40 para cima, então
eu não tenho precedentes
para observar, em termos de construção de carreira, um caminho diferente do que
o direcionado para gestão.”

Como eu já decidi dedicar esta década à programação, e parte dela à contratação, este tópico é
interessante para mim (tenho 50 anos). Eu não sei se tenho coisas muito úteis a
dizer. No entanto…

  • Em um time, algumas pessoas
    servem como catalisadoras para as habilidades de outras pessoas. Por exemplo,
    desde os meus 20 anos, eu tenho estado preso no friction-free work (inglês). Então, era mais provável
    que eu, em vez de outros, fizesse um trabalho de construção melhor,
    escrevesse e compartilhasse funções emacs
    para automatizar tarefas semi-frequentes, ou trabalhasse em testes. Essas
    tarefas não são gloriosas – “Eu não sou um construtor-reparador rock
    star!” –, mas elas ajudam o time. Como o excêntrico do time, eu poderia
    destacar que eu ia além, libertando as outras pessoas para se concentrarem
    nas façanhas mais prodigiosas da codificação.

    Uma maneira típica como um velho programador pode
    catalisar a situação é prestar atenção nas relações humanas. Se você puder evitar
    a tendência condenável
    que pessoas mais velhas têm para pontificar pessoas ou de contar histórias
    apenas marginalmente relevantes sobre
    como elas fizeram isso há 20 anos, você pode ser
    uma pessoa
    que leva a equipe a uma melhor configuração. O papel
    ideal é aquele do
    player coach
    (“técnico-jogador”) (mas ele deve ser reconhecido pelo time, em vez de ser
    apontado como tal).

  • Outro motivo para o
    patriarca trabalhar em um time bem fechado é que as vantagens dos
    programadores jovens não são uniformes. Por exemplo, o que mais me faz
    sentir como um velho com tremedeira é a quantidade de coisas que esses
    meninos de hoje conhecem: ferramenta em cima de ferramenta, em cima de
    ferramenta, em cima de ferramenta, gem em cima de gem, em cima de
    gem, em cima de gem, os 83 lançamentos do Rails etc. Mas se você tem uma
    dessas pessoas no seu time, a vantagem se entende a todos, e a perda de
    uma mente centenária não é uma desvantagem muito grande.

    Quando o que interessa é a capacidade do time,
    equilíbrio é mais importante do que a excelência uniforme individual. Portanto,
    quando uma pessoa mais velha e conservadora faz parte do time, foque em ser
    complementar em vez invés de único.

  • Uma maneira tradicional de
    programadores mais velhos cooperarem é ser um dos poucos experts em uma
    tecnologia que já passou (Cobol é um exemplo, Smalltalk também). Essa
    tecnologia não tem que ser, necessariamente, chata. Às vezes, como já
    aconteceu com Smalltalk, Lips, e talvez com linguagens funcionais mais
    puras, o que passou se torna interessante de novo.

    Um caminho semelhante é se tornar um expert em uma
    tecnologia bastante especializada e difícil, como por exemplo máquinas
    virtuais ou segurança-alguma-coisa, que é difícil de aprender rapidamente e
    requer aprendizado constante. 

  • Agora que aprendemos que o
    legado do código não tem que ser horrível, talvez o vovô devesse procurar
    se unir a uma base de código extensa e de vida longa. Você pode encontrar
    grande satisfação em assistir seu jardim florescer ano após ano.
  • Também é útil não agir como um velho. Por exemplo,
    eu tenho que brigar contra minha vontade de ser presunçoso por não saber
    CSS. Claro que, no meu caso, eu não sei, porque… bem.. CSS. Mas é facilmente interpretado
    como se eu estivesse dizendo “Oh, outra novidade da moda, *bocejo*, me dê
    um RPG qualquer dia desses”. Da
    mesma maneira, eu devo ter cuidado ao dizer coisas como Clojure aos
    programadores, como, “Bem, nos meus dias de Lisp nos fazíamos assim…”.
    Como um exemplo final: vendo este site, sinto que não aprendi nada sobre
    tecnologias web desde 1994.

    As pessoas são sensíveis a pessoas velhas agindo de
    maneira velha. O x da questão é que é fácil subverter expectativas. Acho que é
    uma boa estratégia ser capaz de falar com modéstia profunda sobre duas ou três
    tecnologias que são de certa forma novas ou da moda. Portanto, por exemplo,
    estou feliz que posso falar sobre Clojure, Cappuccino e Sinatra. Você quer apresentar a aparência de ser capaz – e
    realmente ser capaz – de sintetizar o
    passado e o presente.

  • Finalmente: se a programação
    realmente é um daqueles campos em  você faz seu melhor trabalho enquanto
    novo, pessoas mais velhas devem ter um salário menor. Velhos programadores
    podem competir (com credibilidade) ao pedir por menos dinheiro.

    Porém, essa “credibilidade” é um problema, uma vez
    que programação é um campo de machos prepotentes. Dessa maneira, um salário
    menor é facilmente interpretado como uma grande bandeira vermelha, em vez de
    um reconhecimento realístico de que, digamos, memória de curto prazo e
    concentração são importantes para programação, e que ambos pioram com a idade.

Outros pensamentos que podem ajudar meus colegas
velhinhos?

?

Texto original disponível em http://www.exampler.com/blog/2010/05/10/old-programmers/