Como se tornar um desenvolvedor Java em 1,5 anos

Meu nome é Sergey, tenho 40 anos e agora trabalho como desenvolvedor Java em uma empresa alemã. Estamos desenvolvendo software para cervejaria avaliação de riscos financeiros e de crédito. Este é o meu primeiro trabalho como desenvolvedor. Antes disso, trabalhei na área de suporte de TI e integração de sistemas. Em 1º de fevereiro de 2019, meu período de avaliação de seis meses terminou e eu tenho um contrato perpétuo em mãos. Quero compartilhar minha experiência sobre como aprender Java independentemente, de forma a conseguir um emprego.



Esta é a minha área de trabalho. Estamos autorizados a beber cerveja durante o horário de trabalho, estamos na Alemanha.


Meu primeiro artigo: “ Emigração de TI com a família. E especialmente a procura de emprego em uma pequena cidade na Alemanha, quando você já está lá


Meu segundo artigo: " Conseguir um emprego na Alemanha será mais fácil ".


Isenção de responsabilidade


Direi imediatamente que todo tipo de "aprende a aparecer em 10 dias" (21 dias, 30 dias etc.) é uma utopia. Não há pílula vermelha para entrar rapidamente na matriz. Mas por um ano ou dois em paralelo com o principal local de trabalho - é bem real.


O que eu tinha no meu ativo antes de começar a aprender Java


No começo, quis nomear o artigo "Como se tornar um desenvolvedor Java em 1,5 anos a partir do zero ", mas mudei de idéia. Eu vim para a programação não de um campo completamente diferente, mas de TI. Mas não trabalhei em desenvolvimento, mas em apoio. É provável que não seja fácil para um caminhoneiro repetir meus passos para se tornar um programador. Embora, se minha esposa tiver 34 anos, se retire de ciências humanas puras para um desenvolvedor (ou testador), escreverei outro artigo.


Vale dizer que eu já sabia quando decidi me tornar um desenvolvedor.
Na universidade, por 2 semestres, estudamos programação em C e C ++. Nada de especial ou algum conhecimento profundo. Rendido - esqueci. Além disso, como estudante, escrevi alguns programas Delphi simples para mim. E é isso. Isso foi há mais de 20 anos.


Então minha carreira ficou assim:


  1. Administrador do sistema
  2. Engenheiro de sistemas
  3. Deputado chefe de departamento
  4. Supervisor
  5. Engenheiro desses. apoio

Eu não fiz programação diretamente.


Do meu jeito


Cursos online.


Comecei com as seguintes especializações em coursera.org :


Fundamentos de programação e engenharia de software Java - 4 meses

Fiz os seguintes cursos online:



Após essa especialização, eu era mais ou menos versado no idioma, mas escrever o programa em si ainda era irreal. O último projeto capstone que eu não fiz. Foi difícil pra mim. E para ser sincero, perdi meu entusiasmo. Eu fiz uma pausa.


Programação Java Orientada a Objetos: Estruturas de Dados e Além - 5 meses

Depois de um mês, decidi voltar às aulas novamente. Fui à especialização de cinco cursos:



Também não dominei o último projeto capstone. Mas o penúltimo curso da lista Dominando a entrevista de engenharia de software me ajudou a me preparar bem para a próxima entrevista. E pude escrever meu primeiro analisador despretensioso de um site simples em HTML puro. Já era bom, mas não impressionante.


Como codificar - 3 meses

O próximo passo foi esses dois cursos estranhos no edx.org :



Eu escrevi "estranho" porque não é sobre Java. Os autores do curso usam a linguagem de programação especial Beginning Student Language (BSL). Eu li em algum lugar que eles são mega úteis. Talvez esses dois cursos tenham me ajudado a entender melhor alguns truques para escrever programas e tenham se tornado uma boa ajuda para escrever testes de unidade em trabalho real. Mas, para ser sincero, você pode ignorá-los.


Estruturas de dados e algoritmos - 2 meses

Voltei ao coursera.org novamente e iniciei uma nova especialização, consistindo nos quatro cursos a seguir:



Mas dominou apenas os dois primeiros. O resto nem se inscreveu. Paralelamente a esses cursos, comecei a ler o livro da OCA, que será discutido mais adiante.


Carimbo no local

Naquele momento, percebi que estava marchando. A aprovação de novos cursos não produziu uma quantidade tão tangível de novos conhecimentos quanto os primeiros. I.e. o conhecimento parece ser acrescentado, mas isso não me aproxima de conseguir um emprego. Eu não entendia como com esse conhecimento você geralmente consegue encontrar um emprego. Eu ainda não conseguia escrever nada que seria mais complicado que o analisador. Bem, como é isso?!?!? Eu até tentei escrever meu serviço de análise de site com blackjack e prostitutas, mas depois de uma semana de desenvolvimento, meu projeto se transformou em uma confusão das aulas. E eu mesmo não conseguia mais descobrir o que escrevi lá. Além disso, ainda não entendi alguns aspectos do funcionamento da linguagem. E isso é depois que eu já passei cerca de um ano em todos esses cursos !!! Doze cursos on-line e um ano inteiro, Carl, você só pensa nisso. De fato, foi um fracasso. Eu tinha certeza de que em um ano eu poderia me tornar um desenvolvedor graças a esses cursos. Eu estava enganado. Eu precisava de um plano B.


Alternativa

Comecei a procurar cursos que me ajudassem a obter algumas habilidades práticas que são exigidas no trabalho real. Mas não havia nada sensato, ou valia a pena dinheiro decente. Os mesmos cursos da otus custam 50.000 por seis meses e as avaliações são contraditórias. Eu não estava preparado para tais despesas. Eu estava pronto para cavar sozinho e estava procurando como isso pode ser feito de graça ou de forma muito barata. Como resultado, todos os cursos on-line que encontrei foram divididos em duas categorias:


  • O primeiro é projetado para iniciantes ou pessoas com treinamento zero. Com a ajuda deles, você alcança o nível de "três com menos". Sou eu! Isso é sobre mim!
  • O segundo é para "mocinhos" com experiência profissional que desejam se tornar "excelentes alunos". Como estes: "Como escrever microsserviços em Java para projetos de alta carga usando o WildFly Swarm." O que é isso tudo ???

E entre eles um vazio. Bem, onde estou e onde estão todos esses microsserviços ??? Descobriu-se que para os "trochiks" não há nada. Ou há, mas por um bom dinheiro. E como se tornar um "mocinho" de graça, sem registro e SMS, geralmente não é claro.


Certificação Oracle


Então decidi me tornar um desenvolvedor Java certificado. Porque a frase "eu sou um programador profissional de Java" parece muito legal e deve derrotar o futuro empregador no local !!! De qualquer forma, então pensei tão ingenuamente.


OCA: Programador Java Certified Associate Oracle SE 8 - 2 meses

Para isso, comprei um livro:


OCA: Oracle Certified Associate Java SE 8 Programmer I Guia de Estudo: Exame 1Z0-808

Levei cerca de 2 meses para dominar este livro. Ela realmente abriu meus olhos para muitos aspectos e me fez entender como a linguagem funciona em detalhes. Foi um bom avanço. Mas não na procura de emprego, mas na compreensão da linguagem Java. Fui ao exame com confiança de que passaria bem e passei. Marquei 84% com os 65% necessários. Eu estava imensamente orgulhoso de mim mesmo.


O custo do exame é de US $ 245. Na Rússia, custa um pouco mais barato.


Estime o custo de um treinamento oficial da Oracle para se preparar para este exame


OCP: Programador Oracle Certified Professional Java SE 8 - 4 meses

Com entusiasmo, comecei o segundo livro dos mesmos autores:


OCP: Guia de Estudo do Oracle Certified Professional Java SE 8 Programmer II: Exame 1Z0-809

Para o desenvolvimento do segundo livro, eu já passei 4 meses. E acabou sendo realmente difícil. Duas vezes fiz uma pausa uma semana, porque era realmente difícil para mim entender expressões lambda ou multithreading. Além disso, a abundância de classes para entrada e saída estava me matando. Todos esses NIO e NIO2, que são tão parecidos e que você precisava saber. O que há uma classe base que derivou? Foi um verdadeiro pesadelo. Como resultado, defini a data do exame para um mês e depois a mudei para duas semanas, depois para outras duas. Eu estava ficando sem tempo, uma entrevista apareceu no horizonte. E eu precisava desse certificado. Não fiz o exame pela terceira vez e fui com o que tinha. Ao contrário do primeiro exame, eu não tinha mais certeza de um bom resultado. Eu não tinha certeza de que poderia passar. Não havia vestígios de orgulho passado. A quantidade de informações para entender e lembrar no segundo livro é cinco vezes mais que no primeiro. Mas eu passei neste exame também. Felizmente, as tarefas de teste nos livros acabaram sendo mais difíceis do que aquelas que estavam no exame. Mas foi um avanço ... para mim. Uma inovação em termos de conhecimento e compreensão de como a linguagem funciona e quais ferramentas ela oferece.


O custo do exame também é de US $ 245.


Posso dizer que esses dois livros me deram mais do que todos os cursos on-line que fiz antes. Mas não sei se eu poderia passar nesses exames se não tivesse feito os cursos antes. Com a ajuda desses exames, mudei para o nível "três mais". E isso já era alguma coisa. Mas também não pude implementar independentemente nenhum projeto interessante. WTF ????


Percebi que havia atingido o máximo do que conseguia, e continuar aprendendo a língua era inútil. Além disso, eu entendi que meu conhecimento, que eu tinha tão difícil de obter, desaparece rapidamente sem prática. Era impossível puxar, e comecei a me preparar para a entrevista e a adquirir as habilidades que seriam necessárias ao me candidatar a um emprego.


O que você precisa para conseguir um emprego?


Precisa passar por uma entrevista e uma entrevista técnica! Não vou escrever sobre a preparação para a entrevista. Este é um tópico para um artigo separado. Vou escrever apenas sobre o conhecimento necessário para passar em uma entrevista técnica.


Preparação para a entrevista - 1 mês

Comprei o seguinte livro:


Cracking the Coding Interview, 6ª Edição: 189 Perguntas e Soluções de Programação

Eu recomendo. Ela ajudará a se preparar para a parte técnica da entrevista. Passei cerca de um mês nisso. Muitas tarefas eram incompreensíveis, por isso encontrei outra cópia em russo e, quando era completamente incompreensível para mim, investiguei.


Habilidades adicionais

Nesse momento, eu já estava monitorando ativamente o mercado de trabalho na minha cidade e escolhi a empresa na qual gostaria de trabalhar. Eles tinham uma vaga de desenvolvedor Java. Entre as habilidades desejadas na vaga estavam o conhecimento de Oracle SQL, GWT, Eclipse, SVN, Maven, Jenkins. Eu não precisava de um conhecimento profundo de todas essas tecnologias, precisava de um entendimento simples do que é e como funciona. Para que na entrevista você possa dizer sim, eu sei, mas não profundamente.


Oracle SQL - 1 semana

Eu já conhecia SQL muito bem, pois, por uma questão de dever, eu tinha que fazer muitos relatórios arbitrários para o gerenciamento. Mas era o T-SQL da Microsoft, e aqui o SQL da Oracle era necessário. Eu tive que comprar um livro para lembrar os pontos principais e entender a diferença.


Guia do Exame OCA Oracle Database SQL (Exame 1Z0-071)

Corri este livro rapidamente em uma semana. E percebi que estou 70% pronto para passar em outro exame. Mas eu não estava mais disposto.


SVN - 1 semana

Sistema de controle de versão distribuído SVN. GIT ou SVN é usado na maioria das empresas de desenvolvimento de software. Como não encontrei cursos SVN, decidi fazer um breve curso sobre o GIT: “ Controle de versão com o Git ” para manter-me atualizado sobre o tópico. Eu até pensei que, se eles perguntarem sobre o SVN, direi que estava lidando com o GIT. E então eu vou me orientar no local. Se de repente algo não estiver claro, você sempre poderá dizer que no GIT é um pouco diferente. E que, a propósito, funcionou.


GWT - 3 dias

A próxima tecnologia na lista é GWT. Depois de passar vários dias procurando informações, percebi que simplesmente não consigo descobrir esse Google Framework. Se simplificado, você pode escrever sites complexos em Java, e esse Framework converte seu código em HTML + JavaScript e o exibe no navegador sem nenhum complemento ou complemento. Muito legal. GWT eu decidi pular.


Eclipse - 3 dias

O Eclipse é um ambiente de desenvolvimento, a principal ferramenta de desenvolvedor com a qual lido diariamente. Eu não fiz nenhum curso especial. Eu assisti vários vídeos no youtube, eu entendi as técnicas básicas. Eu tentei tudo sozinho com minhas mãos.


Maven, Jenkins - 15 minutos.

Simplesmente não resta tempo para essas duas coisas. A entrevista já estava de manhã, então eu apenas li dois artigos da Wikipedia e fui para a cama.


Sumário


Tempo


Levei cerca de 18 meses, 2 semanas, 6 dias e 15 minutos para obter o conhecimento e as habilidades necessárias para obter o lugar de um desenvolvedor. Fiz isso à noite, passando de 1 a 3 horas durante a semana. E cerca de 5-6 horas no fim de semana.


Dinheiro


Eu estava pronto para gastar meu tempo e não estava pronto para gastar dinheiro. Mas eu ainda tinha que gastá-los.


Cursos:


  • Todos os cursos on-line que fiz gratuitamente . Como fazer isso no coursera.org que escrevi aqui .

Livros:



Exames:



Despesas adicionais:


  • Viaje para outra cidade para exames, como no meu não existem centros de certificação - 120 €.

Total: 702 €


Infelizmente, não funcionou completamente de graça. Eu comprei livros em inglês, porque o exame também é em inglês.


Resultado


Esse conhecimento foi suficiente para passar em uma entrevista e assinar um contrato com uma empresa alemã suficientemente legal. Eu diria até que eles eram suficientes com uma margem.


Eles também foram suficientes para passar por um período de teste de seis meses e obter um lugar permanente na equipe de desenvolvedores.


Durante esses 6 meses de trabalho como desenvolvedor, fechei mais de 200 aplicativos para desenvolvimento, conclusão e correção de erros no código de subsistemas e módulos completamente diferentes. E não recusei um único aplicativo "porque não podia". Sim, eu precisava e agora tenho que entender coisas novas, procurar informações, aprofundar nos detalhes. Estou fazendo algo devagar, mas é interessante para mim e o processo está em andamento. E eles pagam bem por isso !!!


Mas não pense que sou muito inteligente. Eu sou o cara mais fácil que acabou de mudar sua vida para melhor. Eu sou como você. E se eu puder, você também pode!


Express é o caminho


De fato, para me tornar um desenvolvedor, demorei não 1,5 anos, mas dois. Mas isso se deve à minha própria estupidez (leia sobre isso no meu canal de telegrama ). Diretamente na realidade, passei 1,5 anos. Mas não é necessário repetir meus erros. Eu acho que é possível alcançar o mesmo resultado em menos tempo. Jogamos fora todo o excesso e conseguimos algo assim:


Parte um - 5 meses


Realizamos os seguintes cursos de especialização em Programação Java Orientada a Objetos: Estruturas de Dados e Além no cursor:



Paralelamente, lemos um livro:



Com base nos resultados, passamos no exame.



Parte dois - 2 meses


Realizamos os seguintes cursos de especialização em Estruturas de Dados e Algoritmos :



Paralelamente, lemos um livro:



Parte Três - 4 meses


Lemos o livro:



Com base nos resultados, passamos no exame.



Parte Quatro - 1 Mês


Analisamos especificamente o que o empregador deseja dos candidatos a emprego e passamos uma semana em cada uma das 4 tecnologias, programas ou estruturas mais necessárias (Git, Eclipse, Maven, Spring, etc.). Além disso, estudamos a área em que o empregador trabalha, seus produtos, se houver, etc.


Total do ano. Por um ano - é real.


Mantenha contato


Sobre como mudei minha vida aos 40 anos e me mudei com minha esposa e três filhos para a Alemanha, escrevo no meu canal de telegrama @LiveAndWorkInGermany . Estou escrevendo sobre como foi, o que é bom e o que é ruim na Alemanha, e os planos para o futuro. Brevemente e a negócios. Junte-se a nós - será interessante.

Source: https://habr.com/ru/post/pt439432/


All Articles