
Olá, meu nome é Dmitry, tenho 35 anos. Eu costumava ouvir muitas vezes que um programador é uma profissão para jovens. No entanto, no verão passado recebi um convite para a Yandex e me mudei para trabalhar em Moscou.
Neste artigo, gostaria de abordar uma questão que foi discutida em Habré mais de uma vez: quão realista é ser um programador após 35-40 anos? Não é um arquiteto líder, nem um líder de equipe, nem um gerente de projetos, mas um programador? Não concordo com a opinião de que a programação é a maior parte dos jovens. Eu o considero prejudicial e agora vou lhe dizer o porquê.
Existem várias razões pelas quais esse mito se baseia. Vamos dar uma olhada neles.
Explicação 1. Requer nervos e reações.
É-nos dito: “A programação requer energia exclusiva para os jovens. Na idade adulta, isso simplesmente não é força suficiente. "
Os programadores parecem elogiados, colocando-os no mesmo quadro de pilotos de teste e astronautas. A propósito, não foi por acaso que comecei a falar especificamente sobre pilotos. Senhoras e senhores, olhem para este homem:

Este é o famoso Chesley Sullenberger, que aos 58 anos se tornou o herói dos Estados Unidos, pousando um avião no Hudson.
Para ser sincero, direi: na programação, realmente existem áreas em que, depois dos quarenta, é difícil, mas não porque tudo é muito inteligente e difícil, mas por causa das especificidades dessas áreas. Por exemplo, a indústria de jogos, onde as flexões costumam acontecer: as pessoas trabalham mais de 100 horas por semana. Se na juventude isso ainda pode ser resolvido, em 40 anos é improvável que a saúde permita. No entanto, aqui a questão é mais provável para as empresas que praticam crise. Um programador pode escrever jogos aos 40 anos de idade, mas não em um modo tão exaustivo e prejudicial.
Explicação 2. Aprenda, estude e estude novamente.
É-nos dito: "O conhecimento do programador está constantemente se tornando obsoleto e, entre 30 e 35 anos, o que você ensinou na universidade pode não ser mais necessário para ninguém, mas é tarde demais para treinar novamente".
Mais uma vez - parece ser lisonjeiro. A profissão é tão intelectual e elitista que você precisa estar constantemente na vanguarda do progresso.
Mas existem outras profissões em que você precisa estudar continuamente. E ninguém leva os jovens de 40 anos de lá.
Lembre-se dos advogados. A legislação está constantemente se tornando obsoleta. Essa é a norma. Além disso, a situação deles é ainda mais grave que a dos programadores. Com o lançamento do padrão C ++ 20, ninguém descartará quem escreveu no padrão anterior, não exigirá que eles sejam treinados novamente. Mas o advogado não tem escolha: com o lançamento da nova edição do Código Civil da Federação Russa, ele é obrigado a ler, lembrar e usá-lo.
O mesmo pode ser dito sobre os médicos: eles são forçados a atualizar constantemente o conhecimento. Para deixar claro com que idade um cirurgião deve estudar, por exemplo, leremos a opinião do cirurgião cardíaco chefe do país, Leo Boqueria:
Esse sempre foi o caso dos médicos: as pessoas querem ser tratadas por um médico experiente. Os cirurgiões cardíacos, por exemplo, nos Estados Unidos só podem entrar na mesa aos 37 anos, e isso acontecerá aos 40 anos como cirurgião independente, essa ainda é uma grande questão. Isso se aplica a médicos, cientistas, professores, pessoas de trabalho intelectual, bem como trabalhadores altamente qualificados.
Preste atenção às “pessoas que trabalham intelectualmente” - os programadores se relacionam com elas, espero? Isso significa que a experiência é tão importante quanto em qualquer outra indústria intelectual.
Quanto uma pessoa pode dominar coisas novas na idade adulta? Não sou professor, nem psicólogo, nem neurocientista qualificado para responder a essa pergunta. No entanto, como mostra a prática, isso é bem possível. Muitas pessoas estão na vanguarda do progresso, mesmo depois dos quarenta. Se nos distrairmos com o setor de TI, podemos lembrar o mesmo Sergey Pavlovich Korolev. Ele fez os principais desenvolvimentos depois dos 45 - dificilmente com base no conhecimento que recebeu antes dos 30 anos.
Conhecimento implícito também existe. Eles não podem ser obtidos na universidade e recolhidos na literatura. Levará vários anos para trabalhar (e às vezes até mais de uma década) em um determinado setor. Aos 40 anos, um programador sabe como programar, e também (se ele participou dos chamados projetos sem esperança) - como não programar e que erros devem ser evitados ao escolher uma arquitetura de software e escrever código.
Explicação 3. Um programador de 35 anos não dará à luz nada que valha a pena
Dizem-nos: "Sim, você pode ser um programador em 35 a 40 anos, mas esse programador não fará nada sério".
Aqui você deve começar com o básico - a partir do próprio computador. Foi criado por Eckert e Mokley. Eckert tinha 25 anos e Mokley tinha apenas 35 anos.
Vamos passar para aqueles que criaram algo sério depois de 35 anos. Vamos começar com o famoso e autoritário para programadores Donald Knuth. Ele desenvolveu a primeira versão do seu famoso sistema TeX em 1978, quando tinha 40 anos. Um pouco mais tarde, em 1981, ele criou o conceito de programação alfabetizada.
Avanço rápido para tempos mais próximos. Martin Odersky nasceu em 1958 e começou a criar a linguagem Scala em 2001 - após mais de dez anos de trabalho nas linguagens Pizza e Funil (e no compilador GJ, que se tornou o protótipo do javac).
Aqui está outro exemplo de um programador que era bom em sua juventude e permaneceu assim em sua velhice. Anders Halesberg escreveu a primeira versão do compilador Pascal em 1981, aos 21 anos. Ele desenvolveu o C # desde 2000, quando tinha pouco menos de quarenta anos. E em 2012 (aos 62 anos), Halesberg começou a criar o TypeScript. Por interesse, eu costumava assistir o repositório dessa linguagem - existem muitos commits de Anders.
Além disso, há uma opinião de que a idade de 40 a 55 anos para a profissão de engenheiro é a mais proveitosa, pois a experiência se acumulou e nada distrai o trabalho: um homem tem uma família, os filhos cresceram ...
Além disso, não esqueça que qualquer descobridor não é apenas uma dúzia de gigantes, mas também uma massa de bons trabalhadores. Eles criaram uma variedade de infraestrutura que possibilitou o trabalho do descobridor. Alguém escreve drivers para placas de vídeo, mas sem drivers, os desenvolvedores de jogos não podiam fazer nada. Alguém está configurando protocolos de rede e, sem eles, é improvável que os desenvolvedores multijogadores tenham conseguido algo. Tudo isso é um trabalho enorme, que na maioria das vezes não é inovador e muitas vezes não é percebido como algo sério para se orgulhar. No entanto, sem esse trabalho, todos os gigantes não teriam conseguido nada.
Explicação 4. Você ainda não é um líder?
Somos informados: “Um programador é apenas o primeiro passo de uma carreira. Aos trinta, o mais tardar às 35, você deve assumir a liderança se tiver cérebros e habilidades. ”
Esta é a explicação mais ofensiva. Assim, você pode entrar em programação pela juventude, mas depois dos trinta precisa fazer algo sério.
É fácil entender o absurdo desse ponto de vista, se você tentar aplicá-lo a outras profissões. Tente dizer a um advogado de 50 anos: "Você ainda não tem seu próprio escritório de advocacia?" Tente dizer a um cirurgião de 50 anos: "Você ainda não é o chefe do departamento cirúrgico?" Por fim, tente dizer a Sullenberger: “Você pousou o avião no Hudson aos 58 anos? Pessoas normais na sua idade são donas de suas próprias companhias aéreas. ”
Programador e gerente de projetos de TI são profissões diferentes, embora os gerentes geralmente saiam dos programadores.
Considero a posição “programador é uma profissão para jovens” muito prejudicial, pois reduz significativamente a motivação. Concordo, é muito difícil estudar muito por cinco anos em uma universidade, se você pensa que mais tarde será programador por um período máximo de cinco anos também. Imagine que eles foram forçados a estudar como médico por oito anos, mas, ao mesmo tempo, declaram: "Um médico é uma profissão para jovens, depois dos trinta você deve passar para posições de liderança". Qual é o objetivo de estudar muito todos esses anos?
De onde veio o mito "Programador - uma profissão para jovens"?
Ao mesmo tempo, tentei descobrir e destacar duas fontes:
- A era inicial da programação. Esses mesmos anos românticos de escrever programas não são nem em assembler, mas em códigos de máquina, e não em um IDE normal, mas em cartões perfurados. Então, o desenvolvimento de software consumia muito mais tempo do que agora. E admito de bom grado que foram precisamente os jovens que mais facilmente resistiram a esse processo.
No entanto, agora a situação mudou. Já não são os anos cinquenta no quintal, o desenvolvimento não é tão difícil. - Especificidades puramente russas. Nos zero anos, a idade de ouro do Runet chegou: a esfera da TI cresceu rapidamente, tudo foi automatizado, cada empresa adquiriu seu próprio sistema de automação de fluxo de trabalho, escritórios estrangeiros chegaram ao país ... Além disso, foi um período glorioso de vitórias em competições como a ACM. Então a indústria realmente se desenvolveu rapidamente. Você poderia trabalhar como programador por um período máximo de cinco anos após um diploma e depois passar a gerente de projeto. Talvez tenha sido então que a convicção se desenvolveu de que o programador é um estágio de transição em sua carreira.
No entanto, agora a situação mudou. Existem muitas razões para isso, mas a mais importante, na minha opinião, é o fracasso demográfico. Em Moscou, eu ensinei em uma universidade da província e trabalhei em escritórios de TI da província. Posso atestar pessoalmente: nas regiões já em 2010 a escassez de pessoal foi muito aguda. Havia muito menos jovens e as universidades não podiam colocar o número certo de programadores. Talvez em Moscou e Petersburgo isso não seja sentido, mas em outras cidades é o caso. Não há ninguém para substituir todos os programadores de 30 anos. Obviamente, eles não podem sair para outros cargos - quem irá programar?
A falha demográfica levou ao fato de que o limite de idade de um programador nas regiões começou a aumentar imperceptivelmente, mas de forma constante. Se isso acontece na capital é uma questão em aberto.
Dicas para estudantes de TI
Como se relacionar com a sua profissão? O que aprender para que aos 35 anos você não fique para trás e não se arrependa do tempo perdido na universidade? Aqui estão meus pensamentos.
- Não tome sua profissão como temporária - caso contrário, você terá dificuldades. O programador precisa estudar muito, mas você não pode aprender muito o que não considera o negócio da sua vida: quando planeja dar a ele cinco anos no máximo e depois faz coisas realmente interessantes, como gerenciamento de projetos. Decida se você realmente será um programador a vida toda. Lembre-se de que, se você considera sua profissão puramente temporária, a probabilidade de que você a domine superficialmente aumenta.
- Não negligencie a programação de baixo nível, como assembler e uma linguagem como C / C ++, especialmente ponteiros. Se você não domina isso, automaticamente se isola de várias áreas de desenvolvimento. O exemplo mais impressionante é o desenvolvimento do sistema operacional. Se lhe parece que essa é uma área muito específica, pense em computação gráfica para jogos: aí está. Ou sobre drivers para dispositivos modernos. E coisas como nginx serão problemáticas para escrever. Em termos de trabalho, não esqueça que quase todas as empresas - que temos e que no exterior - têm uma tonelada de microcontroladores e é improvável que sejam programadas em Python no futuro próximo.
- Não negligencie a programação funcional. Por um longo tempo, especialmente nos anos 90, no auge da OOP, esse estilo parecia um pouco acadêmico, o que, na prática, não é encontrado no trabalho de um programador comum. Tudo mudou do meio do zero, e o Twitter confirmará com autoridade que sistemas altamente carregados podem ser desenvolvidos na Scala. Em geral, os conceitos de programação funcional são usados muito mais amplamente do que muitos estudantes pensam. Quase todas as linguagens de programação que apareceram no mainstream nos últimos 10 anos contêm elementos de programação funcional. Seus conceitos continuarão a penetrar em vários campos por um longo tempo. Por mim, recomendo o curso de Abelson e Sassman. Este é um curso clássico do MIT dos anos 80, após o qual os idiomas modernos são dominados muito melhor.
- Experimente a programação esportiva. Francamente: este é o conselho mais controverso. A programação esportiva, devido às suas características (o programa passa em um conjunto de testes automatizados com um limite de tempo, mas ninguém verifica o estilo e a solidez da arquitetura) incentiva a escrita descuidada do código. No entanto, por outro lado, dificilmente é possível criar um conhecimento mais intensivo dos algoritmos. Lembra quantas palestras sobre gráficos e algoritmos de pesquisa você teve na sua universidade? Dois ou três? Quantas vezes você aplicou esse conhecimento? Também duas ou três vezes? Não compare com a experiência adquirida na solução de algumas centenas de problemas. Como em qualquer trabalho, você se torna um especialista como resultado da prática.
Em vez de uma conclusão
Depois das 35, é bem possível ser programador e conseguir um emprego - e não apenas em alguma fábrica para suportar o sistema antigo, mas em empresas modernas de TI. O principal é desenvolver, não ter medo do novo e amar o seu trabalho.
O que você acha? Concorda ou não? Que experiência você tem?