O gerente de uma empresa de desenvolvimento de faturamento tem duas maneiras de formar uma equipe. A primeira é recrutar “idosos” já prontos e criar continuamente condições de trabalho para que utilizem ao máximo as suas competências e experiência, se desenvolvam e ao mesmo tempo não entrem em brigas. A segunda é criar uma equipe a partir de uma mistura de recém-chegados, médios e profissionais, para que eles se comuniquem, se influenciem, aprendam e cresçam dentro da empresa. Sou contra o círculo vicioso do tipo “sem experiência - sem trabalho - sem experiência” e não vejo problema em contratar um desenvolvedor iniciante. A Forward Telecom possui há muito tempo um programa de estágio, que se tornou um trampolim de carreira para muitos funcionários atuais.
Agora vou contar como vejo o caminho de desenvolvimento de um desenvolvedor de faturamento e em que sequência você precisa dominar as habilidades profissionais.
1. Aprenda uma linguagem de programação
Para começar, qualquer um. A prioridade é Java, Python e JavaScript, mas Ruby, Go, C, C++ são adequados para adquirir conhecimentos básicos. Como ensinar? Faça cursos pagos e gratuitos; posso recomendar o treinamento da Golang. Se o seu nível de inglês permitir, assistir a vídeos estrangeiros é uma boa habilidade adicional.
2. Compreenda os conceitos do sistema operacional
Os sistemas operacionais são baseados em sete componentes que você precisa conhecer e ser capaz de explicar o princípio de funcionamento:
- Gerenciamento de processos;
- Threads e código multithread;
- Soquete (interface de software);
- Despacho de E/S;
- Virtualização;
- Armazenar;
- Sistemas de arquivos.
Eu recomendo fazer um curso básico de administração Linux. Os segundos sistemas operacionais da linha são Windows e Unix.
3. Acostume-se com o terminal
Por analogia com a fobia de uma folha em branco, existe a fobia de uma tela preta em branco com um cursor piscando. Você terá que superá-lo para aprender como escrever bons comandos na linha de comando.
Deve saber:
- Conchas Bash e KornShell;
- Comandos find, grep, awk, sed, lsof;
- Comandos de rede nslookup e netstat.
4. Rede e segurança
A faturação está intimamente relacionada com os requisitos de rede e de proteção de dados. Você não pode escrever serviços online sem entender como a rede funciona, então você precisa aprender os conceitos e protocolos básicos: DNS, modelo OSI, HTTP, HTTPS, FTP, SSL, TLS. Então, ao encontrar um erro de conexão recusada, você saberá o que fazer.
5. Servidores
Depois de estudar os princípios de transmissão de informações na rede, você pode prosseguir com os fundamentos da operação do servidor. Comece com servidores web: IIS, Apache, Nginx, Caddy e Tomcat.
Mais abaixo na lista:
- Procuração reversa;
- Proxy anônimo;
- Cache;
- Balanceamento de carga;
- Firewall.
6. Aprenda infraestrutura como código
Acredito que esta etapa seja uma das mais importantes. Você terá que entender três tópicos amplos:
- Contêineres: Docker e Kubernetes
- Ferramentas de gerenciamento de configuração: Ansible, Chef, Salt e Puppet
- Backup: Terraform, nuvens.
7. Aprenda CI/CD
Outra habilidade útil para um desenvolvedor de faturamento é ser capaz de configurar um pipeline para integração e entrega contínuas. Na área de CI/CD existem ferramentas como Jenkins, TeamCity, Drone, Circle CI e outras. Spoiler: aprender o Jenkins amplamente utilizado será suficiente no início.
8. Controle de software e infraestrutura
O objetivo principal é compreender os fundamentos do monitoramento de aplicativos. As ferramentas nesta área são divididas em três grupos:
- Monitoramento de infraestrutura: Nagios, Icinga, Datadog, Zabbix, Monit.
- Monitoramento de desempenho de aplicativos: AppDynanic, New Relic.
- LMS: ELK Stack, Graylog, Splunk, Papertrail.
9. Serviços em nuvem
Num futuro próximo, cada aplicação ou software terá uma contrapartida na nuvem. Mais cedo ou mais tarde, os desenvolvedores encontrarão a nuvem, então leia sobre os provedores de nuvem populares (AWS, Google Cloud e Azure) e os fundamentos da tecnologia.
10. Trabalhando com o banco de dados
Todos os projetos atuais usam bancos de dados, e a experiência com SGBD e SQL facilitará o início. Aprenda a escrever consultas SQL, use o explicar e aprenda como funciona o índice. A maneira mais fácil é fazer um curso. Você também pode praticar suas habilidades de documentação do Postgres e brincar com a replicação.
11. Melhore suas habilidades interpessoais
Um ponto inesperadamente fora do comum, mas não menos importante. Para começar, seja paciente. Você rapidamente se acostuma com situações do tipo “conserte seu ferro, você é programador”, mas precisa estar mentalmente preparado para os prazos de lançamento de novos projetos. Se você tem de zero a um ano em programação e é considerado Junior, prepare-se para as críticas e aprenda a aceitá-las, a revisão do código por um mentor costuma ser um processo doloroso. Mas, ao mesmo tempo, uma habilidade obrigatória é a capacidade de defender o próprio ponto de vista e argumentar de forma construtiva; às vezes a verdade nasce numa discussão. Os desenvolvedores nunca param de aprender, praticamente não há teto na profissão, então a capacidade de aprendizagem e o DESEJO de aprender coisas novas são a base do seu desenvolvimento.
Muitas vezes me perguntam quando um iniciante atinge o nível médio e quando pode ser orgulhosamente chamado de “sênior”. Acredito que o momento de transição de nível para nível não é determinado pelo número de anos trabalhados, embora as competências práticas sejam um critério fundamental. São precisamente as soft skills que muitas vezes determinam a velocidade de crescimento de um desenvolvedor: um iniciante treinado e trabalhador pode escrever código de alta qualidade em diversas linguagens e ser capaz de trabalhar em equipe em apenas alguns meses. Um desenvolvedor com 10 anos de experiência pode não ser capaz de resolver problemas fora do padrão, gerenciar uma equipe e ter habilidades unilaterais.
É assim que vejo o caminho de desenvolvimento de um desenvolvedor de faturamento, é assim que crescemos especialistas qualificados em nossa equipe Forward Telecom. Não parece estar faltando nada, mas sou sempre grato por acréscimos úteis ao assunto.
Fonte: habr.com