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:
- 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.)
- 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.
- 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:
- “Introdução à Ciência da Computação Teórica” (Intro to Theoretical Computer Science) da Udacity
- “Introdução à Ciência da Computação e Programação” (Introduction to Computer Science and Programming) do MIT
- “Metodologia de Programação” (Programming Methodology) de Stanford
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:
- A série de redes neurais do 3blue1brown é um ótimo lugar para iniciantes.
- Quando eu estava aprendendo, usei o Neural Networks and Deep Learning – é um livro online, bom se você estiver familiarizado com a matemática, com alguns exercícios úteis também.
- Você pode fazer cursos introdutórios online como fast.ai (focado em aplicações práticas), Full Stack Deep Learning e vários cursos na deeplearning.ai.
- Para mais detalhes, veja cursos universitários como o de “Introdução à Aprendizagem de Máquina” (Introduction to Machine Learning) do MIT e de “Aprendizagem Profunda” (Deep Learning) da NYU para ainda mais detalhes. Também recomendamos a série de palestras do Google DeepMind.
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:
- Cálculo: A série de vídeos sobre cálculo do 3blue1brown pode ser um bom ponto de partida. Você também pode acompanhar cursos universitários gravados: o de cálculo de uma variável do MIT (que requer apenas álgebra e trigonometria do ensino médio), seguido pelo curso de cálculo vetorial e de várias variáveis também do MIT.
- Álgebra linear: De novo, sugerimos a série de vídeos sobre álgebra linear do 3blue1brown como um ponto de partida. Em seu post sobre carreiras de alinhamento técnico, Rogers-Smith recomenda o livro Linear Algebra Done Right de Sheldon Axler. Por fim, se você prefere acompanhar aulas, tente o curso de álgebra linear da graduação do MIT (mas saiba que esse curso pressupõe conhecimento de cálculo de várias variáveis).
- Probabilidade: Dê uma olhada no curso de graduação sobre probabilidade e variáveis aleatórias do MIT.
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:
- Como começar a desenvolver competências de pesquisa
- Como começar a desenvolver conhecimento especializado relevante para um problema urgente
- Como começar a desenvolver competências para comunicar ideias
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:
- Utilize competências em software e tecnologia na pesquisa. Muitas pesquisas técnicas relevantes para os problemas mais urgentes do mundo, fazem amplo uso de competências em software e tecnologia – principalmente a pesquisa técnica em segurança de IA. Para obter sucesso, você também pode precisar de um conjunto de competências de pesquisa, sobre o qual escrevemos separadamente. Para algumas áreas, você também precisará de conhecimento especializado em um campo relacionado a um problema urgente – por exemplo, conhecimento de hardware para se tornar um especialista em hardware de IA.
- Engenharia de aprendizado de máquina para pesquisa sobre segurança de IA. A maioria dos pesquisadores de segurança de IA trabalha em estreita colaboração com engenheiros (e, em muitas organizações, não há uma distinção clara entre essas funções). Esta é uma maneira particularmente impactante de você usar suas competências em software e tecnologia, porque acreditamos que os riscos da IA são um dos problemas mais urgentes do mundo.
- Desenvolva software para organizações que focam em problemas urgentes. A maioria das organizações que trabalham em tudo, desde saúde global até a redução do risco de guerra nuclear, precisa de engenheiros de software para gerenciar sistemas de computadores, aplicativos e sites. A principal característica que une esses trabalhos é que você desenvolverá um produto para que outras pessoas usem. Leia mais sobre carreiras em engenharia de software e competências em desenvolvimento organizacional.
- Proteja informações sensíveis. Algumas organizações precisam de ajuda para proteger informações que poderiam ser extremamente perigosas se fossem conhecidas mais amplamente, como sequências genéticas prejudiciais ou tecnologia de IA poderosa. Violações em áreas como essas podem ter consequências desastrosas – o que torna a segurança da informação uma ótima opção para pessoas que desejam ter uma carreira de alto impacto. Leia mais sobre segurança da informação.
- Ganhe para doar. A maioria dos empregos que requerem competências em software e tecnologia, seja engenharia de software, segurança da informação, ciência de dados ou qualquer outra coisa, oferecem altos salários (particularmente nos EUA) – e, portanto, oferecem uma ótima opção para ganhar para doar. Engenheiros de software qualificados podem ganhar $300.000 por ano ou mais em grandes empresas de tecnologia. Provavelmente, as rotas mais bem pagas são as de trading em fundos de hedge quantitativos ou fundar uma startup de tecnologia.
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:
- Pesquisa técnica em segurança da IA
- Segurança da informação em áreas de alto impacto
- Especialista em hardware de IA
- Previsão e pesquisas relacionadas e implementação
- Coleta de dados para alinhamento de IA
- Engenharia de software
- Fundar uma startup de tecnologia
- Ganhar para doar no trading quantitativo
- Doutorados em aprendizado de máquina
- Funcionário de uma startup em estágio inicial
- Trabalhar em um laboratório líder de IA
- Doutorado em ciência da computação
- Ciência de dados
- Gerente de produto em tecnologia
- Web designer