JavaRush /Blogue Java /Random-PT /Uma incrível jornada para Valhalla, ou como um historiado...
Denis Sidorenko
Nível 25
Новосибирск

Uma incrível jornada para Valhalla, ou como um historiador-arquivista se tornou um desenvolvedor Java

Publicado no grupo Random-PT
Palavras introdutórias Olá a todos! Meu nome é Denis e, no momento em que escrevo este artigo, completei 30 anos há apenas algumas semanas. Há exatos 6 meses trabalho como desenvolvedor Java em uma das maiores fintechs da Rússia. Escrevo código em Java 8, ao mesmo tempo que estudo React, para não perder a velocidade do meu navio e navegar mais longe. Honestamente, ainda não acredito no que está acontecendo. Bem, agora - para a história em si. A história foi escrita de joelhos. Caso seja constatado algum erro de digitação ou violação das regras de publicação, farei as correções. História de sucesso Um dia me vi na rua (no sentido literal da palavra): assim é a vida de muitas crianças dos anos 90 que ficaram sem pai. Nesse período da minha vida, meu único lazer era um CD player japonês e um single com o álbum do grupo Epidemic. Para diversificar de alguma forma minha vida, no inverno ia à biblioteca da cidade para me aquecer. Comecei a ler fantasia na biblioteca, mas um belo dia, quando cheguei à sala de literatura técnica, me deparei com o livro “The C Programming Language” de Brian Kernighan e Dennis Ritchie. Admirei a sintaxe da linguagem. Para mim isso parecia um padrão. Embora que padrão eu pudesse conhecer então? Eu não era ninguém e não havia como me ligar. Então fiquei muito interessado em aprender essa linguagem e me deparei com um livro dos irmãos Deitl, The C/C++ Language. Deixe-me fazer uma reserva agora mesmo, e provavelmente você já entendeu: como aprender um idioma sem ter um computador? Sim, eu nem tinha onde morar. Mas simplesmente estudei no papel, ou imaginei como funcionaria se eu tivesse pelo menos o “balde” de sempre. Tentei lembrar tipos de dados, estruturas, etc. A vida mudou muito quando apareceu um teto sobre nossas cabeças e o primeiro carro baseado em Intel Celeron. Claro, a criança, que não tinha visto nenhuma alegria na vida, pegou um PC e primeiro correu para brincar. Nessa época foi lançado o jogo World of Warcraft, ainda em versão beta. Morei então em Kupchino (distrito de São Petersburgo). A Internet era “super rápida” e as redes locais eram mais populares (onde jogávamos CS 1.6, Battlefield, etc.). Após o lançamento de World of Warcraft, as crianças da vizinhança queriam muito brincar juntas, e claro, sem pagar pela assinatura oficial da Blizzard. Aqui houve uma imersão maior em TI. Encontrei um emulador escrito pelos chineses em Delphi e funciona muito bem como servidor de WoW. No entanto, todos os comentários e documentação estavam em chinês. Depois de alguns ajustes, funcionou. Na Internet, encontrei entusiastas que analisavam pacotes de rede do WoW e escreviam seu próprio servidor para o jogo. Surgiu o famoso projeto Mangos, escrito em C++. Fizemos compilações de servidores prontas, instaladores com um clique e assim por diante. Não existiam manuais na Internet - apenas um manual e um guia. Escreveu guias para outros. Todo o período da infância brevemente descrito acima ocorreu durante os chamados “anos escolares”. Eu não fui para a escola e de alguma forma terminei o 11º ano com todas as 3 séries, exceto 4 séries de história. Não tive tempo de caminhar quando a questão era simplesmente sobreviver. Por algum milagre, não tendo sido reprovado e aprovado no Exame Estadual Unificado em 2008, entrei no departamento de história, com especialização em historiador-arquivista. Para onde mais eu poderia ir? Conhecimento zero de matemática, física e química também. De que tipo de conhecimento podemos falar? Devo me tornar um engenheiro? Você nem precisou tentar matemática introdutória. Enquanto estudava em tempo integral durante os primeiros 3 anos na Faculdade de História, no meu dormitório eu tinha livros exclusivamente sobre código. Isso inclui .NET FRAMEWORK 3.0 de Andrew Troelsen e livros sobre SQL, JS, etc. Chegando às aulas sobre o Antigo Oriente, pensei no código. No entanto, a agitada vida estudantil e as escavações arqueológicas ativas me mantiveram ocupado e sobraram pouco tempo para meu passatempo favorito. Surpreendentemente, naquela época, mais de 6 anos se passaram desde que toquei pela primeira vez na linguagem C, mas continuei interessado apenas por curiosidade. A famosa era dos “advogados e economistas”. Não há campanha publicitária de “vá para TI”, mas você ainda está interessado. Tendo recebido uma bolsa de Oxford no final do terceiro ano, fui forçado a deixar a Rússia e fui para a Itália (história familiar). Naturalmente, também tive que abandonar os estudos. Depois de passar 3 anos na Itália, aprendi a maravilhosa língua italiana, mas esqueci completamente tudo que aprendi antes da Itália. Quando voltei e consegui um emprego como bartender em um restaurante italiano em minha cidade natal, São Petersburgo, comecei a aprender PHP. Naquela época, eram populares cursos do especialista, o famoso professor Igor Borisov (com voz de Galygin) sobre PHP, JS e assim por diante. Enquanto estudava essas tecnologias, procurei ativamente escrever meu próprio fórum, mas qual é o objetivo? Afinal, existem motores excelentes para isso. Mas, novamente, foi simplesmente interessante. 8 meses depois de voltar para minha terra natal, lembro-me da universidade que deixei e do tempo gasto nela. Vou lá e me recupero, mas como historiador-arqueólogo. Depois de estudar literalmente 3 meses, tomo uma decisão extremamente estranha - mudar de São Petersburgo para a cidade de Zlatoust (região de Chelyabinsk). Tendo um pequeno colchão financeiro e não trabalhando, estou tentando compreender o que está acontecendo. O que? Para que? Por que? A mudança para o sertão foi de natureza familiar; queria encontrar meu pai, que nos deixou na rua no “lindo” ano de 1992. Enquanto tentava encontrar um emprego de meio período, continuei a mexer no PHP. Compreendendo a futilidade desta empresa naquela época e com muita vontade de me formar em uma universidade, mudei-me para Chelyabinsk e me transferi para uma universidade local - SUURSU (sim, a mesma onde estudou Evgeny Roshal, o criador do WinRAR). Mas para grande surpresa da direção “história” não existe, ou melhor, não existia formato de correspondência. Surgiu uma escolha: teologia e ciência política? Claro, escolhi a segunda opção. Pela primeira vez, JavaRush aparece no horizonte. Os amigos aconselham você a passar pelos primeiros 10 níveis (sim, eles ainda eram gratuitos naquela época) e, se gostar, continue. Sinceramente, só completei os primeiros 7 níveis, percebendo que mesmo tendo chegado ao 10, simplesmente não tinha dinheiro além disso. Quando descobri o Java pela primeira vez, tive sentimentos confusos todos os dias. Pareceu me quebrar e causar rejeição. Essas sacolas, embalam tudo em sacolas. Chamei a classe Dog, por favor, e o nome do arquivo é o mesmo. Após o “caos” e o poder do C++, a ortodoxia Java era extremamente incomum. A velocidade de tudo isso deixou muito a desejar. Em geral, honestamente, corri para esquecê-lo como um horror silencioso e, mesmo assim, olhei novamente para C#. Em 2007, lembro-me de quando estava lendo um livro sobre .NET FRAMEWORK 3.0 e pensei comigo mesmo: “Certamente isso pode ser usado para escrever jogos interessantes.” Como se antecipasse o desenvolvimento ativo da Unidade e outras coisas. Claro, não sem a ajuda de C++. Mas vamos voltar à história do Java. Tendo feito minha primeira tentativa no JavaRush e parado no nível 7, mergulhei nas humanidades do estudo da ciência política. Escrevi artigos científicos e só em meus sonhos tentei compilar o código. Mal havia dinheiro suficiente para sobreviver. Tempos difíceis, é claro. Mas não sem a ajuda de Deus concluí os estudos e defendi o meu diploma. Imediatamente após minha defesa, me ofereceram a inscrição em um programa de mestrado, mas não em ciências políticas, mas em sociologia. A forma orçamentária de educação me atraiu e eu concordei. Aqui farei imediatamente uma reserva (estou omitindo dois anos da minha vida): quando, depois de começar a estudar PHP, conheço um jovem designer, de mãos dadas fazemos pedidos em um site freelance. Ele faz o design, eu faço o layout. Esta é apenas uma pequena experiência no frontend. O mestrado em sociologia no SUSU já parecia uma busca mais aplicada e prática. O curso incluía matemática superior, matemática. análises, estatísticas, etc. (quase tudo o que está agora no roteiro da Ciência de Dados). Até Python estava no final do meu mestrado. E justamente neste momento, início do segundo ano do mestrado, entendo que não quero muito trabalhar com isso, e a demanda por “sociologia” é insignificante. Estou olhando novamente para o desenvolvimento e novamente escrevendo para amigos que aconselharam JavaRush uma vez. Demorou 3-4 anos desde a primeira tentativa. Para minha grande surpresa, os caras já trabalham como desenvolvedores Java, em posições intermediárias. Eles não escreveram histórias de sucesso, mas na comunicação pessoal fiquei surpreso que depois do nível 18-19 eles conseguiram empregos como estagiários ou juniores. Comecei a pensar de novo, vagando, correndo... Observando as avaliações de Tiobe, Pypl, etc. o dia todo. Vídeo no youtube - “Qual linguagem de programação escolher primeiro em XXXX?” Só agora, com 6 meses de trabalho como desenvolvedor, é que percebo o absurdo dessa pergunta. O número de vagas no hh.ru na minha região (na época, Chelyabinsk) deixou muito a desejar. Um dos amigos “bem-sucedidos”, que já havia conseguido um emprego em desenvolvimento, disse em texto simples: “pare de pensar, pague uma assinatura do JR, suba para o nível 20, então vamos te ajudar com a base Spring, e então vai depender de você.” Lembro-me deste dia maravilhoso, 11/09/2019 - comprando uma assinatura anual em uma promoção por 5.800 rublos... Naquela época eu nem conseguia pensar que essa compra renderia x100500 vezes. Foram 5 meses de viagem. Ainda me lembro do 8º nível do JR (Java Syntax Quest): acabou sendo um ponto de viragem. Muitos que estudavam paralelamente a mim naquele momento não aguentaram a complexidade das tarefas e deixaram JR com as palavras: “ah, que diabos, vou começar a investir e vou receber uma renda passiva de 200 mil rublos por mês .” Até o momento, todas as pessoas que conheci que desistiram no nível 8 não se tornaram investidores, milionários ou mesmo classe média. Às vezes, eles vêm com as palavras: “empreste-me algum dinheiro”. Como me senti no 8º nível (Sintaxe Java) no JavaRush: Uma incrível viagem a Valhalla, ou como um historiador-arquivista se tornou um desenvolvedor.  - 1 Um amigo com quem passamos de nível ombro a ombro até o nível 20, sendo 9 anos mais velho que eu, conseguiu um emprego na Luxoft com sucesso. Acho que ele ainda terá tempo para escrever sua história. Se não entrarmos aqui na fábula de Krylov, então a moral e o resultado são os seguintes: 1) A primeira segurança social foi na empresa Zaycev.net em Chelyabinsk. Falhei com sucesso (1,5 horas houve perguntas extremamente estranhas, os 20-25 minutos restantes tentei fazer o teste no papel). Obrigado pessoal pela experiência da primeira entrevista. O teste incluiu uma pergunta padrão sobre os princípios OOP, seguida pela tradução de um sistema numérico para outro. Existem 6 tarefas no total. A última coisa é escrever um algoritmo de classificação - eu simplesmente não consegui fazer isso, porque... travou no dia 5 (tarefa: “O que esse código faz?”) e o tempo acabou. 2) Após uma falha no serviço de seguridade social em março de 2020, a grande depressão começou em zaycev.net – a pandemia de Covid-2019. Um momento extremamente controverso. Como será a defesa da dissertação? o que fazer a seguir? Onde trabalhar? Além disso, minha dacha pegou fogo, que comprei por algumas centenas de milhares na esperança de construir minha própria casa. Pelo menos alguns, só para não ficar por aí aos 30 anos. 3) No meio de uma pandemia, decido me mudar de Chelyabinsk para Novosibirsk (o que tenho a perder? A dacha pegou fogo de qualquer maneira). A viagem em si foi “divertida”, a região de Kurgan está fechada para entrada e saída. Medo de que a polícia o detenha e o mande de volta para casa com as palavras “você não pode ir para Novosibirsk sem registro”. O chamado período do regime de “ autoliquidação ”. 4) Depois de me mudar para Novosibirsk, não consigo encontrar emprego. A galera maravilhosa da empresa 2GIS, após a 4ª etapa da entrevista, me diz que sinto muito, desperdiçamos seu mês, mas já encontramos outra pessoa (esta foi uma tentativa não de conseguir um emprego em desenvolvimento, mas um vaga regular para telefonista); 5) Em seguida, consegui um emprego como vendedora na maravilhosa loja Lenta, porque é verão de 2020, e essa opção parecia um conto de fadas. Ex-proprietários de restaurantes são forçados a usar sacolas Yandex.Food amarelas e trabalhar em pé. Eles sobreviveram o melhor que puderam. Os eventos são recentes, lembre-se deles você mesmo. 6) Um amigo com quem resolvemos problemas em JR (citado acima), já conseguiu emprego (após 5 meses de estudo em JR), me convida para participar de um projeto open source em Java. Gostei da ideia de receber e compartilhar experiência, mesmo que não seja pago para isso. Houve uma pessoa neste projeto que organizou esse “movimento” em si. Ao mesmo tempo, ele trabalhou como TeamLead QA em uma grande empresa em Moscou. Ele gostou das minhas ideias para o projeto e de como usar o Spring da melhor forma possível (naquela época eu só sabia o básico). 7) Chegou o dia em que o mesmo organizador do projeto open source perguntou: posso dedicar mais tempo? E onde eu trabalho? Ao ouvir as palavras “Lenta” e o consultor de vendas, ele me recomendou à sua empresa para o cargo de Mobile QA. Dispositivo GPC. Eu não sabia nada sobre Selenium, Appium, etc. Mas em apenas algumas semanas aprendi a essência de escrever autotestes para telefones celulares baseados em Android e iOS. O salário base, superior a US$ 1.000, me impressionou muito. A partir daquele momento a vida tomou um rumo completamente diferente. 8) Agosto de 2020 está chegando, literalmente há 1,5 meses estou trabalhando na empresa como QA. Era uma noite de agosto,Júniordo título do currículo. Também acrescentei um pouco de experiência comercial em um novo local, meu progresso no JavaRush (naquela época era nível 22). Ele também indicou que eu estava participando de um projeto de código aberto e enviou um link para a única tarefa de teste em Zaycev.net no github (aliás, sim, fiz isso por um mês, e aparentemente fiz um caso real - é era um serviço meteorológico). 9) Chega o mesmo Dia X quando, na “próxima” manhã de agosto, verifico minha correspondência. Vejo uma mensagem de hh.ru informando que uma grande empresa deseja se comunicar com você. A primeira reação foi: "Sim? Sério? Você está brincando? Estou enviando meu currículo para você há que ano e só agora?" Dizer que estava me preparando para a entrevista seria um eufemismo. Só não me preparei, percebendo que ou meu conhecimento atual era suficiente, ou sinto muito, amigo, mas você ainda tem que ensinar e ensinar. 10) Chegou o dia da ligação do Zoom com o RH. Um minuto antes da reunião comecei a pensar: vale a pena me conectar agora e passar vergonha? Mas por que pensar, não tenho nada a perder: no Zaycev.net já estou no limite, mas preciso de experiência em entrevistas. Depois de fazer uma xícara de café, entrei exatamente na hora marcada. Para minha grande surpresa, duas pessoas estavam me esperando: 1) Product Owner e 2) Team Lead. Contei uma história semelhante à que você leu até agora. Ele respondeu perguntas como: “Por que você fez pós-graduação?”, “Por que você voltou da Itália para a Rússia?”, “Por que você trocou a vida em Milão pela vida em Novosibirsk?” Naquele momento, literalmente um dia antes da ligação, eu estava configurando o servidor Wildfly em Debian 9 puro, e com essas palavras encerrei meu mini monólogo na entrevista. Após uma breve pausa, percebi que a conexão havia ocorrido, e foi brevemente anunciado: “Você concorda em fazer um teste e, se tiver sucesso, iremos contratá-lo?” Minha resposta foi: “Sim”. PS: Fiz o teste em alguns dias e, ao mesmo tempo, continuei trabalhando como controle de qualidade. A tarefa foi bastante interessante: era necessário escrever um serviço em Spring puro, onde uma solicitação fosse recebida como entrada do controlador, era necessário implementar várias camadas DTO, e no repositório, receber dados não do banco de dados, mas de json, cuja estrutura eu mesmo tive que criar. Quem estiver interessado nos detalhes da tarefa e sua solução, escreva-me uma mensagem pessoal: não sei até que ponto será legal a publicação deste material. Após enviar o trabalho para avaliação no mesmo dia, recebi um “Sim” da empresa que me convidou. Tornei-me oficialmente um desenvolvedor Java. Tive que omitir muita coisa para não aborrecer vocês com o texto. A beleza de toda a situação é que paguei a assinatura do JavaRush no dia 11/09/2019, e recebi a oferta no dia 11/09/2020 - exatamente 1 ano, com uma longa pausa durante o início da pandemia e preparação para defendendo minha tese de mestrado. Até o momento, ganhei uma experiência inestimável no desenvolvimento de aplicações comerciais. 6 meses deram mais que anos de estudo. Mas isso seria impossível sem experiência prática em JavaRush (problemas e mais problemas). Agora com toda minha gratidão ao projeto JR procuro ajudar meus amigos quem, como eu, deseja entrar no desenvolvimento Java, dou algumas assinaturas premium anuais. Graças ao trabalho, não vou trabalhar. Não posso nem chamar isso de trabalho: gosto de tarefas difíceis. Durante esse período, tecnologias de Kafka a Hadoop foram estudadas, e a pilha pessoal de tecnologias não para de ser reabastecida. Os meus anos de estudante, com uma duração total de quase 9 anos, incutiram-me as competências de perseverança e uma vontade constante de ensinar e aprender coisas novas. Sem isso, milhares de dólares por mês não irão motivá-lo particularmente. Definitivamente não vale a pena entrar neste campo apenas por dinheiro. Era uma vez, morando na rua, nem imaginava que compraria uma casa para mim em uma zona ecológica dos espaços abertos da Sibéria. Fazer o que você ama, receber um salário decente - graças ao qual o modo de sobrevivência acabou. Lembro-me da famosa frase de Petyr Baelish da série Game of Thrones: Uma incrível viagem a Valhalla, ou como um historiador-arquivista se tornou um desenvolvedor.  - 2 Quase 30 anos de sobrevivência, em exatamente um ano de pandemia, tornou-se Valhalla, pelo qual todos os vikings também se esforçam desenfreadamente. Se você está apenas pensando em aprender Java? Eu preciso disso? Serei capaz? Basta rolar até o rodapé da página principal do JR e ler estas três palavras: Programadores não nascem. Bloco de conselhos Que tipo de história poderia existir sem conselhos? 1) Não recomendo se aprofundar nas tarefas dos jogos, desde que você precise se instalar o mais rápido possível. Por que? Mas porque você vai gastar muito tempo em algo que, na verdade, não precisa. Mas aprender Spring o deixará mais perto de seu objetivo com muito mais rapidez. ( No entanto, se você tiver tempo, tiver uma vida doce e um teto sobre sua cabeça, poderá fazer alguns jogos ). Mas repito: Java não é sobre gamedev. Ah, sim, em geral, esqueça de jogar no seu computador, desinstale o Steam em seus telefones e outras mídias. Joguei The Witcher novamente somente após 5 meses trabalhando como desenvolvedor. 2) Gaste mais tempo em estruturas e coleções de dados (a primeira é que você precisará delas ao realizar tarefas de refatoração de código); 3) Você só pode aprender SQL antes de ingressar - se planeja passar em uma entrevista. Fume o restoa caminho do escritório. O melhor recurso no momento em RuNet: sql-ex.ru 4) Spring. Sim, sim, já é como Java-core. Desde que você queira conseguir um emprego. O vídeo-curso de Alishev no Youtube e alguns artigos sobre Habré foram suficientes para mim. 5) Algoritmos para que salte? É improvável, mas não faria mal nenhum conhecer alguns tipos comuns. Ainda não li o livro inteiro de Grokai, Algoritmos. 6) Os livros que se revelaram extremamente úteis foram D. Bloch - Java Effective Programming (3ª edição) e R. Martin - Clean Code. Ainda não li “The Philosophy of Java” de Bruce Eckel (parei na página 150). 7) Participe de qualquer movimento onde possa ganhar experiência. Código aberto, seu próprio projeto favorito, talvez um estágio. Claro, reflita atividades úteis em seu currículo: em geral, “penteie” seu currículo. 8) Você não conseguirá capturar insetos do lago sem dificuldade.... Se você honestamente passar o 8º nível (sintaxe Java) no JavaRush, incluindo tarefas adicionais, saiba: você quase se tornou um gato Java. Então será um pouco mais fácil. 9) Como se preparar para entrevistas? Que Odin me perdoe por abrir o baú do tesouro, aqui está o link: https://github.com/enhorse/java-interview 10) E não se esqueça de passar pelos tópicos de Lambda e Stream API em Java (de preferência antes a entrevista, mas com mais frequência para um trabalho mais produtivo desde os primeiros dias do seu dispositivo). A princípio você não entenderá o que é ou com que frequência será usado. Porém, depois de estudar o assunto, você vai adorar os streams de todo o coração. Obrigado por ler meu conto. Terei o maior prazer em responder suas dúvidas, assim como principalmente caras “gostosos”, em convidá-los para minha empresa para um estágio ou direto para o trabalho, dependendo do seu conhecimento atual (detalhes no PM). Eu esqueci completamente. Em março de 2021, havia uma enorme escassez de pessoal para desenvolvedores Java no mundo. Os chefes das empresas são obrigados a pagar para que você esqueça por um tempo o consumo e se digne a sair do sofá e se tornar um desenvolvedor. Só porque alguém começou a aprender um idioma e atingiu o nível 3-4, isso não significa que você não terá lugar no mercado. Você será aspirado (literalmente) assim que dominar pelo menos o básico do Java Core. A globalização, que nos levou à digitalização (olá Cyberpunk), não precisa apenas de um exército de desenvolvedores, mas de legiões de gatos Java! Ah, sim, eles continuam a escrever novos projetos em Java, e não apenas a oferecer suporte a legados. É preciso ser um guaxinim super preguiçoso para não entrar no desenvolvimento hoje, em 2021. As empresas estão esperando por você. As empresas estão dispostas a pagar pelo seu treinamento. Basta dar um passo em direção a eles! Não tenha medo! Agori!
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION