Como programador 1C para se tornar um desenvolvedor Java

Alguns anos atrás, quando eu procurava maneiras de programadores da 1C a desenvolvedores de Java, eu vagava no escuro, tentando encontrar uma porta da qual eu não tinha certeza. Tentei encontrar histórias de sucesso, mas, além de alguns comentários, não encontrei nada no Google. O mundo Java parecia enorme e o número de estruturas era infinito. Era completamente incompreensível: o que ensinar, o que não aprender, o que é necessário no trabalho e o que ninguém usa. Se você deseja ir para Java, perca-se nos nomes intermináveis ​​de tecnologias e estruturas e deseja descobrir quais precisam ser estudadas e quais devem ser ignoradas - este artigo é para você!



Algumas suposições iniciais


  • neste artigo, não discutiremos a questão "por quê?", apenas - "como?". Se você veio aqui, você mesmo sabe o porquê.
  • Eu nunca recebi uma educação de alguma forma relacionada à TI, portanto, minhas recomendações são recomendações de uma pessoa e de uma pessoa que, no momento do início do aprendizado de Java, nunca escreveu em nada além de 1Ca. Se você possui um diploma em desenvolvimento de software, algumas das recomendações podem ser supérfluas.
  • Vou tentar desenhar uma imagem que reflita algum tipo de vaga média. Naturalmente, se você deseja uma direção específica e estreita, como big data ou vice-versa incorporado - é melhor aprender mais sobre essa direção.

Más notícias


Primeiramente, se você decidir trair o 1C para mudar para o desenvolvimento Java - não espere que o caminho seja fácil e rápido. Muito provavelmente, com a devida diligência, você gastará nada menos que meio ano em preparação, além de menos de um ano, para sair do mês de junho.

Em segundo lugar, prepare-se para que, se você agora é o 1Snik superior - é provável que sua renda se recupere quando você se tornar um meio confiante. Como regra, isso não é menos que 2-3 anos de prática, mas, no final das contas, tudo depende de você.

Em terceiro lugar, não espere que sua experiência com o 1Set seja interessante para alguém aqui. Você pode ter 100.500 projetos bem-sucedidos e toda a parede em certificados 1Snal - isso não interessará a ninguém. Você será um junho, eles falarão com você como um junho e você terá tarefas como um junho. Mas aqui está uma colher de mel: mesmo que você não seja o 1Snik superior, em questões de SQL, provavelmente você está alcançando desenvolvedores Java sênior.

Algumas dicas muito comuns, que você já ouviu três dezenas de vezes, mas acredite, elas funcionam 100%:

  1. Passar 1 hora todos os dias é muito melhor do que gastar 7 horas uma vez por semana. Se você decidir ir, vá. Sem desculpas. Todo dia Tudo bem, você pode descansar no domingo.
  2. Se Inglês das notas val - melhore-o! Essa é uma habilidade que será útil: não apenas quase tudo que você pode ler estará em inglês, mas também precisará escrever um código! Provavelmente, a primeira coisa que você precisa é a capacidade de ler e entender o que você lê. Ao ouvir e falar, você pode esperar um pouco.

Preparação. Noções básicas de idioma


Você deve escolher um idioma. Na Internet, vários artigos com características comparativas. Além disso, você pode direcionar os nomes do idioma para a busca por hh - veja o quanto gosta do que vê lá. Preste atenção não apenas aos salários frenéticos e à cerveja às sextas-feiras, mas também ao número de vagas e, principalmente, ao número de vagas para as quais você está pronto para participar do mês de junho.

Eu escolhi Java. Todas as recomendações adicionais serão fornecidas neste contexto se você escolher um idioma diferente - uma parte significativa do que está escrito aqui pode perder seu significado, mas você pode desenhar idéias gerais. Você provavelmente deve olhar na direção do PHP, porque o Bitrix e a transição para ele podem se tornar mais fáceis em termos da barreira administrativa (existe 1C, aqui é 1C, qual é a diferença? ..) e em termos da ausência de fluxos e referências de método na linguagem (embora eles descontroladamente alta).

Se você escolher java também - não se preocupe com o Java EE, você só precisa do Java SE. O que é Java ME e Java FX geralmente é melhor não saber)

Então, por onde você começa? Não aconselho que você se apresse em comprar o Horstmann de dois volumes e as mil páginas da Primavera 5 para profissionais e tente aprender tudo isso. Mesmo se você contar tudo isso de cor, o conhecimento não suportado pela prática desaparecerá muito rapidamente. Comece com sites de treinamento on-line para programadores. Eu resolvi o JavaRush. Provavelmente atingiu o nível 15. Demorou cerca de 1-2 meses (eu posso mentir com os números, foi há muito tempo)

Então desça para o HackerRank. Não se assuste com o nome - lá você pode escolher o nível de dificuldade e, na mais simples, serão oferecidas tarefas de nível para inverter a string. Certifique-se de que as tarefas do nível intermediário (média, pontos por 30) sejam resolvidas sem problemas. Embora o sistema de classificação às vezes falhe e haja esses problemas em 30 pontos, é mais fácil resolver qualquer tarefa difícil em 60 pontos, mas basicamente você precisa lidar com isso. Você levará mais 1-2 meses.

Agora é hora de ler Horstmann. Lembre-se de que este é um bom livro, mas abrange o Java em sua totalidade (apenas a linguagem, não as estruturas) e até as partes dele que quase nunca são usadas. Minha recomendação: no primeiro volume, esqueça as seções relacionadas à interface do usuário e todo o segundo volume. No entanto, se estiver apertado, pule o multithreading e a segunda metade dos genéricos no primeiro volume - mesmo os do meio podem não saber disso, não é assustador para junho. Também é importante não cair na armadilha da versão: um livro chamado Java 2 é antiguidade. Você precisa da versão 1.8 ou 9. Ou concentre-se na data de publicação: 2015 e posterior serão suficientes.

Espero que você não desista do HackerRank enquanto lê Horstmann, talvez até resolva alguns pontos de 80 a 100. Em geral, mais de 60 pontos não precisam ser levantados, porque não se inicia tanto a programação aplicada como "a arte pela arte". Mas se você sentir a força em si mesmo - às vezes é difícil, não será supérfluo. Além disso, lembre-se de que a maioria das tarefas complexas são tarefas algorítmicas clássicas que você pode pesquisar no Google: o objetivo dos exercícios hackerran não é criar um algoritmo do zero inventado há muito tempo, mas aprender sobre a existência do algoritmo e implementá-lo. ele.

Preparação continuada. Estruturas, ferramentas e práticas.


Depois de tudo isso, você está quase pronto para uma entrevista. Só um pouquinho:

  • mais uma vez, preste atenção nas coleções e na complexidade da pesquisa nelas. Todos estão discutindo esse tópico. Não tente descobrir tudo: é melhor conhecer as coleções básicas (ArrayList, LinkedList, HashSet, HashMap, talvez TreeMap) do que conhecer três dúzias, mas "no topo". I.e. você deve entender como a coleção funciona por dentro. Há um bom canal no YouTube, tudo é mastigado lá para junho. Do jeito que você precisa. Você dirige para a pesquisa "lição sobre coleções java" - o primeiro link para ele. Há também um vídeo chamado "o que você precisa saber antes de uma entrevista". Você não precisa saber diretamente tudo o que está listado lá; ainda é um mês de junho, na minha opinião, se você dominar 2/3 disso - tudo ficará bem.
  • o que é primavera (você precisa do Spring Core e do Spring Boot) - muito foi feito lá, mas 95% da prática de usá-lo não é mais complicado que o halovorld. Você deve entender conceitos básicos, como o que é o COI e por que geralmente é confiante possuir 1-2 maneiras de declarar e injetar beans (não xml). Talvez você também deva tentar criar vários serviços REST na Web da Spring: não há nada complicado, mas haverá uma vantagem definitiva.
  • como escrever testes (veja JUnit e Mockito) - em 1, em princípio, não existe prática como escrever testes. Em Java, código sem testes não é código, porque o código é considerado inoperante, a menos que haja evidência em contrário.

Quando digo "veja [frameworkName]", quero dizer: faça pelo menos alguns projetos domésticos usando a ferramenta apropriada. Provavelmente, vale a pena começar tentando cada estrutura separadamente no nível olá mundo e, em seguida, tentar coletá-las em um projeto que tenha pelo menos alguma "utilidade". Parece uma boa ideia (embora eu nunca tenha feito) - para que os projetos estejam de alguma forma ligados ao trabalho. Talvez seja apenas para reescrever completamente a tarefa que você viu no 1 para Java, talvez algum tipo de assistente para você fazer a atividade do 1Snaya. Por exemplo, se você estiver vendo uma troca REST com um fornecedor no 1 - implemente o lado do fornecedor em Java para testar a funcionalidade 1So: basta aceitar solicitações e colocá-las em algum lugar.

Todos os seus projetos domésticos devem ser compilados pelo Maven e versionados pelo Git. Essas são apenas ferramentas, vale a pena enfiar a mão - e você já não para de notar. Como ambiente de desenvolvimento, aconselho você a usar o Idea, de acordo com minhas observações, quase todo mundo está usando agora. A versão gratuita deve ser suficiente para você.

Se você não está limitado em termos de meios - pode participar de alguns cursos sobre desenvolvimento Java. Acredito que o curso básico não vale a pena, porque tudo o que será explicado não vale a pena gastar tempo e dinheiro com isso. Faça um curso no Spring Core ou JUnit: por um lado, você obterá conhecimento, conversará com futuros colegas; por outro, não será mastigado por 3 dias sobre o que é um ciclo.

Em algum lugar no meio, você precisa ler a teoria da programação. Definitivamente, você será perguntado sobre o SOLID e os padrões. Padrões (eles também são padrões de design) são coisas muito intuitivas, embora a Wikipedia o descreva para que o diabo quebre sua perna; é melhor ler artigos não tão obscuros . Na minha opinião, esse conjunto é suficiente: Interface, Construtor, Protótipo, Singleton, Decorador, Proxies.

Vamos para a agência de previdência social!


Empregadores
Existem vários tipos básicos de empregadores que você deve conhecer.

O primeiro são os compradores de corpos. Eles são terceirizados. Os representantes mais famosos: Luxoft e EPAM. Eles contratam pessoas e depois as revendem para todos os tipos de bancos de madeira. Os compradores de corpos colocam seus funcionários no escritório do cliente e eles dificilmente podem ser distinguidos dos funcionários do cliente. Muitas vezes, o nível de requisitos é menor e o salário é maior. Mas você não trabalhará em nenhuma circunstância: estes não são os projetos mais atraentes para os quais o cliente final não conseguiu obter desenvolvedores do mercado, eles saberão sobre o código de mão-de-obra muito remotamente, e você mesmo não será um funcionário em período integral onde estará. trabalho (todos os tipos de brindes e festas corporativas passarão por você). Mas você não precisa disso?

Os terceirizados são escritórios contratados pelos clientes finais, mas o assunto da venda não são pessoas, como compradores de carrocerias, mas a implementação de tarefas. Como regra, eles tentam manter os desenvolvedores afastados do cliente e estão envolvidos em novos projetos. Este é um lugar muito digno para se trabalhar, mas ter uma experiência como a sua não será fácil, mas não impossível.

As empresas de alimentos são escritórios como a Yandex e, desculpe-me, a Kaspersky, que vende seu código como produto final, como uma caixa. Há uma opinião de que é melhor trabalhar aqui: os salários são grandes, existem muitos brindes, tarefas interessantes, equipes profissionais. Quando você ouve inglês e cerveja gratuitos às sextas-feiras - provavelmente é sobre eles.

Em seguida, vêm os bancos e os seguros. Tudo pode ser muito diferente aqui: como regra geral, os bancos têm um enorme legado assustador que ninguém quer ir e projetos de jovens da moda na moda, nos quais as vagas ainda estão fechando de alguma forma. Você entende, para você no primeiro grupo. Embora, às vezes, sua auto-presunção possa ir além, como "sistema de missão crítica - não é um lugar para os Jones". Não preste atenção neles, isso está longe de tudo.

Naturalmente, esta lista não descreve completamente todo o mercado de trabalho, existem todos os tipos de startups, varejo e muitas outras.

Em primeiro lugar, não minta sobre a experiência. Acredite, mesmo que você seja "acidentalmente" confundido com um meio em uma entrevista técnica - no trabalho, você ainda será um junho. Portanto, no currículo, você não deve inventar que já trabalha como desenvolvedor Java há 15 anos, aproveitando o fato de que no título da postagem anterior não havia menção ao 1C. Mas algumas medidas podem ser tomadas para superar a barreira do RH. Não prenda o seu passado 1Snoe. Em alguns trabalhos recentes, você pode simplesmente escrever "Programador" ou "Desenvolvedor" e digitar as letras "1C" em algum lugar da descrição. Você não gasta a liderança, mas o RH pode comprá-la.

Em segundo lugar, seria um erro manter seu futuro empregador no escuro sobre como você praticava o autotreinamento. Escreva meio ano de treinamento como um local de trabalho separado (deve estar no topo), com a interseção em termos de tempo com o último local de trabalho. Chame de "desenvolvedor Java", o local de trabalho é "auto-estudo" ou "projetos domésticos" e listou as tecnologias que você tentou. Dê um link para o perfil no hacker.

Terceiro, crie uma razão convincente para você querer ir para Java. Não aconselho dizer "Estou cansado de contadores de enfermagem" ou "Não quero que meu salário caia junto com a taxa de câmbio do rublo" e, mais ainda, "Quero sair dessa gr ...". O tópico com desenvolvimento é mais adequado: eles dizem que eu já vi tudo lá - precisamos seguir em frente.

Quarto: você é um junho e pessoas como você, todos os anos, dos institutos, eles liberam muito mais do que as vagas de junho. Ao mesmo tempo, os institutos não têm família nem filhos, estão prontos para viver no trabalho e no trabalho e não precisam pagar uma hipoteca. Ok, a experiência está do seu lado, mas não é uma experiência relevante e não será considerada de grande valor. Daqui resulta que você não pode intimidar o sn esperado. Se você não consegue viver com o salário de junho, ganhar 1 Snick por um quarto da aposta é uma boa opção para o primeiro ano.

Caminhe pelos cães, lembre-se das perguntas, encontre respostas para eles e depois passe novamente pelos cães. Na minha opinião, 1-2 entrevistas técnicas por semana é um nível aceitável, para conseguir digerir a experiência adquirida e não atrasar demais a pesquisa.

Trabalho de junho


A coisa mais importante aqui é Tim Lead. Você deveria tê-lo encontrado no tech.sobes e "ele deveria ter escolhido você e você deveria tê-lo escolhido" (c). É muito importante sentir essa química. Esta é uma pessoa cuja cada palavra nos próximos anos você deve ouvir, lembrar e cumprir. Essa pessoa o arrastará para as alturas do desenvolvimento Java e o iniciará nas nuances mais profundas dessa mágica. E dele, talvez até mais do que você, depende de quão legal você se tornará e em quanto tempo.

Então, meu jovem apelido 1C, se você costumava saber “por quê?”, Agora você ainda sabe “como?”. Uma jornada de mil milhas começa com um passo. Vá em frente!

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


All Articles