Um guia para quem quer trabalhar com programação
Published on
Tenho visto muitos amigos interessados em uma carreira na área de tecnologia como desenvolvedores de software. Preparei esse guia para ajudá-los a dar os primeiros passos, ter uma noção das dificuldades e das possibilidades que essa área oferece, e quem sabe motivá-los a encarar esse desafio.
Eu acredito que cada vez mais conhecimentos de programação vão ser úteis para diversas áreas do conhecimento humano. Hoje já temos exemplos de jornalistas que usam dados para pesquisar e escrever reportagens, biólogos usando programação para analisar o código genético, astrofísicos analisando buracos negros usando Python, epidemiologistas usando análise de dados em R, psicólogos usando Python em pesquisas acadêmicas, economistas, além de muitas outras.
Além de conhecimentos sobre uma linguagem de programação, sugiro que quem estiver começando busque aprender algumas ferramentas fundamentais da área como controle de versão usando Git.
Um guia para quem quer trabalhar com programação
O que é desenvolvimento de software? Como é a carreira?
A área de computação é muito vasta, oferecendo diversas oportunidades e escolhas na sua carreira. Os programadores (também chamados de desenvolvedores, ou apenas como devs) podem se especializar em áreas distintas, como front-end, back-end, cientista de dados, DevOps, mobile, ou dispositivos embarcados.
Programação definitivamente não é uma disciplina fácil, exige constante esforço e estudo mas é extremamente recompensador. Há grandes debates sobre a necessidade ou não de faculdade, mas por não ser exigido um diploma na maioria das vagas disponíveis no mercado é relativamente mais fácil e rápido começar na carreira se comparado a outras áreas (como Medicina, Engenharia ou Direito).
Salários e mercado
É muito díficil escrever sobre salários. Não há dados abertos sobre remuneração de empresas em diversas cidades diferentes, e costuma ser um tabu falar sobre salário (ainda mais levando em conta os diferentes níveis de experiência profissional, localidade, tamanho e tipo de empresa, etc).
Sempre leve isso em consideração quando estiver lendo uma matéria sobre salários de desenvolvedores. Não temos acesso há como aqueles números foram coletados, quem participou e quem deixou de participar daquela pesquisa, e principalmente sobre como usar aquela informação para nos beneficiar.
Dito isso, não confie en média salarial. Salários são negociados: baseado no nível do profissional, na capacidade de pagamento que a empresa pode oferecer (empresas maiores costumam ter mais dinheiro disponível para salários, mas startups tem outras formas de remunerar que podem valer a pena) e na concorrência com outras empresas e profissionais. Em resumo, salários são determinados por oferta e demanda.
Meu conselho é pesquisar em sites como Glassdoor, Indeed e Levels, além de usar as redes sociais ao seu favor na hora de negociar o seu salário.
Devo aprender Inglês para ser um programador?
É possível ser um bom profissional sem saber inglês, apenas com conhecimentos básicos de leitura de inglês técnico, mas isso te limitará profissionalmente. A maior parte dos conteúdos, tanto em vídeo quanto em texto, são produzidos primeiramente em inglês e levam algum tempo para serem traduzidas para português (isso quando o são). Além disso, empresas estrangeiras buscam profissionais brasileiros para trabalhar remotamente e o inglês falado é fundamental.
Se você puder, aprenda inglês. Vai te abrir muitas portas.
Como aprender a programar?
Há diversas linguagens de programação no mercado, cada uma com seus pontos fortes e fracos – além de diferentes níveis de demanda no mercado de trabalho. Para quem está começando, as que eu acredito que sejam as melhores para se aprender são Python e/ou Javascript
Aprender a programar em Python
Eu costumo indicar Python para quem está começando pois a linguagem é excelente para iniciantes: mais fácil do que outras para aprender, com um grande mercado de trabalho tanto no Brasil quanto no exterior, e uma comunidade vibrante e ativa.
crédito: Foto da Python Brasil em Florianópolis 2016 |
Falando em comunidade, busque interagir e conhecer a comunidade de tecnologia brasileira. São pessoas muito dispostas a se ajudar e a crescer profissionalmente. No Rio de Janeiro temos o @pythonrio; tem grupos de mulheres fazendo um trabalho incrível como as @PyLadiesBrasil.
- [🇧🇷|Curso|Gratuito] Python para Zumbis - professor Fernando Massanori
- [🇧🇷|Tutorial|Gratuito] Django Girls
- [🇧🇷|Curso|Gratuito] PythonBirds
- [🇧🇷|Curso|Pago] PythonPro
- [🇬🇧|Curso|Gratuito] Python for Everybody
- [🇬🇧|Curso|Gratuito] CodeAcademy Python
- [🇬🇧|Curso|Gratuito] Automate with Python
- [🇬🇧|Guia] Python Roadmap
Livros sobre Python
Aprender a programar em Javascript
Javascript é a linguagem mais utilizada em desenvolvimento Web, tanto na parte do front-end quanto (cada vez mais) também no back-end. Se você deseja se tornar um desenvolvedor web você deve aprender Javascript.
A comunidade de Javascript também é bastante ativa no Brasil, seja através de canais no Telegram, e eventos que acontecem periodicamente tanto a nível local quanto a nivel nacional.
- [🇧🇷|Curso|Pago] Formação Front-end Alura
- [🇧🇷|Curso|Gratuito] Mini-curso de Typescript
- [🇬🇧|Curso|Gratuito] Build a Netflix Landing Page Clone with HTML, CSS & JS
- [🇬🇧|Tutorial|Gratuito] The Modern Javascript Tutorial
Livros sobre Javascript
Habilidades fundamentais para desenvolvimento web
- [🇧🇷|Curso|Gratuito] Curso HTML5 professor Gustavo Guanabara
- [🇧🇷|Curso|Gratuito] Mini-curso de Netlify - Aprenda a colocar seus sistes no ar de forma fácil e gratuita
- [🇬🇧|Guia] Web Skills
Fundamentos da Ciência da Computação
Conceitos fundamentais de Ciência da Computação são importantes conforme você for avançando em seu desenvolvimento profissional. Aprender sobre algoritmos e estrutura de dados, teoria da computação, arquitetura de sistemas e engenharia de software irão te fazer subir de nível profissionalmente e se tornar mais valioso aos olhos do mercado.
- [🇧🇷|Vídeo|Gratuito] Conceitos de Programação
- [🇧🇷|Vídeo|Gratuito] O Mercado de TI para Iniciantes | Série “Começando aos 40”
- [🇧🇷|Guia|Gratuito] Universidade Livre - Ciência da Computação
Programador Front-end
É o profissional que cuida do lado do cliente, desenvolvendo a interface gráfica da aplicação e aplicando recursos que impactam na velocidade de navegação, acessibilidade, integração entre os elementos, e toda a estrutura para que o site seja fácil de usar em diferentes dispositivos (celulares, notebooks, televisões, etc). O foco aqui é aprender os fundamentos da Web (HTML, CSS, Javascript, HTTP e aspectos de design (UI, UX, tipografia, cores, etc.) para criar uma interface agradável para os usuários da sua aplicação.
- [🇧🇷|Curso|Pago] Formação Rockseat
- [🇧🇷|Curso|Pago] Formação Front-end Alura
- [🇬🇧|Guia] Frontend Roadmap
- [🇬🇧|Guia] Angular Roadmap
- [🇬🇧|Guia] React Roadmap
- [🇧🇷|Vídeo|Gratuito] A História do Front-End para Iniciantes em Programação | Série “Começando aos 40”
Programador Back-end
É o profissional que cuida do lado do servidor, que normalmente consiste em pensar sobre a aplicação, o servidor e o banco de dados. O desenvolvedor back end tem o trabalho de criar uma aplicação segura, escalável e que atenda os requisitos técnicos e de negócio para assegurar um bom funcionamento de todo o sistema.
- [🇬🇧|Guia] Backend Roadmap
- [🇬🇧|Guia] System Design
- [🇧🇷|Vídeo|Gratuito] Entendendo Back-End para Iniciantes em Programação (Parte 1) | Série “Começando aos 40”
- [🇧🇷|Vídeo|Gratuito] A Forma Ideal de Projetos Web | Os 12 Fatores - YouTube
Cientista de Dados
É o profissional que trabalha com dados para gerar informações. Tem foco em estatística, sabe trabalhar com banco de dados e diversas ferramentas para analisar, limpar, visualizar e gerar relatórios e ideias baseadas em dados.
- [🇧🇷|Guia] Guia do Cientista de Dados das Galáxias
- [🇧🇷|Curso|Gratuito] Análise de Dados Públicos
- [🇬🇧|Curso|Pago] Intro to Python for Data Science
- [🇬🇧|Curso|Pago] Kaggle: Your Machine Learning and Data Science Community