Pular para o conteúdo
Ramos da Informática - Comunidade de Desenvolvedores

Torne-se um desenvolvedor FullStack: Pacote completo de formação desenvolvedor Frontend e Backend utilizando as linguagens de programação e frameworks mais procurados no mercado de trabalho. Mais informações, aqui. Faça o download do E-BookGuia Completo Para Se Tornar um(a) Desenvolvedor(a) Full-Stack, Começando do ZERO”.

Início » Como aprender a programar, um guia definitivo

Como aprender a programar, um guia definitivo

Neste Guia:

Introdução – como aprender a programar

Quer aprender a programar, seja web, mobile, desktop, Internet das Coisas, Ciência de dados e Inteligência Artificial? Este “manifesto” tem como objetivo auxiliar o leitor da Ramos da Informática a iniciar neste processo. Um guia direto que irá dizer o que é necessário para aprender a programar e se tornar um desenvolvedor e entrar neste mercado cada vez mais quente e, que continuará sendo mais que essencial, mas uma necessidade.

Dividimos em temas importantes os quais servem não apenas como um guia mas como um ponto de reflexão para o seu desenvolvimento na carreira conforme as suas ambições, fazendo refletir e realizar suas escolhas de acordo com seus objetivos, pois o mais importante aqui neste tutorial é você que deseja aprender a programar. Você deve escolher de acordo com o que gosta, ou gostaria de trabalhar fazendo as escolhas que melhor atendem os seus objetivos pessoais e profissionais.

Qual linguagem de programação escolher?

Esta é uma pergunta controvérsia que desde que me conheço como um desenvolvedor cria um reboliço nas comunidades de desenvolvedores.

A máxima: “A melhor linguagem de programação é aquela em que você domina” é uma verdade. Mas uma verdade tão repetida que, no mundo atual de Web 3.0, Blockchain, aplicações DAO (P2P) e da chamada Indústria 4.0, apesar de ser uma realidade deixa um pouco vaga: Será mesmo que a melhor linguagem de programação é a que você domina?

Não é objetivo esta discussão, muito menos dizer qual você deve escolher. Vamos ajudar a escolher a melhor stack (conjunto de linguagens/habilidades) que deve conquistar de acordo com seus objetivos, analisando o mercado como um todo e o que você quer, para enfim aprender a programar.

Afinal, você pode ter como objetivo ser um desenvolvedor Web e Mobile, Desktop, trabalhar com dados, ser um cientista de dados, um desenvolvedor de games ou focar na Web 3.0. Todos os ramos são possíveis, mas só um será seguido.

Entenda o mercado

Vamos analisar o mercado observando quais as linguagens de programação são as mais utilizadas no mundo. Na sequência, os tipos de áreas como desenvolvedor que se procuram no mercado de trabalho.

As linguagens de programação mais utilizadas no mundo

Segundo a TIOBE, em Agosto de 2022, as principais linguagens de programação do mundo são:

  1. Python
  2. C
  3. Java
  4. C++
  5. C#
  6. Visual Basic
  7. JavaScript
  8. Assembly
  9. SQL
  10. PHP
  11. Swift
  12. Classic Visual Basic
  13. Delphi/Object Pascal
  14. Objective-C
  15. Go
  16. R
  17. MATLAB
  18. Ruby
  19. Fortran
  20. Perl

Confesso que me surpreendeu, mas vamos seguir nesta linha do TIOBE então.

Não quero opinar sobre cada uma destas linguagens, até por receio de demonstrar o meu favoritismo.

Então, vamos por objetivos profissionais, uma vez que desejo que você faça sua própria escolha através de objetivos pessoais e profissionais (objetivos pessoais ainda vou chegar lá, então vamos focar em objetivos profissionais):

Desenvolvimento Web

O desenvolvimento da Web é um primeiro caminho muito comum para as pessoas. Ele pode ser dividido em desenvolvimento de front-end, desenvolvimento de back-end, garantia de qualidade, design de interface do usuário/ux, gerenciamento de dados e operações de desenvolvimento (devops).

O desenvolvimento frontend consiste em pegar um design e implementá-lo. Para começar com este perfil, você deve começar a aprender html, css e javascript (não confundir com java). Essas 3 linguagens são a força motriz da Web.

Há um curso básico interessante sobre HTML e CSS: Domine a base da web: HTML, CSS e Javascript.

Quando estiver confortável com essas linguagens, você pode começar a explorar frameworks como React, Vue, Angular e Svelte, bem como uma linguagem chamada Typescript. Há também possibilidades de construir web front-ends com outras linguagens que usam uma mistura de HTML e sua linguagem específica. Por exemplo. Java com JSP, C# com Blazer e Python com PyScript ou Django.

O desenvolvimento de back-end consiste em criar os serviços de bastidores que direcionam o conteúdo que você vê na Web. Quando se faz o login em um site, suas credenciais são validadas por um serviço de back-end. Quando você carrega suas mensagens no Discord, um serviço de back-end decidirá quais mensagens enviar para você. As linguagens de programação nesses serviços variam muito. Você realmente não pode errar muito no que escolher aqui. PHP, Javascript, Node.js, C++, Java, Python, Rust, C#, Kotlin são todos usados entre os serviços de back-end. A maioria dessas linguagens também tem vários frameworks comuns que você provavelmente deseja aprender se for escolher alguma dessas linguagens.

Principais linguagens para desenvolvimento Web:

Frontend – html-css, javascript, typescript

Backend – javascript, typescript, node.js, java, python, rust, c-sharp, kotlin, php

Alguns cursos que recomendamos:

  1. Programador Full Stack JavaScript
  1. Danki.Code – Plataforma de cursos online.
  1. Um programa da Universidade de Harvard que é excelente e há um projeto que traz todo o seu conteúdo em Português: https://cs50xemportugues.github.io/2022/ 

Neste curso, totalmente gratuito, além de aprender lógica de programação você tem a oportunidade de aprender Python, SQL, HTML, CSS, JavaScript e Flask um micro-framework para construção de backend em Python muito poderoso.

Desenvolvimento Mobile

O mundo móvel tem dois sistemas operacionais. Android e iOS. É perfeitamente possível ser um desenvolvedor exclusivo em um determinado sistema operacional, bem como ser um desenvolvedor de ambos!

O desenvolvimento Android é feito principalmente em Kotlin, com o Java geralmente sendo usado em projetos legados. O desenvolvimento iOS é feito principalmente em Swift, com projetos legados geralmente escritos em Objective-C.

Para o desenvolvimento multiplataforma, você pode procurar algo como React Native, que é escrito com a linguagem Javascript e TypeScript, ou o Flutter que é escrito com a linguagem Dart.

Assim como o desenvolvimento Web, caso veja escolher o desenvolvimento Multi-plataforma, é importante o conhecimento de HTML e CSS para o desenvolvimento de interfaces.

Alguns cursos que recomendamos:

  1. React Native do Zero ao profissional – Uma formação completa em React em conjunto com Node.js.
  2. Crie aplicativos multiplataforma com Flutter – Com esse curso você irá aprender a desenvolver seus próprios aplicativos do ZERO, após concluir esse curso você será capaz de construir aplicativos para serem disponibilizados nas principais lojas de aplicativos Play Store e Apple Store, sem precisar de nenhum conhecimento em Android/Java ou IOS/ Swift para construir aplicativos nativos.

Às vezes, no desenvolvimento mobile, você também pode precisar de algum tipo de back-end para gerenciar recursos como logins de usuários e estatísticas competitivas de jogador contra jogador. Veja a parte ‘backend’ na seção Desenvolvimento Web acima para obter informações.

Principais linguagens para desenvolvimento Mobile:

mobiledev, kotlin, dart, javascript

Desenvolvimento de Sistemas Embarcados

O desenvolvimento de sistemas embarcados geralmente envolve software de programação em pequenos ou grandes dispositivos não computacionais, geralmente a Internet das Coisas. Eles normalmente são executados sem sistemas operacionais ou usam sistemas operacionais incorporados específicos. Os sistemas embarcados abrangem uma ampla gama de produtos. Carros, caixas eletrônicos, equipamentos médicos, dispositivos domésticos inteligentes e muito mais.

Algumas das linguagens mais usadas em Sistemas Embarcados são C, Assembly, C + + e Java. Embora você também possa ver outras linguagens sendo usadas, como Python, Rust, JavaScript e ADA.

Principais linguagens para desenvolvimento de Sistemas Embarcados:

c-lang, assembly, cpp, java, python, javascript, rust

Ciência de Dados / Aprendizado de Máquina / Inteligência Artificial

A ciência de dados se concentra em analisar e entender conjuntos de dados para determinar o que pode ser extraído de forma útil para operações de negócios. Python, R, SQL, Java, Julia, Scala, C++, JavaScript e Matlab são linguagens bastante comuns no campo da Ciência de Dados, sendo Python a mais comum de todas.

O Machine Learning e Inteligência Artificial se concentram em pegar dados extraídos e usá-los para construir modelos que podem aprender com os dados e também prever dados futuros. Python, R, C++, Java, JavaScript, Julia, Scala e Matlab são linguagens comuns, sendo o Python novamente o mais comum. Bibliotecas como TensorFlow e PyTorch também estão entre as ferramentas mais usadas.

Principais linguagens para desenvolvimento em Ciência de Dados / Aprendizado de Máquina / Inteligência Artificial:

python, sql-and-databases, java, cpp, javascript, ai-and-ml

Cursos que recomendamos:

  1. SQL para Data Science e Analytics.
  2. Dataquest, escola referência mundial em ciência de dados (em inglês).

Desenvolvimento de Games

Quando se trata de desenvolvimento de jogos, você tem muitas escolhas a fazer, a primeira começando se você deseja ou não criar seu próprio mecanismo (engine) de jogo ou usar um existente.

Unreal Engine, Unity, Godot Engine e Game Maker são as ferramentas mais comuns usadas.

  • O Unreal Engine usa um sistema de programação visual proprietário ‘Blueprint’ junto com o C++.
  • O Unity usa C# assim como Bolt, um sistema de programação visual muito parecido com o Unreal Blueprints.
  • O Godot Engine usa um GDScript proprietário, mas também tem suporte para C++ e C#.
  • O Game Maker usa sua própria linguagem do Game Maker.
  • O Construct permite desenvolver jogos visuais em 2D e 3D, multiplataforma utilizando da linguagem de programação Javascript.

Se você quiser seguir o caminho de criar seu próprio mecanismo de jogo, suas opções são quase ilimitadas. A maioria das linguagens pode ser usada para fazer jogos, incluindo jogos de terminal, 2D e 3D. C++, Python, Java, C#, Go, Rust, JavaScript seriam todos adequados dependendo exatamente do que você deseja fazer.

Principais linguagens para desenvolvimento de Games:

gamedev, cpp, java, c-sharp, python, go, rust, javascript

Recomendamos para desenvolvimento de games:

Curso Game Developer

Você aprenderá os principais engines de desenvolvimento de games como  o Unity, Game Maker, Unreal, Godot e outras Engines. Assim como de design de games utilizando Flat Design, Inkscape, Piskel, Photoshop, Paint.NE.

Mais informações, aqui.

O que você quer?

Uma vez exploradas as várias opções de profissões e áreas em que pode atuar, é hora de escolher o que você quer.

Para uma melhor análise veja as linguagens de programação que estão presentes nas principais áreas em que deseja atuar; escolha uma e comece por ela para aprender a programar. Novamente, não cabe aqui a nossa indicação.

O que aconselho é:

  1. Realizar um quadro com o seu objetivo, pode ser entre 1 ou mais objetivos; colocar em uma tabela de Excel ou Google Planilhas o objetivo e as possíveis as linguagens de programação e identificar a que atende seus objetivos melhores, pode ser um ponto de partida para esta escolha.

Algo do tipo:

Como escolher a melhor linguagem de programação?

Assim, você tem uma visão maior de qual linguagem pode ser utilizada e aproveitada em diversas áreas e fazer uma escolha mais assertiva.

  1. Realizar uma pesquisa de mercado, em especial de salários, para ajudar nesta sua decisão.

Ainda na dúvida sobre sua carreira?

Se ainda na dúvida sobre carreira, recomendamos o curso da Fundação Estudar:

Decisão de Carreira na Prática Online – O curso “Decisão de Carreira na Prática Online” da Fundação Estudar irá te ajudar a ter maior clareza sobre suas aspirações e possíveis trilhas de carreira.

Isso se dará através de momentos de reflexão sobre seus interesses pessoais e profissionais, mapeamento de quais habilidades são necessárias para suas aspirações profissionais; e entendimento de possíveis trilhas de carreira que você pode desenvolver no curto e médio prazo.

Além disso, o Decisão de Carreira Na Prática propõe-se a prover, para você, conhecimento ferramental para a sua tomada de decisão de carreira.

Até a data de publicação deste artigo o curso é totalmente gratuito e você pode se inscrever aqui.

Iniciando a aprender a programar

Agora que escolheu a linguagem de programação e em qual área deseja trabalhar agora é hora de aprender a programar.

Se você é um iniciante, ou mesmo já possui algum conhecimento, é importante aprender lógica de programação ao mesmo tempo em que aprende a sua linguagem de programação escolhida.

A seguir, um roteiro para se tornar um excelente desenvolvedor e o que irá aprender no processo de se tornar um Dev.

Lógica de programação

A lógica de programação é fundamental para qualquer desenvolvedor de software, seja qual área deseja trabalhar.

Aqui serei direto e já recomendo um programa da Universidade de Harvard que é excelente e há um projeto que traz todo o seu conteúdo em Português: https://cs50xemportugues.github.io/2022/

Neste curso, totalmente gratuito, além de aprender lógica de programação você tem a oportunidade de aprender Python, SQL, HTML, CSS, JavaScript e Flask um micro-framework para construção de backend em Python muito poderoso.

Mais uma dica: enquanto realiza este curso da universidade de Harvard, também faça uso do aplicativo Grasshopper, desenvolvido pelo Google almeja que os usuários pratiquem com games alguns conceitos dessa linguagem e possam aprender nas horas livres de uma maneira divertida. Um complemento fundamental e bastante divertido.

Mas, espere aí! Python não foi minha linguagem de programação escolhida!

Tudo bem, o mercado valoriza quem conhece mais de uma linguagem de programação. Demonstra que você tem facilidade em aprender e curiosidade. Além do mais, estou aqui falando de lógica de programação. Neste curso de Harvard indicado você aprenderá lógica de programação (tema importante), SQL para bancos de dados relacionais que é praticamente universal, HTML, CSS e um pouco de Javascript.

E o que for aplicado neste curso, você irá tentar aplicar na linguagem de programação que você escolheu. Perceberá o qual são muito semelhantes em suas estruturas lógicas.

Aprenda comandos e fluxos Git

Quando for entrar no mercado de trabalho é muito importante que já tenha conhecimentos sobre comandos e fluxos de Git, uma vez que você irá trabalhar em equipes.

Outro fator importante em conhecer o GitHub é a criação de seu portfólio de desenvolvedor (sim, durante seu processo de aprendizado você irá criar alguns pequenos projetos que deverão ser compartilhados no Github como forma de demonstrar ao mercado parte de seus conhecimentos).

GitHub é uma espécie de “rede social para programadores”. O site tem uma fama especial nesse nicho, sendo também um serviço de publicação e compartilhamento de códigos de programação. Lançada em 2008, a plataforma é usada mundialmente e é, desde 2018, de propriedade da Microsoft.

O Git é um projeto aberto, iniciado pelo criador do Linux, Linus Torvalds, disponível para Windows, Mac, e Linux. O ponto focal do Git é ser um sistema de controle e organização que armazena e revisa projetos — no caso do GitHub e GitLab, voltada a códigos de programação.

“Git” é o sistema de controle de versões mais usado hoje em dia. Um fluxo de trabalho do Git é uma receita ou recomendações sobre como usar o Git para realizar o trabalho de maneira consistente e produtiva. Os fluxos de trabalho do Git incentiva os desenvolvedores e as equipes de DevOps a aproveitar o Git com eficácia e estabilidade. O Git oferece muita flexibilidade em como os usuários gerenciam mudanças. Dado o foco do Git em flexibilidade, não há nenhum processo padronizado de como interagir com o Git. Ao trabalhar com uma equipe em um projeto gerenciado pelo Git, é importante ter certeza de que a equipe toda esteja de acordo sobre como o fluxo de mudanças vai ser aplicado. Para garantir que a equipe esteja alinhada, deve ser desenvolvido ou selecionado um acordo sobre o fluxo de trabalho do Git. Há vários fluxos de trabalho do Git divulgados que podem ser uma boa opção para a equipe. Aqui, vamos discutir algumas dessas opções de fluxo de trabalho do Git.” – Fonte: https://www.atlassian.com/br/git/tutorials/comparing-workflows

Não no início de seu estudo, mas a partir do momento em que começar a desenvolver pequenos projetos ou necessitar da ajuda de alguém, é preciso iniciar os estudos desta ferramenta e iniciar seu portfólio de desenvolvedor.

Banco de dados é essencial (SQL)

SQL significa “Structured Query Language”, ou “Linguagem de Consulta Estruturada”, em português. Resumidamente, é uma linguagem de programação para lidar com banco de dados relacional (baseado em tabelas). Foi criado para que vários desenvolvedores pudessem acessar e modificar dados de uma empresa simultaneamente, de maneira descomplicada e unificada.

E se quiser conferir cursos sobre o tema, confira os links abaixo:

  1. Modelagem de Banco de dados – Nesse curso criaremos um projeto completo de Modelagem de Banco de Dados de uma loja de varejo fictícia. Modelamos o Banco de Dados Relacional desde a sua fase inicial que constituem a Modelagem Conceitual passando pelas fases de Modelagem Lógica e Física com três ferramentas diferentes, StarUml, MySql Workbench e Power Designer.
  2. SQL para Data Science e Analytics – Do meu amigo Thiago Bacciotti, muito atencioso com os alunos.

A programação SQL pode ser usada para analisar ou executar tarefas em tabelas, principalmente através dos seguintes comandos: inserir (‘insert’), pesquisar (‘search’), atualizar (‘update’) e excluir (‘delete’). Porém, isso não significa que o SQL não possa fazer coisas mais avançadas, como escrever queries (comandos de consulta) com múltiplas informações.

(Fonte: SQL Server Tutorial/Reprodução)

Por que aprender SQL?

Segundo a Dataquest, escola referência em ciência de dados, existem três motivos primordiais pelo qual profissionais que usem dados precisam se preocupar em aprender a linguagem SQL:

  • 1. SQL é usado em qualquer lugar;
  • 2. Está em alta demanda, já que muitas empresas o utilizam;
  • 3. Embora já existam outras alternativas, o SQL nunca vai deixar de ser relevante.

É uma linguagem fundamental para qualquer profissional de análise, ciência ou engenharia de dados, sendo ainda mais usada do que Python e R. Contudo, devido a sua simplicidade, não é necessário ser um programador para aprendê-la, e em cada vez mais áreas têm sido exigido o conhecimento em SQL como complementar em tarefas cotidianas.

Áreas que requerem ou podem requerer SQL:

  • Programação
  • Engenharia de software
  • Administrador de banco de dados
  • Analista de Qualidade
  • Business Intelligence
  • Desenvolvimento
  • Marketing e Conteúdo e Redes Sociais
  • Consultoria
  • Gestão de Projetos
  • Tecnologia da Informação
  • Engenharia de Redes
  • Suporte Técnico
  • Big Data
  • Jornalismo de Dados

E, basicamente, qualquer área que lide com tecnologia, e tenha seu próprio banco de dados, poderá exigir conhecimento em SQL como complemento profissional.

Código limpo e qualidade de software

Um ponto importante, e você deve estar atento a estas questões durante seu aprendizado, é código limpo e de qualidade.

De uma forma muito simplista é lembrar que você não está programando somente para a máquina ou para você. Você estará desenvolvendo para outros desenvolvedores e para o você no futuro a fim de que, no futuro, tanto você quanto outros desenvolvedores possam ler e entender seus códigos com facilidade.

Não gosto de recomendar livros sobre tecnologia por ficarem muito obsoletos facilmente. Mas sempre indico e nunca se torna obsoleto é o livro Código Limpo”. Habilidades práticas do Agile software”.

Uma leitura obrigatória a todos os desenvolvedores, sejam iniciantes ou avançados.

Procurando ajuda e a comunidade Dev

Quem é autodidata aprender a programar muitas vezes precisa de ajuda. Há diversas formas como pesquisas no Google, YouTube, fóruns de discussão, listas e até o Discord.

Porém, para iniciantes, é preciso um cuidado nestas comunidades, por isso algumas regras para quem estiver iniciando ao conversar com a comunidade:

  1. Tente resolver sozinho seu problema, antes de entrar em contato com a comunidade.

Faça pesquisas no Google; faça a depuração de seu código. Só depois destas tentativas procure uma comunidade para tirar suas dúvidas.

  1. Se tiver dúvidas em relação ao aprendizado, ter um aprofundamento maior, procure aulas particulares para dúvidas específicas.

Apesar da comunidade de desenvolvedores ser excelente. Se precisa de uma explicação mais profunda e detalhada de um problema ou desafio a ser resolvido, procure por aulas particulares.

Assim como no aprendizado de línguas, você também precisará de um tutor para tirar suas dúvidas específicas, ajudar a resolver e compreender problemas ou desafios de código com maior profundidade em conhecimento.

Onde encontrar professores particulares:

  • Profes – O profes te ajuda a encontrar e contratar professores particulares em qualquer parte do Brasil
  • GetNinjas – um aplicativo que conecta clientes e profissionais, com mais de 500 tipos de serviços disponíveis.

No mais, valem as seguintes regras que são comuns na comunidade:

  • Envolva-se com consideração e respeito.
  • Seja receptivo e mente aberta – Novos usuários juntam-se à nossa comunidade diariamente. Alguns são desenvolvedores bem estabelecidos, enquanto outros estão apenas começando. Esteja aberto a outras ideias e níveis de experiência. Abra espaço para opiniões diferentes das suas e dê as boas-vindas aos novos colaboradores e aqueles que estão apenas começando.
  • Seja respeitoso – Trabalhar em um ambiente colaborativo significa que pode haver desacordos. Mas lembre-se de criticar ideias, não pessoas. Compartilhe críticas ponderadas e construtivas e seja cortês com aqueles com quem você interage. Se você não conseguir interagir com respeito, considere dar um passo atrás ou usar alguns dos moderadores da comunidade
  • Ser empático – Tente se colocar na pele dos demais e compreender seus sentimentos antes de abordá-los. Faça o seu melhor para ajudar a fazer da sua comunidade Dev onde as pessoas se sintam seguras para fazer contribuições, participar de discussões e compartilhar ideias diferentes.
  • Contribua de forma positiva e construtiva.
  • Melhore a discussão. Ajude a tornar a sua comunidade um ótimo lugar para discussão, sempre trabalhando para melhorar o debate de alguma forma, por menor que seja. Se você não tem certeza que seu comentário vai acrescentar algo à conversa, pense no que você quer dizer e tente novamente mais tarde.

    Respeite os temas e as pessoas que os discutem, mesmo que discorde de algumas coisas que estão sendo ditas.

  • Compartilhe conscientemente. Ao pedir que outros lhe dêem feedback ou colaborem em um projeto, compartilhe recursos valiosos e relevantes apenas para fornecer contexto.

Além disso, não compartilhe informações confidenciais. Isso inclui o seu próprio endereço de e-mail. Ao compartilhar o link para o repositório do seu projeto – com algumas informações sobre o que é o seu projeto e que tipo de ajuda ou feedback você está procurando – você pode convidar outros usuários para colaborar com você por meio de problemas ou pull requests sem ter que compartilhar suas informações privadas.

Mantenha tudo arrumado. Faça um esforço para colocar as coisas no lugar certo, para que possamos gastar mais tempo discutindo e menos tempo limpando. Então:

  • Não inicie uma discussão em uma categoria diferente.
  • Se alguém já iniciou uma discussão sobre o mesmo tema em um tópico, poste suas dúvidas neste tópico, não crie um novo com o mesmo tema.
  • Não publique respostas sem conteúdo.
  • Não faça “up” em posts, a menos que você tenha informações novas e relevantes para compartilhar.

Inglês, um mundo sem limites

Quem não gosta de dinheiro, grana, money, tutu?

Fatos para incentivar:

  1. Diversos tutoriais e tecnologias emergentes possuem seus conteúdos em inglês;
  2. É melhor ganhar em dólar e gastar em reais.

Hoje o Brasil é referência mundial em profissionais de TI e conversar em inglês é mais importante que ler e escrever em inglês. Depois da pandemia a procura de empresas americanas e europeias por desenvolvedores brasileiros aumentaram exponencialmente. O valor hora de trabalho em dólar é superior ao valor em reais.

Coloque em seu cronograma de estudos Dev, o inglês. Pelo menos 2 horas por semana com professor particular online para praticar, principalmente, a fala.

Use todos os dias, no mínimo 15 minutos, o aplicativo Duolingo.

Monte seu portfólio no GitHub tanto em português quanto em inglês. Você no futuro irá agradecer.

Um trecho do E-Zine que postei recente, caso seu dinheiro esteja pouco:

“Agora, para encerrar este nosso bate-papo de indicações: eu costumo praticar meu Speaking em inglês com o grupo de Meetup, totalmente grátis as reuniões, Learn English in New York Manhattan, além do curso de inglês da Gringa, o qual é excelente e recomendo.” – Publicado no E-Zine Ramos da Informática. (Leia esta edição completa, aqui).

Participe de desafios de código

Desafios de código são excelentes formas de testar seu conhecimento e, quem sabe, até fazer um dinheiro extra.

Na seção de “Procurando ajuda e a comunidade Dev”, mencionei até aulas particulares para ajudar você em suas dúvidas; até mesmo resolver e compreender desafios de programação. Acredite, tentar resolver desafios é excelente para o aprendizado e, pegar um desafio e ter aulas particulares sobre o mesmo, o tornarão um excelente profissional.

Há o livro “Competitive Programmer ‘s Handbook”, em Inglês, que é um excelente guia para participar e se sair bem nessas competições. Há também o site Usaco, o qual é um guia com diversos desafios, alguns resolvidos e explicados, onde você pode procurar e participar de desafios e aprender mais.

Sites de competição de código:

  1. LetCode – Segundo a própria empresa: “Na LeetCode, nossa missão é ajudá-lo a melhorar a si mesmo e conseguir o emprego dos seus sonhos. Temos um repositório considerável de recursos de entrevista para muitas empresas. Nos últimos anos, nossos usuários conseguiram empregos nas principais empresas do mundo.”.
  2. CodeForces – Divulga e mantém diversos desafios. Alguns até pagos.
  3. CodeChef – O CodeChef promove aprendizado constante e competições de programação amigáveis para seus usuários, juntamente com o apoio de sua grande comunidade de curadores de problemas.
  4. HackerRank – Talvez o maior site de desafios de código e problemas de código. Também é muito utilizado por empresas do mundo todo para recrutamento.

14 Hábitos de Desenvolvedores Altamente Produtivos

Este é sem dúvidas um livro que recomendo a sua leitura, em especial iniciantes e intermediários em desenvolvimento. Disponível somente pela Amazon, segue sua descrição:

Você pode aprender os frameworks mais populares, usar as melhores linguagens de programação e trabalhar nas maiores empresas de tecnologia, mas se você cultivar maus hábitos, vai ser difícil se tornar um desenvolvedor de ponta.

Esse livro não oferece um caminho definitivo ou fórmula predefinida de sucesso. Esse livro é o resultado de uma busca. A busca para descobrir quais hábitos podem ser cultivados para se tornar um melhor engenheiro(a) de software.

“Eu gostaria de ter acesso a esse livro enquanto estava iniciando. As informações apresentadas não são apenas lógicas, não apenas pessoais, mas muito bem apoiadas por opiniões de especialistas ao longo do livro. Uma leitura obrigatória, tanto para iniciantes quanto para especialistas.” – Zachary Sohovich, Software Engineer na Nike

Vale a pena sua leitura para complementar este manifesto.

Conclusão

A vida é feita de consistência. Estudar todos os dias é fundamental. Nos dias em que estiver desanimado, estude mesmo que por um tempo menor. É mais ou menos como ir à academia: no primeiro mês não se vê resultados visíveis, nem no segundo mês, apesar de você perceber algum progresso. Mas depois de 6 meses até as pessoas ao seu redor perceberão a diferença.

O mesmo vale para tudo na vida. Sua liberdade financeira, seus relacionamentos, tudo na vida é feito por consistência.

Portanto inicie seus estudos diariamente, no mínimo 1 hora por dia. Quando bater aquele desânimo, continue mesmo por um tempo menor. Quando você perceber já estará desenvolvendo aplicações e com um excelente emprego ou projeto pessoal.

Espero que este “manifesto” tenha ajudado a iniciar sua carreira de desenvolvedor. E qualquer dúvida, poste nos comentários a seguir.

Bons estudos.

Principais links do manifesto

  1. Curso básico interessante sobre HTML e CSS: Domine a base da web: HTML, CSS e Javascript.
  2. Um programa da Universidade de Harvard que é excelente e há um projeto que traz todo o seu conteúdo em Português: https://cs50xemportugues.github.io/2022/  Neste curso, totalmente gratuito, além de aprender lógica de programação (SEM DÚVIDAS O PRINCIPAL LINK).
  1. Mais uma dica: enquanto realiza este curso da universidade de Harvard, também faça uso do aplicativo Grasshopper, desenvolvido pelo Google almeja que os usuários pratiquem com games alguns conceitos dessa linguagem e possam aprender nas horas livres de uma maneira divertida. Um complemento fundamental e bastante divertido.
  1. Dataquest, escola referência em ciência de dados.
  1. […] o livro Código Limpo. Habilidades práticas do Agile software”.
  1. Use todos os dias, no mínimo 15 minutos, o aplicativo Duolingo.
  1. […] o livro “Competitive Programmer ‘s Handbook”, em Inglês, que é um excelente guia para participar e se sair bem nessas competições.
  1. 14 Hábitos de Desenvolvedores Altamente Produtivos […] que recomendo a sua leitura, em especial iniciantes e intermediários em desenvolvimento. Disponível somente pela Amazon […]
  1. Decisão de Carreira na Prática Online – O curso “Decisão de Carreira na Prática Online” da Fundação Estudar irá te ajudar a ter maior clareza sobre suas aspirações e possíveis trilhas de carreira.

Lista de cursos pagos que recomendamos

  1. Programador Full Stack JavaScript
  1. Danki.Code – Plataforma de cursos online.
  1. React Native do Zero ao profissional – Uma formação completa em React em conjunto com Node.js.
  2. Crie aplicativos multiplataforma com Flutter – Com esse curso você irá aprender a desenvolver seus próprios aplicativos do ZERO, após concluir esse curso você será capaz de construir aplicativos para serem disponibilizados nas principais lojas de aplicativos Play Store e Apple Store, sem precisar de nenhum conhecimento em Android/Java ou IOS/ Swift para construir aplicativos nativos.
  1. Dataquest, escola referência mundial em ciência de dados (em inglês).
  1. Curso Game Developer – Você aprenderá os principais engines de desenvolvimento de games como  o Unity, Game Maker, Unreal, Godot e outras Engines. Assim como de design de games utilizando Flat Design, Inkscape, Piskel, Photoshop, Paint.NE. Mais informações, aqui.
  1. Modelagem de Banco de dados – Nesse curso criaremos um projeto completo de Modelagem de Banco de Dados de uma loja de varejo fictícia. Modelamos o Banco de Dados Relacional desde a sua fase inicial que constituem a Modelagem Conceitual passando pelas fases de Modelagem Lógica e Física com três ferramentas diferentes, StarUml, MySql Workbench e Power Designer.
  1. SQL para Data Science e Analytics – Do meu amigo Thiago Bacciotti, muito atencioso com os alunos.

Leituras e vídeos complementares

Vídeo: 3 Técnicas Que Eu Uso Para Aprender a Programar Qualquer Coisa (mesmo sem ter o dom da programação)

Nas palavras do próprio Felipe: “Aprender a programar pode ser frustrante, principalmente se você estiver diante de um tópico avançado, o que é ótimo, porque este vídeo é sobre quais técnicas eu uso e sobre como aprender a programar sozinho, depois de meses de observação.

E essas técnicas servem não somente para tópicos avançados, mas também para quando você estiver tratando de tópicos na programação para iniciantes ou quer aprender a programar do zero.

Então se você quer entrar no mundo da Ciência da Computação, e pensa em até fazer curso de programação mas está na dúvida se você vai achar difícil, ou se questionando se você não tem o “dom da programação”, este vídeo é para você. E o importante é que tudo o que eu vou falar vai servir perfeitamente se você é um programador de software escrito em Python, JavaScript, Node.js, Java, C#, PHP, HTML ou CSS, realmente são princípios que servem para qualquer linguagem de programação.”

E PRA TERMINAR…

Gostou deste guia?
Compartilhe \ö/