
Exatamente 15 anos atrás, neste mesmo dia, com meus joelhos trêmulos, cruzei o limiar do escritório de um pequeno provedor de serviços de Internet na província. Meu primeiro trabalho de verdade como programador. Quase nenhum conhecimento. Uma voz fina e amedrontada de algum lugar no estômago aconselha a se virar e fugir até finalmente desonrar. Respire fundo e exale, e aqui o CEO já está me levando a uma pequena sala do porão, apontando para um computador semi-desmontado que viu tempos melhores: “Este é o seu local de trabalho. Acalme-se. " Assim começou minha carreira.
Mas rápido para o presente. Agora estou escrevendo estas linhas, sentado no confortável escritório do prestigiado centro de negócios no centro de Moscou. Por trás do trabalho com grandes marcas internacionais e o desenvolvimento de aplicações complexas de fintech. Centenas de livros foram lidos e dezenas de artigos foram escritos. A mania da grandeza está curada há muito tempo. As posições gerenciais são testadas e rejeitadas. Paz de espírito encontrada. O amor pela profissão é preservado. No entanto, este não é um artigo da série “Que companheiro eu sou. Faça como você também será bem feito. Este artigo é sobre os erros que cometi e o que poderia ser feito melhor. Este artigo é uma retrospectiva da minha carreira.
Mudar de empresa se não houver desenvolvimento
De tempos em tempos, eu ficava preso em empresas que claramente superavam o nível. Parece que eles pagam um bom dinheiro e tudo aqui é familiar e conveniente. Você vem de manhã, escolhe o modo usual na máquina de café. Você troca piadas com Katya da contabilidade. Você se senta em sua cadeira, que há muito assume a forma de seu ponto fraco. Você abre o laptop e mergulha na rotina diária de tarefas típicas conhecidas por você. Atenção! Isso é uma armadilha!
O trabalho não deve se tornar uma tarefa árdua. Deve haver desafios. Não todos os dias, talvez não todos os meses, mas se for muito fácil para você, é hora de partir. Não precisa ter medo de dificuldades. Se na entrevista lhe pareceu que aqui os caras estão resolvendo problemas muito complicados e você com certeza vai estragar tudo no primeiro dia - esta oferta é para você. Procure as tarefas mais difíceis, a única maneira de melhorar e não degradar na cozinha da sua empresa favorita durante 4 horas por dia
Seja um programador, não um codificador
Escreva o código! = Resolva o problema. O código é apenas uma das ferramentas para resolver problemas. Ah, quanto tempo foi o caminho para realizar essa afirmação simples. Quanto tempo foi desperdiçado. Nós programadores somos atraídos pelo código com uma força terrível. Vendo a próxima tarefa no Jira, corremos os olhos na diagonal e, em vez disso, escrevemos código! Assim que o código é escrito, perdemos o interesse na tarefa e assumimos uma nova.
Infelizmente, raramente temos tarefas transparentes e compreensíveis. Antes de abrir o IDE, devo ter 100% de certeza de que entendo o problema que vou resolver. Um bom marcador aqui é a decomposição. Se eu puder pintar a solução em etapas e saber qual resultado cada etapa produzirá, abro o editor e escrevo o código.
Lembre-se: seu valor como programador não está em um código elegante, com grupos exóticos de quatro padrões. Nenhuma empresa obteve sucesso devido à beleza do código (em qualquer caso, não recordo esses exemplos). Lembre-se sempre do resultado final.
Não tenha medo de experimentar
Sempre que inicio um novo projeto para animais de estimação, eu o inicio em tecnologias conhecidas ou mudo para eles depois de várias semanas. É muito mais rápido. Qual é o ponto de atormentar com Kafka se você tem um coelho favorito? Por que encaixar uma estrutura de dados nos documentos se ela se encaixa facilmente em um modelo relacional? A cada vez, o pensamento de que eu precisava ir rapidamente ao prod impedia que eu desenvolvesse. Como resultado, a maioria dos meus projetos é de peso morto no github, não me trazendo apenas fama mundial, mas também novos conhecimentos. Tentando cumprir os prazos que me impus, perdi tempo.
Experiência. Não há pressa. Desenvolva seus horizontes. Se você é especialista em tecnologia, use esse conhecimento no trabalho, mas use ferramentas que você não conhece fora do seu trabalho. Isso é difícil psicologicamente, porque você entenderá que, usando uma linguagem de programação conhecida, você já colheria os benefícios da fama de seu projeto nas Maldivas. E você precisa descobrir por que converter um feitiço em int fornece um código de caractere, não um número.
Lançar projetos para animais de estimação
Há muito tempo entendo: para ser um programador de sucesso, não basta ser um bom programador. Você precisa entender o desenvolvimento de um produto muito mais amplo do que sua especialização. Mas como conseguir isso? Eu posso ler centenas de livros sobre marketing e eles serão inúteis se eu não colocar esse conhecimento em prática. Posso me inscrever nos canais de telegrama dos melhores especialistas em produtos do país, mas e se eu não tiver um produto para experimentar?
Desde que iniciei meu primeiro projeto para animais de estimação, ficou muito mais fácil encontrar um idioma comum com frentes, qa, produtos, profissionais de marketing e outros membros da equipe. Afinal, comecei a entender o trabalho deles muito melhor. A programação moderna é muito baseada em equipe, e a experiência trabalhando em meu próprio projeto me ajuda a encontrar um terreno comum com outros membros da equipe.
Aprenda a decompor
Eu sempre tive problemas com atenção plena. Cometi erros muito estúpidos no código. Não porque eu não entendi alguma coisa ou não sabia como fazê-lo. Eu apenas estava desatento. Lutei com esse problema de maneiras diferentes e chatas (por exemplo, observei o ponteiro dos minutos), mas nada ajudou. Naturalmente, após cada um desses erros, minha auto-estima caiu acentuadamente. De que tipo de desenvolvimento podemos falar se a auto-estima é zero?
A solução veio na forma de decomposição. Menos tarefa = menos código = menos probabilidade de cometer um erro. Costumo ouvir a frase "esta tarefa não pode ser decomposta", mas pessoalmente acho que qualquer tarefa pode ser decomposta indefinidamente. Se você não conseguir, provavelmente não entenderá completamente a tarefa.
Aprenda ferramentas
Durante muito tempo, usei o IDE como um editor de código comum, com fácil navegação. E eu também tinha um chefe que programava exclusivamente no mcedit e costumava perguntar teatralmente: "Quem é você sem o seu IDE?" Ou eu tinha um terminal aberto 24/7, mas eu não sabia como trabalhar com ele. Durante muito tempo, vivi sem analisadores estáticos e fixadores de estilos. Ignorou as teclas de atalho. E eu não vi nenhum problema nisso.
Agora, estou inscrito em todos os canais oficiais do youtube de minhas ferramentas. É incrível o quanto você pode aprender com eles. Olho atentamente o processo de trabalho de meus colegas e geralmente adoto o que me pareceu interessante. Além disso, algumas ferramentas nos mostram pop-ups, onde eles mostram como melhorar o processo de interação. Não negligencie isso.
Participe do código-fonte aberto
Opensource - dói. Cada um de seus PRs será examinado em um microscópio. Toda variável, todo caractere. Cada teste será questionado. E este não é o líder da sua equipe, que: "Oh, bem, vamos ficar tão obcecados". Você não vai concordar com essas pessoas, não vai se queixar delas, não será esmagado pela autoridade delas. E eles nem pagam você. Por volta do vigésimo quinto comentário, eu realmente quero enviar tudo nafig.
Seja paciente! O Opensource é uma ótima oportunidade para aprimorar suas habilidades, trabalhando com os melhores programadores do mundo (embora dependa do projeto). Comece pequeno. Escolha alguma ferramenta ou biblioteca simples. Vá para a seção de problemas e veja o que você pode corrigir. Devo dizer que geralmente não há toxicidade no github. Se o seu PR estiver em pedaços, eles o farão de maneira muito construtiva. De qualquer forma, na minha experiência.
Acredite em si mesmo
De tempos em tempos, eu tinha situações em que queria largar tudo e ir trabalhar em um canteiro de obras. Carregue tijolos. Essa situação pode ser uma tarefa que não termina de forma alguma. O que mudou os requisitos diários. Ou uma tecnologia que eu não queria estudar. Ou integração de um serviço de terceiros, que carecia completamente de documentação. Ou apenas funcionalidade, para entender o que exigia a educação de um financiador, e todos os especialistas em produtos falam exclusivamente inglês. Eu surtei, procrastinei, parei e frustrei a raiva do gato.
Há um truque que agora me ajuda muito com essas tarefas. Eu sempre lembro que no final eu posso lidar com isso. Sempre lidou. E sempre será. Você só precisa sentar, estudar, pensar, classificar, fazer as perguntas certas às pessoas certas. O principal é acreditar em si mesmo e manter a calma. Em geral, talvez este seja o conselho mais importante com o qual terminarei o artigo. Mantenha a calma e acredite em si mesmo. Você pode lidar com isso.