JavaRush /Blogue Java /Random-PT /Minha história de sucesso

Minha história de sucesso

Publicado no grupo Random-PT
  1. Olá a todos, estou escrevendo do meu primeiro local de trabalho (mais precisamente, do local do meu primeiro estágio remunerado como desenvolvedor java júnior) antes do início do dia de trabalho.
  2. Minha história de sucesso - 1
  3. Tenho 39 anos (!), comecei a programar como hobby enquanto tinha uma folga do trabalho, algum dinheiro, cuidando de um filho recém-nascido, voltando para minha família em Moscou e algumas outras coisas. Antes trabalhou como financeiro, e participou muito na implantação de sistemas contábeis em diversos 1Сах.

  4. No começo tentei aprender a programar sozinho, e até começar com Kotlin (gostei muito da linguagem em si e de quem a desenvolve - JetBrains). Mas rapidamente, provavelmente em uma semana, percebi que sem Java não há nada para fazer em Kotlin, e é necessário algum tipo de curso; cavar por conta própria é muito ineficaz. Encontrei, não me lembro como, JavaRush, me cadastrei nele no dia 30 de junho (olhei pelo correio agora). Já no dia 5 de julho comprei uma assinatura (durante estes 5 dias completei os primeiros 10 níveis, dois níveis por dia). Concluí, na minha opinião, 3 meses, 25 ou um pouco mais de níveis (completamente, fuçando nos detalhes, baixando uma pequena parte das soluções, mas com certeza entendendo-as detalhadamente, na verdade).

    Lembro-me da grande emoção que senti quando finalmente analisei expressões matemáticas. Essa tarefa foi um grande salto, um avanço na compreensão de mim mesmo como programador.


  5. Optei por passar primeiro pelas coleções e depois pela parte de simultaneidade. Analisei o conteúdo e decidi que era mais interessante e útil lidar com coleções. Levei, na minha opinião, cerca de dois meses para completar outros 10 níveis (até o 35º em algum lugar).

  6. Em algum lugar no meio da concorrência ficou claro que era quase inútil continuar a terminar. Tornou-se mais interessante analisar problemas na seção de ajuda (isso foi útil para mim - aprendi a analisar o código de outras pessoas e estruturei meu conhecimento) do que fazer exercícios. Então me propus a fazer um projeto web usando Spring + Hibernate + Mayesquel + algum tipo de mecanismo de template (no final fiz isso usando Thymeleaf). Abri os níveis restantes apenas para descobrir as tarefas mais deliciosas.

    Se tivesse havido estágio naquele momento teria sido óptimo, mas para o que estava a decorrer naquele momento já era tarde e para o seguinte era cedo.


  7. Como resultado, passei um mês e meio desmontando tudo isso (a pessoa no exemplo do vídeo fez a mesma coisa em provavelmente 50 minutos, se tanto). Fiz dois serviços web de teste no total. Uma delas é pura repetição do que estava no vídeo (a lista padrão de livros é análoga a um teste de estágio). A segunda é mais ou menos parecida com a tarefa real, a parte backend do site para cálculo do custo de tetos falsos com controlador de descanso (seguindo o exemplo das reais necessidades dos amigos). E na primavera, e não na primavera nua. No segundo, por diversão, até inseri aulas em Kotlin (em geral, recomendo fortemente o Kotlin, com certeza vou me aprofundar mais).

  8. Depois que basicamente fiz um web service do zero (não vamos falar nada sobre o fato de não ter autorização, gerenciador de transações, testes normais da web part, etc.), ficou claro que era necessário definir currículo e procurar emprego em junho. A essa altura, comecei a entender que gostava muito de programar e que programadores eram realmente necessários. Então (em meados de janeiro, depois das férias) finalmente escrevi um pequeno currículo em inglês, retirando completamente minha experiência anterior (deixei apenas uma breve descrição em um parágrafo) e enviei para NN.

  9. O que começou é apenas um parágrafo. Não tive tempo de enviar pedido a ninguém, já tinha recebido 4 ofertas de empresas para entrevista e mais algumas cartas do RH com ofertas para considerar empregos diferentes (mas estas cartas não estão ao nível, por pessoas do meio). Não entendo por que isso aconteceu, acho que naquele momento houve um forte aumento de pedidos do Sber (2 em cada quatro - o próprio Sber, que geralmente convida todos que postam currículo, e seu contratante) para uma entrevista. Além disso, meu currículo provavelmente parecia bom.

  10. A primeira entrevista (Sbertech) foi brilhante. Ensinei-lhe muito bem o básico e o básico, o entrevistador disse que a segurança social é só uma bomba e com certeza vou encontrar um emprego, mesmo que não seja com eles. Mas o segundo (ao telefone) foi uma pena. Eu estava completamente perdido e sabia quase todas as perguntas ou poderia dar uma resposta sensata, como me lembrei mais tarde. Agora tem dois entrevistadores na Sbertech, um pensa que não sou mau, o segundo pensa que sou um idiota clínico. Foi uma boa lição levar as entrevistas a sério, caso contrário fiquei um pouco orgulhoso depois das ofertas e da primeira entrevista.

  11. É interessante que em 3 entrevistas (incluindo o local atual) praticamente não houve entrevista técnica - eles olharam de forma puramente humana como eu era, embora eu estivesse bem preparado, é claro. Lembro-me especialmente da empresa que me convidou apenas porque eu tinha mais de 35 anos. Eles têm uma atmosfera muito única. Quando perguntei ao gerente de desenvolvimento deles (bem mais velho que eu, bem old school) qual IDE eles usam (Intellij ou Eclipse, tem algum tipo de política nessa parte), ele nem entendeu no começo, depois respondeu “Ah , um editor de texto... Sim, eu não uso, é assim que escrevo código. Mas você pode usar qualquer coisa, sem problemas.” E ele definitivamente não estava brincando. Fiquei surpreso, para dizer o mínimo.

  12. Algumas semanas depois recebi um telefonema da Sbertech (justamente depois da primeira entrevista, eles têm um mar de departamentos lá, cada um recruta) com uma oferta de trabalho por aprox. 1,1 mil dólares em mãos por mês, considerando o bônus anual. Eu disse ok, eles começaram a processar a oferta. Esse processo leva um bom tempo, ainda olhei outros trabalhos. Naquele momento, me deparei com um anúncio no Javarash sobre recrutamento de estagiários para o grupo de empresas Smart. Escrevi que gostaria de bater um papo, nunca se sabe, quase imediatamente fui para uma entrevista. Tim Lead praticamente não fez perguntas técnicas (embora eu mesmo tenha descrito meu nível de forma bastante adequada, sem besteiras) e disse que estava pronto para me testar em um estágio remunerado. Concordei porque a Sbertech me incomodou um pouco (é claro que eu teria ido lá se não houvesse alternativas), além disso gostei do ambiente e do líder da equipe, além do escritório deles estar localizado a 7 minutos a pé do local onde alugamos um apartamento. Levei mais algumas semanas para organizar o cuidado das crianças e, na verdade, fui trabalhar no dia 28 de fevereiro.

  13. Agora eu (em paralelo com outro estagiário, ele é de outro curso) entendo o código do projeto principal da empresa e, paralelamente, sob orientação do líder da equipe, estou criando uma aplicação de treinamento, cujo único objetivo é é usar as tecnologias e técnicas básicas que existem de ponta a ponta, do banco de dados ao projeto do navegador, mas em pequena escala. No primeiro dia houve um pouco de pânico, mas já no segundo dia me envolvi na tarefa, agora é muito interessante, venho trabalhar antes de todo mundo, saio quase mais tarde que todo mundo, todos os dias sinto que ' estou melhorando minhas habilidades. Tim lead disse que era hora de passar para a tarefa real (fui contratado em 28 de fevereiro).

  14. Dicas para iniciantes:

    • Inglês. Tenho sorte de já ter inglês fluente (que sorte, nós, por exemplo, costumamos receber viajantes couchsurfing, meu inglês está melhorando - Deus o abençoe). Sem inglês em programação você é quase zero. Infelizmente é assim.

    • Parafuso. Durante meu treinamento, tive uma regra: nem um dia sem uma linha de código. E como padrão, passei várias horas por dia programando. Infelizmente (ou talvez não), não li nenhum livro. Mas assisti a muitos tutoriais em vídeo e palestras em conferências e realmente reli um mar de respostas sobre stackoverflow.

    • Ainda assim, coleções primeiro. Simultaneidade - de acordo com o princípio residual. Embora agora eu tenha um lugar em minhas verdadeiras habilidades de multithreading, trabalhar com coleções é muito mais importante, IMHO. Durante as entrevistas, a única vez que perguntaram foi: eu sei o que é um mutex e era tudo uma questão de simultaneidade. Mas com relação às coleções foi completamente diferente.

    • Certifique-se de fazer algumas dúzias de exercícios em sqlex.ru (de acordo com esquel, respectivamente). É muito simples depois de algumas dezenas de níveis no JavaRush, mas ao mesmo tempo é extremamente útil tanto para programação de back-end quanto para entrevistas.

    • Certifique-se de fazer seu projeto simples usando frameworks como spring-boot + hibernate + mayesquel + algum tipo de mecanismo de template (como timeleaf ou mustash). Ou acho que fazer um estágio será parecido, mas não posso recomendar nada aqui. Uma pessoa com uma teoria básica sobre Spring e um projeto concluído de programação é simplesmente o céu e a terra. Depois do projeto, os exercícios médios do curso passaram a ser praticamente infantis, os complexos - abaixo da média. Simplesmente aumentando a maturidade do programador.

    • É imperativo compreender e adicionar processamento de transações a este projeto, não apenas no nível “adicionar a um método no serviço @Transactional”. O tema das transações esteve constantemente em entrevistas. Lamento não ter desenterrado o sqlex.ru e as transações Spring e Hibernate antes de procurar um emprego. Uma pessoa transacional falará com os entrevistados para uma posição de back-end muito, muito melhor.

    • Se alguém tiver alguma dúvida ou problema, escreva, com certeza tentarei ajudar da melhor maneira que puder. Principalmente aqueles que estão fazendo seu primeiro projeto na primavera. Ficarei feliz em conhecer alguém em Moscou.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION