O que é um trabalho como programador?
A profissão de programador tem vantagens óbvias que todos conhecem:
- Bons salários
A partir de 100 tr. pelas regiões da Rússia, 250-300 tr em Moscou, no exterior a partir de 10 mil dólares;
- Horário flexível
Um desenvolvedor é principalmente um trabalho remoto;
- Demanda no mercado internacional
Este é um dos trabalhos mais fáceis para a imigração.
Mas nem toda pessoa pode se tornar um desenvolvedor, caso contrário, todos teriam se treinado como programadores há muito tempo. Você sempre tem que ficar na linha. Você não pode dominar nenhuma tecnologia, ler um livro, fazer um curso, dominar perfeitamente o Python e depois ganhar 20 anos com isso. O setor e as tecnologias estão se desenvolvendo tão rapidamente que as abordagens, estruturas, linguagens de programação que são relevantes hoje quase certamente mudarão completamente em quatro anos e, se você abandonar a profissão por um ano, terá que começar praticamente do zero.
Por exemplo, para os estudantes, partir para o exército é um grande problema, porque muitas coisas mudarão em um ano de ausência do mundo em desenvolvimento. Isso não é muito crítico. Você pode se atualizar com rapidez suficiente, mas, em qualquer caso, você precisa permanecer constantemente na linha de tendência, aprender constantemente, estudar abordagens modernas, observar o que está mudando e como; então, você será um desenvolvedor de sucesso que ganhará muito dinheiro.
E mais uma desvantagem, sobre a qual poucas pessoas falam, é uma discriminação etária bastante forte. Se você é um estudante, encontrar um emprego será fácil. Se você tem entre 30 e 40 anos, é bem-vindo a qualquer empresa de tecnologia. Se você tiver 40 anos, será mais difícil. Mas se você tiver mais de 50 anos, provavelmente não encontrará emprego em nenhum lugar. Vale a pena lembrar, existe.
Como você sabe se um emprego como programador é adequado para você?
Aqui não é tão importante que educação você tem, se você se formou na faculdade por profissão. O principal é que você desenvolveu fortemente perseverança. Por que isso é tão importante?
Imagine que você tenha uma tarefa como desenvolvedor, por exemplo, para mover um botão do lado esquerdo da tela para a direita em um aplicativo móvel, para que seja conveniente pressioná-lo com o polegar. Você se senta e começa a executar esta tarefa. Você levará um tempo para entender o aplicativo: onde está, como é montado. Vai demorar um pouco mais para estudar o código que programa e exibe esse botão na tela. Levará muito pouco tempo para fazer alterações nesse código e informar ao compilador ou telefone celular: "Por favor, exiba esse botão não à esquerda, mas à direita."
Mas esse código provavelmente não funcionará. E nas próximas tentativas, não funcionará. Você precisará ler uma tonelada de documentação para descobrir como o mapeamento de botões funciona no Android ou iOS. Teremos que tentar 10 maneiras diferentes: encontrar algumas rodadas, ajustar tudo com muletas, escrever para o desenvolvedor, examinar os códigos-fonte do Android e em 4-5 dias, na melhor das hipóteses, ou até mais tarde, esse botão será exibido conforme necessário.
Todo o trabalho consiste nisso: todos os dias, todas as tarefas. É altamente provável que cada linha de código que você escreve ou não funcione da maneira que você deseja, e não haverá motivo óbvio para que isso não funcione. Leva uma quantidade insana de tempo para descobrir o que está acontecendo lá e como fazer com que essa coisa faça o que você deseja.
E o resultado final, no qual tudo funcionou, deve trazer muita alegria. Este é o principal motivador do desenvolvedor, o que o faz ir trabalhar e fazer algo no dia a dia. A perseverança permitirá que você não desmorone, não recuse, não mude de idéia, não se distraia com o café e as redes sociais, mas fique sentado por horas a fio e pense por que essa coisa não funciona e como fazê-la funcionar.
Que tipo de empregadores existem?
Freelance
Como regra, essas são pequenas tarefas por pouco dinheiro. Eles podem ser feitos com rapidez suficiente. Eles estão listados em trocas freelance. A principal troca na Rússia é freelance.ru. O principal internacional é o upwork.com.
As trocas são adequadas para executar algumas tarefas práticas que trazem algum benefício, por exemplo, para ganhar seu primeiro dinheiro. É bastante simples. Ninguém vai ler o seu currículo, verifique se você tem experiência real, se você pode executar essa tarefa ou não. Este é um bom lugar para começar e programar algo, ganhando dinheiro com isso. Em teoria, há pessoas que fazem isso a vida inteira e ganham muito mais dinheiro do que o empregador.
Mas também há desvantagens. O principal é que parece mais criar seu próprio negócio do que trabalhar como programador, já que você gasta muito tempo pesquisando pedidos, comunicando-se com o cliente, construindo processos de maneira eficaz e não gastando muito tempo no desenvolvimento. E, como regra, produtos para os quais são dadas tarefas em trocas usam uma pilha de tecnologia bastante específica. Por exemplo, muitas tarefas estarão relacionadas a alterações no mecanismo de blog do Wordpress. Raramente é usado no desenvolvimento de produtos, com menos frequência nas empresas, mas o freelancer terá um milhão de tarefas neste tópico: consertar alguns Landos, mover uma imagem, escrever um plugin. Essa experiência e essas tecnologias são pouco aplicáveis no trabalho de um empregador. É difícil aprender algo como freelancer porque não há equipe. Não há pessoas com quem você interaja,de quem você pode aprender algo, que pode testar seu trabalho e compartilhar experiências. Portanto, o freelancer é bom para começar, mas não para o trabalho profissional.
Estúdios / Integradores / Terceiros
São empresas bem diferentes, cujas atividades são muito diferentes. Existem jogadores pequenos e grandes, mas eles geralmente compartilham prós e contras.
Dos profissionais:
- Um grande fluxo de projetos completamente diferentes
Você não adormece em nenhuma rotina específica do projeto. São projetos diferentes, estão mudando constantemente, você tem a oportunidade de aprender constantemente algo novo;
- A maioria dessas empresas possui processos bastante claros.
Eles possuem algoritmos para trabalhar com documentação, um processo de desenvolvimento interno, interação com um cliente, trabalham bem com estimativas, sabem calcular a economia, porque essa é sua atividade profissional.
- Alto nível
Você pode aprender bem como desenvolver software a partir deles.
Contras:
- Nem todas as empresas são ótimas
As principais empresas estão realmente indo bem. Eles têm tudo perfeitamente construído, têm dinheiro, clientes e projetos interessantes. Mas existem muitas empresas de nicho com uma pequena equipe de 5 a 10 pessoas, nas quais não existem processos tão bem elaborados, mas nessas empresas você pode facilmente conseguir um emprego e aprender algo útil. Você pode aprender a desenvolver software trabalhando com eles por seis meses e mudar para outra empresa para um trabalho que paga mais.
- Pouca liberdade
O cliente, em regra, sabe do que precisa. Ele tem um design, uma tarefa claramente definida, muitas vezes vem com suas próprias tecnologias. E, apesar de lhe parecer que seria melhor fazer o contrário, geralmente essas questões não são discutidas.
Para entrar nessas empresas, você precisa conhecer as linguagens de programação aplicadas. Por exemplo, PHP, Python, Java, Javascript.
Este é um bom lugar para começar uma carreira.
Startups / Pequenas Empresas
Existem centenas dessas empresas. Uma dúzia de novos abre todos os dias, mas nove deles definitivamente serão fechados.
Há muitas vantagens em tentar trabalhar em uma inicialização:
- É muito emocionante e divertido;
- A maneira mais fácil é ganhar muito dinheiro.
Nos estágios iniciais, muitas vezes, o fundador compartilha ativamente suas ações, especialmente se a startup decolar e crescer rapidamente, você logo se tornará um milionário;
- Não há legado em projetos, não há código antigo que faça você querer chorar
- Muita liberdade
Você pode escolher tecnologias e programar da maneira que desejar. Você pode influenciar bastante o produto.
Mas também há desvantagens:
- 9 de 10 empresas estão fechadas
Muitos deles serão fechados durante o primeiro ano sem o lançamento do produto;
- Fraca oportunidade de aprendizado
Como regra, nem os melhores especialistas vêm a essas empresas, nem sempre haverá algo a aprender lá;
- Imprevisibilidade
Muitas vezes, o fluxo financeiro dessas empresas é instável. Você pode trabalhar para essa empresa por algum tempo e não receberá seu salário por dois meses.
De fato, a diversão supera todos esses contras. Mas ir a uma empresa sem experiência não será a melhor decisão. O nível de estresse será muito alto e o nível de conhecimento prático, provavelmente, não será suficiente para arrastar o projeto.
Bancos / Empresas
Prós:
- Estabilidade;
- Bom salário;
- Baixo nível de responsabilidade
Ninguém vai pedir para você reciclar e ser responsável por algo grande. Qualquer empresa de grande porte é mestre em espalhar a responsabilidade entre um grupo de gerentes.
Minuses:
- Velocidade muito baixa
Você pode cortar um recurso por um ano ou dois sem liberá-lo, pois durante esse período ele perderá sua relevância. O salário, é claro, será pago, mas isso é muito desmotivador;
- Experiência específica
Como regra, esse é algum tipo de software bancário. Basicamente, esse é um código antigo, que não é muito agradável e nem muito interessante de se trabalhar;
- Será bastante difícil mudar o campo de atividade aqui.
Primeiro de tudo, porque você perderá seu salário. No Sberbank, eles são sempre mais altos que no Yandex.
Uma ótima opção para um primeiro emprego, se você conseguir um estágio. Em uma grande empresa, durante um estágio, você pode obter muitas informações úteis de natureza aplicada em um curto espaço de tempo: sobre como o software é desenvolvido, quais ferramentas você precisa usar. Esta experiência, em qualquer caso, será relevante.
Empresas de alimentos
Prós:
- Tecnologias reais;
- Processos depurados;
- Equipe de profissionais;
- Alto nível de estabilidade.
Minuses:
- É difícil ganhar muito dinheiro;
- Dificuldade em conseguir um emprego;
- Um grande número de ferramentas para lidar.
Cada empresa possui seu próprio conjunto de ferramentas, e essa experiência não será muito relevante para o mercado e para a mudança para outro local.
Como escolher um idioma?
Depende do que você quer fazer e para qual empresa deseja ir.
PHP, por exemplo, é uma linguagem muito popular. É usado por várias empresas russas e estrangeiras, por exemplo, o Facebook. Mas não faz sentido aprender PHP para conseguir um emprego no Twitter, porque não é usado lá. Se você deseja acessar o Yandex, precisa aprender Python ou Java. Aprender de PHP para Java não é um processo fácil.
É melhor determinar imediatamente por si mesmo 2-3 empresas nas quais você gostaria de trabalhar. Descubra quais linguagens de programação eles usam e aprenda-os. Ou comece pelo idioma que você gosta e procure empresas que o utilizam.
Que tipo de desenvolvedores existem?
Processo interno
Este é o código que é executado no servidor. O servidor, em regra, comunica-se com o banco de dados, com serviços externos e é responsável pela lógica de negócios. Por exemplo, ele permite que você registre um usuário, salve-o no banco de dados, baixe dinheiro dele, envie-lhe alguma notificação ou SMS.
Linguagens típicas: PHP ou Python, bem como o Ruby menos comum.
A parte dianteira
É isso que você vê quando visita o site. Esta é uma peça do layout. O layout geralmente é feito na linguagem de marcação HTML, que informa como o conteúdo é exibido na página, em que cor será exibido. Javascript é responsável por como esta página se comportará, como será animada, para onde o formulário será enviado, que erro será exibido ao cliente se o número de telefone for digitado incorretamente. Quase todo programador precisa desse conhecimento. Praticamente não há áreas em que você não precise lidar com o layout. Esse idioma é muito bom para começar, porque aonde quer que você vá, ele estará em demanda em todos os lugares.
Pilha completa
Este é um desenvolvedor que sabe como criar front-end e back-end. Somente ele pode arquivar no lado do servidor e no cliente, fazer tudo funcionar em conjunto, fazer o projeto funcionar sem nenhuma ajuda. Isso é acrobacias. Esses desenvolvedores geralmente ganham uma vez e meia mais.
Desenvolvimento móvel
De fato, esse é o mesmo front-end, mas idiomas diferentes são usados aqui. Não faz sentido se aprofundar nas linguagens de programação usadas há 5 anos, como Objective-C e Java. Swift e Kotlin agora são usados. Todos os novos aplicativos são escritos nesses idiomas e os antigos são reescritos para eles.
Jogo Dev
Esta é uma área separada. Aqui, como regra, C ++ e bibliotecas especiais como Unity etc. são usadas. Um desenvolvedor que sabe como criar um aplicativo móvel no Kotlin não poderá escrever um jogo, porque uma pilha completamente diferente é usada, tecnologias completamente diferentes.
Área de Trabalho
É isso que roda nativamente no seu computador. Por exemplo, navegador, Word etc. C ++, C # usado com mais frequência. Aplicativos poderosos são escritos em C ++. Às vezes, os aplicativos de desktop são escritos em Delphi porque é muito mais simples e mais barato.
1C
Este é o produto mais popular na Rússia. É usado, de uma forma ou de outra, em qualquer empresa russa. Sua principal desvantagem é que ele não é usado em nenhum outro lugar além da Rússia. É muito estreito, é muito difícil sair do 1C, mas há muitas vagas e elas são bem remuneradas.
DevOps
Eles são engenheiros de sistema que configuram computadores. Agora precisamos de muitos computadores, os produtos são complexos. O Facebook, por exemplo, usa dezenas de milhares de servidores e, para torná-los mais fáceis de administrar, para que o código seja rapidamente transferido dos computadores dos desenvolvedores para o ambiente produtivo e seja transferido para os usuários, são necessários engenheiros que possam transformar, automatizar e colocar automaticamente dezenas de milhares em operação. servidores. Eles fazem isso com ferramentas de software. O idioma mais popular nessa área é Python e Bash. Estudar python por qualquer administrador de sistema aumentará seu salário em pelo menos uma vez e meia ou duas vezes.
AI / ML / BigData / Criptomoedas
Na maioria das vezes, os desenvolvedores dessas áreas usam todos os mesmos idiomas. ML e análise de dados são principalmente Python e às vezes um pouco de Java. As criptomoedas usam C ++. A peculiaridade aqui é que é necessário um bom conhecimento de matemática e um profundo conhecimento de ferramentas aplicadas. É improvável que um desenvolvedor comum de Python seja capaz de treinar novamente um desenvolvedor de IA em uma semana, pois será necessário um mergulho mais profundo.
Como não escolher idioma e direção?
- Não se concentre em salários
Segundo pesquisa publicada na Habr, a linguagem mais bem paga é o Eclipse. É uma linguagem bastante elegante, jovem, positiva e moderna. Mas o que acontece se você começar a ensiná-lo hoje? Agora, existem apenas 11 vagas publicadas no hh.ru. E mesmo se você for a um lugar com um salário alto, isso não significa que em alguns anos ainda será relevante. Nesse caso, você pode não ser reclamado e mudar de um idioma para outro é uma história bastante complicada;
- Não escolha idiomas extravagantes, exóticos, limitados ou ameaçados
Existem muito poucas vagas para idiomas exóticos (Scala, Eclipse) e, como regra, são todos para desenvolvedores experientes. Idiomas obsoletos são geralmente dados no instituto / escola, por exemplo, Pascal. Eles não têm aplicação aplicada, não estão em demanda no mercado. Assim como não vale a pena começar com 1C por causa de suas limitações.
- Não comece com idiomas difíceis
Não é uma boa ideia começar com C / C ++. Existe até um meme na Internet: aprenda C ++ em 40 dias. É uma linguagem difícil de aprender. Leva muito tempo para você começar a fazer algo e ser apreciado no mercado. Se você vai entrar no desenvolvimento de jogos, não há alternativa, precisará aprender C ++. Mas, por exemplo, você pode entrar no Yandex como desenvolvedores de Java e Python.
Bons idiomas de início
- HTML / JavaScript
Eles são fáceis de aprender. Eles são a maneira mais fácil de sentir se a programação é agradável e adequada para você. O conhecimento desses idiomas será útil para você em qualquer área escolhida abaixo;
- PHP / Python
Eles também são fáceis de aprender. Existem muitas vagas com uma posição júnior. E com o tempo, você poderá usar esse conhecimento à medida que avançar para posições mais íngremes. Você pode fazer uma carreira como desenvolvedor de junior a senior em 2-3 anos, atingindo altos níveis salariais;
- Java / C #
Se você precisar de um emprego estável e bem remunerado em um banco ou empresa, esses são os melhores idiomas para começar. O Java tem sido uma linguagem muito popular nos últimos 20 anos e provavelmente continuará sendo a linguagem mais popular do mercado nos próximos 20 anos.
Onde é mais fácil começar?
- Crie sua própria página HTML.
- 1-2 JavaScript, , .
- . «PHP ». .
- . .
- , . , - , . fill-time .
- Leve o seu emprego dos sonhos. Provavelmente, a primeira vez que você não terá sucesso. O primeiro trabalho é geralmente estúpido. Mas, depois de seis meses ou um ano, você já pode experimentar a empresa de que gosta. Ou comece seu próprio projeto.
Como não fazer isso?
- Você não deve entrar em profissões relacionadas: testes ou tecnologia. Apoio, suporte
Se você já está nessa área, é claro que vale a pena tentar o seu desenvolvimento, mas se você é um advogado ou acabou de se formar em uma universidade e não sabe como construir uma carreira, não precisa escolher um caminho tão longo e difícil. Aprenda programação, ferramentas aplicadas e procure um trabalho de programador imediatamente. É bem possível fazer isso em pouco tempo;
- Não há necessidade de conseguir um emprego em uma empresa de TI para outro cargo
Por exemplo, trabalhar como mensageiro no Yandex não ajudará você a conseguir um emprego lá como programador;
- Não há necessidade de se preocupar com o emprego em uma empresa de topo
Muito provavelmente, você não poderá fazer isso como seu primeiro emprego. Você vai perder muito tempo. É melhor começar com empresas mais simples, nas quais você receberá imediatamente um salário, passará meio ano lá e depois passará para a empresa dos sonhos, com experiência prática nas costas.
As nuances de trabalhar como desenvolvedor
- O primeiro trabalho não será longo
Não vale a pena considerar o empregador a longo prazo. Em média, os desenvolvedores mudam de empresa para empresa a cada três anos. Isso se deve ao fato de muitas empresas não saberem como aumentar os salários dos funcionários; portanto, a maneira mais fácil de subir na carreira é simplesmente partir para outra empresa;
- Faz sentido mudar para Moscou e mais a oeste
Mesmo se você se encontrar em um trabalho remoto, é aconselhável avançar na direção do desenvolvimento. Dessa forma, você crescerá muito mais rápido. E o mais importante, afeta diretamente os salários. A diferença entre o salário nas regiões e em Moscou será de cerca de 50%, e muito mais nos estados, se você se mudar para lá;
- Você não deve escolher uma especialização estreita
No mercado, programadores com uma ampla gama de habilidades são muito mais procurados do que especialistas restritos;
- Desenvolver habilidades sociais
Isso lhe dará a oportunidade de se comunicar efetivamente na empresa, entender um ao outro. Quanto mais você crescer profissionalmente, menor será o conhecimento da programação em si, e não o conhecimento de como alcançar efetivamente resultados em uma equipe;
- Entenda sua motivação
Será mais fácil crescer e escolher a empresa de que você gosta se entender bem sua motivação. Isso pode fazer você feliz em primeiro lugar.
Como se preparar para uma entrevista?
Não importa o que você sabe. Se você passar em 20 entrevistas, será contratado para o dia 21. Independentemente de você ser um programador, ter conhecimento prático ou nunca o fez.
Você pode fazer um currículo em branco, será convidado para diferentes empresas, passará por entrevistas, entenderá que está sendo solicitado e, a partir da 20ª entrevista, saberá o que responder a essas perguntas. Vale a pena começar com algumas empresas simples em que você realmente não quer conseguir um emprego e depois de um mês começar a entrevistar naquelas empresas em que realmente deseja conseguir um emprego. Muito provavelmente, eles o levarão e tudo dependerá de você.
O que os Juns perguntam na entrevista?
- Teste
Quase todas as empresas solicitarão que você faça um teste, ele definitivamente precisará ser feito;
- Códigos de exemplo
É melhor fazer alguma tarefa freelance ou um projeto de estimação com antecedência, trabalhar bem, fazer bonito;
- Prepare respostas para perguntas sobre sua experiência e quem você se vê daqui a 5 anos
O melhor é preparar uma história bonita e verdadeira, para que seja interessante ouvir. Isso é importante porque essas perguntas deixam claro se você tem algum incentivo para desenvolver e em que geralmente gasta seu tempo. Ao entrevistar para a posição de junho, o empregador já entende que você realmente não sabe fazer nada, o empregador deseja contratar uma pessoa promissora, e essas perguntas apenas mostrarão como você é promissor.
Vale a pena aprender o básico sobre os seguintes tópicos:
- Programação Orientada a Objetos;
- Base de dados. Não é necessário aprender um enorme livro de dois volumes sobre otimização de SQL, mas vale a pena saber como fazer consultas SQL de forma básica;
- Padrões de design;
- Sistema de controle de versão (Git)
- Recursos básicos de linguagem. Por exemplo, como os pacotes PHP estão conectados.
Com esse conhecimento básico, você pode resolver alguns problemas práticos. Essas perguntas foram relevantes há 5 anos, são relevantes agora e serão relevantes em um futuro próximo.