Vagas selecionadas para programadores Java. Vagas selecionadas para programadores Java Um algoritmo aproximado para aprender Java

Lar / Congela

Um amigo meu sempre se perguntava por que os programadores eram sempre tão felizes. A resposta que encontrou foi simples e desanimadora: porque trabalham num emprego que amam e têm muito dinheiro. Bem-vindo ao mundo dos programadores.

Salário do programador

Quero falar sobre os salários dos programadores. Como vão realmente as coisas com os salários, onde é melhor ir trabalhar e onde não? Se você não é um programador e tenta entender esse tópico por conta própria, pode acabar com um conjunto de dados muito contraditório. O fato é que o principal fator que influencia o salário de um programador não são suas qualificações, mas sim seu local de trabalho. Às vezes, com as mesmas qualificações, a diferença entre uma posição boa e uma má pode chegar a 2 a 10 vezes (!) Em qualquer momento, as suas qualificações são constantes. Você não pode se tornar duas vezes mais experiente e ganhar o dobro em um mês. Mas você pode mudar de emprego em um mês e ganhar o dobro. Um dia, em dois meses, meu salário triplicou(!) - uma experiência inesquecível. Vamos descobrir onde é o melhor lugar para trabalhar. Aqui estão três fatores que influenciam muito o nível de salários nas empresas:
  1. O desenvolvimento de software é o principal negócio da empresa?
  2. A empresa está voltada para o mercado internacional ou doméstico?
  3. O proprietário da empresa é uma empresa ocidental ou nacional.
Observe que a cidade em que você mora não desempenha um papel decisivo. Aqueles. Se você ganha 10 vezes menos vivendo em Dresden do que alguém que conhece em Nova York, então os fatores listados acima estão em jogo.

Números específicos

É difícil fornecer números específicos para o mundo inteiro. Darei uma descrição da situação da Europa Oriental, o que geralmente é verdade para todos os países onde a terceirização/equipe terceirizada de TI está mais ou menos desenvolvida. Abaixo está um detalhamento dos salários dos programadores em Kiev, que é um importante centro de terceirização de TI na Europa Oriental. Em São Petersburgo, os salários são 10% mais altos, em Moscou, cerca de 20%. Não conheci uma única cidade com mais de um milhão de habitantes na Europa de Leste onde os salários fossem 30% inferiores aos de Kiev. Como todos vocês são de cidades diferentes, proponho aumentar os números que dei, de acordo com a escala especificada: Isto é quanto vocês podem ganhar Desenvolvedor Java Sênior com cinco anos de experiência profissional, dependendo do nível da empresa em que atua:
Nível Salário por mês Descrição
1 $200 - $500 Na parte inferior estão as empresas onde a TI é uma área de negócio não essencial da empresa, o cliente é o mercado interno e o proprietário é o Estado. Por exemplo, o departamento de TI de uma organização fiscal ou outra organização governamental.
2 $500 - $1500 Abaixo da média estão os departamentos de TI de várias estruturas não governamentais: bancos, etc.
3 $1,000 - $2,500 Nível médio - são empresas que desenvolvem software
4 $3,000 - $4,000 Acima da média - são empresas que desenvolvem software e seus clientes são do Ocidente
5 $4,000 - $5,000 No topo estão as empresas de desenvolvimento de software, seus clientes são do Ocidente e o proprietário também. Existem poucos deles. As vagas de emprego são raras e não é fácil chegar lá. Mas eles existem.
Qual é a coisa mais estranha nesta situação? Metade de todos os programadores trabalha em empresas de nível 1 e 2. Quer saber qual é o problema? Existem centenas de vagas abertas para programadores em empresas de nível 3 e 4. Essas empresas estão dispostas a oferecer salários mais altos e geralmente condições de trabalho muito melhores. Conheço dois Java Juniors, um dos quais trabalhava por US$ 100 por mês (em uma empresa de nível 1) e o segundo por US$ 1.000 por mês (nível 4). Por que receber menos? A demanda por programadores supera a oferta - não vá trabalhar onde pagam pouco! Conclusão 1: Os salários médios dos programadores Java em Kyiv são de cerca de US$ 1.200 por mês Conclusão 2: Seu salário médio, após 5 anos, se você não for trabalhar em empresas de níveis 1 e 2, mas sim em empresas de níveis 3 e 4, será superior a US$ 3.000 por mês. O que você pode conseguir se não for estúpido? Se você se dedica constantemente ao autodesenvolvimento na área de programação, então seu salário, a partir de hoje, pode ser mais ou menos assim.

Plano

0-3 meses (Estudante) Você sabe muito pouco sobre programação. Talvez tenham ensinado na escola e/ou universidade, mas de forma muito superficial. Sua tarefa- aprenda programação e aprenda Java. Seu objetivo- conseguir um emprego como Java Junior em uma empresa de pelo menos nível 3. Nos primeiros três meses do plano você não recebe nada, porque... apenas aprendendo programação. No futuro, quando você tiver uma família e muitos empréstimos, mudar de curso será muito mais difícil. Para corrigir o erro você precisará economizar dinheiro para um ano de vida normal. Não cometa erros estúpidos. 3 a 15 meses (Java Junior Developer) Você já trabalha como programador e sua experiência cresce a cada dia. Não fique ocioso. Você ainda tem muito a fazer antes de descansar sobre os louros. Sua tarefa- estude as tecnologias que você precisará como desenvolvedor intermediário. Quais tecnologias exatamente? O mundo está mudando. Vou te dar um conselho agora e a vida mudará tudo. Encontre alguns empregos online e veja o que eles exigem. Não deixe de ler o livro de Bruce Eckel, The Philosophy of Java. Seu objetivo no primeiro ano Java funciona Junior - avance para o nível Java Middle. Ninguém diz que é muito fácil, mas é bem possível para uma pessoa com propósito. Isso dará imediatamente um salto no salário para mil e quinhentos. 2º ano como programador(Java Middle Developer, nível 1) Você trabalhou duro no ano passado e agora é um Java Middle Developer. Com um salário de mil e quinhentos você pode viver normalmente. No trabalho, você recebe tarefas sérias e sua experiência cresce aos trancos e barrancos. Você crescerá para Desenvolvedor Java Sênior em dois a três anos. Não faz sentido acelerar esse processo. Você ainda não receberá um forte aumento de salário. Sua tarefa- estude padrões de design, leia o "Código Perfeito" de McConnell. Melhore a qualidade do seu código e suas habilidades de trabalho em equipe. Você pode estabelecer como regra a leitura de um livro de TI por semana. Então, em um ano, você será 50 livros mais inteligente que os outros. Não deixe para mais tarde: você não terá mais tempo livre. É provável que você tenha uma família ou expanda se já tiver uma. Seu objetivo- escolha diversas tecnologias nas quais você se especializará como desenvolvedor sênior. Você ainda não aprenderá tudo. E ser um guru em uma área pequena é uma boa decisão. 3º ano como programador(Java Middle Developer, nível 2) Você já é um desenvolvedor Middle experiente e está começando a pensar em se tornar um Desenvolvedor Sênior. É bonito e prestigiado. Seu salário ultrapassa 2 mil dólares (dados de Kyiv). A partir de agora a procura por profissionais como você supera a oferta. Você sempre pode conseguir um emprego em alguns dias e é improvável que ganhe menos do que ganha agora. A menos, é claro, que você faça algo estúpido. Sua tarefa- continuar estudando as tecnologias selecionadas. Faça melhor. Não para o bem do empregador, para o seu próprio bem. Aplique em projetos com tecnologias promissoras (como Big Data, no momento em que escrevo este artigo). De qualquer maneira, você passará 8 horas por dia no escritório, então por que não ganhar um pouco mais de dinheiro por isso e, mais importante, a valiosa experiência de que você precisa. Seu objetivo- mudar de emprego. Existem pessoas boas em todos os lugares. Você encontrará novos projetos e tecnologias. Você não deve chegar à cadeira antes do tempo. Se você ainda trabalha em uma empresa de nível 3, considere mudar para o nível 4. O quinto nível, embora muito atrativo, ainda é inatingível. 4º ano como programador(Desenvolvedor Sênior Java, nível 1) Você se tornou um Desenvolvedor Sênior. Parabéns. Talvez você tenha se tornado um sem merecimento e sinta isso. Mesmo assim, parabéns. Não importa se você é digno de sua posição agora, o principal é que você se torne digno dela no futuro. Concordo, é melhor conseguir primeiro bom trabalho, e em um ano crescer até atingir isso, em vez de crescer até uma boa posição e esperar mais um ano por isso. Espero que você não tenha esquecido meu conselho e leia um livro por semana - agora qualquer aluno invejará suas capacidades. Ou melhor, ele está pronto para orar por eles. Pense bem, você tem um salário sério, próximo dos três mil dólares. Muito provavelmente, você ainda é jovem. O mundo inteiro está sob seus pés. Sua tarefa- revise novamente as tecnologias que você escolheu. Talvez você precise mudar sua especialização. O mundo mudou, a tecnologia mudou e o seu conhecimento aumentou nos últimos dois anos. O que você escolher agora será sua escolha nos próximos anos. É hora de escolher suas tecnologias favoritas. Seu objetivo- escolha a direção na qual você poderia se desenvolver ainda mais. São muitos, ninguém vai listar todas as opções, mas a escolha precisa ser feita agora. Se você mudar um pouco o seu presente hoje, isso levará a grandes mudanças no seu futuro. 5º ano como programador(Desenvolvedor Java Sênior, nível 2) Você decidiu seu futuro e está trabalhando para realizar seus sonhos. A direção certa, aliada à vontade de seguir em frente, e o resultado não o deixarão esperando. Parabéns. Estou feliz por ter me tornado mais uma pessoa feliz. Existe uma verdade sábia. Muitas vezes as pessoas sobrestimam o que pode ser alcançado num ano e subestimam o que pode ser alcançado em cinco anos. Olhe para trás cinco anos. É assim que é. Sua tarefa- não tome decisões estúpidas e não se deixe levar pela preguiça. Seu objetivo- escolha uma direção e siga em frente. Você achou que isso era o fim? Pense na sua turma de formatura. Este não é o fim, é apenas o começo.

Especialização futura

Você pode se desenvolver como especialista técnico (linha superior), como gerente (linha inferior) ou como consultor profissional/independente contratado (linha média). Tudo depende das suas preferências.

Carreira de programação

A profissão de programador é diferente de outras profissões. Não há necessidade de seguir a carreira de gerente para ganhar um bom dinheiro. Não é incomum que um programador sênior ganhe mais do que seu chefe/gerente. Quanto mais experiência você ganha, mais seu relacionamento com seu chefe passa de chefe-trabalhador para gerente-estrela de cinema. Programadores famintos que conhecem o seu valor estão fazendo malabarismos entre projetos e vagas. Sejamos felizes pelos nossos. O que é necessário para se tornar um programador tão qualificado e procurado globalmente? Você deve ter ampla experiência nas tecnologias mais recentes e mais procuradas. Como conseguir isso? A resposta está abaixo. Depois que você consegue um emprego como programador pela primeira vez, duas coisas começam a acontecer com você que, por incrível que pareça, nem sempre são óbvias.
  1. Você começa a ganhar experiência rapidamente trabalhando em projetos reais. Um ano de experiência em programação pode lhe proporcionar mais conhecimento e habilidades em sua área do que 5 anos de universidade. A experiência é um indicador tão significativo que as vagas de TI costumam dizer “é necessário um programador Java com três anos de experiência”.

  2. Você passa 8 horas por dia estudando novas tecnologias e também é generosamente pago por isso. A importância deste fator não pode ser superestimada. Em alguns casos, as competências adquiridas são tão valiosas que você pode trabalhar de graça ou até pagar a mais para obtê-las. Se você escolher sabiamente os projetos nos quais concorda em trabalhar, uma carreira vertiginosa como programador o aguarda.
Mas o que escolher? Muitas vezes, se você não sabe quais tecnologias serão úteis para você, você começa a escolher tecnologias com base no princípio de “gosto, não gosto” ou “na moda, não na moda”. Depende da sua sorte. Então, é melhor saber com antecedência para onde você quer ir. Existem muitas maneiras de desenvolver um programador, então, para simplificar, destacarei várias delas e escreverei minha visão da situação resultante. Este diagrama não deve ser tomado como uma posição rígida, mas sim como uma visão simplificada das coisas, a fim de trazer pelo menos alguma clareza.

Programador do Bicentenário

Se acima de tudo você Eu gosto de programar, seu caminho será: Desenvolvedor Sênior e, em seguida, Desenvolvedor e Arquiteto Líder Técnico. Você também pode trabalhar como programador por 50 anos. Freqüentemente, os salários dos programadores seniores e líderes técnicos excedem os salários de seus gerentes. Não se engane.

Gerente. Você tem sorte, você não é como todo mundo

Você passou para o lado do inimigo. Brincando. Se você abriu algum incrível habilidades organizacionais, então seu caminho será: Líder de Equipe e depois Gerente de Projeto. Isso lhe dará a chance de se tornar um diretor e o ajudará a iniciar seu próprio negócio. É isso que você quer, não é?

Roubar um trator

Se você tiver tempo começar uma família e filhos, então talvez você queira uma vida tranquila e confortável em um país com uma economia estável. Você está pensando em se mudar/imigrar para o Canadá, EUA, Suíça ou mesmo Austrália? Você tem excelentes habilidades e uma profissão muito procurada. Você não precisa começar como lavador de pratos. E, por exemplo, com Desenvolvedor Java Sênior. E provavelmente por um salário maior também. Nada mal.

Veja o mundo inteiro, exceto Paris, e não morra

Você ainda não tem uma família e você quero viajar. Upwork é tudo para você. Encontre um cliente, discuta as tarifas com ele - a partir de US$ 20/hora, pegue um laptop e pronto. Seu salário deve ser suficiente para viver normalmente em qualquer país do mundo. Por que não começar a realizar seus sonhos agora? A programação é confortável.

Olá. Se você está lendo este artigo, provavelmente tem dúvidas sobre como se tornar um programador. Talvez você até tenha decidido aprender o idioma Programação Java, mas não sabe por onde começar a estudar. Atrevo-me também a admitir que muitos se perguntaram: É possível aprender Java em 1 ano? E se eu não estudasse para ser programador na universidade? Minha especialidade nem é técnica. Serei capaz? Quanto tempo terei para dedicar a esta atividade? O que você terá que aprender? Por onde começar a aprender? Se você já teve pelo menos uma dessas perguntas, agora você está no lugar certo.


Não é de surpreender que muitas pessoas se percam logo no início, sem saber por onde começar, pois existem tantas linguagens por aí, muitos livros de programação, vários tipos de treinamentos, cursos em vídeo e até mentorias individuais. Como escolher o que é certo para você e como obter resultados no prazo adequado? Vamos conversar sobre tudo em ordem.


Motivação


Antes de iniciar qualquer atividade complexa que exija muito tempo e energia, você deve entender por que precisa dela. Cada um de nós deve responder a três perguntas importantes:


Por que? - a pergunta mais difícil. Está no cerne da motivação. Você deve entender claramente qual é o seu objetivo e pelo que você está se esforçando. O dinheiro não deve ser o motivo principal aqui, apenas um acréscimo importante. Se você gosta tecnologias modernas, Você adora criar algo, pode ficar sentado por horas fazendo o que ama, está pronto para fazer de graça e tem raciocínio lógico, então é provável que esta atividade seja só para você. Você deve ser capaz de desfrutar do seu trabalho. Só neste caso é possível obter resultados verdadeiramente bons.


O que? - Esta é uma pergunta bastante lógica. O que você precisa fazer para alcançar o sucesso neste negócio. Aqui também pode surgir a dúvida: 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 tiverem que responder à primeira pergunta de forma independente, então poderemos resolver as duas últimas juntos.


Qual idioma devo escolher?


Vamos supor que está tudo bem com a motivação e podemos passar para a próxima questão. Antes de escolher qualquer idioma, você deve entender se existem vagas no mercado de trabalho, se elas existirão no momento em que você dominar o nível básico e começar a procurar emprego. A complexidade da linguagem de programação também 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 aqui pode ser maior do que nas outras categorias. Para determinar as perspectivas de uma linguagem, você precisa analisar onde ela é usada, quão amplo é o escopo e com que frequência novos frameworks são lançados na linguagem de sua escolha. O ranking das linguagens de programação pode nos ajudar aqui.


Acho que é hora de respaldar as palavras com números. De acordo com várias pesquisas, os cinco primeiros são Java, JavaScript, C++, C e Python.


Você pode encontrar muitos exemplos de pesquisas na Internet. Aqui estão apenas alguns deles:


Por exemplo, de acordo com o site tiobe.com, que publica regularmente classificações de linguagens de programação, Java permanece na liderança há muitos anos. Os cinco primeiros também incluem C++ e Python.

Outra fonte confiável de estatísticas, o site Stackoverflow, que realizou pesquisas entre seus usuários, afirma que o JavaScript está em primeiro lugar, enquanto o Java está em quinto lugar no ranking. Mas aqui as linguagens de marcação HTML e CSS também foram levadas em consideração.




Aqui vale a pena considerar o fato de que muitos programadores Java podem conhecer JavaScript de uma forma ou de outra. Existem menos desenvolvedores de JavaScript que também conhecem Java. Isso dá ao JavaScript alguns pontos na pesquisa anterior.


Agora vamos dar uma olhada no número de vagas e nas respostas dos candidatos por idiomas diferentes. Para não explicar muito, darei apenas alguns links. Por exemplo, o site DOU.ua publica regularmente diversas estatísticas sobre vagas, salários, etc. Por exemplo, você pode observar um aumento no número de vagas nos principais idiomas, e então poderá utilizar vários tipos de filtros que mostrarão a proporção do número de vagas em diferentes cidades e em diferentes idiomas. Os dados estão disponíveis em formato tabular e gráfico. Entre os favoritos aqui, como sempre, estão Java, Python, C++, .NET. Além disso, a relação número de vagas/respostas para 2018 é melhor em C++, 2-3 pessoas por vaga. Infelizmente, não consegui encontrar estatísticas semelhantes para outros países. Mas há um bom artigo com infográficos especificamente sobre Java.


Em geral, você precisa escolher um dos principais idiomas e assim na hora da formatura terá boas chances de encontrar um emprego.


Na minha humilde opinião, uma boa opção para iniciar a carreira é Java. Uma linguagem não muito complicada, uma ampla gama de aplicações e um número suficiente de vagas. A segunda metade do nosso artigo será sobre Java. Se eu tivesse que começar tudo de novo agora, Python seria uma boa alternativa, já que agora está ganhando popularidade ativamente.


Visão geral do ecossistema Java


Para que você entenda melhor o que precisa passar para se tornar um programador Java, daremos uma breve visão geral do ecossistema Java. Sugiro que você observe a ilustração a seguir. Certamente não cobre todos os aspectos, mas lhe dará algumas dicas.



No centro do universo, como sempre, temos a própria linguagem Java. Para ser mais preciso, Java Core. No momento em que este artigo foi escrito, o Java JDK 10 foi lançado. A Oracle mudou sua política de trabalho com versões Java e agora não há mais uma diferença tão grande entre as versões como havia quando, por exemplo, o Java 8 foi lançado. é esta versão que continua a ser a mais popular e frequentemente utilizada na grande maioria das empresas e projetos. Você pode começar a aprender o idioma com segurança a partir desta versão e aprender novos recursos adicionando-os ao seu conhecimento básico. Aprender esta parte talvez seja a tarefa mais difícil para um iniciante. Você tem que aprender um novo tipo de atividade e começar a pensar de forma diferente. Além de tudo isso, há uma grande quantidade de material que precisa ser aprendido. A maioria daqueles que estão apenas começando desiste nesta fase. Tudo depende da sua motivação.


Se o domínio da linguagem Java estiver indo bem, você também precisará ferramentas adicionais, como um sistema de controle de versão (Version Control System) e um sistema para construção de projetos. Como VCS, recomendo usar o Git, que é líder absoluto entre seus pares. Todos os outros sistemas, como Subversion e Perforce, estão se tornando coisas do passado. Além disso, você pode usar repositórios Github ou GitLab para seu código gratuitamente. Há uma grande probabilidade de você usar o BitBucket da Atlassian em sua empresa. Mas isso é apenas uma casca. Se você aprender a usar o Git, todo o resto não importará. A Atlassian também é fornecedora de produtos como Jira e Confluence, mas isso não importa para você na fase de estudo.


Quanto às ferramentas para 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, você deve pensar sobre qual direção 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, então você terá que estudar bem a parte Back-End e ter um entendimento geral dos fundamentos da parte Front-End. Não se deve esperar que você faça o layout do site, mas vale a pena conhecer HTML. Devo também observar que na seção Back-End, Spring se refere principalmente ao Spring Core. É com esta parte da estrutura que você precisa começar. Agora cresceu a tal ponto que cobre todos os aspectos do desenvolvimento Java. Alternativamente, a Oracle está tentando forçar a especificação Java EE, mas não está fazendo um trabalho muito bom.


Quanto ao BigData, também existe uma pilha de tecnologia bastante grande. Basicamente, todos eles são projetados para armazenamento distribuído e processamento distribuído de dados usando a abordagem Map-Reduce. O mais antigo e mais tecnologia conhecida aqui está o Hadoop.


Não acho que valha a pena explicar o que é Android. Direi apenas que para escrever aplicações para este plataforma móvel, você terá que aprender Java.


Como você deve ter notado, existem algumas áreas de aplicação de Java, portanto, em um futuro próximo, depois de aprender Java, você não ficará sem trabalho.


Por onde começar? O que ler?


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


Aqui você tem três opções possíveis. Não consideramos a situação quando você escolheu esta especialidade na universidade. Ainda não exclui as opções descritas abaixo.


Opção um - livros sobre Java

O método mais antigo, tradicional e até agora o mais comprovado. Vantagens: a maioria dos livros de editoras conhecidas são escritos por autores profissionais, muitos dos quais têm décadas de experiência em desenvolvimento e ensino em prestigiadas universidades ocidentais. Além disso, esses livros são verificados cuidadosamente pelos próprios editores, portanto a probabilidade de erros é muito pequena. Especialmente quando o mesmo livro é republicado repetidas vezes à medida que a linguagem é atualizada. Depois de ler os livros básicos, você terá que passar para os mais avançados. Existem poucos lugares onde você pode encontrar tópicos de programação avançada abordados com a mesma profundidade. Desvantagens: muitos livros são escritos em linguagem acadêmica seca e parecem mais livros de referência. O próprio famoso autor Kay Horstmann admitiu repetidamente que não lê esses livros na íntegra, mas apenas os capítulos que o ajudam a resolver um problema atual.


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

  1. Java Como Programar - Paul Deitel e Harvey Deitel. Este livro passou por várias reimpressões e talvez seja o guia mais completo sobre Java. Além da linguagem em si, os fundamentos dos algoritmos também são muito bem explicados lá.
  2. Filosofia Java - Bruce Eckel - também conquistou um lugar de honra na biblioteca dos programadores. Explicações acessíveis e compreensíveis. Bom para iniciantes.
  3. Use a Cabeça Primeiro Java, 2ª Edição - Bert Bates, Kathy Sierra é um livro que se tornou popular devido à capacidade dos autores de explicar conceitos complexos usando exemplos simples da vida real. Não muito profundo no conteúdo, mas ainda assim interessante.
  4. Java. Biblioteca do profissional. Volume 1.2 - Kay Horstmann. Este livro de referência também está nas prateleiras de muitos desenvolvedores Java há muito tempo. É apenas um daqueles livros dos quais se lê capítulos individuais para resolver problemas, e não o livro inteiro.
  5. Guia para iniciantes em Java 8 - Herbert Schildt. Eu ainda não li esse livro, mas já ouvi alguns feedback positivo. Ler 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 um pouco mais avançado sobre Java. Contém uma grande quantidade de dicas e recomendações sobre como você pode melhorar seu código. A 3ª edição deste livro foi publicada recentemente. Eu recomendo fortemente a leitura.
  8. Simultaneidade Java na Prática - Brian Goetz. é um bom e velho guia para multithreading em Java que nunca sai de moda.

Opção dois - cursos em vídeo sobre programação e muito mais...

Cursos em vídeo e vários tipos de videoaulas começaram a ganhar grande popularidade. A ideia em si é muito boa e eu pessoalmente gosto dela. Este tipo de material educacional é especialmente adequado para alunos visuais, pessoas que melhor percebem as informações visualmente. Além disso, você também pode usar a compreensão auditiva. Uma das vantagens é preço acessível. Além disso, no YouTube você pode encontrar um grande número aulas gratuitas, alguns dos quais são muito bons. Entre as desvantagens das aulas no YouTube, devo destacar que muitas vezes são fragmentadas e não sistematizadas, bem como o fato de o material nelas contido ser apresentado de forma bastante superficial. Mas mesmo aqui há exceções no bom sentido da palavra.


As seguintes plataformas podem ser uma alternativa às aulas do YouTube:
Safari O'Reilly é uma enorme coleção de livros, tutoriais em vídeo e webinars sobre vários tópicos. A qualidade dos materiais é uma grande vantagem. Livros e treinamentos em vídeo são gravados por profissionais reconhecidos na área. A principal desvantagem aqui é o preço. $ 400 por ano se você pagar adiantado ou $ 480 se pagar mensalmente. Todos os materiais estão aqui Inglês. Se você decidir assinar, recomendo materiais preparados pela própria O’Reilly, geralmente de melhor qualidade que as lições de outras editoras;


Pluralsight é uma boa plataforma para videoaulas. A escolha de materiais sobre temas é grande, mas em sua maioria são mais superficiais do que no caso anterior. Todos os materiais aqui também estão em inglês. A assinatura custa US$ 29 por mês ou US$ 299 por ano. Aqui, como no caso anterior, você tem acesso aos materiais desde que pague a assinatura. Você não pode simplesmente comprar um ou dois cursos para sempre.


A Udemy é uma grande biblioteca com vários tipos de cursos. A diferença é que 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 o curso e o terá para sempre. Na hora de escolher um curso na Udemy, é preciso ficar atento à quantidade de horas de videoaulas, qualidade do som (geralmente várias palestras ficam disponíveis sem inscrição), avaliações de outros alunos. Aqui quero recomendar o curso “Java. Do simples ao complexo." Em termos de relação qualidade (número de horas) e preço, este é talvez o curso mais lucrativo da Udemy em russo. Ao clicar no link você obtém um preço fixo com 90% de desconto. Pouco mais de 10 dólares por 33 horas de excelente conteúdo de vídeo. No processo de preparação do curso, o autor analisou grande número cursos, livros e materiais de treinamento, além de 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 desejado. Tudo aqui é ambíguo. Por um lado, ao frequentar cursos presenciais, você espera que eles lhe mostrem e contem tudo o que você precisa. Por outro lado, você ainda precisa aprender sozinho. Nenhum professor pode simplesmente ensinar você, não importa quão bom ele seja. Aqui, como em todos os outros lugares, tudo depende da motivação pessoal e da própria inteligência. Por isso afirmo com segurança, não há como escapar dos livros e videoaulas. A vantagem pode ser que um bom professor o ajudará a entender as coisas que você não conseguiu descobrir sozinho e a acelerar um pouco o processo de aprendizagem.

Aqui, como no caso dos cursos em vídeo, você precisa abordar cuidadosamente sua escolha. Tal como noutras áreas, aqui a procura cria oferta e é bastante expectável que existam no mercado muitos cursos presenciais de baixa qualidade. As razões para a má qualidade são diferentes e nem sempre o motivo é o professor. Um problema comum é que, para aumentar o rendimento, as escolas matriculam demasiados alunos e mesmo o melhor formador não conseguirá dedicar tempo suficiente a cada aluno. Quanto maior o grupo, mais níveis diferentes haverá alunos no grupo. Eventualmente o grupo é dividido em grupos mais fortes e mais fracos. No final, ou você marca tempo porque o professor tem que explicar a mesma coisa várias vezes ou se a maior parte do grupo tem mais experiência do que você, você começa a ficar irremediavelmente para trás. Depois de pouco tempo, perde-se o interesse e fica claro que o dinheiro foi desperdiçado. Na hora de escolher os cursos, preste atenção nas avaliações de quem já concluiu os cursos, na carga horária do curso e no número de pessoas do grupo. Um indicador importante é a presença de testes de entrada e descrição requisitos mínimos.


Qual opção devo escolher?

Cada um aqui deveria ter o seu melhor opção. Segundo o autor, a melhor opção é combinar as três opções de uma forma ou de outra. Você definitivamente não pode viver sem livros. Se você decidir fazer cursos de programação em tempo integral, primeiro você precisa entender se essa atividade é adequada para você. Se sim, então antes de ir para lá, leia pelo menos um livro, assista a algumas videoaulas. Em primeiro lugar, você entenderá claramente se é seu ou não. Em segundo lugar, tendo uma base mínima, você poderá fazer as perguntas certas e, finalmente, aproveitar ao máximo o curso. Terceiro, você pode fazer um curso que exija que o aluno tenha pouco mais do que conhecimentos básicos de informática.


Depois de adquirir um conjunto mínimo de conhecimentos, seria bom encontrar um mentor. Esse prazer não é barato, mas se o mentor for bom, ele vai te poupar muito tempo. Lembre-se, um mentor não é uma pessoa que mastiga tudo para você, é alguém a quem você pede conselhos, com perguntas específicas, quando você mesmo não encontrou a resposta.

Como praticar?

A prática é o mais pergunta importante. Envolve não tanto a habilidade de escrever código, mas a habilidade de fazê-lo corretamente. Muitas pessoas dizem que você precisa contribuir para um projeto de código aberto ou escrever o seu próprio. Aqui devo decepcioná-lo. Se você sabe pouco mais do que escrever um programa Hello World, ninguém permitirá que você se comprometa com um projeto de código aberto. Nestes projetos, a abordagem é muito semelhante à abordagem de trabalho em empresas. Existem tarefas aí, a conclusão de cada uma delas requer um código de revisão. A tarefa dos responsáveis ​​pelo projeto é consertar bugs, e não criar novos.


Você precisa começar pequeno. Primeiro, você aprenderá a escrever programas que vê em livros ou tutoriais em vídeo para que funcionem de maneira simples. Tente modificá-los um pouco. Em seguida, passe para as tarefas do mesmo livro. Eles o ajudarão não apenas a aprender a digitar programas com rapidez e sem erros, mas também a pensar de forma diferente.


A próxima etapa é começar a escrever seu pequeno projeto. Ele deve resolver um problema prático, mesmo que seja pequeno. Durante o processo de treinamento você aprenderá novo material, algoritmos e padrões de projeto. Tudo isso deve ser aplicado em seu projeto. Não é possível se inscrever aqui, inicie um novo projeto.


Ao mesmo tempo, vale a pena praticar a conclusão de tarefas em recursos como o hackerrank. Você pode não apenas praticar a escrita de código, mas também compreender a mecânica da plataforma. Cada vez mais empresas estão iniciando o processo de contratação com atribuições neste site e em outros semelhantes.


Neste ponto, é hora de obter um repositório no GitHub ou GitLab. Você deve ter alguns projetos normais com testes unitários que não tenha vergonha de mostrar ao empregador. Peça a um de seus amigos experientes para fazer uma revisão do código. Esse boa prática para desenvolvedores experientes, não apenas para iniciantes. Se você não tem um amigo que conheça bem o idioma que você está aprendendo, contrate um mentor por uma ou duas horas. Se eles disserem que está tudo bem, você deve suspeitar dessa revisão de código. Sempre há espaço para discussão.


Nesse nível, você provavelmente será capaz de contribuir com o código aberto. Se você ainda não tem emprego, pratique lá. A experiência é boa para você, é boa para a sociedade.


Paralelamente ao repositório, é hora de preparar o currículo e começar a bater na porta das empresas. Não se esqueça de vincular aos projetos em seu repositório. Faça o máximo de entrevistas possível. A capacidade de passá-los é uma habilidade muito importante que acabará por lhe trazer uma renda adicional.


Para concluir, gostaria de lhe desejar boa sorte. Lembre-se de que o Facebook e a Apple já foram pequenas empresas na garagem ou no dormitório de alguém. Você só precisa estudar. Não é tão importante quantas horas por dia você estuda, mas quantos dias seguidos você faz isso.

Etiquetas:

Adicionar tags

Noções básicas de programação
Noções básicas de programação, termos e conceitos básicos

O curso em vídeo apresentará aos alunos os fundamentos da programação, termos e conceitos básicos. Ele lhe ensinará como desenvolver algoritmos e lhe dará experiência real na criação de produtos web. As aulas incluem uma visão geral das linguagens e áreas de programação atuais, ajudam os alunos a escolher aquelas que são mais interessantes para eles e fornecem materiais e instruções para um maior desenvolvimento profissional.

Lição 3. Primeiro programa

Escolhendo uma linguagem de programação. Preparando o navegador. Programa "Olá, mundo!"

Lição 4. Variáveis

Instalando um editor de código conveniente. Introdução às variáveis. Uma calculadora simples.

Lição 5. Tipos de dados

Tipos de dados. Operações com tipos diferentes dados. Conversão de tipo de dados.

Lição 6. Algoritmos e fluxogramas

Pensamento algorítmico. Fluxogramas visuais.

Lição 7. Operador de filial se

Selecionando opções no programa. Operador de filial se. Um jogo de enigmas.

Lição 8. Operações lógicas

Condições de seleção complexas. Lógico E, OU. Jogo "Angry Birds".

Lição 9. Faça, loops while

Faça e enquanto loops. Jogando roleta russa.

Lição 10. Loop For

O loop for. Calculadora financeira.

Lição 11. Matrizes

Grandes conjuntos de dados e matrizes. Jogo de roleta.

Lição 12. Funções

Funções. Preparando-se para escrever o jogo “Black Jack (21)”.

Lição 13. Jogo "Black Jack". Parte 1

Escrevendo um jogo completo. A base é distribuir cartas e contar pontos.

Lição 14. Jogo "Black Jack". Parte 2

Conclusão da escrita do jogo. Determinação de resultados e vencedor.

Lição 15. Carreira de programação

Revisão das principais direções da programação. Como escolher uma linguagem de programação? O que estudar a seguir?

Eita. Início rápido
Noções básicas de Git

O curso em vídeo oferece experiência em desenvolvimento de equipes usando Git. Ensina como organizar um repositório de código compartilhado do zero e usá-lo de maneira eficaz. Os alunos dominam clientes git com interfaces gráficas e de console, aprendem a controlar o lançamento de versões de programas e a “reverter” para versões anteriores. Erros comuns no desenvolvimento em equipe são discutidos em detalhes: ao mesclar ramificações, criar commits, armazenar arquivos executáveis ​​em um repositório.

Lição 1. Objetivo e capacidades

Vamos descobrir por que o git é necessário e quais oportunidades ele abre para os programadores.

Lição 2: Operações Básicas

Criamos um repositório de código acessível a todos os participantes do desenvolvimento na rede. Dominamos operações básicas: Clone, Commit, Push, Pull.

Lição 3. Revertendo alterações de código

Aprendendo a reverter alterações de código usando git. Dominamos as operações Descartar, Reverter, Redefinir.

Lição 4. Trabalhando com filiais

Trabalhando com filiais.
Paralelamente, estamos desenvolvendo diversas versões do programa. Dominamos as operações Add branch, Checkout, Merge.

Lição 5. Conflitos

Aprendendo a resolver conflitos ao mesclar filiais.

Lição 6. Erros comuns. Parte 1

Medo de criar novas filiais. Armazenar arquivos executáveis ​​em um repositório.

Lição 7. Erros comuns. Parte 2

Erros ao trabalhar com filiais. Erros ao criar commits.

Lição 8. Solicitação pull. Trabalhando com projetos de código aberto

Vamos dominar Pull Requests usando o exemplo de trabalho com projetos Open-Source.

Lição 9. Solicitação pull. Enviando lição de casa.

Envie o dever de casa para GeekBrains usando Pull Request.

Lição 10. Cliente git do console. Operações Básicas

Dominamos as operações básicas no cliente git do console.

Lição 11. Cliente git do console. Trabalhando com filiais

Aprendendo a trabalhar com ramificações no cliente git do console.

Lição 12. Trabalhando com versões de programas

Aprendendo a liberar versões diferentes produto de software usando git.

Lição 13. Resultados

Vamos resumir o trabalho realizado.

Java. Início rápido
Noções básicas da linguagem Java usando o exemplo de desenvolvimento de um pequeno jogo

O curso em vídeo apresentará a você uma das linguagens de programação mais populares, bonitas, amplamente utilizadas e confiáveis ​​- Java. Na primeira parte, você aprenderá o básico da linguagem e como escrever aplicativos de console simples. A seguir, mostraremos como você pode criar literalmente em poucos minutos jogo simples com interface gráfica e não utiliza bibliotecas de terceiros. O objetivo do curso: revelar algumas das capacidades da linguagem e mostrar que Java é simples e divertido. Após concluir o curso com sucesso, você poderá utilizar o modelo que criamos para desenvolver seus próprios jogos. Para dominar o material com eficácia, é necessária uma experiência mínima em programação; portanto, para desenvolvedores iniciantes, recomendamos que você primeiro faça o curso online gratuito “Fundamentos de Programação”.

Lição 1: Apresentando a linguagem Java

Breve descrição do idioma; instalação das ferramentas de desenvolvimento necessárias; escrevendo o primeiro programa.

Lição 2. Variáveis, tipos de dados, ramificação

Descrição dos conceitos fundamentais da linguagem Java usando o exemplo de uma calculadora de console simples.

Lição 3. Ciclos; jogo "Adivinhe o número"

Estamos começando a escrever um jogo de console “Adivinhe o Número”, com o qual continuaremos a estudar o básico da linguagem.

Lição 4. Métodos

Demonstração de métodos a partir do exemplo de melhoria do jogo “Adivinhe o Número”.

Aula 5. Finalizando o desenvolvimento do jogo “Adivinhe o Número”

Trazemos o código do jogo para a versão final.

Aula 6. Desenvolvimento do jogo “Catch the Drop”. Parte 1

Crie uma janela de jogo.

Aula 7. Desenvolvimento do jogo “Catch the Drop”. Parte 2

Aprenda a carregar e fazer desenhos; Vamos implementar o loop do jogo.

Aula 8. Desenvolvimento do jogo “Catch the Drop”. Parte 3

Capturamos eventos de mouse e terminamos de desenvolver o jogo.

Lição 9. Resumo

Reunimos o projeto em um arquivo jar para que seja conveniente executá-lo sem um ambiente de desenvolvimento; Vamos resumir.

Um curso para desenvolvedores iniciantes, aqueles que desejam dominar rapidamente o básico da programação orientada a objetos (OOP) e aprender a criar seus próprios projetos. A principal característica do curso é uma combinação de estudo dos fundamentos teóricos da linguagem Java e treinamento prático online sob a orientação de um mentor.

Lição 1: Introdução ao Java

  1. Como Java funciona. JVM. Princípios gerais. Ferramentas.
  2. Olá, mundo!
  3. Variáveis ​​e tipos de dados.
  4. Métodos e sua aplicação.
  5. Declarações condicionais.

Lição 2. Loops e matrizes

  1. O conceito de ciclos. enquanto loop;
  2. Loops para, foreach;
  3. O conceito de matriz;
  4. Análise de soluções de trabalhos de casa.

Lição 3. Oficina. Jogo da velha processual

  1. Desenvolvimento de algoritmos;
  2. Criação lógica;
  3. Criando lógica oponente de computador;
  4. Análise do dever de casa.

Lição 4. Introdução à OOP

  1. O que é OOP e por que é necessário? Conceitos básicos;
  2. Criação de classes e objetos;
  3. Encapsulamento;
  4. Herança;
  5. Classes abstratas, interfaces e polimorfismo;
  6. Análise do dever de casa.

Lição 5. Memória, armazenamento de dados

  1. Armazenamento de dados em Java: pilha, heap;
  2. Coleta de lixo;
  3. Classes de strings, pools de strings;
  4. Análise do dever de casa.

Lição 6. Interfaces gráficas

  1. Biblioteca Swing e outras bibliotecas gráficas. Noções básicas de balanço;
  2. Gerenciadores de posicionamento e alinhamento de elementos;
  3. Eventos em Swing. Menus e caixas de diálogo;
  4. Análise do dever de casa.

Lição 7. Oficina. "Jogo da velha" em OOP

  1. Definição de classes e GUI;
  2. Desenvolvimento lógico, parte 1;
  3. Desenvolvimento lógico, parte 2;
  4. Análise do dever de casa.

Este curso é para quem deseja fortalecer seus conhecimentos em Java. Durante o curso, os alunos dominam a teoria e, ao mesmo tempo, sob a orientação de um professor, desenvolvem um projeto completo em Java do zero, ganhando experiência prática na aplicação de conceitos complexos de orientação a objetos característicos da linguagem. Antes de fazer o curso, é recomendável dominar o curso para iniciantes: "Java. Nível 1".

Lição 1: Programação Java Orientada a Objetos

Estudo aprofundado de questões de POO em Java: princípios básicos de POO, classes abstratas, interfaces.

Lição 2. Exceções

Conceito de tratamento de exceções, sua comparação com o mecanismo tradicional de tratamento de erros, bloco try-catch-finally, tipos de exceções, exceções padrão em Java e sua função, lançando uma exceção de um método

Lição 3. Coleções

Tipos de contêineres em Java: Lista, Mapa, Conjunto. Implementações básicas e técnicas de uso, percorrendo os elementos da coleção, comparando e classificando os elementos da coleção

Lição 4: Criação avançada de GUI

Crie seus próprios controles. Trabalhando com gráficos. Tratamento de eventos

Lição 5. Multithreading

Threads em Java, formas de criar e gerenciar estados de threads, principais problemas ao trabalhar com threads e sincronização.

Lição 6. Trabalhando com a rede

Soquetes Escrevendo um servidor de eco simples e um cliente de console.

Lição 7. Escrevendo um bate-papo em rede. Parte I

Escrevendo as partes cliente e servidor do chat. Processamento multithread de conexões de clientes.

Lição 8. Escrevendo um bate-papo em rede. Parte II

Desenvolvimento de interface para o lado cliente. Autorização. Mecanismos de interação entre cliente e servidor.

Algoritmos e estruturas de dados em Java. 1 mês.
Trabalhando com arrays, listas, árvores, gráficos, tabelas hash, pilha e fila

O curso se concentra no uso de estruturas de dados e algoritmos na programação Java. As estruturas de dados definem como os dados são armazenados na memória do computador. O curso cobrirá as seguintes estruturas de dados: arrays, pilha, fila, listas, gráficos, árvores, tabelas hash. Para cada estrutura de dados serão considerados algoritmos que proporcionam diversas operações sobre essas estruturas, por exemplo, pesquisa ou ordenação. O curso é destinado a alunos que concluíram o curso básico de Java SE.

Lição 1: Introdução a Algoritmos e Estruturas de Dados

Introdução a algoritmos e estruturas de dados

Lição 2. Matrizes e classificação

Trabalhando com arrays e formas de classificá-los.

Lição 3. Pilha e fila

Visão geral da estrutura de dados, pilha, fila e fila de prioridade.

Lição 4. Listas vinculadas

Aprendendo a criar e usar listas.

Lição 6. Árvores

Vejamos como trabalhar com árvores binárias.

Lição 7. Gráficos

Consideremos trabalhar com uma das estruturas mais flexíveis e versáteis.

Lição 8. Tabelas hash

Pesquisa e inserção rápidas usando tabelas hash.

Noções básicas de banco de dados. 20 aulas.
Design de banco de dados e consultas SQL

Bancos de dados (BDs) são sistemas de armazenamento e processamento de dados que são acessados ​​através da linguagem SQL (Structured Query Language). Qualquer site, jogo ou aplicativo de desktop moderno precisa de armazenamento de dados. Sobre no momento existem muitos vários sistemas sistema de gerenciamento de banco de dados (SGBD), o mais popular é o MySQL. “Database Basics” são 20 videoaulas intensivas (10 minutos cada), onde passaremos por todas as etapas do design do banco de dados usando o exemplo de uma loja online usando a linguagem Consultas SQL. Após este curso, você poderá utilizar diversos bancos de dados, como MS SQL e Postgre Sql, já que a sintaxe SQL para eles é praticamente a mesma.

Lição 1: Bancos de Dados Relacionais

Qual é a diferença entre um banco de dados e um SGBD; quais bancos de dados são chamados de relacionais; visão geral do SGBD moderno.

Lição 2. Instalando um SGBD

Instalação do SGBD MySql e aplicação gráfica Bancada de trabalho Mysql.

Lição 3. Design de banco de dados, formas normais

Desenho de dados em Excel; formas normais; chave primária.

Lição 4. Comando SQL CREATE

Criação de tabelas na GUI do MySql Workbench; comando CRIAR; tipos de dados; trabalhar no console.

Lição 5. Comando SQL INSERT

Preenchendo tabelas com dados usando GUI; Comando INSERIR; INCREMENTO AUTOMÁTICO.

Lição 7. Comandos SQL DISTINCT, ORDER BY, LIMIT

Recebimento e filtragem de dados utilizando comandos SQL DISTINCT e LIMIT; classificação usando o comando ORDER BY.

Lição 9: Consistência de Dados

O conceito de consistência ou consistência de dados.

Lição 10. Chave estrangeira

O conceito de chave estrangeira e restrições nos valores das colunas; RESTRIÇÕES-CHAVE ESTRANGEIRAS.

Lição 11. Criando tabelas com um relacionamento muitos para muitos

Adicionando um carrinho ao banco de dados da loja online.

Lição 12. Chave primária composta

Usando uma chave primária composta ao projetar uma tabela com um relacionamento muitos para muitos.

Lição 13. Unindo dados de diversas tabelas

Recuperação de dados de diversas tabelas inter-relacionadas; inconsistência da abordagem usando vários SELECTs.

Lição 14. Operador INNER JOIN

Unir dados de várias tabelas usando o operador INNER JOIN.

Lição 15. Operadores LEFT JOIN, RIGHT JOIN

Unir dados de várias tabelas usando os operadores LEFT JOIN e RIGHT JOIN.

Lição 16. Operador UNION

Combinando os resultados de múltiplas consultas SQL usando o operador UNION.

Lição 17. Funções de agregação

Funções de agregação COUNT, SUM, MIN, MAX.

Lição 18. Operador GROUP BY

Agrupe um conjunto selecionado de linhas usando a cláusula GROUP BY.

Lição 19. Índices

Filtrando em GROUP BY usando HAVING; aumentando a velocidade de execução de consultas usando índices.

Lição 20. Transações

Conceito de transação; Instrução TRANSAÇÃO; Requisitos ACID para o sistema de transação.

Java. Nível 3. 2 meses.
Desenvolvimento de software profissional

O curso é voltado para quem deseja aprender sobre os recursos avançados da linguagem Java e ganhar experiência prática na escrita de aplicações. Para concluir o curso com êxito, os alunos devem compreender os conceitos básicos de programação e ter alguma experiência básica com Java. O curso cobre todos os tópicos básicos necessários para o trabalho profissional.

Lição 1. Generalizações

O que são genéricos, classes genéricas, métodos e interfaces, herança de classes genéricas, restrições ao trabalhar com genéricos

Lição 2. Bancos de dados

Bancos de dados relacionais, linguagem de consulta SQL. Instruções SELECT, INSERIR, ATUALIZAR, EXCLUIR. Conectando-se ao banco de dados via JDBC, enviando solicitações e processando resultados

Lição 3. Ferramentas de entrada/saída

Visão geral das ferramentas de entrada-saída. Byte, caractere, fluxos em buffer. Comunicação de rede, serialização/desserialização de objetos

Lição 4. Multithreading. Parte I

Multithreading em Java, memória compartilhada, problemas de gerenciamento e sincronização de threads, interação de threads de execução, deadlocks

Lição 5. Multithreading. Parte II

Aulas para trabalhar com multithreading, Coleções concorrentes, análise de exemplos práticos

Lição 6. Revisão das ferramentas de desenvolvimento

Registro. Teste usando JUnit, escrita de testes, classe Assert

Lição 7. API de reflexão e anotações

O conceito de reflexão, tipo de dados de classe, metadados de classe, acesso a campos e métodos, anotações e sua utilização, escrever suas próprias anotações.

Estágio na GeekBrains. 2 meses.
Em formato de webinar

Durante o estágio, os alunos terão que trabalhar remotamente em um projeto ou startup Open Source. Os alunos serão convidados a escolher entre um conjunto de projetos disponíveis para desenvolvimento. Os alunos aprenderão a trabalhar em equipe, comunicar-se com outros desenvolvedores, gerentes de produtos e projetos, designers, aprender metodologias flexíveis, a estrutura SCRUM e dominar os princípios do trabalho remoto. O resultado do estágio é a capacidade de trabalhar em equipe, a adição de um portfólio e a oportunidade de indicar o trabalho em um projeto como principal experiência de trabalho em seu currículo. O estágio decorre em formato de trabalho remoto a tempo parcial, reuniões semanais de status com o docente em formato webinar.

Lição 1. Introdução, seleção de projetos

Que papéis existem no desenvolvimento? Gerente de Produto, Gerente de Projetos, desenvolvedor, designer. O que é MVP. Arquitetura do serviço moderno. Como os desenvolvedores interagem entre si. API REST, soquete da Web. Back-end, Front-end, aplicativos móveis. Arquitetura de microsserviços. Noções básicas de trabalho remoto. Inscreva-se em equipes.

Lição 2. Metodologias de desenvolvimento

Revisão de metodologias. Cascata (cascata), Manifesto Ágil, Kanban, Scrum. Onde e para que são usados. Metodologias mistas.

Lição 3. Metodologia SCRUM

Trabalhe usando SCRUM. Planejamento de sprints. Preparação do backlog. Objetivo de sprint. Incremento. Metodologia flexível em condições de trabalho remoto. Rastreadores de tarefas (Trello, Favro)/

Lição 4. Mapeamento de história de usuário

Tipos de tarefas. Decomposição de tarefas. Mapeando histórias de usuários. Trabalhando em histórias de usuários. Trabalhando com especificações técnicas utilizando metodologias cascata e flexíveis.

Lição 5. Responsabilidade, motivação, crescimento pessoal

O que e como se motivar. Quais são os níveis de motivação? Como não se esgotar no trabalho. E como não esquecer do trabalho.

Lição 6. Escrevendo um currículo

Como escrever um currículo para que o RH não o rejeite. Como interessar um empregador. Como demonstrar as habilidades adquiridas em seus estudos se você ainda não possui experiência profissional relevante.

Lição 7. Resumo preliminar, preparação para defesa do projeto

Análise de currículos de alunos. Resumo preliminar. Um pouco sobre startups, monetização, investidores.

Lição 8. Resumindo, demonstrando o projeto final

Demonstração de um protótipo funcional pelos alunos. Discussão dos resultados obtidos. Opinião do professor. Palavras de despedida.

Olá querido leitor. Há muito tempo eu queria escrever um artigo como este, mas ou não tive tempo suficiente ou a preguiça traiçoeira atrapalhou. Mas, seja como for, ainda consegui reunir meus pensamentos para escrever algo que, espero, traga algum benefício para vocês. Terei prazer em compartilhar meu conhecimento e experiência, em troca você receberá tempo e atenção. Na minha opinião, esta publicação é adequada para quem está pronto para decidir sobre seus interesses e quer conectar sua vida com a TI - de uma forma ou de outra. Então, vamos lá!

Escolhendo uma linguagem de programação

A publicação está começando a se parecer com muitos materiais semelhantes. De acordo com a lei do gênero, terei que escrever o nome de algumas três linguagens de programação, citar alguns prós e contras e, no final, sem responder à pergunta, passar para a próxima parte. Em parte, há alguma verdade nisso, porque cada um escolhe a linguagem que lhe é mais próxima, com base no tipo de produtos que deseja desenvolver no futuro. A maioria de vocês estudou Turbo Pascal na escola e dificilmente será novidade para vocês que quase nada está escrito nesta língua agora. Então em nesse caso, você precisa escolher uma linguagem com sabedoria, embora nunca possa ter muito conhecimento, mas se quiser se juntar efetivamente às fileiras dos programadores em um curto período de tempo, você precisa abordar a escolha da linguagem com sabedoria. No início, lembre-se: um bom programador nunca passará fome e, na maioria dos casos, poderá comprar muito caviar(esta definição é adequada para qualquer especialidade, mas nenhuma especialidade lhe dará tanta liberdade para escolher onde trabalhar, tanto em termos de empresas quanto de países - ele é programador e programador na Índia).

É lógico que quanto mais popular e procurada for uma língua, maiores serão as probabilidades de encontrar um emprego no futuro, e a língua deverá ser fácil de aprender. Porque embora um grande número de jogos sejam escritos em C++ e ganhem um bom dinheiro por isso, é melhor para um iniciante, especialmente aquele que não está familiarizado com OOP (programação orientada a objetos), deixar essa linguagem de lado por um tempo. O link a seguir fornece uma lista das linguagens de programação mais populares de 2014 e, como você pode ver, Java está em primeiro lugar, seguido pelas linguagens C, depois Phyton, JavaScript, PHP, Ruby, etc. Se você mesmo procurar estatísticas semelhantes, verá que em diferentes fontes os lugares são ocupados de forma diferente, mas em geral os 10 primeiros lugares em conteúdo serão iguais em todos os lugares.

Se você recorrer a outro, que se baseia na análise de vagas postadas no Twitter, verá uma situação muito semelhante ao primeiro exemplo. E sim, ambos os artigos estão em inglês, acostume-se com isso, se você quer se tornar um programador, lembre-se que quase toda documentação e fontes informações úteis são escritos em inglês, portanto, se o seu conhecimento deste idioma for fraco, adicione aprender e praticar inglês à sua lista de tarefas para amanhã e para o futuro próximo. Acho que vou até escrever um artigo separado dedicado ao aprendizado de uma língua estrangeira.

Com base nessas duas fontes já podemos imaginar quais linguagens de programação estão atualmente “na moda”. Como o título sugere, o autor do artigo escolheu Java para si. Embora eu ache que é o melhor para aprender POO, há muitas pessoas que vão discordar de mim, e isso é lógico - tantas pessoas, tantas opiniões. Aqui estamos numa pequena encruzilhada: escolha Java, C# (muito parecido com Java), Phyton, se quisermos trabalhar com os recheios de programas e aplicações (back-end) ou PHP, JavaScript, HTML, se quisermos fazer desenvolvimento web (front-end). No primeiro caso, eu escolheria Java e, no segundo, PHP, embora, novamente, seja mais do seu gosto, você mesmo terá que procurar informações sobre várias linguagens e, em geral, entender o que deseja fazer. Para reflexão, aqui está uma seleção de idiomas que são utilizados nas maiores empresas de Internet do mundo.

Existem 2 razões principais pelas quais eu escolheria Java ou PHP. A primeira é que essas línguas são muito populares e não será difícil encontrar um emprego adequado, e a segunda é que em nenhuma outra língua você encontrará tanto material de treinamento como nestas duas, tanto em russo quanto em inglês. .

Educação

Então, chegamos a um estágio que a maioria das pessoas chega sem problemas, mas esse período é justamente um dos mais difíceis na carreira de um programador. Embora um programador aprenda ao longo da vida, o momento em que ele começa a dar os primeiros passos determina em grande parte o seu destino futuro. Em geral, o treinamento testa a força de uma pessoa, se ela vai aguentar, se não vai perder o interesse em um mês (como acontece com alguns), se vai conseguir chegar ao fim e dominar conhecimentos básicos, sobre os quais camadas inteiras de as informações serão então colocadas em camadas.

Em geral, tenho minha própria teoria, que confirmei mais de uma vez na prática: Absolutamente tudo pode ser aprendido em 1 ano.. Acredite, isso é a verdade absoluta, alguns podem até precisar de menos tempo, mas se a pessoa não parar de desistir e abordar o aprendizado com sabedoria ao longo do ano, é quase impossível que ela não aprenda. Isso não é só na programação, em absolutamente qualquer área: se você quer tocar violão - não tem problema (não demorei tanto tempo e esforço), aprender tango argentino, surfar - tudo isso dá para um ano. O principal é estudar!

Nesse caso, considerarei a linguagem Java, pois ainda está mais próxima de mim. Felizmente, a Internet está cheia de pessoas que ajudam outras pessoas a aprender de graça, portanto, não será difícil encontrar o material adequado para você. , que você pode visualizar com papel e caneta dentro das paredes do seu aconchegante apartamento (por enquanto apenas em russo). Para quem está acostumado a ler o material que lê, a Internet novamente oferece grandes oportunidades e este é apenas um de todos os tipos de sites com aulas de Java. Existem teorias mais do que suficientes, mas não posso dizer nada sobre um site de treinamento como o Coursera.org, onde você pode encontrar cursos de treinamento em vários idiomas e em vários campos, incluindo programação - novamente, tudo é totalmente gratuito. Não existem um ou dois desses sites, basta pesquisar.

Mas por mais informativa que seja a teoria, a programação é indispensável sem prática. Mas mesmo aqui metade do trabalho já foi feito para nós e não precisamos procurar várias tarefas para melhorar nossas habilidades; um serviço como o JavaRush vai ajudar muito nisso; Em geral, este site oferece teoria e prática, começando com a simples duplicação do código da tela e terminando com tarefas complexas, e nos intervalos oferece ainda para relaxar e assistir às conhecidas séries animadas. Segundo os autores, quem atingiu o nível 20 no serviço terá conhecimento suficiente para já conseguir emprego em uma empresa de TI.

E claro, alguém vai perguntar, e o livro? Você não deveria lê-los e, em caso afirmativo, o que então? A isso responderei que ninguém jamais ficou mais burro ao ler livros. Também há muitos livros, mas listarei apenas uma pequena parte deles:

Ajuda com a prática

Como já mencionado, a prática é parte integrante de qualquer aprendizagem, principalmente em programação. Aqui você terá que codificar e codificar, até a memória muscular dos dedos. Isso, claro, é um pouco exagerado, mas no começo você realmente vai ter que bater bastante nas teclas para lembrar os valores vários designs, para que no futuro possa ser usado quase automaticamente.

Muitos programadores novatos têm muitas dúvidas no início, especialmente quando precisam concluir uma tarefa independente. Isso está bem. Mas em tais situações, você precisa entender que quase todas as suas dúvidas podem ser respondidas na Internet. É improvável que você seja o primeiro a encontrá-lo, então não se apresse em fazer perguntas imediatamente em vários fóruns de programadores (sobre os quais escreverei um pouco mais tarde). Sente-se um minuto, formule corretamente o problema em sua cabeça e fique à vontade para procurá-lo em um mecanismo de busca. Certamente a maioria irá pesquisar em russo, mas não se esqueça que o idioma dos programadores é o inglês, então se você não encontrou a resposta nos grandes e poderosos, vale a pena procurar em um idioma que todos pareciam ter estudado na escola, mas nunca aprendi. Mas mesmo que neste caso não haja resposta para sua pergunta em lugar nenhum, os melhores fóruns da Internet entram na batalha:

  • Cyberforum é, na minha opinião, o fórum de língua russa mais popular para especialistas em TI, aqui você pode encontrar respostas para perguntas, e não apenas na área de programação;
  • Fórum de programadores - um grande fórum em russo;
  • Searchengines é um fórum bem conhecido, mas é mais especializado em programação web;
  • Estouro de pilha - e este, não tenho medo dessas palavras, já é o fórum de TI mais popular do mundo, você encontrará respostas para quase todas as suas perguntas aqui;
  • O Dev Shed também é um grande fórum em inglês;
  • Quora é um fórum não especializado especificamente em programação, mas alta probabilidade que você receberá uma resposta de um verdadeiro profissional.

É claro que os fóruns não são a única maneira de obter respostas às suas perguntas. Na sua prática, os programadores de todo o mundo trabalham com documentação a língua em que escrevem. Descreve como certas classes e interfaces funcionam, às vezes a documentação é; a única fonte, o que pode ajudar na resolução de problemas, pois é somente no estágio inicial que todos têm dúvidas semelhantes e podem ser encontrados sem problemas soluções prontas, mas quanto mais você avança na selva, mais cada vez mais difícil é encontrar respostas, então você terá que confiar em sua, espero, cabeça já inteligente.

Compilando o código

Já escrevi bastante, claro, é difícil abordar um tema tão extenso em um artigo, mas acho que os primeiros passos já foram dados e devem evocar em você os pensamentos apropriados. Acho que este é apenas o primeiro artigo da série “Como se tornar um programador” e, portanto, “por que se você está em uma encruzilhada e ainda não sabe qual caminho escolher? Da próxima vez, abordarei coisas mais interessantes do ponto de vista material, porque não é segredo que os programadores não são pessoas pobres, e veremos onde e quanto eles recebem na próxima vez.

Por fim, para quem realmente quer se tornar um programador, desejo que pegue o touro pelos chifres, junte toda a sua vontade e faça o que quiser. Já foi dito milhares de vezes, mas repito, o principal é o desejo e o trabalho. Então tudo dará certo para você. Lembre-se do mais importante: perceber o aprendizado de linguagens de programação e diversas tecnologias não como um objetivo, mas como um MEIO. Imagine quais oportunidades estão se abrindo para você. Talvez você se torne um daqueles que muda o mundo em tempo real. Então, boa sorte e obrigado pela atenção!

Bônus de vídeo

Etiquetas:

  • como se tornar um programador
  • aprenda programação
  • aprenda java
Adicionar tags

© 2024 ermake.ru - Sobre reparo de PC - Portal de informações