Como se tornar um programador Java

Oi Se você estiver lendo este artigo, provavelmente terá uma pergunta sobre como se tornar um programador. Talvez você tenha decidido aprender a linguagem de programação Java, mas não sabe por onde começar a aprender. Também ouso admitir que muitos se perguntaram: é possível aprender Java em 1 ano? E se eu não estudasse na universidade como programador? Eu nem tenho uma especialidade técnica. Serei capaz? Quanto tempo terei para gastar nesta lição? O que você terá que aprender? Por onde começar o treinamento? Se você tiver pelo menos uma dessas perguntas, agora está no lugar certo.


Não é de surpreender que muitas pessoas estejam perdidas desde o início, sem saber por onde começar, porque existem muitas línguas por aí, muitos livros de programação, vários tipos de treinamentos, cursos em vídeo e até mentoria individual. Como escolher o que melhor combina com você e como obter resultados em um prazo adequado? Vamos conversar sobre tudo em ordem.


Motivação


Antes de iniciar qualquer tarefa difícil que exija muito tempo e energia, você deve entender por que isso é para você. Cada um de nós deve responder três questões importantes para nós:


Porque É a pergunta mais difícil. Está subjacente à motivação. Você deve entender claramente qual é seu objetivo e para o qual está se esforçando. O dinheiro aqui não deve ser uma das principais razões, mas simplesmente uma adição importante. Se você gosta de tecnologias modernas, gosta de criar algo, pode sentar-se por horas no seu negócio favorito, está pronto para fazer isso de graça e tem um pensamento lógico, é provável que essas classes sejam apenas para você. Você deve poder desfrutar do trabalho. Somente neste caso é possível obter resultados realmente bons.


O que? - Esta é uma pergunta bastante lógica. O que precisa ser feito para ter sucesso neste assunto. Aqui, a mesma pergunta pode surgir, qual idioma escolher e quais materiais serão necessários para estudá-lo.


Como - Como alcançar resultados significativos em um prazo adequado.
Se todos responderem à primeira pergunta de forma independente, podemos lidar com as duas últimas juntas.


Qual idioma escolher?


Suponha que, com motivação, esteja tudo bem e que possamos passar para a próxima pergunta. Antes de escolher qualquer idioma, você deve entender se há vagas no mercado de trabalho, se elas ocorrerão no momento em que você dominar o nível básico e iniciar sua busca de emprego. Além disso, a complexidade da linguagem de programação desempenha um papel. Quanto mais complexa a linguagem, mais tempo você precisará para dominá-la. Por outro lado, escolher o que é mais fácil também nem sempre é bom, porque a concorrência pode ser maior aqui do que em outras categorias. Para determinar as perspectivas do idioma, você precisa analisar onde ele é usado, qual a abrangência do escopo e com que frequência as novas estruturas são exibidas no idioma escolhido. Aqui, a classificação das linguagens de programação pode nos ajudar.


Acho que é hora de fazer backup das palavras com números. De acordo com várias pesquisas entre os cinco líderes, são Java, JavaScript, C ++, C e Python.


Exemplos de pesquisas podem ser encontrados em abundância na Internet. Aqui estão apenas alguns deles:


Por exemplo, de acordo com a versão do tiobe.com , que publica regularmente um ranking de linguagens de programação, o Java permanece como líder há muitos anos. Os cinco primeiros também têm C ++ e Python.


classificação das linguagens de programação tiobe.com

Outra fonte autorizada de estatísticas, o site Stackoverflow , que realizou pesquisas entre seus usuários, diz que o JavaScript está em primeiro lugar, enquanto o Java está na quinta linha da classificação. Mas aqui as linguagens de marcação HTML e CSS também foram levadas em consideração.


Classificação do idioma de programação Stackoverflow

Vale a pena considerar o fato de que muitos programadores de Java, até certo ponto, podem conhecer JavaScript. Entre os desenvolvedores de JavaScript, há menos pessoas que também conhecem Java. Isso adiciona alguns pontos ao JavaScript em uma pesquisa anterior.


Agora vamos ver o número de vagas e respostas de candidatos em diferentes idiomas. Para não explicar por muito tempo, darei apenas alguns links. Por exemplo, o site DOU.ua publica regularmente várias estatísticas sobre vagas, salários, etc. Por exemplo, é possível observar tendências interessantes no aumento do número de vagas nos principais idiomas e, ali mesmo, você pode usar vários filtros que mostram a proporção do número de vagas em diferentes cidades e em diferentes idiomas. Os dados estão disponíveis em forma de tabela e gráfica. Entre os favoritos aqui, como de costume, estão Java, Python, C ++, .NET. Além disso, a proporção do número de vagas / respostas em 2018 é melhor para C ++, 2-3 pessoas por local. Infelizmente, não consegui encontrar estatísticas semelhantes para outros países. Mas em Habré há um bom artigo com infográficos especificamente em Java.


Em geral, você precisa escolher um dos principais idiomas e, no momento da graduação, terá uma boa chance de encontrar um emprego.


Na minha humilde opinião, uma boa opção para iniciar uma carreira é Java. Linguagem não muito complicada, um amplo escopo e um número suficiente de vagas. É sobre Java que será a segunda metade do nosso artigo. Se eu tivesse que começar tudo agora, o Python poderia se tornar uma boa alternativa, pois está ganhando popularidade ativamente.


Visão geral do ecossistema Java


Para que você tenha uma melhor compreensão do que precisa passar para se tornar um programador Java, forneceremos uma pequena visão geral do ecossistema Java. Sugiro olhar para a ilustração a seguir. Certamente não cobre todos os aspectos, mas lhe dará alguma compreensão.


Tecnologia Java

No centro do universo, como sempre, temos a própria linguagem Java. Mais especificamente, Java Core. No momento em que escrevemos este artigo, o Java JDK 10. viu a luz: a Oracle mudou a política para trabalhar com versões Java e agora não existe uma diferença tão grande entre as versões como era quando o Java 8, por exemplo, foi lançado. a grande maioria das empresas e projetos. Você pode começar a aprender com segurança o idioma com esta versão e aprender novos chips, impondo-os a um conhecimento básico. Estudar esta parte é talvez a tarefa mais difícil para um iniciante. Você precisa dominar um novo tipo de atividade e começar a pensar de maneira diferente. Uma grande quantidade de material que precisa ser adquirida também se sobrepõe a isso. A maioria dos que estão começando a desistir está precisamente nesta fase. Tudo depende da sua motivação.


Se aprender Java for bom, você precisará de ferramentas adicionais, como um sistema de controle de versão (Sistema de Controle de Versão) e um sistema para construção de projetos. Como VCS, eu recomendo usar o Git, que é o líder absoluto entre seus próprios tipos. Todos os outros sistemas, como o Subversion e o Perforce, são coisa do passado. Além disso, você pode usar os repositórios Github ou GitLab, para o seu código, gratuitamente. Com uma alta probabilidade na empresa, você usará o BitBucket da Atlassian. Mas isso é apenas uma concha. Se você aprender a usar o Git, tudo o mais não será essencial. A Atlassian também é fornecedora de produtos como Jira e Confluence, mas isso não tem nenhum papel em seus estudos.


Quanto às ferramentas para a construção de projetos, existem duas opções: Maven e Gradle. Na minha opinião subjetiva, o Maven é preferível, mas outros desenvolvedores podem ter sua própria opinião. Em princípio, ambas as estruturas são equivalentes.


Depois de se familiarizar com as coisas acima, vale a pena considerar o caminho a seguir. Na figura acima, você vê quatro direções principais de movimento: Front-End (HTML, CSS, JS), Back-End (Hibernate, Spring, SQL), Android e Big Data. Essas quatro partes, embora separadas na figura, estão na verdade bastante conectadas. Por exemplo, se você decidir se tornar um desenvolvedor Java Full-Stack, precisará estudar bem a parte Back-End e ter um entendimento geral dos conceitos básicos da parte Front-End. Não se espera que você se envolva no layout do site, mas deve conhecer HTML. Devo também observar que, na seção Back-End, o Spring se refere principalmente ao Spring Core. É com essa parte da estrutura que você precisa iniciar. Agora, cresceu tanto que abrange todos os aspectos do desenvolvimento Java. Como alternativa, a Oracle está tentando promover a especificação Java EE, mas não está indo muito bem.


Quanto ao BigData, também há uma pilha bastante grande de tecnologias. Basicamente, todos eles são projetados para armazenamento distribuído e processamento de dados distribuídos usando a abordagem Map-Reduce. A tecnologia mais antiga e famosa aqui é o Hadoop.


Eu acho que não vale a pena explicar o Android. Só posso dizer que, para escrever aplicativos para esta plataforma móvel, você precisará aprender Java.


Como você deve ter notado, existem muitas aplicações para Java; portanto, no futuro previsível, depois de aprender Java, você não ficará sem trabalho.


Por onde começar? O que ler?


Obviamente, você precisa começar pelo básico, ou seja, com Java Core. Então Maven, Git e a direção que você preferir.


Aqui você tem três opções. Não consideramos a situação quando você escolheu essa especialidade na universidade. Ela ainda não exclui as opções descritas mais adiante.


Opção Um - Livros Java

A maneira mais antiga, tradicional e até agora a mais comprovada. Vantagens: a maioria dos livros de editores conhecidos é escrita por autores profissionais, muitos dos quais têm dezenas de anos de experiência desenvolvendo e ensinando em prestigiadas universidades ocidentais. Esses livros também são verificados cuidadosamente pelos próprios editores, portanto a probabilidade de erros é muito baixa. Especialmente quando o mesmo livro é republicado repetidamente à medida que o idioma é atualizado. Depois de ler os livros básicos, você deve passar para os mais avançados. Existem poucos lugares onde você pode encontrar tópicos avançados de programação considerados com a mesma profundidade. Desvantagens: muitos livros são escritos em uma linguagem acadêmica seca e são mais parecidos com livros de referência. O famoso autor Kay Horstmann admitiu repetidamente que não lê esses livros completamente, mas apenas os capítulos que o ajudam a resolver o problema atual.


Entre os livros mais populares e melhores para iniciantes, estão os seguintes (os nomes estão em inglês, nos casos em que o livro não foi traduzido para o russo ou a tradução não foi encontrada):


  1. Como programar em Java - Paul Daytel e Harvey Daytel. Este livro sobreviveu a várias reimpressões e talvez seja o tutorial mais abrangente sobre Java. Além da própria linguagem, os fundamentos dos algoritmos ainda são bastante bem explicados lá.
  2. A filosofia Java - Bruce Eckel - também ganhou um lugar de honra na biblioteca de programadores. Explicações acessíveis e compreensíveis. Bom para iniciantes.
  3. Head First Java, 2nd Edition - Bert Bates, Kathy Sierra - um livro que se tornou popular por sua capacidade de explicar conceitos complexos com exemplos simples de vida. Não é muito profundo no conteúdo, mas ainda é interessante.
  4. Java Biblioteca profissional. Volume 1.2 - Kay Horstmann. Este livro de referência também se estabeleceu há muito tempo nas prateleiras de muitos desenvolvedores de Java. É apenas da categoria daqueles livros dos quais capítulos separados são lidos para resolver problemas, e não do livro inteiro.
  5. Java 8. Guia para iniciantes - Herbert Shildt. Eu não li este livro, mas ouvi várias críticas positivas. Leia ou não - decida por si mesmo.
  6. Estruturas de dados e algoritmos em Java - Robert Laforet. Um dos melhores livros sobre estruturas de dados.
  7. Java Programação eficaz - Joshua Bloch. Um livro Java um pouco mais avançado. Ele contém várias dicas e truques sobre como você pode melhorar seu código. Recentemente lançou a 3ª edição deste livro. Recomendo a leitura.
  8. Concorrência Java na Prática - Brian Goetz. É um bom e velho guia multithreading em Java que não sai de moda.

Eu recomendo a leitura dos três últimos livros para aqueles que já estão familiarizados com o básico da programação Java, mas planejam desenvolver ainda mais. Exemplos de livros sobre vários tipos de estruturas não serão fornecidos. Eles também foram escritos alguns.


A segunda opção - cursos em vídeo sobre programação e não apenas ...

Os cursos em vídeo e vários tipos de vídeo aulas começaram a ganhar grande popularidade. A ideia em si é muito boa e eu pessoalmente gosto. Esse tipo de material de treinamento é especialmente adequado para recursos visuais, para pessoas que percebem melhor as informações visualmente. Além disso, você também pode usar a compreensão auditiva. Uma vantagem é o preço acessível. Além disso, no YouTube, você pode encontrar um grande número de aulas gratuitas, entre as quais há aulas muito boas. Entre as deficiências das lições no YouTube, devo destacar a freqüente fragmentação e falta de sistematização, bem como o fato de o material nelas ser apresentado superficialmente. Mas mesmo aqui há exceções no bom sentido da palavra.


Lições alternativas do YouTube podem ser desses sites:
Safari O'Reilly - uma enorme coleção de livros, tutoriais em vídeo e seminários on-line sobre vários tópicos. A qualidade dos materiais é uma grande vantagem. Os livros e o treinamento em vídeo são gravados por profissionais reconhecidos na área. A principal desvantagem aqui é o preço. US $ 400 por ano se você pagar imediatamente ou US $ 480 se pagar mensalmente. Todos os materiais estão em inglês. Se você decidir se inscrever, eu recomendo materiais preparados pela própria editora O'Reilly, eles geralmente são melhores do que as lições de outros editores.


O Pluralsight é um bom lugar para tutoriais em vídeo. A escolha dos materiais sobre os tópicos é grande, mas eles são mais superficiais do que no caso anterior. Todos os materiais aqui também estão em inglês. O preço da assinatura é de US $ 29 por mês ou 299 por ano. Aqui, como no caso anterior, há acesso aos materiais durante o pagamento da assinatura. Você não pode simplesmente comprar um ou dois cursos para sempre.


O Udemy é uma grande biblioteca de vários cursos. É diferente porque os cursos aqui não são apenas em inglês, mas também em russo. A política de preços aqui é completamente diferente dos recursos anteriores. Aqui você pode comprar um curso e ele permanecerá com você para sempre. Ao escolher um curso na Udemy, você precisa prestar atenção ao número de horas de vídeo aulas, qualidade do som (geralmente várias palestras estão disponíveis sem registro), críticas de outros ouvintes. Aqui eu quero recomendar o curso “Java. Do simples ao complexo . Em termos de qualidade (número de horas) e preço, esse é talvez o curso Udemy mais lucrativo em russo. Ao seguir o link, você recebe um preço fixo com um desconto de 90%. Apenas 10 com um pequeno dólar por 33 horas de excelente conteúdo de vídeo. No processo de preparação do curso, o autor analisou um grande número de cursos, livros e materiais de treinamento e também aplicou sete anos de experiência no desenvolvimento de aplicativos de nível empresarial.


Opção Três - Cursos em Tempo Integral
Outra opção de treinamento que pode levar você ao seu objetivo. Tudo é ambíguo aqui. Por um lado, participando de cursos em período integral que você espera que sejam exibidos e conte tudo o que você precisa. Por outro lado, você tem que aprender a si mesmo de qualquer maneira. Nenhum professor pode apenas ensinar como ele é bom. Aqui, como em todos os outros lugares, tudo depende da motivação e perspicácia pessoal. Estou dizendo com confiança que não há como escapar de livros e vídeoaulas. A vantagem pode ser que um bom professor o ajude a entender as coisas que você não conseguiu descobrir sozinho e a acelerar um pouco o processo de aprendizado.

Aqui, como no caso de cursos em vídeo, você precisa abordar cuidadosamente a escolha. Como em outras áreas, a demanda cria oferta e espera-se que haja muitos cursos de baixa qualidade em tempo integral no mercado. Os motivos da má qualidade são diferentes e o motivo nem sempre é o professor. Um problema comum é que, para aumentar a renda, os cursos escolares ganham muitos alunos, e mesmo o melhor treinador não será capaz de dedicar tempo suficiente a cada aluno. Quanto maior o grupo, mais diversificados os alunos estarão no grupo. No final, o grupo é dividido em mais forte e mais fraco. No final, você pisar no local, porque o professor deve explicar a mesma coisa várias vezes, ou se a maior parte do grupo tiver mais experiência que você, você começará a ficar irremediavelmente para trás. Após pouco tempo, os juros são perdidos e fica claro que o dinheiro foi desperdiçado. Ao escolher os cursos, preste atenção nas críticas daqueles que já concluíram os cursos, no número de horas do curso e quantas pessoas estão no grupo. Um indicador importante é a disponibilidade de testes de entrada e uma descrição dos requisitos mínimos.


Qual opção escolher?

Aqui, todos devem ter sua melhor opção. Segundo o autor, a melhor opção é uma combinação das três opções em um grau ou outro. Definitivamente sem livros, não funcionará. Se você decidir fazer um curso de programação em tempo integral, primeiro precisa entender se essa atividade é adequada para você. Nesse caso, antes de ir para lá, leia pelo menos um livro, assista a alguns tutoriais em vídeo. Em primeiro lugar, você entenderá claramente o seu ou não. Em segundo lugar, com uma base mínima, você pode fazer as perguntas certas e tirar o máximo proveito do curso. Em terceiro lugar, você pode participar de um curso em que o aluno precisa de um pouco mais do que conhecimentos básicos de informática.


Depois de obter um conjunto mínimo de conhecimentos, seria bom encontrar um mentor. O prazer não é barato, mas se o mentor for bom, você economizará muito tempo. , — , , , , , .


?


. , . , . . Hello World , . . , . — , .


. , . . . , .


— . , . , . . , .


hackerrank . , . .


GitHub GitLab. , . - . , . , , , , . , . .


. , . , .


. . . — , .


. , Facebook Apple - - . . , , .

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


All Articles