Olá pessoal. Eu sou um programador regular que usa manto para idosos em uma empresa regular de supermercado. Estou envolvido no desenvolvimento comercial há cerca de 10 anos, comecei com o desenvolvimento de firmware para pequenos pedaços de ferro e agora faço back-end de vários graus de complexidade, principalmente no agora Java / Kotlin. Escolhi essa profissão por vocação - como estudante o tempo todo, soldava alguma coisa, programava em um pedaço de papel (não havia computador) e tudo mais. Em seguida, veio o perfil de educação, trabalho em várias empresas - eminentes e comuns, estrangeiras e domésticas. Portanto, posso dizer que sou um programador ideológico. E nunca entendi as pessoas que estão esperando a sexta-feira - sempre fui trabalhar com prazer, não importa o que diabos estivesse acontecendo lá. Isso foi, pelo menos até recentemente. A partir de algum ponto, eu "quebrei" e dificilmente poderia me forçar a ir para o meu trabalho antes amado. Algo estava me incomodando antes, mas agora que meus pensamentos tomaram forma na minha cabeça, posso dizer o que há de errado no meu mundo de TI, que antes era acolhedor.
Complexidade excessiva
Quando trabalhei nas glândulas, gostei muito da propriedade que vejo através de como isso funciona - que bytes se movem, em que área da memória isso acontece e como o compilador manipulou o código. Havia uma sensação de calma e controle. Quando mudei para o desenvolvimento de back-end um pouco mais tarde, ri de inúmeras configurações xml para EJB ou na mesma primavera. Eu saberia o que me espera no futuro. Agora eu simplesmente não entendo (e já estou desesperado de entender) o que está acontecendo dentro do meu apego descomplicado. Um monte de camadas de abstrações, contêineres em contêineres, toneladas de manuais, scripts, ferramentas, versões, arquivos de configuração. Ainda não descobri como o projeto está sendo implantado, no qual trabalho há seis meses. E, claro, você não pode fazer um monólito, pelo menos no primeiro estágio. Divida tudo imediatamente em microsserviços, porque isso é certo (na conferência eles disseram que fazem isso na empresa X). E, é claro, não podemos usar o bom e velho Apache HTTP Client para acessar o serviço que precisamos a cada poucos minutos, porque esse cliente não é assíncrono e não possui um limitador de taxa interno, mecanismo de contrapressão ou outras coisas sofisticadas. À minha pergunta: "Por que tudo isso é necessário para uma carga de 1 solicitação / min?" Recebo apenas uma expressão reprovadora de meus colegas, em cujas testas brilha a inscrição "Aqui você é estúpido".
Um tópico separado é o Sr. Javascript com suas inúmeras estruturas. Sinceramente, não entendo quantas coisas poderiam ser inventadas para uma ferramenta que só precisa desenhar formulários em páginas da Web e, de tempos em tempos, enviar uma solicitação de back-end. Ainda bem que faço o back-end.
No exemplo do frontend (e não apenas), podemos ver claramente como andamos em círculos: vamos executar toda a lógica no lado do servidor -> e agora no lado do cliente -> e agora no servidor novamente e assim por diante ad infinitum. Vamos escrever o front-end e o back-end em um idioma -> e agora vamos em diferentes idiomas -> e vamos novamente em um. Vamos fazer esquemas para formatos de dados - esquemas apenas para veteranos - e não, esquemas são necessários da mesma forma. Um dos meus ajudantes na biblioteca de código-fonte aberto do yaml para o xml, simplesmente porque existem esquemas lá e é ótimo quando você ri de uma grande configuração, e um IDE ciente do XSD pode fazer metade do trabalho para você. Do exposto acima, segue o seguinte problema:
Demais
Ferramentas, idiomas, livros, conferências, estruturas, etc. Por um longo tempo, naqueles dias em que, para o desenvolvimento de software, bastava ter conhecimento de um PL, algumas bibliotecas, e isso é tudo. Agora estamos aguardando centenas de frameworks, com uma dúzia de idiomas (mesmo dentro do framework de um projeto), DBMS na moda e não muito, agentes de comunicação onipresentes, centenas de quilômetros quadrados de propagação de propagandas e outras diversões. Como regra, um programador médio não tem tempo para estudar tudo isso no trabalho (exceto as ferramentas que já são usadas em seus projetos), porque você precisa trabalhar nele. Muitas pessoas precisam passar um tempo pessoal estudando essas tecnologias, embora provavelmente 90% dos estudados nunca sejam úteis. Eu mesmo tenho quinhentos artigos no bolso, um monte de visualizações de vídeos invisíveis de conferências, e cada ligação para Habr pressagia uma visita obrigatória a McConaughey.
Mas mesmo o trabalho duro com um idioma específico ou, por exemplo, um DBMS na sua empresa às vezes não permite que você fique na moda, porque as tecnologias se tornam obsoletas antes de poderem ser aplicadas. Até o java será lançado na velocidade do firefox.
Graças ao fluxo interminável de conhecimento que cresce rapidamente, muitos de nós nos sentimos estudantes ou impostores eternos, não importa quantos sistemas você realmente construiu. E isso é muito benéfico para RHs e empregadores - você pode facilmente derrubar sua RFP com algumas perguntas complicadas. Esse tipo de RH de corrida de ratos é politicamente correto, chamado autodesenvolvimento.
Recentemente, tenho observado uma tendência de impor a autoridade de um departamento de negócios aos desenvolvedores. Agora, além de cumprir suas principais tarefas, o desenvolvedor é obrigado a entender o assunto no nível de um bom analista e, geralmente, pensar em negócios. Deixe-me em paz, não sei como aumentar sua taxa de conversão
Entrevistas de emprego
Este é o tipo mais importante e amado de disciplina especial. De fato, depende disso se você dormirá em um velho sofá amassado em uma odnushka alugada em algum lugar fora da Circular de Moscou, ou se terá que se esconder em papelão deitado no aquecedor principal sob a ponte. Se no começo da minha carreira a entrevista foi um pouco de conversa de coração para coração, agora é mais como um exame. Talvez isso se deva ao fato de que, naquela época, não havia salários e multidões tão grandes que quisessem entrar em TI ou apenas moda, eu não sei. Mas o fato é que, quando você chega a uma entrevista para a posição de desenvolvedor sênior, com um alto grau de probabilidade, encontrará tarefas temperadas com perguntas do questionário. “Bem, resolva um problema em um pedaço de papel que roubamos ontem com o código leet. Errado em uma unidade na condição de contorno? Brincadeira de Fuuuuu! Você não sabe como o% methodName% funciona na estrutura% mais elegante%. Quem o colocou aqui? Segurança! ”Ninguém se importa mais que sua cabeça esteja disposta de maneira diferente e você não pode forçar o olhar desdenhoso e condescendente de nerds de nariz alto rapidamente e sem erros para envolver o algoritmo em uma tarefa que você ainda não teve tempo de pensar. Como quantos quilômetros de código e sistemas de produção estão atrás de você. Bem, pelo menos as perguntas do quebra-cabeça estão mortas, e obrigado por isso.
Pessoas de TI
Aqui, analisaremos algumas subespécies dessa população, com as quais precisamos lidar com mais frequência.
Na verdade, desenvolvedores e simpatizantes. Ao contrário dos estereótipos - na maioria dos casos, não são nerds ortodoxos, mas caras bastante normais. Mas, como regra, não há nada para conversar com eles. Todas as conversas fora do horário de trabalho começam a funcionar. Mas de que outra forma, se você é forçado a aprender todo esse technomuth o tempo todo? Meu conselho é ficar longe de caras de camisa xadrez com mochilas, caso contrário, você pode ganhar uma dose letal de tédio. Muitos deles vão trabalhar não para trabalhar, mas para brincar. Vamos inventar uma bicicleta, vamos fixar uma nova estrutura (e vamos dar um salto à noite à noite) e certamente deixaremos tudo na metade, porque esse brinquedo está cansado, além disso, trouxemos novos. Mas então vamos dar um beijo no rosto e contar nas conferências como derrotamos o problema que nós mesmos criamos. LUCRO! Essas pessoas são facilmente levadas a todo tipo de lixo, como "tarefas interessantes" e "sistemas complexos" (é impossível construir uma calculadora sem uma dúzia de microsserviços na cultura de TI), o que, em termos humanos, significa escolher a merda de um mamute, mas para menos dinheiro, reduzindo assim os salários da indústria. Como em uma piada "- Pai, o que vamos comer hoje?" "Nada, filho, estou trabalhando em tarefas interessantes em uma equipe amigável."
Gerentes de projeto. Honestamente, por 10 anos não entendi quem são os gerentes de projeto e por que eles são necessários. Em escritórios completamente diferentes, era algo parecido com isto: existem várias tarefas, resolva o que está lá e como, e faça isso antes dessa data. E eu fui pegar um café com leite dos descolados no primeiro andar e escrever no Instagram que dia é difícil hoje. Só uma vez eu vi um cara que construiu todos esses horários chatos, fez malabarismos com tarefas e foi nosso assistente, e não apenas um cara legal que não sabia programar, mas eu realmente quero um ITP.
Garçons. Caro amado por muitas categorias. Graças ao seu despejo, articulações sensatas e ideológicas não podem entrar na indústria - em busca de um longo rublo, muitos trabalhadores rolantes estão prontos para trabalhar de graça.
Vamos ficar calados sobre o resto.
Negócios
O software no mundo moderno não é feito simplesmente porque é divertido (embora às vezes pareça). Isso é feito com mais frequência para ganhar atendentes - direta ou indiretamente. E em conexão com esse fato, podemos dividir as pessoas em duas categorias.
Quem se importa como - para que tudo dentro seja bonito e correto.
Quem se importa com o que são aquelas pessoas que se importam com a essência do produto que fabricam.
Normalmente, o desenvolvedor contém essas duas categorias, apenas em proporções diferentes.
Para os dois, tenho notícias tristes.
Para a primeira categoria - do ponto de vista de ganhar dinheiro, não importa como a arquitetura correta é escolhida e quão bonito é o código. Assim como toda a sua segurança, práticas recomendadas etc. Você pode colocar muletas, ganhar avós e, em seguida, o gerente que fez tudo isso pula no barco vizinho "para ganhar nova experiência", e a equipe empilha os estábulos à noite.
Para a segunda categoria - 90% de vocês fazem o que os outros fizeram há muito tempo. Com raras exceções, todos os seus produtos são profundamente secundários. No entanto, empresários astutos estão tentando dar “ideologia” ao próximo sistema de pagamento, serviços bancários on-line e similares. Eu mesmo passei por tudo isso e devo dizer que é muito mais fácil trabalhar quando você tem uma resposta clara à pergunta "por que tudo isso é necessário"? Por alguma razão, todos esses "cambistas" do mundo esquecem de dizer que uma mudança no mundo é um subproduto de ganhar dinheiro, e não vice-versa. É difícil mudar o mundo quando uma espingarda do conselho de administração é afixada ao seu templo e o laço de um acionista é jogado no seu pescoço. Quanto a mim, a frase "trabalhamos para ganhar dinheiro" parece muito mais honesta. Outra coisa é que, se você contar ao RH agora que trabalha no trabalho por dinheiro, 146% terá uma aparência confusa e algo como "Você não combina conosco, precisamos de pessoas entusiasmadas que precisam de autodesenvolvimento e tarefas interessantes".
Saude
Todo mundo sabe que se você levantar pesos por um longo tempo, sem preparação adequada (ou mesmo com ele), você terá problemas nas costas e nas articulações. O mesmo pode ser dito do cérebro, mas isso é menos óbvio. Nosso trabalho exige altos retornos e concentração, mesmo que apenas reconfiguremos os testes na máquina, ouvindo em segundo plano outra pesquisa de inteligência. Parece-me que o cérebro simplesmente não é projetado para tais feitos diários. Eu trabalhei em vários empregos de merda, incluindo os físicos, e posso dizer que nunca me senti tão apertado e frustrado como quando saía do escritório todos os dias. Muitos dos meus 35 ou mais colegas sentem a mesma coisa, e perguntas como “E se você tiver 25 anos e se esgotar?” Ou “Como sair dela?” Começaram a aparecer nos fóruns. Quanto tempo levará para esticar nesse modo é uma pergunta interessante.
Total
Por 10 anos, a esfera de TI de um pequeno e aconchegante mundo de nerds de computadores sentado no porão perto do monitor oscilante se transformou em uma enorme indústria de hype, com altos salários, marketing e outras grandes novidades. A programação não é mais engenharia, mas apenas uma arte monótona, cujo objetivo principal é transformar govnokod e muletas em dinheiro. Resta apenas esperar até que todo esse colosso desmorone com seu próprio peso e retornaremos às nossas adegas. Ou não