JavaRush /Blogue Java /Random-PT /O caminho do desenvolvedor Java
trinit
Nível 41

O caminho do desenvolvedor Java

Publicado no grupo Random-PT
Bem, é minha vez de escrever minha história. Resumindo, sou desenvolvedor Java júnior há 3,5 meses. Se você quiser detalhes, continue lendo. Como todo mundo que escreve histórias de empregos, provavelmente é melhor começar com a história de quem eu era e quem me tornei. Há muito tempo, muitos, muitos anos atrás, tentei começar a programar. Era 2º ou 3º ano, me inscrevi em um clube de programação, fui várias vezes, aprendi a digitar meu nome e endereço residencial no teclado, e aí foi o fim da minha programação, porque por algum motivo desisti daquele clube . Eu não tinha nenhum conhecimento de programação na escola ou na universidade, assim como estava estudando para me tornar contador. Várias vezes tentei aprender programação sozinho. Eu tinha em casa um livro sobre informática que continha problemas em Pascal, mas não entendi nada dele e não tinha quem explicar, então desisti. Os anos se passaram, estudei contador, não tinha trabalho. E há cerca de dois anos finalmente encontrei um emprego em um franqueado 1C. Fui lá na linha de suporte técnico ao usuário, porque... Eu conhecia contabilidade, e a direção principal da 1C ainda é esse setor. Depois de algum tempo, o diretor disse que seria necessário que eu aprendesse programação, porque... Não há ninguém para quem escrever e esse conhecimento não prejudicará o suporte técnico. Não havia para onde ir e este foi o meu primeiro passo no caminho. Durante dois meses li um livro sobre a plataforma 1C, depois me explicaram o que é uma variável e depois foi como uma névoa :) Brincadeirinha. Não entendi nada além de variáveis ​​e tive que assistir cursos para iniciantes baseados em Python. Já no processo de trabalho e tarefas específicas, comecei a entender loops, arrays e o mecanismo de depuração passo a passo. O verdadeiro avanço foi quando descobri como passar parâmetros para outras funções. Um dia eu estava sentado pesquisando no Google o que poderia me ajudar no aprendizado de 1C e em um dos fóruns descobri que aprender a linguagem VB.NET poderia me ajudar nisso. Este foi outro avanço. Baixei o livro "Lukin S.N. Understanding Visual Basic.NET. Manual de autoinstrução em 3 volumes" e comecei a estudar com ele. O livro é muito bom, principalmente para iniciantes. E a linguagem para iniciantes também é boa, embora muitas pessoas falem mal dela (aparentemente se lembram do antigo VB). Por um lado, permite cortar a lógica sem se distrair com a interface do usuário, por outro lado, é processual e OOP ao mesmo tempo. Além disso, o VB.NET realmente acabou sendo muito parecido com 1C, ou melhor, 1C era parecido com ele e foi fácil para mim programar em 1C o dia todo, resolvendo problemas de trabalho, e chegar à noite e mudar rapidamente para outra linguagem. Dediquei todo o meu tempo livre e fins de semana à programação. Naquela época, eu já estava começando a me cansar do 1C e percebi que não poderia ganhar dinheiro com o 1C (ganhei uma vez e meia menos que meus clientes contadores, para quem escrevi o programa e para quem treinei). Comecei a pensar: o que fazer a seguir? Surgiram pensamentos sobre o Android, parecia interessante, promissor, etc. Um amigo programador disse que eles escrevem em Java e a Internet confirmou. Um amigo disse que seria melhor aprender C++ antes de Java. Eu já queria começar, mas ainda tinha mais da metade do livro em VB.NET e não queria desistir. O livro poderia ter sido lido em um mês, mas percebi que ler sozinho sem prática não daria nada e resolvi escrever um projeto pequeno, mas meu. Foi escolhido um bloco de notas para esse fim. Escrevi um bloco de notas que abre e salva arquivos, determina a codificação ao abrir um arquivo e colore a sintaxe 1C. Aí escrevi uma calculadora (nunca pensei que fosse uma coisa tão complicada). Depois, houve outro grande projeto, para meus padrões - um programa para resolver testes 1C. A questão é que ele pega um arquivo texto com perguntas e respostas, coloca tudo em um arquivo excel (sim, naquela época eu não sabia trabalhar com banco de dados) e aí você consegue resolver tanto a seção quanto os tickets aleatórios, etc. Havia alguns outros pequenos programas para entender fluxos, modificadores de acesso e outras coisas. Chegou a hora de concluir o livro VB.NET. Tive uma base suficiente, aproximadamente a mesma que depois do 2º ou mesmo 3º ano de universidade. No trabalho, eu também já conseguia escrever bem e entender a selva do código. Só que o trabalho finalmente ficou chato, porque para escrever em 1C você não precisa saber de programação, mas em maior medida você só precisa entender os mecanismos da plataforma. É a vez do C++, como aconselhou meu amigo. Abri o livro C++ e abri o segundo. Em todo lugar escrevem que antes de aprender C++ é preciso saber C. Encontrei um livro sobre C, olhei e pensei “FODA-SE!”, quero escrever em Android, PRECISO DE JAVA. E como se finalmente e sem abrir mão do C, decidi, só para o futuro, procurar cursos para iniciantes em Java. Adivinha onde eu tropecei? Sim, ao nosso querido JavaRush. Era o ano novo de 2015. Assim que apertei o grande botão verde PLAY, fiquei impressionado. Os primeiros 10 níveis foram fáceis. Aí teve uma taxa, e o dólar estava em patamares sem precedentes, era preciso esperar um desconto. Nesse ínterim, encontrei cursos gratuitos de Python de nível de dificuldade intermediário; nunca é uma má ideia esticar o cérebro, e concluí esses cursos, que levaram mais alguns meses. Um dia tive a oportunidade de ir a uma entrevista com uma empresa; eles precisavam de uma pessoa que soubesse escrever em Java. Não consegui dormir bem a noite toda, fiquei pensando que poderiam me perguntar, pela manhã repeti a diferença entre uma interface e uma classe abstrata, modificadores de acesso, polimorfismo. Mas eles não me perguntaram nada, apenas escreveram uma lista de tecnologias que precisavam ser aprendidas, após a qual prometeram me dar uma tarefa de teste, com base nela eles examinariam meu estilo de codificação, lógica e então fariam um decisão sobre meu emprego. A vaga não era para Android, mas para server side, talvez seja melhor assim. No segundo dia, desisti do 1C, pois essa área estava exausta para mim, e ganhar centavos e remover toneladas de código 1C todos os dias, após o que estudar tecnologias Java, estava além das minhas forças. Comecei a estudar ansiosamente as tecnologias Java que me foram dadas, esta Eu não sabia como trabalhar com um banco de dados naquela época) e então você pode decidir tanto a partição quanto os tickets aleatórios, etc. Havia alguns outros pequenos programas para entender fluxos, modificadores de acesso e outras coisas. Chegou a hora de concluir o livro VB.NET. Tive uma base suficiente, aproximadamente a mesma que depois do 2º ou mesmo 3º ano de universidade. No trabalho, eu também já conseguia escrever bem e entender a selva do código. Só que o trabalho finalmente ficou chato, porque para escrever em 1C você não precisa saber de programação, mas em maior medida você só precisa entender os mecanismos da plataforma. É a vez do C++, como aconselhou meu amigo. Abri o livro C++ e abri o segundo. Em todo lugar escrevem que antes de aprender C++ é preciso saber C. Encontrei um livro sobre C, olhei e pensei “FODA-SE!”, quero escrever em Android, PRECISO DE JAVA. E como se finalmente e sem abrir mão do C, decidi, só para o futuro, procurar cursos para iniciantes em Java. Adivinha onde eu tropecei? Sim, ao nosso querido JavaRush. Era o ano novo de 2015. Assim que apertei o grande botão verde PLAY, fiquei impressionado. Os primeiros 10 níveis foram fáceis. Aí teve uma taxa, e o dólar estava em patamares sem precedentes, era preciso esperar um desconto. Nesse ínterim, encontrei cursos gratuitos de Python de nível de dificuldade intermediário; nunca é uma má ideia esticar o cérebro, e concluí esses cursos, que levaram mais alguns meses. Um dia tive a oportunidade de ir a uma entrevista com uma empresa; eles precisavam de uma pessoa que soubesse escrever em Java. Não consegui dormir bem a noite toda, fiquei pensando que poderiam me perguntar, pela manhã repeti a diferença entre uma interface e uma classe abstrata, modificadores de acesso, polimorfismo. Mas eles não me perguntaram nada, apenas escreveram uma lista de tecnologias que precisavam ser aprendidas, após a qual prometeram me dar uma tarefa de teste, com base nela eles examinariam meu estilo de codificação, lógica e então fariam um decisão sobre meu emprego. A vaga não era para Android, mas para server side, talvez seja melhor assim. No segundo dia, desisti do 1C, pois essa área estava exausta para mim, e ganhar centavos e remover toneladas de código 1C todos os dias, após o que estudar tecnologias Java, estava além das minhas forças. Comecei a estudar ansiosamente as tecnologias Java que me foram dadas, esta Eu não sabia como trabalhar com um banco de dados naquela época) e então você pode decidir tanto a partição quanto os tickets aleatórios, etc. Havia alguns outros pequenos programas para entender fluxos, modificadores de acesso e outras coisas. Chegou a hora de concluir o livro VB.NET. Tive uma base suficiente, aproximadamente a mesma que depois do 2º ou mesmo 3º ano de universidade. No trabalho, eu também já conseguia escrever bem e entender a selva do código. Só que o trabalho finalmente ficou chato, porque para escrever em 1C você não precisa saber de programação, mas em maior medida você só precisa entender os mecanismos da plataforma. É a vez do C++, como aconselhou meu amigo. Abri o livro C++ e abri o segundo. Em todo lugar escrevem que antes de aprender C++ é preciso saber C. Encontrei um livro sobre C, olhei e pensei “FODA-SE!”, quero escrever em Android, PRECISO DE JAVA. E como se finalmente e sem abrir mão do C, decidi, só para o futuro, procurar cursos para iniciantes em Java. Adivinha onde eu tropecei? Sim, ao nosso querido JavaRush. Era o ano novo de 2015. Assim que apertei o grande botão verde PLAY, fiquei impressionado. Os primeiros 10 níveis foram fáceis. Aí teve uma taxa, e o dólar estava em patamares sem precedentes, era preciso esperar um desconto. Nesse ínterim, encontrei cursos gratuitos de Python de nível de dificuldade intermediário; nunca é uma má ideia esticar o cérebro, e concluí esses cursos, que levaram mais alguns meses. Um dia tive a oportunidade de ir a uma entrevista com uma empresa; eles precisavam de uma pessoa que soubesse escrever em Java. Não consegui dormir bem a noite toda, fiquei pensando que poderiam me perguntar, pela manhã repeti a diferença entre uma interface e uma classe abstrata, modificadores de acesso, polimorfismo. Mas eles não me perguntaram nada, apenas escreveram uma lista de tecnologias que precisavam ser aprendidas, após a qual prometeram me dar uma tarefa de teste, com base nela eles examinariam meu estilo de codificação, lógica e então fariam um decisão sobre meu emprego. A vaga não era para Android, mas para server side, talvez seja melhor assim. No segundo dia, desisti do 1C, pois essa área estava exausta para mim, e ganhar centavos e remover toneladas de código 1C todos os dias, após o que estudar tecnologias Java, estava além das minhas forças. Comecei a estudar ansiosamente as tecnologias Java que me foram dadas, esta E como se finalmente e sem abrir mão do C, decidi, só para o futuro, procurar cursos para iniciantes em Java. Adivinha onde eu tropecei? Sim, ao nosso querido JavaRush. Era o ano novo de 2015. Assim que apertei o grande botão verde PLAY, fiquei impressionado. Os primeiros 10 níveis foram fáceis. Aí teve uma taxa, e o dólar estava em patamares sem precedentes, era preciso esperar um desconto. Nesse ínterim, encontrei cursos gratuitos de Python de nível de dificuldade intermediário; nunca é uma má ideia esticar o cérebro, e concluí esses cursos, que levaram mais alguns meses. Um dia tive a oportunidade de ir a uma entrevista com uma empresa; eles precisavam de uma pessoa que soubesse escrever em Java. Não consegui dormir bem a noite toda, fiquei pensando que poderiam me perguntar, pela manhã repeti a diferença entre uma interface e uma classe abstrata, modificadores de acesso, polimorfismo. Mas eles não me perguntaram nada, apenas escreveram uma lista de tecnologias que precisavam ser aprendidas, após a qual prometeram me dar uma tarefa de teste, com base nela eles examinariam meu estilo de codificação, lógica e então fariam um decisão sobre meu emprego. A vaga não era para Android, mas para server side, talvez seja melhor assim. No segundo dia, desisti do 1C, pois essa área estava exausta para mim, e ganhar centavos e remover toneladas de código 1C todos os dias, após o que estudar tecnologias Java, estava além das minhas forças. Comecei a estudar ansiosamente as tecnologias Java que me foram dadas, esta E como se finalmente e sem abrir mão do C, decidi, só para o futuro, procurar cursos para iniciantes em Java. Adivinha onde eu tropecei? Sim, ao nosso querido JavaRush. Era o ano novo de 2015. Assim que apertei o grande botão verde PLAY, fiquei impressionado. Os primeiros 10 níveis foram fáceis. Aí teve uma taxa, e o dólar estava em patamares sem precedentes, era preciso esperar um desconto. Nesse ínterim, encontrei cursos gratuitos de Python de nível de dificuldade intermediário; nunca é uma má ideia esticar o cérebro, e concluí esses cursos, que levaram mais alguns meses. Um dia tive a oportunidade de ir a uma entrevista com uma empresa; eles precisavam de uma pessoa que soubesse escrever em Java. Não consegui dormir bem a noite toda, fiquei pensando que poderiam me perguntar, pela manhã repeti a diferença entre uma interface e uma classe abstrata, modificadores de acesso, polimorfismo. Mas eles não me perguntaram nada, apenas escreveram uma lista de tecnologias que precisavam ser aprendidas, após a qual prometeram me dar uma tarefa de teste, com base nela eles examinariam meu estilo de codificação, lógica e então fariam um decisão sobre meu emprego. A vaga não era para Android, mas para server side, talvez seja melhor assim. No segundo dia, desisti do 1C, pois essa área estava exausta para mim, e ganhar centavos e remover toneladas de código 1C todos os dias, após o que estudar tecnologias Java, estava além das minhas forças. Comecei a estudar ansiosamente as tecnologias Java que me foram dadas, estalista: 1. POO. 2. Especialista. 3. Blocos Apache. 4. Primavera MVC. 5. Hibernar. 6. Eclipse (recomendo não usar um ambiente limpo, mas sim STS do Spring - https://spring.io/tools/sts/). 7. Tomcat 8. 8. JUnit. Acrescentarei mais algumas tecnologias que são muito desejáveis ​​de conhecer: 9. Bootstrap - com ele você pode criar rapidamente uma interface de site sem inventar sabe o quê... 10. JQuery - para não escrever toneladas de JS nativo code + existem todos os tipos de itens úteis, como autocomplete(), etc. 11. Linux/Ubuntu - na maioria dos casos será instalado no trabalho. Você precisa pelo menos ser capaz de instalar o JDK e o Tomcat. 12. GIT/outro sistema de controle de versão é obrigatório. 13. JSON. e tecnologias que podem ter que ser utilizadas nos projetos: 14. AngularJS - framework JS, uma coisa muito legal. 15.MongoDB. 16. CoelhoMQ. e o que você não pode prescindir: 17. Inglês! Era necessário manter um equilíbrio entre a qualidade do estudo e o tempo gasto nele. A vaga não poderia esperar por mim para sempre e foi isso que me motivou. Todos os dias eu dedicava cerca de 14 a 16 horas ao estudo. Levei 3 semanas para me familiarizar com essas tecnologias. Acabei de ler alguns artigos sobre algumas tecnologias e assisti a vídeos sobre outras. Conheci na prática pessoas como Spring e Hibernate - assisti vídeos de índios e repeti o que eles fazem. Escrevi vários testes JUnit e simplesmente instalei o Tomcat no meu computador. Maven incluiu dependências em pom.xml. Sobre o Eclipse eu pensei que era apenas uma ferramenta e eu poderia mudar do IDEA a qualquer momento (como eu estava errado). Embora eu não estivesse confiante em meus conhecimentos, era hora de fazer o teste. Eu peguei, não foi muito difícil, porque nas últimas 3 semanas me deparei com quase tudo isso enquanto estudava tecnologia. Foi necessário escrever uma aplicação web - um gerenciador de tarefas (site), onde você pode criar uma tarefa, alterá-la, excluí-la, atribuir-lhe um status e uma data de criação. E também desenvolver um módulo de registro/login para isso. Tudo isso poderia ser feito sem usar JS, uma bela UI, HTML e CSS simples. Ao mesmo tempo apareceu um desconto no JavaRush e fiz uma assinatura, mas não deu tempo para cursos. Foi muito interessante fazer a tarefa de teste. Demorou uma semana para completar a funcionalidade principal, depois outras 3 para corrigir pequenos bugs, refatorar, reescrever de org.hibernate.SessionFactory para javax.persistence.EntityManager, alterar o banco de dados de MySQL para H2 ou HSQLDB, escrever testes JUnit. Enquanto refazia tudo isso, encontrei mil erros, ao longo do caminho aprendi a ler meu agora querido stackoverflow em inglês e a entender pelo menos uma coisinha, ainda que no Google Tradutor. Também tive dificuldades com o Eclipse porque estava na lista de tecnologias que recebi durante a entrevista. Deixe-me apenas dizer que a diferença entre IDEA e Eclipse é colossal. Imagine que você está voando em um avião, e então, IDEA é um avião com piloto, e você dorme em um assento de primeira classe e voa lentamente até seu destino, e Eclipse - você também está voando em um avião, mas como piloto , há uma tempestade lá fora e um raio atinge seu motor a cada 20 minutos. Sério, o IDEA faz muitas coisas para você, e você nem sabe disso, no Eclipse tudo isso precisa ser configurado, configurado e registrado. Nos primeiros dias do “meu Eclipse” cuspi, xinguei e mostrei tendências suicidas, depois de 5 meses trabalhando com esse IDE posso dizer que é legal, poderoso e utilizável, basta se acostumar. No final deu tudo certo, houve mais uma entrevista com dúvidas sobre a implementação das funcionalidades do aplicativo e passei. Depois outra entrevista com o diretor. Aí algumas das pessoas que decidiram meu destino saíram de férias, depois houve os feriados de maio, depois trouxeram meu computador e mais alguma coisa. Então mais 2 meses se passaram. Durante esses 2 meses consegui completar os níveis 13-22 em JavaRush, assistir 2 cursos de Batyrshynov sobre Spring e Spring MVC, aliás, bons cursos, mas apenas para iniciantes, porque basicamente todos os exemplos estão no nível "Olá, mundo". E comecei a trabalhar. Eles imediatamente me deram um projeto - uma API REST para um brinquedo para iOS, comunicação via JSON. Foi muito interessante, mas difícil. Foi especialmente difícil no início me aprofundar em algo que eu nunca tinha visto - Ubuntu e GIT. O Ubuntu pode ser dominado sem problemas, mas o GIT é divertido, poderoso e complexo, especialmente em grandes projetos e em situações fora do padrão. Jamais esquecerei meu primeiro salário, que acabou sendo 4 vezes maior que em 1C. Imediatamente após conseguir o emprego, para estudar tecnologia de forma independente e como projeto de teste, decidi escrever um brinquedo, como uma caixa de areia para implementar algumas ideias. E recentemente terminei. Se quiser, você pode ver o resultado (mas é altamente recomendável fazer login em um computador e no Chrome, porque ainda sou um péssimo designer de layout): http://triangles.cf Estou trabalhando há 4 meses agora. Achei que tudo o que era difícil já havia ficado para trás, mas acabou sendo o contrário. À sua frente está aprender inglês, porque se você não souber, mesmo sendo contratado, não trabalhará por muito tempo. Ler documentação, comunicar-se com clientes, escrever códigos e comentários - tudo em inglês. Você também precisa concluir cursos JavaRush, padrões de estudo, algoritmos e outras coisas úteis. Gostaria de desejar a todos boa sorte, fácil desenvolvimento e uma mente forte. Para quem trabalha e para quem quer encontrar emprego. Você vai conseguir, basta se esforçar e fazer, lutar consigo mesmo e com as interrupções. JAVA a todos!) lute consigo mesmo e com as exceções. JAVA a todos!) lute consigo mesmo e com as exceções. JAVA a todos!)
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION