Olá! Nesse repositório iremos compilar alguns conteúdos e métodos sobre como iniciar na carreira de tecnologia. É importante ressaltar que existe MUITA informação disponível na internet, e esse repositório é apenas um pequeno recorte com alguns caminhos possíveis. 🌈
Estou trazendo pra cá os mesmos pontos levantados nesse vídeo (UX Design: How To Get Started - A Full Guide). Os passos são muito simples e claros de entender, não há segredo algum. Mas isso não quer dizer que seja fácil ou rádido 😬 É aquele caso: É simples, porém trabalhoso e também extremamente possível/tangível. São eles:
Existem muitas atuações possíveis dentro de tecnologia envolvendo programação, design, gerenciamento de projetos e muito mais. Segue algumas referências:
- Quais São as Melhores Profissões de Tecnologia para 2021? // Vlog #140
- 7 Passos para começar na área de TI
- Áreas de atuação em TI
Existe todo tipo de conteúdo disponível, indo dos gratuitos aos pagos. Vou deixar algumas referências disponibilidas gratuitamente:
- Introdução a Algoritmos - Curso de Algoritmos #01 - Gustavo Guanabara
- Curso de Ciência da Computação - Khan Academy
- Curso Python #01 - Seja um Programador
- Python Para Zumbis - Professor Fernando Masanori
- Curso Introdutório de Python - grupy-sanca
- Tutorial do Django Girls
- Things they didn’t teach you about Software Engineering
Os fundamentos do passo 2 são aplicáveis em diversas linguagens de programação e contextos diferentes, então nesse passo recomendo se especializar em alguma tecnologia pra começar a fazer as coisas acontecerem. Seguindo a deixa do https://roadmap.sh/backend, são boas linguagens para começar (escolha uma):
- Python
- Javascript
- Java
- Go
- C#
Existe também esse índice de popularidade de linguagens que pode ajudar na descisão: https://www.tiobe.com/tiobe-index/
Fazendo uma citação da página http://codekata.com/, como uma pessoa se torna um músico? Saber a teoria ajuda, talvez até um pouco de talento, mas definitivamente, prática! Aplicar a teoria repetidamente e usar o feedback de outras pessoas para melhorar. Não é muito diferente para pessoas desenvolvedoras, artistas, designers, advogados e desportistas.
Com isso em mente, recomendo encontrar um projeto da comunidade ou criar um projeto pessoal e trabalhar nele de forma a aplicar os conhecimentos. Algumas sugestões:
- Awesome lists: Listas compiladas de diversas áreas
- App ideas: Diversas ideias para projetos
- 70+ Python Projects for Beginners, Intermediate and Experienced Developers
- Programming Challenges
- Build Your Own X
- guiadevbrasil
Escolha algumas tecnologias, cursos e crie alguns objetivos pessoais. Utilizando da metodologia ágil kanban, recomendo quebrar cada tópico de aprendizado em tópicos menores e criar uma lista de prioridade. Após isso, fica bem claro ver os próximos passos de estudo. Um exemplo feito no Trello:
Uma comunidade de tecnologia é o ponto de encontro de pessoas mais experientes na área, podendo ter palestras, trocas de conhecimento e vagas de emprego a disposição. Sugestões da comunidade python:
- Grupy-RP: meetup e telegram
- Grupy-sanca: meetup, discord e telegram disponíveis na descrição do grupo.
- PyLadies Brasil: https://brasil.pyladies.com/. Disponível no slack e instagram
- Afropython
- @pythonbrasil no telegram
Na busca por novas vagas, é muito importante ter um portifólio (geralmente no github pra pessoas programadoras) com seus projetos e aprendizados. Isso irá demonstrar para recrutadores as tecnologias que você já é familiarizado.
Pra procurar vagas, existem diversas plataformas, mas pra início eu recomendo o Linkedin. Há uma pesquisa de vagas bem eficiente por lá, e também já é possível ver os requisitos das vagas pra que você tenha noção dos caminhos que precisa trilhar. Referências:
- O que é git/github: Versionamento de código
- Tech Interview Handbook
- Code Review & Pull Request no Github
Um pouco mais de contexto sobre esse ponto pode ser visto nessa palestra: Experiências mentorando contribuições a software livre na faculdade , por Igor Montagner.
Os pontos principais são:
- Aprender a utilizar controle de versão dentro do contexto de uma equipe (parar de usar a branch main para tudo 🔒)
- Melhorar a capacidade de leitura e debug de código já existente (pois no mercado, nem sempre vamos começar um projeto do zero e é importante aprender a lidar com códigos já existentes e desconhecidos)
- Melhorar familiaridade com testes, CI, linting e outras práticas de qualidade de software
- Ter um registro público de como você colabora.
Não sabe por onde começar? Temos essas duas referências:
Mas é importante também conversar com amigos e pares da área de tecnologia se precisar de uma ajudinha pra escolher um projeto :)
Quanto ao trabalho voluntário, é uma excelente forma de aprimorar suas habilidades, enquanto causa um impacto positivo no mundo. Existem diversas plataformas de trabalho, mas posso citar algumas aqui:
Na área de tecnologia existem alguns pontos fundamentais que acho importante ressaltar e que podem fazer toda a diferença em uma carreira de tecnologia. São eles:
Muitas vezes ouvimos a recomedação pra estudar lógica de programação primeiro. Mas o que isso quer dizer na prática? Na verdade, muitas vezes os termos se confundem um pouco e o que geralmente estamos nos referimos é o Pensamento Computacional.
O pensamento computacional é um conjunto de atitudes e habilidades que envolve a decomposição de problemas, reconhecimento de padrões, abstração e algoritmos. Seja lá qual for sua linguagem de programação escolhida, durante toda a carreira precisamos refinar nosso pensamento computacional para melhorar nossa solução de problemas, então é importantíssimo investir tempo nesse passo para ter um aprendizado mais completo.
Como referência, deixo a palestra Para além da treta "lógica de programação primeiro", da lidymonteiro na python brasil 2021:
Aprender um idioma mundialmente falado irá abrir muitas portas no seu desenvolvimento. No início, é possível consumir conteúdos, cursos e artigos escritos por pessoas do mundo todo, e essa é uma expansão incrível da quantidade de conteúdo disponível. Num segundo momento, o mercado de tecnologia está cada vez mais globalizado, e com o home office cada vez mais comum, perdemos muitas barreiras físicas e na prática podemos trabalhar em qualquer lugar do mundo. Demais, não?
Linux é um sistema operacional de código aberto, que é mundialmente utilizado em diversas áreas da tecnologia.
Este é um projeto coletivo, então sinta-se a vontade pra criar uma issue ou um PR :)