Olá querida redação! Olá colegas.
Em alguns meses, como desenvolvedor front-end, terei quatro anos. E até cinquenta no passaporte permanecerá um pouco menos de dois anos. Nesses quatro anos, a vida mudou rapidamente e agora, depois de um tempo, é possível analisar quais decisões foram bem-sucedidas e quais não foram muito boas.
Vamos começar escolhendo esses. pilha e, como consequência - especialização. Acho que minha escolha (frontend, javascript) deu certo e quero agora analisar o porquê.
Minha formação. Eu me formei na Donetsk Polytechnic com uma licenciatura em Mishustin (engenheiro de sistemas), em 1994. Tendo trabalhado por alguns anos como enikey em vários cargos em Donetsk, entrei para uma pequena empresa familiar (impressão), na qual permaneci pelos próximos 15-20 anos. 15 anos em sua empresa, e mais 5 anos tentando se beneficiar da experiência no setor trabalhando por conta própria. Nos últimos cinco anos, não houve sucesso significativo nem perspectivas inspiradoras. Procurando uma alternativa, comecei a tentar fazer algumas coisas na web. Eram sites simples para conhecidos ou para suas próprias necessidades.
Depois de alguma experimentação, percebi que para aprender a fazer algo bem, é preciso escolher uma especialização. Escolhi frontend, ensinei por cerca de um ano, então consegui meu primeiro emprego em tempo integral e, em três ou quatro anos, fui de junho para Signor. Agora, para dar o próximo passo, estou aprendendo Java.Hoje
acho que essa sequência - primeiro js, depois java - acabou por estar correta. As seguintes razões.
Ao decidir por onde começar, por que Java é a segunda opção ao lado de Fronted e não Python, C #, Golang? Porque Java é um código corporativo. Este é um upload grande e bem-sucedido. Isso é seguro saúde. São colegas em grande número, com os quais você pode aprender. E há muitas vagas assim. E haverá muitos deles em 10 anos.
Não precisamos do Python - na web, são protótipos, stataps e scripts. Os roteiros são devops, e somos pessoas de família, precisamos de bons salários, não de noites no trabalho. Python também é uma boa ferramenta para analistas, mas é uma carreira diferente. Longo, não garantido, aqui você precisa chegar ao lugar certo quase imediatamente.
C # é uma ótima linguagem, talvez a melhor. Mas ele não venceu o Java e não pode. E lembre-se, qual linguagem é melhor, não são os desenvolvedores que decidem, mas os negócios quando escolhem a pilha de tecnologia. Um desenvolvedor às vezes pode influenciar essa escolha, mas em geral para ele essa escolha é um dado adquirido.
Golang provavelmente crescerá. Aprenda depois de Java para que você possa reescrever o código antigo de Java para Go em um grande escritório estável. Como acontece agora, por exemplo, no Yandex.
E no final das contas, por que é Frontend e não Java?
Frente a um limiar de entrada inferior. Existem quatro tópicos "grandes" para aprender em javascript: closures, this, async, inheritance. Claro, também há layout, que será discutido separadamente mais tarde. Nesse ínterim, sobre esses quatro tópicos.
Fechamentos são os padrões do Módulo, do Decorador e como js funciona nos retornos de chamada. Você realmente precisa saber disso. Você vai ter que desmontar, aprender, senão vai doer. Mas isso é mais do que real e, em comparação com o que "mas" o encerramento funciona, por exemplo, em Java, isso não é nada.
Este trabalho em js é muito diferente deste em outras línguas. Aqui você precisará analisar várias opções para seu uso - em um construtor, em uma instância, em um método, em uma função de seta, e sim, js-th isso tem muitas faces, nada pode ser feito ... Ou seja, eu queria dizer, graças a Deus. Mas, para começar, alguns desses dez casos serão suficientes para você começar a trabalhar, primeiro ganhando um bom dinheiro e depois um muito bom.
Assincronia. Promessas, setTimeout. Além disso, o tópico não é óbvio para um iniciante, mas o último dos mais importantes. Se você puxou fechamentos e isso, domine a assincronia também, bem, mais um mês.
Tudo. Você pergunta, e sobre herança? Como conceito, a herança prototípica é muito simples. Ele tem muitas nuances de implementação e muitas implementações próprias em JS. Isso foi. Antes da chegada do ES6. A partir de agora, as perguntas sobre herança são mais uma forma de mostrar a um novato que ele ainda não sabe tudo, do que uma forma de começar um trabalho de verdade.
Agora uma pergunta. Esses três tópicos "grandes" podem ser comparados aos mesmos genéricos Java? Sim fácil. Vamos lembrar como a programação funcional é implementada em java. Esses são todos links separados por dois pontos ... Isso é mais do que comparável ao elusivo this em js ...
Em geral, como uma linguagem, js é muito mais amigável para iniciantes.
Sim, sim, sim, claro que há css. Folhas de estilo em cascata. Oito maneiras de centralizar um div verticalmente, nenhum humano. Os covardes surgiram com o encapsulamento. Faça isso funcionar em todos os navegadores. E seu chefe geralmente tem um blackberry, e também deve ser lindo lá. Mas.
Flex-box é rápido de aprender e você já pode mostrar algo. O resto pode ser aprendido já no trabalho, e o layout para vários navegadores pode ser descartado para designers de layout, que são muito mais do que um bom trabalho para eles.
Esta é a imagem inicial. Como resultado, se você comparar um início em js com um início em java, você estuda de três a seis meses a menos e consegue um emprego - o primeiro, cerca de 80 mil - em Moscou. E quando um vizinho javist consegue seu primeiro emprego por 100 mil, você está pronto para conseguir o segundo, por 120. Você faz um javist no início. E esses primeiros meses de recuperação são muito, muito importantes se você já está ansioso por eles.
Vamos continuar a competição com um javist imaginário. Mais alguns anos se passam. Se você investe, e o javist investe, você se torna um intermediário confiante. Javist se aproxima da faixa de 150 a 180 mil. O frontender está em algum lugar na faixa de 140 a 160. Se ele não fizer nenhum esforço extra (eu fiz, então não me cito como exemplo). E é muito interessante o que acontece a seguir.
Mudança para a categoria de desenvolvimento sênior. Acontece que é mais fácil desviar o frontend para a pilha completa. Porque js é uma linguagem multiparadigma. Sim, OOP nele é mais como um brinquedo, mas é. E o funcionalismo é completo e está na moda. Reaja, rxjs. Fronend invisivelmente ensina você a aprender rapidamente. E então você ultrapassa o javist e corre para o imenso espaço de carreira ...
Portanto - o frontend!
PS Eu ajudo quem deseja masterizar o frontend gratuitamente. Escreva de forma pessoal ou em comentários.