Bem, encontrei tempo para compartilhar minha pequena história.

Prólogo

Comecemos pelo fato de que tenho 30 anos, tenho formação superior em química (não vou entrar em detalhes) e trabalho em uma fábrica há quase 8 anos. O trabalho era realmente bastante interessante, mas olhando para os meus colegas de trabalho, percebi que não queria trabalhar aqui durante vinte anos até me aposentar. Não é assim que quero passar a minha vida. Quero acrescentar também que tenho uma família, incluindo dois filhos (o mais velho tem 6 anos, o mais novo tem 1 ano) e, previsivelmente, uma hipoteca. Por fim, decidi tentar mudar para outro lugar, para outra fábrica com salários mais altos e crescimento real na carreira. Eu tinha criado raízes na primeira fábrica, então foi difícil sair, mas eu tinha me decidido. Minha viagem a São Petersburgo durou um mês. Eu estava oficialmente trabalhando lá há uma semana quando percebi que a situação das fábricas em nosso país (Sviatoslav é da Rússia – nota do editor) é desanimadora em sua maior parte. Voltei para minha cidade natal. Não queria voltar atrás, pois me parecia que era um retrocesso. Neste ponto, decidi que se eu mudar minha vida - e mudar radicalmente! Por cerca de uma semana ponderei sobre qual linguagem de programação escolher e, bem, a escolha recaiu sobre Java. Depois disso, comecei a procurar cursos. A realidade é que existem muitos cursos bons, alguns até com preços razoáveis, mas tive um problema: estava super motivado e tinha muito tempo para estudar, mas meu colchão financeiro duraria no máximo 3-4 meses. Todos os cursos que gostei tinham duração de meio ano ou mais, com duas aulas por semana (na maioria das vezes). Mas então uma amiga me recomendou o CodeGym depois de saber que é um recurso muito bom. Vi que esse curso tem tudo que eu precisava:
  • uma assinatura com materiais e tarefas de aprendizagem;
  • sem limite de tempo - eu poderia estudar tanto quanto minha agenda (que era aberta) e minha vontade (como falei acima, estava super motivada) permitissem.

Parte 1: Em busca do conhecimento

No dia 26 de novembro de 2019 me inscrevi e iniciei meus estudos. Direi desde já que houve dias em que fiquei 14 horas seguidas sentado, estudando, lendo todos os links relacionados, e tentando encontrar soluções mais bonitas (sem espiar a Ajuda). Só quando pensei que minha solução era a melhor é que procurei a Ajuda. Muitas vezes fiquei surpreso com as soluções ainda mais bonitas e concisas. No final de janeiro, ao chegar ao nível 17, resolvi começar a fazer entrevistas, avaliar minhas habilidades e ver o que o mercado quer. Acontece que ninguém realmente me respondeu, mas houve um escritório que me aceitou como estagiário probatório não remunerado: o primeiro mês não foi remunerado, o segundo e o terceiro incluíram uma pequena bolsa. Em seguida, haveria outra entrevista baseada no meu desempenho após três meses e, se o estágio fosse bem-sucedido, então o emprego.

Parte 2: Correndo para a batalha

Meu estágio envolveu escrever um plugin para Chrome com back-end Java para automatizar as tarefas rotineiras de um dos departamentos internos da empresa. Tive um mentor maravilhoso e com muito conhecimento, o que considero também importante. Basicamente, para não me perder no mato, contarei agora sobre a pilha de tecnologia que utilizei e, no final do artigo, fornecerei vários links que se mostraram muito úteis para mim.

Pilha de tecnologia:

Java 11 (o projeto foi escrito totalmente do zero), Spring (Boot, Security, OAuth2); Usei o MongoDB como banco de dados; para testes automatizados, usei AssertJ, Mockito e Spring-boot-starter-test; e usei o fluxo bastante popular do GitHub (veja este artigo ). Aliás, se você tem dificuldade com o inglês, então este é o momento de aconselhá-lo a aprendê-lo. Meu nível de fluência é A2, mas procuro sempre ler artigos em inglês (sem usar tradutor, claro). Essa foi a minha maior dificuldade ao iniciar o projeto de estágio, pois tive que trabalhar com um CRM de terceiros e toda a documentação estava em inglês. Além disso, ao trabalhar com Spring, é melhor ler a documentação original. É muito bom e detalhado. Além do mais, quase toda a documentação é em inglês (um pouco do Capitão Óbvio). Além disso, meu mentor me disse para escrever todos os comentários no código e na documentação da API em inglês, então repito mais uma vez: aprenda inglês, se você não for um falante nativo! Mesmo que você não vá trabalhar com clientes estrangeiros ou viajar para o exterior, essa habilidade simplesmente simplificará muito seu estudo e desenvolvimento.

Parte 3: Resultado

Esta parte será bem mais curta :) No final do estágio, passei com sucesso na entrevista de avaliação de desempenho e consegui um emprego, onde continuei a trabalhar neste projeto. A primeira etapa seria implementada no âmbito do meu estágio, mas foram três etapas ao todo. Com o início da pandemia, muitos projetos comerciais desapareceram e eu implementei todas as etapas e todas as outras ideias/desejos que poderiam existir para este projeto. Havia outras tarefas, mas, como dizem, isso é outra história.

Parte 4: Houve um final feliz, embora as coisas estejam longe de terminar ;)

Em meados de julho, recebi uma ligação e me perguntaram se eu estava procurando trabalho. Eu havia postado meu currículo, embora ele não fosse atualizado há muito tempo. Eu decidi me testar. Passei por 3 etapas: uma tarefa de teste, uma entrevista técnica e uma entrevista com o chefe. Eles me enviaram uma oferta e... Esta foi uma oferta que eu não pude recusar. Eu entendo, é claro, que em seus primeiros empregos você tentará entrar onde quer que eles o levem, mas mesmo assim. Meu primeiro emprego foi como terceirizado, mas meu trabalho atual é na indústria alimentícia. Também me contrataram como desenvolvedor júnior, mas não estou nem um pouco chateado, pois há espaço para crescer tanto em conhecimento quanto em dinheiro.

Epílogo

Então, amigos, não desanimem. O principal é se decidir e não se desviar do caminho. No meu caso, eu tinha uma responsabilidade enorme de cuidar da minha família e uma vontade de mudar alguma coisa na minha vida, de começar a fazer o que realmente gosto. O desenvolvimento de software é especialmente bom, porque você pode subir na carreira, independentemente de haver uma vaga mais alta na sua empresa, independentemente de alguém ter se aposentado depois de trabalhar por vinte anos e independentemente de você ter conexões pessoais para conseguir o emprego. trabalho superior. Na nossa área tudo está em nossas mãos!

Aqui estão alguns artigos que gostaria de compartilhar:

  • Entendendo a arquitetura . Pessoalmente, li este artigo 4 vezes enquanto estávamos trabalhando na arquitetura de um aplicativo futuro. Eu uso a palavra "nós" porque meu mentor verificou tudo e enviou de volta para correções (ou seja, ele fez revisões de código). Na primeira vez não entendi muito. Então eu li três meses depois e descobri que entendi o porquê. Posteriormente, li mais 2 vezes para solidificar e assimilar totalmente todas as informações.
  • Aprendizagem interativa do Git .
  • Recomendo que todos aprendam como trabalhar com streams. Eles são realmente gloriosos: muitas vezes você pode substituir grandes volumes de código por um pequeno fluxo.
  • Documentação da primavera.
  • Como trabalhei com um banco de dados não relacional, e a maioria das empresas (especialmente as grandes) trabalha com SQL, em meu tempo livre tentei resolver pelo menos alguns problemas envolvendo a construção de consultas SQL. Existem muitos sites diferentes para isso.
  • Eu também recomendaria ler sobre como escrever testes (Assertj, Mockito), mas não me lembro de nenhum artigo bom, apenas documentação.
  • E quando você estiver desenvolvendo um aplicativo (mas agora já ultrapassamos o nível iniciante), tente usar padrões de design . Pelo menos dê uma olhada rápida nos padrões bem conhecidos. Isso será útil quando você começar.
Mais uma vez, desejo a todos boa sorte na realização dos seus sonhos!