Brevemente sobre o que é mais preocupante no mundo moderno do desenvolvimento e por que você precisa provar, aprender, testar e não ser preguiçoso.
Sou desenvolvedor, mas não escrevo o código há muito tempo
Nichrome você não é um desenvolvedor.
Se você acha que escrever código é um requisito opcional para um bom desenvolvedor, saia deste planeta. Existem muitas oportunidades de viver, mas pare de escrever código. Você pode ir para a gerência, pode migrar para a gerência de pessoal, pode subir para uma posição alta ou apenas ir para o mosteiro. Mas em qualquer uma dessas situações, você deixa de ser desenvolvedor se não escreve mais código.
Porque Primeiro: o código não é uma bicicleta, se você não pratica, esquece. Segundo: os desenvolvedores ficam muito ofendidos quando “algum tipo de gerente” está tentando se passar por si (sim, em geral, isso é verdade para qualquer profissão). Terceiro: é prejudicial ao CSV; se você se mudou para outra área / indústria, aumente sua habilidade com carisma novamente e não arraste referências a sucessos passados (veja o último pecado).
Dos exemplos.
- Eu já estive em uma entrevista no escritório americano. Lá, em um dos estágios, um cavalheiro que se apresentou como CEO começou a perguntar sobre um jogo feroz sobre Ruby por um pedaço de papel (no sentido de modelos preparados no Google). Para perguntas sobre se ele escreve o código em si e por que tanta indecência perguntar aos candidatos, ele com tato virou a conversa e pediu para se concentrar nas tarefas.
- Existe um gerente de recursos familiar que trabalha como psicólogo à vontade. Até agora, esse senhor escreveu o código em seu tempo livre e, às vezes, pode surpreender bastante um candidato com conhecimento curioso em uma área aparentemente pouco característica. Parece não ser um programador, mas todo mundo leva isso por conta própria.
Fiz testes, por que testar o aplicativo com as mãos?
Confiar apenas nos resultados dos testes (mesmo que, entre eles, manequins de ponta a ponta de integração) seja um pecado grave. Pelo menos uma vez durante o desenvolvimento de qualquer recurso, você precisa pegar e usar as mãos para clicar em todo o ciclo desse recurso. Em primeiro lugar, você será um pouco melhor versado na plataforma e como o usuário a vê, e não como ela é organizada por dentro. Em segundo lugar, você segue um novo cenário e bom senso e pode encontrar algo óbvio para você, mas invisível para os autotestes. De qualquer forma, os autotestes são um complemento à verificação manual do desenvolvedor, não um substituto para ele.
Imediatamente vou dizer sobre os recursos. Não estou falando de testes manuais completos pelo desenvolvedor, existem profissionais de controle de qualidade especialmente treinados para isso. Estou falando sobre a necessidade de executar um projeto local e a verificação mínima de quaisquer alterações lá. E depois nos autotestes, na donzela, no palco, no pré-produto e no prod.
Então, sim, deve haver holivares sobre a complexidade de muitos projetos e sua "incapacidade" de executar localmente. Pessoalmente, não acredito em projetos tão épicos. Mas com preguiça e ganância - acredito. Portanto, vamos examinar brevemente os possíveis problemas de iniciar um projeto localmente.
- Um pequeno projeto independente - não há obstáculos para patriotas!
- Muitas integrações externas. Então você tem caixas de areia para cada uma delas. Você possui stubs ou emuladores locais de serviços externos. Ou você tem grandes problemas que serão demitidos em breve.
- Muitos microsserviços. A linha inferior é o parágrafo anterior. A única diferença é que as possibilidades de emulação local estão se expandindo. Por exemplo, um conjunto de janelas de encaixe com microsserviços reais em vez de stubs.
- Muitos dados são necessários para o projeto funcionar. Mas muito raramente você precisa de uma matriz de dados com vários terabytes inteira para desenvolvimento. E se você ainda precisar, várias instâncias para desenvolvedores são criadas para isso. Por exemplo, 2-3 grandes instâncias por equipe de 10 a 15 desenvolvedores. Portanto, sim, não é muito conveniente e caro para os negócios, mas, caso contrário, você pagará ainda mais pelo desenvolvimento da produção, que será realizado independentemente dos desejos dos principais gerentes.
- Um monólito monstruoso que funciona com um ferro específico e apenas na fase correta da lua. Nesse caso, provavelmente você está em uma empresa sangrenta e o senso comum não funciona lá.
Eu já sei o suficiente e não consigo mais aprender
Em resumo: "quem não se desenvolve, degrada".
Nas ciências teóricas, há casos em que você pode descobrir a base e parar nela. Tudo é mais ou menos estável, comprovado e imutável lá. Felizmente, as leis físicas não mudam a cada período de cinco anos. Portanto, se você não for à vanguarda da ciência, poderá viver e até trabalhar. Aqui estão, por exemplo, as integrais ao longo do contorno: Feynman as resolveu em Los Alamos após a Segunda Guerra Mundial e agora elas são resolvidas pelos mesmos métodos analíticos.
Mas com o desenvolvimento e a programação não funcionará assim. Uma única linguagem de programação divina invariável ainda não foi encontrada (o conceito do Avalanche é interessante, mas ainda não está aberto). A velocidade da tecnologia muda de duas décadas, no caso de sistemas operacionais e bancos de dados, para alguns meses, no caso do JavaScript. E se você não se desenvolver, em um ou dois anos você poderá perder o nível e, no período de cinco anos, apenas zero.
Para não ser muito holístico sobre a velocidade das mudanças tecnológicas, darei alguns exemplos. Há um livro de engarrafamento Kernigan e Soldering 1992. Com ele, você pode aprender bem o Unix e não se surpreender com as mudanças que ocorreram 15 anos depois. Você pode pegar o livro de Tom Kite sobre o Oracle 8, lançado por volta de 2000 e não se surpreender com as diferenças que ocorreram na versão 18c. Mas qualquer livro sobre JS há cinco anos pode ser tratado com segurança.
Eu sou legal o suficiente e não posso provar isso
Na minha opinião, este é o mais difícil e o mais comum.
Infelizmente ou felizmente, você precisa provar suas habilidades, adequação profissional e sanidade durante toda a sua vida. Quando você para de fazer isso, pode achar que está aposentado, ou está com demência, ou está esgotado. De qualquer forma, você deve consultar um especialista.
A frequência da evidência é diferente. No caso de amigos e parentes, a prova não é necessária com tanta frequência. E no caso de estranhos - regularmente e por inteiro. Os locais onde a prova é necessária são muito diversos: em entrevistas, conferências, para novos colegas, novos amantes ... mesmo na loja, se a compra for um pouco mais complicada do que um banquinho.
Se você acha que uma história sobre sua experiência sem confirmação de habilidades é normal e suficiente, visite um planeta vizinho. Quanto a mim, isso é chamado de escândalo e arrogância.
Em relação a exemplos nesta área, é apertado, porque a maioria deles é negativa e, penso, o próprio leitor se lembrará de algo adequado de sua experiência. E com o positivo, é ainda mais difícil, pois eles não são percebidos e simplesmente resultam em um diálogo construtivo. Portanto, confio na experiência de vida do leitor e, espero, todos darão um exemplo digno.