Do zero à contratação
O que eu preciso saber para o primeiro emprego ?
Se eu fosse elencar o básico que precisei para conseguir meu primeiro emprego em TI, daria destaque para dois assuntos (uma é foco deste artigo): os conhecimentos de base e o programador tem que saber mais que apenas programar.
Mas, claro, elas não são as únicas. Nessa série de artigos, tentarei guiar aqueles que querem adquirir o primeiro emprego em tecnologia, com dicas baseadas na minha experiência e também na de conhecidos meus (inclusive de quem já contratou), ao elencar o necessário, de forma direta, para o ingresso nesse ramo. Além dos temas citados, tentarei abranger outros como: o quê as empresas buscam ?, como ser procurado pelas empresas, se preparar para as entrevistas, soft skill pode ser mais importante que hard skill, como destacar meu perfil ?. Sem mais delongas, tenha uma boa leitura!
Conhecimentos de base
A primeira coisa que você precisa saber é o quê se espera do nível júnior/estagiário. É normal, dado a quantidade de exigências das empresas, que pensemos que precisamos ser experts. Mas é aí que você se engana: você não precisa ter todos os requisitos da vaga para se candidatar. Inclusive, já escutei de colegas sêniores que na empresa, quando a pessoa é do perfil júnior, nós devemos fazer abordagens como se ela não soubesse nada além do básico, que é o que tenho recomendado para pessoas que querem entrar na área. Mas o que é o básico ? Baseado nos cursos que fiz e na minha experiência diária, posso recomendar o planejamento abaixo para quem quer começar do zero:
1) O que é o terminal linux e seus comandos básicos ?
- Usamos o terminal diariamente para executar programas e comandos que só funcionam através dele. Portanto, é uma das ferramentas básicas que todo programador deve saber utilizar.
Materiais recomendados:
- Para aprender esse tema, caso queira focar apenas nos comandos básicos do terminal, indico o seguinte curso: "shell script"
- Caso queira, além dos comandos básicos, uma introdução mais completa ao sistema operacional: "Linux: a introdução ao sistema operacional"
- Prefere material escrito ? Recomendo o conhecido "Guia foca"
- Dica de aprendizado: brinque o máximo que puder manipulando arquivos e diretórios no terminal do linux. Caso você esteja no windows 10, é possível usar o terminal linux no windows.
2) Lógica de programação básica(ou lógica essencial, em alguns cursos).
- Para escrever programas é necessário um modelo de pensamento lógico específico e que é a base de tudo que se aprende posteriormente. Esse modelo é o tema desse tópico.
Materiais recomendados:
- "Univesp: Programação de Computadores" - um professor divertido e dinâmico que ensina sobre a lógica de programação utilizando a linguagem Java. Tive aulas com ele na USP e o recomendo muito!
- "DIO: Lógica de programação essencial" - apresenta um material atualizado, interativo e interessante ao aprendizado, focando apenas na lógica essencial, sem necessariamente aplicar alguma linguagem de programação.
Dica de estudos: Se estiver aprendendo com a linguagem de programação, faça programas básicos como
- cálculo de média aritmética;
- verificação se uma palavra é um palíndromo;
- enfim... Use a criatividade.
- Caso não esteja usando linguagem de programação, você pode usar o Scratch para fazer programas.
3) Estrutura de dados e algoritmos.
- Esse tema é importante para entender sobre algumas estruturas básicas da programação. Alguns cursos focam apenas na manipulação de coleções de dados, enquanto outros vão além e oferecem uma introdução às linguagens de programação.
- Coleção de dados é como chamamos um conjunto de dados armazenados e manipulados por algum algoritmo (termos comuns: Lista, Vetores, Coleção, Fila, etc).
Materiais recomendados:
- "Univesp: Estrutura de Dados" - (fortemente recomendado) O Professor Digiampietri possui uma excelente didática. Ademais, o curso é uma boa introdução à programação e mostra como os dados são alocados em memória e como você pode manipulá-los usando-a diretamente.
- "DIO: Aprenda o que são estruturas de dados e algoritmos" - O curso apresenta uma grade bem estruturada e foco na lógica essencial, deixando de lado as linguagens de programação. Além disso, a DIO é uma plataforma interessante deixar exposto o seu progresso para possíveis empregadores.
Dica de estudos: ao estudar as estruturas, tente entender o seu conceito e depois reproduzir tentando ao máximo não olhar o vídeo. Isso te ajuda a fixar tanto o conceito, quanto a linguagem de programação utilizada.
4) Programação Orientada a Objetos (POO ou OOP em inglês)
- POO é um paradigma de programação que faz parte da base da produção de software e, portanto, é amplamente utilizado.
- É importante que você tenha passado por "estrutura de dados" antes de passar para essa etapa, porque você aprenderá conceitos importantes como: objetos em memória, funções, ponteiros, etc.
- "Paradigma de programação é um meio de se classificar as linguagens de programação baseado em suas funcionalidades" - Wikipedia
Materiais recomendados: aqui não pratiquei nenhum dos cursos, mas analisei a grade e estão organizados de acordo com o quê me pareceu mais recomendável.
- "Curso POO Java" - Este é um ótimo curso e bem didático. Ele tenta avançar aos poucos e explica o conceito através de implementações em Java.
- "Univesp: Programação Orientada a Objetos" - O curso é muito bem estruturado e completo. A vantagem é que ele primeiro explica o que são os paradigmas de programação para então dar introdução ao assunto principal.
- "Orientação a objetos com .NET" - Dos cursos da DIO, esse me pareceu o mais introdutório, pois passa pelos conceitos principais de orientação a objetos, antes de começar as implementações. No entanto, se você procurar na plataforma, encontrará diversos outros que podem complementar o conhecimento
- "Código fonte TV - Programação Orientada a Objetos" - Esse vídeo tem uma introdução direta ao ponto, mas com alguns conceitos que podem parecer um pouco estranho à primeira vista. Eu o usaria como apoio para os demais vídeos. Vale a pena assistir.
Dicas de estudo: use a criatividade para criar programas de cadastro, por exemplo. Outra alternativa é procurar exercícios prontos na internet, a fim de exercitar os conceitos de POO.
5) Banco de dados (SQL)
- Banco de dados pode ser aprendido utilizando um Software de Gerenciamento de Banco de Dados (SGBD), mas também pode-se estudar apenas o SQL que é linguagem comum entre todos os SGBDs disponíveis.
- Esse conhecimento é extremamente necessário, uma vez que todos os softwares são ferramentas para manipulações de dados e, em grande parte das vezes, esses dados precisam ser gravados em uma memória de longa duração. Essa gravação é feita através dos SGBD
Materiais recomendados:
- "W3schoools: SQL" - Esse foi o material que os estagiários da Codus utilizavam no treinamento há alguns anos. Hoje, esse treinamento é dado na Creditas. Esse é um ótimo material para entender sobre o SQL com a mão na massa, uma vez que o site oferece um aprendizado interativo.
- "Univesp: Banco de dados" - A Univesp oferece esse curso com um bom nível de aprofundamento. É um material bem completo, didático e acadêmico. Sua desvantagem é justamente para àqueles que buscam um material mais direto ao ponto. A vantagem é que as bases aprendidas no curso são bem sólidas.
- "DIO: Banco de Dados" - Claro, não poderia faltar o material da DIO. Eles oferecem diversos tipos de treinamentos para banco de dados no nível básico. Você ainda pode escolher treinamentos com diferentes SGBDs (como o MySQL, Postgresql, SQLServer, etc).
Dicas de estudo:
- Use o site w3schools para praticar cada um dos conceitos que estiver aprendendo em SQL. O site fornece tabelas interativas de banco de dados em cada sub-tópico do conceito a ser estudado.
Páginas Web
Terminados os conceitos básicos de programação, é hora de aprender algumas bases para programar páginas web.
Dicas de estudo:
- Ao longo do processo de aprendizagem, vá construindo um site de pedidos de uma pizzaria/restaurante/comércio de sua escolha. Busque na internet algum site para sua inspiração.
6) HTML
- O HTML é uma linguagem de marcação de textos: é com ele que criamos as estruturas das páginas como esta que você está lendo. É extremamente necessário adquirir esse conhecimento se quiser ingressar na área de programação web.
Materiais recomendados:
- "DIO: introdução à criação de websites com HTML5 e CSS3" - Curso gratuito e que mostra o seu progresso para possíveis empregadores. Sua estrutura é interessante, uma vez que cobre desde o surgimento do HTML até as construções de páginas web. Com esse conhecimento já é bem possível ter uma base desse e do próximo tópico.
- "Mimo: aprenda a programar javascript, python, html..." - Mimo é um aplicativo gameficado gratuito de aprendizagem de programação. É um realmente divertido para aprender HTML, CSS e Javascript. Eu mesmo utilizo de vez em quando antes de dormir (hahahaha).
- "Curso HTML 2020" - Não precisa dizer muito. Esse curso cobre boa parte do básico do HTML de uma maneira didática.
- "W3schools: Learn HTML" - Além de uma ótima fonte de consulta, o w3schools oferece um material escrito de HTML onde é possível aprender tudo dessa linguagem de marcação. O material é super completo, intuitivo, interativo e didático.
7) CSS
- CSS é o arquivo de estilo que usamos para ajustar o visual das páginas html. Sem ele, as páginas criadas com HTML seriam apenas documentos de texto.
Materiais sugeridos:
- Os mesmos materiais sugeridos para HTML, com excessão das aulas de HTML.
- "W3Schools: learn CSS" - Assim como o de HTML, esse é um material de referência e também ótimo para aprendizado.
- "Curso de CSS" - Se você prefere um curso focado em CSS ao invés dos materiais indicados anteriormente, tem esse cursinho de css que procura apresentar os principais pontos do CSS.
8) Javascript
- Linguagem de programação usada pelos navegadores para adicionar dinamismo nas páginas HTML. É com ele que você cria animações de clique em um botão, por exemplo.
Materiais recomendados:
- "W3Schools: learn javascript" - Novamente o W3Schools é um ótimo site para este e todos os tópicos relativos à programação de páginas web para iniciantes.
- "Cursos do DIO" - A plataforma oferece alguns cursos de javascript que são interessantes pois abrangem conteúdos do iniciante ao avançado.
- YouTube: no próprio youtube se você procurar por "javascript do iniciante ao avançado" aparecem inúmeros bons materiais.
Dicas de estudo:
- Construa uma calculadora utilizando HTML + CSS + Javascript. O modelo da calculadora deve ser à sua escolha. Uma dica é usar uma calculadora de verdade e tentar fazer sua reprodução visual.
9) JQuery
- JQuery é uma ferramenta que simplifica a utilização do javascript.
Materiais recomendados:
- "Curso JQuery básico" - Esse curso pode ser uma alternativa ao curso da DIO, caso prefira :)
Conclusão
Depois de seguir todos os passos indicados neste artigo, com certeza você já terá o conhecimento necessário para aprender quase tudo para se tornar uma pessoa desenvolvedora. Continue acompanhando minha série para que você não apenas esteja preparado, mas para que se torne um candidato buscado pelas empresas. Te desejo toda a sorte e preparo nessa nova empreitada e pode contar comigo! Pode me mandar suas dúvidas por aqui mesmo, ou em outros canais:
- Linkedin: https://www.linkedin.com/in/robersonmendes/
- Email: roberson.mendes.c@gmail.com
Observações
Todos os estudos sugeridos estão contidos em cursos gratuitos, aqui mesmo, na digital-innovation-one ou são facilmente encontrados na internet (para isso, sugiro os canais: Filipe Deschamps, Escola Front End, Código Fonte TV; e o site w3schools), não precisa se limitar às minhas recomendações.
Ao longo da semana pretendo escrever tudo que aprendi no meu processo de aprovação para 4 vagas em uma semana, quais as características que meus colegas buscam para contratar, entre outras coisas.
Se quiser que eu continue essa série, comente no meu artigo para que venham os próximos! ;)
Tem dúvidas, sugestões ou críticas ? São muito bem vindas! (até as ofensivas... hahaha) e se a sua sugestão for boa, ainda lhe darei os créditos no artigo s2
Quaisquer outras sugestões de materiais serão muito bem vindas !
Próximo artigo: Próximos Passos.
edit: eu acabei de ler um ótimo artigo da Aline Bastos que pode ser muito complementar a este e super recomendo
edit2: esqueci de postar o link do artigo dela... HAHAHAHAHAHA: "Tudo o que você precisa saber para iniciar na área de TI"