Sumário

Competências em software e tecnologia

Por Benjamin Hilton e  a equipe da 80.000 Hours ·
Última atualização em dezembro de 2023·
Publicado em inglês pela primeira vez em setembro de 2023

Traduzido, editado e adaptado pela equipe do Carreiras Eficazes, de modo a atender as necessidades das comunidades lusófonas com autorização dos produtores do texto original.

Em resumo:

Você pode começar a desenvolver competências em software e tecnologia experimentando aprender a programar e, em seguida, realizando alguns projetos de programação, antes de se candidatar a vagas de emprego. Você pode aplicar (bem como continuar a desenvolver) suas competências em software e tecnologia especializando-se em uma área relacionada, como pesquisa técnica em segurança de IA, engenharia de software ou segurança da informação. Você também pode ganhar para doar, e esse conjunto de competências de alta demanda oferece ótimas opções alternativas.

Fatos principais sobre compatibilidade

Não existe um perfil único para se tornar ótimo com competências em software e tecnologia. É particularmente barato e fácil experimentar a  programação (que é uma parte fundamental desse conjunto de competências) por meio de aulas online ou na faculdade; então, sugerimos que você faça isso. Mas se você é alguém que gosta de pensar sistematicamente, construir coisas, ou tem boas competências quantitativas, esses são bons sinais.

Por que as competências em software e tecnologia são valiosas?

Por “competências em software e tecnologia”, basicamente estamos nos referindo ao que sua avó chamaria de “ser bom com computadores”.

Ao investigar os problemas mais urgentes do mundo, descobrimos que, em muitos casos, existem gargalos relacionados ao software.

Por exemplo, a engenharia de aprendizado de máquina (ML) é uma competência fundamental para contribuir com a pesquisa técnica em segurança de IA. Especialistas em segurança da informação são cruciais para reduzir os riscos de pandemias projetadas, assim como outros riscos. E engenheiros de software são frequentemente necessários em organizações sem fins lucrativos, quer eles estejam trabalhando na redução da pobreza ou na mitigação dos riscos das mudanças climáticas.

Além disso, ter competências nessa área significa que você provavelmente será muito bem pago, proporcionando excelentes opções de ganhar para doar.

Além disso, competências básicas de programação podem ser extremamente úteis, independentemente do que você acabar fazendo. Você encontrará maneiras de automatizar tarefas ou analisar dados ao longo de sua carreira.

O que envolve uma carreira que utiliza competências em software e tecnologia?

Uma carreira que utiliza essas competências, normalmente envolve três etapas:

  1. Aprender a programar em um curso universitário ou com estudo autodidata e, em seguida, encontrar empregos nos quais você possa obter ótimos mentores. (Leia mais sobre como começar.)
  2. Como opção, especialize-se em uma área específica, por exemplo, desenvolvendo competências em aprendizado de máquina ou em segurança da informação.
  3. Aplicar suas competências para ajudar a resolver um problema global urgente. (Leia mais sobre como ter impacto com software e tecnologia.)

Não há uma resposta geral que determine quando você deve parar de focar no aprendizado, para focar no impacto. Depois de adquirir algumas competências básicas de programação, você deve buscar trabalhos que melhorem ainda mais suas competências e que tenham impacto; e, então, fazer escolhas com base em oportunidades específicas que parecem as melhores naquele momento.

As competências em software e tecnologia também podem ser úteis em outras carreiras indiretamente relacionadas, como ser um especialista em hardware de IA (para isso você também precisará de um conjunto de competências especializadas) ou fundar uma startup de tecnologia (para isso você também precisará de um conjunto de competências em desenvolvimento organizacional). Ser bom com computadores também costuma fazer parte das competências necessárias para trading quantitativo.

A programação também tende a ser útil em uma ampla variedade de situações e empregos; existem outras ótimas opções de carreira, sobre as quais não escrevemos, que usarão essas competências.

Como avaliar sua compatibilidade

Como prever sua compatibilidade com antecedência

Alguns fatores que indicarão que você será compatível com essa área incluem:

  • A capacidade de decompor problemas em partes lógicas, gerar e testar hipóteses
  • Vontade de experimentar muitas soluções diferentes
  • Alta atenção aos detalhes
  • Competências quantitativas razoavelmente boas

A melhor maneira de avaliar sua compatibilidade é, simplesmente, experimentando programação.

Parece provável que alguns engenheiros de software sejam significativamente melhores do que a média – e nós supomos que o mesmo valha para outros cargos técnicos que envolvam o uso de software. Com frequência, os melhores engenheiros de software são pessoas que passam muito tempo praticando. Isso significa que, se você gosta de codificar o suficiente, a ponto de querer fazer isso não apenas como um trabalho, mas também em seu tempo livre, provavelmente você terá um perfil compatível.

Como saber se você está no caminho certo

Se você está na universidade ou em um curso intensivo (bootcamp), é muito fácil saber se está no caminho certo. Sinais positivos incluem ter um bom desempenho nos projetos que lhe são atribuídos, ou obter boas notas. Um sinal extremamente positivo é quando você está progredindo mais rápido do que muitos de seus colegas.

Em geral, um grande indicador de sucesso é quando as pessoas com quem você trabalha mais de perto se mostram entusiasmadas com você e seu trabalho – especialmente se essas pessoas também forem excelentes!

Se você está desenvolvendo essas competências em uma organização, sinais de que está no caminho certo podem incluir:

  • Você recebe ofertas de emprego em organizações onde gostaria de trabalhar.
  • Você é promovido logo nos primeiros dois anos.
  • Você recebe excelentes avaliações de desempenho.
  • Você é solicitado a assumir, progressivamente, mais responsabilidades ao longo do tempo.
  • Depois de um tempo, as pessoas de sua equipe passam a procurá-lo para resolver problemas, e elas querem que você as ensine a fazer as coisas.
  • Seu gerente/seus colegas dizem que você pode assumir cargos mais sêniores no futuro.
  • Você solicita aos seus superiores uma avaliação honesta sobre sua compatibilidade e eles fornecem um feedback positivo (por exemplo, eles dizem que você está no topo dos 10% melhores que eles conseguem imaginar fazendo seu trabalho).

Como começar a desenvolver competências em software e tecnologia

Aprender a programar de forma independente

Como um verdadeiro iniciante, em menos de 20 minutos você pode desenvolver um programa em Python que lembrará você de fazer uma pausa a cada duas horas.

Uma ótima maneira de aprender os conceitos básicos é estudar por meio de um curso gratuito para iniciantes, como Automatize Tarefas Maçantes com Python (Automate the Boring Stuff with Python) de Al Seigart.

Depois de dominar os fundamentos, você pode tentar fazer um curso introdutório de ciência da computação ou de programação. Se você não está na universidade, existem muitos cursos online, como:

Não desanime se o seu código não funcionar na primeira tentativa – isso é normal quando as pessoas programam!

Um ótimo passo seguinte é tentar fazer um projeto com outras pessoas. Isso permite que você teste desenvolver programas em equipe e trabalhe com bases de código maiores. É fácil encontrar projetos de programação para fazer com amigos – você pode ver alguns exemplos aqui.

Quando você tiver adquirido mais experiência, contribuir para desenvolver projetos de código aberto (open-source projects), em particular, permitirá que você trabalhe com bases de código existentes muito grandes.

Participar de um curso intensivo (bootcamp) de programação

Já aconselhamos muitas pessoas que conseguiram empregos como engenheiro de software júnior, em menos de um ano após terem participado de um curso intensivo (bootcamp).

Os bootcamps de programação têm como objetivo fazer com que pessoas com pouco conhecimento de programação consigam um emprego bem remunerado em poucos meses. Este é um ótimo ponto de partida, se você ainda não tem muito conhecimento prévio, embora alguns afirmem que as perspectivas de longo prazo não são tão boas quanto se você estudasse em uma universidade ou de forma independente mas aprofundada, pois pode lhe faltar uma compreensão maior da ciência da computação. O Course Report é um ótimo guia para escolher um bootcamp. Tenha cuidado para evitar bootcamps de baixa qualidade. Para saber mais, leia nossa entrevista com um instrutor da App Academy.

Estudar na universidade

Estudar Ciência da Computação (ou outro curso que envolva muita programação) na universidade é uma ótima opção, pois permite que você aprenda a programar de maneira mais estruturada e com um custo de tempo menor.

Um curso universitário também irá lhe proporcionar uma melhor compreensão teórica da computação do que um bootcamp (que pode ser útil para conseguir os empregos mais bem remunerados e intelectualmente interessantes), uma boa rede de contatos, algum prestígio e uma melhor compreensão de linguagens de baixo nível como C. Ter um diploma em Ciência da Computação também facilita a obtenção de um visto de trabalho nos EUA, se você não for dos EUA.

Fazer estágios

Se você puder encontrar estágios, idealmente em organizações onde gostaria de trabalhar para desenvolver suas competências (como grandes empresas de tecnologia ou startups), você ganhará experiência prática e competências relevantes que você não obteria de outra maneira em cursos acadêmicos (por exemplo, usar sistemas de controle de versão e editores de texto potentes). Dê uma olhada em nossa lista de empresas com estágios em software e aprendizado de máquina.

Programação assistida por IA

Ao começar, vale a pena pensar em como os desenvolvimentos em IA vão afetar a programação no futuro – e se acostumar com a programação assistida por IA.

Recomendamos que você experimente o GitHub CoPilot, que escreve código para você com base em seus comentários. O Cursor é um editor de código assistido por IA popular, baseado no VSCode.

Você também pode simplesmente pedir ajuda a assistentes de bate-papo de IA. O ChatGPT é particularmente útil (mas apenas se você usar a versão paga).

Acreditamos que seja bastante provável que muitos empregos em software e tecnologia no futuro sejam baseados principalmente no uso de ferramentas como essas.

Desenvolvendo uma especialidade

Dependendo de como você pretende usar suas competências em software e tecnologia, pode ser útil desenvolvê-las em uma área específica. Aqui você encontrará informações sobre como começar em algumas áreas relevantes:

Aprendizado de máquina

Se você está atualmente na universidade, vale a pena verificar se você pode fazer um curso de aprendizagem de máquina (mesmo que não esteja se especializando em ciência da computação).

Mas, se isso não for possível, aqui estão algumas sugestões de lugares onde você pode começar, se quiser estudar por conta própria os conceitos básicos:

PyTorch é um pacote muito comum usado para implementar redes neurais e, provavelmente, vale a pena aprendê-lo! Quando eu comecei a estudar sobre aprendizado de máquina, minha primeira rede neural foi uma rede neural convolucional de 3 camadas com regularização L2 classificando caracteres do banco de dados MNIST. Este é um desafio bastante comum e uma boa maneira de se aprender PyTorch.

Você também pode precisar aprender um pouco de matemática.

A matemática do aprendizado profundo depende muito de cálculo e álgebra linear, e estatística também pode ser útil – embora, geralmente, aprender matemática seja muito menos importante do que aprender programação e aprendizado de máquina básico e prático.

Se você ainda está na universidade, geralmente recomendamos que faça um curso quantitativo (como matemática, ciência da computação ou engenharia), sendo que a maioria cobrirá bem essas três áreas.

Se você quiser realmente ser bom em matemática, você tem que resolver problemas. Então, geralmente, o que os livros didáticos e cursos online oferecem de mais útil não são suas explicações, e sim um conjunto de exercícios para tentar resolver em ordem, com alguma ajuda se você ficar preso.

Se você quiser estudar por conta própria (especialmente se não tiver um diploma em um curso quantitativo), aqui estão alguns recursos possíveis:

Você pode encontrar recursos que abranjam todas essas áreas, como “Matemática para Aprendizado de Máquina” (Mathematics for Machine Learning) do Imperial College.

Segurança da informação

A maioria das pessoas começa a estudar segurança da informação em um curso de ciência da computação (ou algo semelhante) na universidade e fazendo alguns cursos sobre cibersegurança – embora isso não seja, de modo algum, necessário para ser bem-sucedido.

Você pode obter uma introdução com o curso Fundamentos de Cibersegurança do Google (Google Foundations of Cybersecurity). Também vale a pena assistir à série completa sobre Certificados Profissionais em Cibersegurança do Google (Google Cybersecurity Professional Certificate) para aprender mais sobre tópicos técnicos relevantes.

Para mais informações, dê uma olhada em como experimentar e começar na segurança da informação.

Ciência de dados e estatística aplicada

A ciência de dados combina programação com estatística.

Uma maneira de você começar é fazendo um bootcamp. Esses bootcamps são semelhantes aos de programação, embora tendam a recrutar principalmente pessoas com doutorado em ciências. Se você acabou de concluir um doutorado em ciências e não quer continuar na academia, esta é uma boa opção a considerar (embora você provavelmente deva considerar antes outras maneiras de usar suas competências em software e tecnologia). Da mesma forma, você pode aprender análise de dados, estatística e modelagem fazendo um bom programa de pós-graduação.

Os cientistas de dados são bem remunerados – oferecendo o potencial de ganhar para doar – e têm alta satisfação no trabalho.

Para saber mais, consulte nossa análise de carreira completa sobre ciência de dados.

Dependendo de como você pretende ter impacto com essas competências (veja a próxima seção), você também pode precisar desenvolver outras competências. Nós já escrevemos sobre alguns outros conjuntos de competências relevantes:

Para mais informações, consulte nossa lista completa de competências de impacto.

Depois de adquirir essas competências, como você pode aplicá-las da melhor maneira para obter um impacto?

O problema em que você foca provavelmente é o maior impulsionador do seu impacto. O primeiro passo é fazer uma avaliação inicial dos problemas que você considera mais urgentes (mesmo que mude de ideia ao longo do tempo, você precisará decidir por onde começar a trabalhar).

Depois disso, o próximo passo é identificar formas de usar competências em software e tecnologia com o maior potencial para ajudar a resolver seus problemas prioritários.

Existem cinco categorias amplas aqui:

Embora algumas dessas opções (como proteger informações perigosas) exijam o desenvolvimento de competências mais especializadas, ser um ótimo programador permitirá que você transite facilmente entre a maioria dessas categorias, e as opções de ganhar para doar significam que você sempre terá um bom plano alternativo.

Encontre empregos que utilizem competências em software e tecnologia

Veja nossa lista selecionada de oportunidades de emprego nessa área.

Opções de carreiras que analisamos que utilizam essas competências: