quarta-feira, novembro 20, 2024
spot_img

Última atualização em 20/11/2024.

Guia completo sobre: Como aprender a programar.

Espero que este “guia” ou “manifesto”, como prefiro chamar, seja uma forma de ajudar não apenas a aprender a programar, mas escolher a sua melhor linguagem de programação ou área na carreira de TI que tenha a ver com o desenvolvimento de softwares: web, mobile, IoT, Blockchain e até Inteligência Artificial ou de Ciencia de dados.

Durante este manifesto faço também indicações de cursos online gratuitos que são excelentes e dicas para você se desenvolver, tanto em se aprendizado quanto em sua carreira.

Introdução – como aprender a programar

Quer aprender a programar, seja para web, mobile, desktop, Internet das Coisas, Ciência de Dados ou Inteligência Artificial? Este “manifesto” tem como objetivo auxiliar os leitores da Ramos da Informática a iniciar nesse processo. Um guia direto que vai te mostrar o que é necessário para aprender a programar, se tornar um desenvolvedor e entrar nesse mercado, que está cada vez mais aquecido e continuará sendo não apenas essencial, mas uma necessidade.

Dividimos o conteúdo em temas importantes, que servem não apenas como um guia, mas também como pontos de reflexão para o seu desenvolvimento na carreira, conforme as suas ambições. O mais importante aqui é você, que deseja aprender a programar. Você deve fazer suas escolhas de acordo com o que gosta ou gostaria de trabalhar, buscando sempre os objetivos que atendam melhor às suas metas pessoais e profissionais.

Qual linguagem de programação escolher?

Esta é uma pergunta controversa que, desde que me conheço como desenvolvedor, cria discussões nas comunidades. A máxima: “A melhor linguagem de programação é aquela que você domina” é verdadeira. No entanto, em um mundo atual de Web 3.0, Blockchain, aplicações DAO (P2P) e Indústria 4.0, essa afirmação pode soar vaga: será que a melhor linguagem é realmente a que você domina?

Não é nosso objetivo aqui discutir isso ou definir qual linguagem você deve escolher. Vamos te ajudar a selecionar a melhor stack (conjunto de linguagens e habilidades) com base nos seus objetivos e na análise do mercado.

Você pode ter o objetivo de se tornar um desenvolvedor web, mobile, desktop, cientista de dados, desenvolvedor de games, ou focar na Web 3.0. Todos os ramos são possíveis, mas apenas um será seguido.

Entenda o mercado

Vamos analisar o mercado observando quais linguagens de programação são as mais utilizadas no mundo. Na sequência, falaremos sobre as áreas mais procuradas no mercado de trabalho.

As linguagens de programação mais utilizadas no mundo em 2024

1. Python

Python continua a ser uma das linguagens mais populares em 2024, especialmente devido à sua simplicidade e versatilidade. É amplamente utilizada em diversas áreas, como desenvolvimento web, análise de dados, inteligência artificial e automação. Sua vasta biblioteca e comunidade ativa fazem de Python uma escolha preferida tanto para iniciantes quanto para profissionais experientes.

2. JavaScript

JavaScript permanece crucial para o desenvolvimento web. Com frameworks populares como React, Angular e Node.js, JavaScript permite a criação de aplicações web dinâmicas e interativas. Sua capacidade de ser utilizada tanto no front-end quanto no back-end torna JavaScript uma linguagem indispensável para desenvolvedores web.

3. Java

Java, conhecida por sua portabilidade e robustez, ainda é uma escolha popular para o desenvolvimento de aplicações empresariais, Android e sistemas de grande escala. A linguagem continua a ser valorizada pela sua estabilidade e pela vasta gama de bibliotecas disponíveis.

4. SQL

SQL é essencial para a manipulação e consulta de bases de dados relacionais. Com o aumento do volume de dados, a habilidade de gerenciar e acessar dados de forma eficiente torna o conhecimento de SQL imprescindível para desenvolvedores, analistas de dados e administradores de banco de dados.

5. C++

C++ é amplamente utilizada em aplicações que requerem alta performance, como jogos, sistemas operacionais e aplicações financeiras. Sua capacidade de manipular diretamente o hardware e a memória proporciona uma vantagem significativa em cenários onde a performance é crítica.

6. C#

C# e a plataforma .NET continuam a ser uma combinação poderosa para o desenvolvimento de aplicações desktop, web e mobile, especialmente no ecossistema Windows. A linguagem é apreciada por sua sintaxe clara e pelas ferramentas robustas de desenvolvimento oferecidas pela Microsoft.

7. Go

Go, ou Golang, é uma linguagem moderna desenvolvida pelo Google. É conhecida por sua simplicidade, eficiência e capacidade de lidar com concorrência. Go é particularmente popular em aplicações de servidor e serviços em nuvem devido à sua performance e facilidade de manutenção.

8. TypeScript

TypeScript, um superconjunto de JavaScript, adiciona tipagem estática à linguagem, o que ajuda a evitar erros comuns durante o desenvolvimento. Com a popularidade crescente de frameworks como Angular e a adoção em projetos de grande escala, TypeScript está se tornando uma escolha frequente entre desenvolvedores.

9. Swift

Swift é a linguagem preferida para o desenvolvimento de aplicações iOS e macOS. Desenvolvida pela Apple, Swift é conhecida por sua segurança, performance e sintaxe amigável. Com a crescente demanda por aplicativos mobile, Swift continua a ganhar popularidade.

10. Ruby

Ruby, especialmente através do framework Ruby on Rails, continua a ser uma linguagem popular para o desenvolvimento web. Sua sintaxe simples e a filosofia de convenção sobre configuração tornam o desenvolvimento rápido e eficiente, o que é atraente para startups e projetos ágeis.

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

Não quero opinar sobre cada uma dessas linguagens para evitar favoritismos. Em vez disso, vamos nos focar em objetivos profissionais, para que você possa fazer suas escolhas de forma consciente, de acordo com suas metas pessoais e profissionais.

VAI GOSTAR:Como aprender a programar sem gastar dinheiro: Descubra os melhores cursos gratuitos de programação, desde lógica até frameworks avançados, com certificados e recursos em português. Ideal para iniciantes e intermediários que desejam aprender a programar ou se especializar em tecnologia!

Desenvolvimento Web

O desenvolvimento web é um caminho muito comum para quem está começando. Ele pode ser dividido em desenvolvimento front-end, desenvolvimento back-end, garantia de qualidade, design de interface do usuário/UX, gerenciamento de dados e operações de desenvolvimento (DevOps).

O desenvolvimento front-end consiste em pegar um design e implementá-lo. Para iniciar, você deve aprender HTML, CSS e JavaScript (não confundir com Java). Essas três linguagens são a base da web.

LIVRO RECOMENDADO: Fundamentos de HTML5 e CSS3

Quando estiver confortável com HTML, CSS e Javascript para a construção de sites, você pode começar a explorar frameworks como React, Vue, Angular e Svelte, além de uma linguagem chamada TypeScript. Há também a possibilidade de construir web front-ends com outras linguagens que utilizam uma mistura de HTML e uma linguagem específica. Por exemplo: Java com JSP, C# com Blazor e Python com PyScript ou Django.

Conclusão: A base para o desenvolvimento Web para você que deseja iniciar é o HTML, CSS e Javascript. Depois pode escolher outras linguagens ou frameworks. E porque é necessário? Todos os frameworks web e, inclusive mobile, utilizam de pelo menos HTML e CSS como base e são fundamentais no seu aprendizado.

O desenvolvimento back-end envolve criar os serviços que ficam nos bastidores e direcionam o conteúdo que você vê na web. Quando você faz login em um site, suas credenciais são validadas por um serviço de back-end. Quando você carrega mensagens no Discord, um serviço de back-end decide quais mensagens enviar para você. As linguagens de programação usadas nesses serviços variam bastante.

Você dificilmente errará na escolha de uma delas. PHP, JavaScript, Node.js, C++, Java, Python, Rust, C#, Kotlin, entre outras, são comumente usadas para serviços de back-end. A maioria dessas linguagens tem frameworks populares que você provavelmente precisará aprender ao escolher uma.

LIVRO RECOMENDADO: Programação web com Node e Express: Beneficiando-se da stack JavaScript

Principais linguagens para desenvolvimento Web:

  • Front-end: HTML, CSS, JavaScript, TypeScript.
  • Back-end: JavaScript, TypeScript, Node.js, Java, Python, Rust, C#, Kotlin, PHP.

CURSO GRÁTIS RECOMENDADO:

  • Um curso gratuito oferecido pela Universidade de Harvard, com um projeto disponível em português: https://cs50xemportugues.github.io/2022/. Além de aprender lógica de programação, você aprenderá Python, SQL, HTML, CSS, JavaScript e Flask, um poderoso micro-framework para construção de back-end em Python.

Desenvolvimento Mobile

O mundo mobile tem dois principais sistemas operacionais: Android e iOS. É perfeitamente possível se especializar em apenas um deles ou trabalhar com ambos!

O desenvolvimento Android é feito principalmente com Kotlin, enquanto o Java é mais comum em projetos legados. Já o desenvolvimento iOS usa principalmente Swift, com projetos legados escritos em Objective-C.

Para desenvolvimento multiplataforma (Android e iOS), você pode considerar o React Native, escrito em JavaScript e TypeScript, ou o Flutter, que usa a linguagem Dart. Assim como no desenvolvimento web, ao escolher o desenvolvimento multiplataforma, é importante ter conhecimento em HTML e CSS para o desenvolvimento de interfaces.

CURSO GRÁTIS RECOMENDADO

A Crowd Academy, que tem a trilha de formação: “Desenvolvimento Web com a Devaria” que tem em seu conteúd programático:

1. Lógica de Programação: um dos fundamentos mais importantes da programação. Sem lógica, o programador é somente um copiador de código.
2. Versionamento de Código: tudo sobre Versionamento de Código, Git e GitHub.
3. Desenvolvimento Web Básico: vamos te ensinar os conceitos básicos de HTML e CSS.
4. Node.js – Backend: queridinha do mercado, o Node.js é a tecnologia essencial que qualquer programador necessita saber.
5. React.js: já ouviu falar em hype? O Next.js é o do momento, vem aprender essa tech conosco.
6. React Native: framework mobile que as empresas mais procuram pelo seu poder híbrido.

No final você podera atuar como um desenvolvedor full stack (front-end e banckend) ou o que melhor se sentir a vontade, mas aprendendo o Backend será um profissional muito melhor (se preferir o frontend).

Link da trilha, aqui.

A Sansung Ocean também possuem excelentes trilhas de aprendizado: Com mais de 10 trilhas de aprendizagem, com foco na formação tecnológica e inovação para quem quer fazer a diferença no mercado de trabalho! 

A maioria é para Manaus, mas há também as opções online. São diversas.

Link das trilhas da Sangung Ocean.

Às vezes, no desenvolvimento mobile, você também pode precisar de um back-end para gerenciar funcionalidades como logins e estatísticas. Para mais detalhes sobre back-end, veja a seção de Desenvolvimento Web.

Principais linguagens para desenvolvimento Mobile:

  • Desenvolvimento mobile: Kotlin, Dart, JavaScript, Typescript.

Desenvolvimento de Sistemas Embarcados

O desenvolvimento de sistemas embarcados envolve programar softwares para dispositivos que não são computadores tradicionais, como a Internet das Coisas (IoT). Esses dispositivos podem funcionar sem sistemas operacionais ou com sistemas embarcados específicos. Sistemas embarcados podem ser encontrados em diversos produtos, como carros, caixas eletrônicos, equipamentos médicos e dispositivos domésticos inteligentes.

Algumas das linguagens mais utilizadas para sistemas embarcados são C, Assembly, C++ e Java, embora também seja possível ver linguagens como Python, Rust e JavaScript sendo usadas.

CURSOS GRATUITOS RECOMENDADOS:

O ITA possui diversos cursos gratuitos sobre desenvolvimento de softwares, com o foco em Java e metodologia ágeis: https://www.coursera.org/partners/ita

Principais linguagens para desenvolvimento de Sistemas Embarcados:

  • C, Assembly, C++, Java, Python, JavaScript, Rust.

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

A ciência de dados foca na análise de grandes volumes de dados para gerar insights e tomar decisões. As linguagens mais comuns nessa área são Python, R, SQL, Java, Julia, Scala, C++ e MATLAB, com o Python sendo o mais popular.

Machine Learning e Inteligência Artificial utilizam esses dados para construir modelos que aprendem e fazem previsões. As linguagens mais comuns são as mesmas da ciência de dados, com destaque novamente para o Python. Bibliotecas como TensorFlow e PyTorch também são amplamente usadas.

CURSOS GRÁTIS RECOMENDADOS

A Fundação Bradesco oferece uma excelente trilha sobre programação Python que é linguagem fundamental para quem deseja trabalhar com IA. Conheça a trilha de Oython oferecida pela Fundação Bradesco, aqui.

Principais linguagens para Ciência de Dados / Machine Learning / Inteligência Artificial:

  • Python, SQL, Java, C++, JavaScript, Julia, Scala, MATLAB.

Desenvolvimento de Games

No desenvolvimento de jogos, você terá várias escolhas, começando pela decisão de criar seu próprio motor (engine) de jogo ou usar um já existente. As engines mais comuns são:

  • Unreal Engine: Usa o sistema de programação visual Blueprint junto com C++.
  • Unity: Usa C# e Bolt, um sistema de programação visual semelhante ao Blueprint do Unreal.
  • Godot Engine: Usa GDScript, além de oferecer suporte para C++ e C#.
  • Game Maker: Usa uma linguagem própria.
  • Construct: Permite desenvolver jogos multiplataforma em 2D e 3D, usando JavaScript.

Caso você queira criar seu próprio motor de jogo, as opções de linguagem são quase ilimitadas. A maioria das linguagens pode ser usada para criar jogos, desde jogos de terminal até 2D e 3D. C++, Python, Java, C#, Go, Rust e JavaScript são todas boas opções, dependendo do tipo de jogo que você deseja desenvolver.

Principais linguagens para desenvolvimento de Games:

  • C++, Java, C#, 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?

Depois de explorar as várias opções de áreas de atuação, é hora de decidir o que você quer.

Para uma melhor análise, veja quais linguagens de programação estão presentes nas áreas em que você deseja atuar. Escolha uma delas e comece a aprender.

Sugestão: faça uma planilha com seus objetivos e as linguagens de programação correspondentes, para identificar quais melhor atendem suas metas. Isso pode ser um ponto de partida para fazer uma escolha mais assertiva.

  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

Uma vez que definiu a linguagem de programação de acordo com seus objetivos e mercad em que deseja atuar, é hora de começar a aprender a programar.

Se você é iniciante ou já possui algum conhecimento, é importante aprender lógica de programação ao mesmo tempo em que aprende a linguagem escolhida. Abaixo, um roteiro para se tornar um excelente desenvolvedor:

  • Lógica de programação: Fundamental para qualquer desenvolvedor, independentemente da área escolhida ou mercado escolhido, será a sua base.

Aqui, recomendo o curso da Universidade de Harvard disponível em português: https://cs50xemportugues.github.io/2022/. Neste curso gratuito, você aprenderá lógica de programação, Python, SQL, HTML, CSS, JavaScript e Flask. E a explicação sobre lógica de programação deste curso é fantático.

Aprenda comandos e fluxos Git

É importante ter conhecimento sobre comandos e fluxos de Git, pois você trabalhará em equipe. O GitHub é uma plataforma essencial para publicar seus projetos e demonstrar suas habilidades.

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

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.

VAI GOSTAR: Coleção de E-Books sobre Git e GitHub grátis

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.

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.

Curso gratuito de banco de dados:

A Fundação Bradesco oferece um excelente curso de banco de dados: Desde administração, modelagem de banco de dados e implementação. Link do curso aqui.

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.

Indico e nunca se torna obsoleto é o livro “Código Limpo’‘. Uma leitura obrigatória a todos os desenvolvedores, sejam iniciantes ou avançados.

OUTROS CURSOS DE TI GRATUITOS

O Eu Capacito é uma plataforma que tem como objetivo formar uma legião de profissionais para a economia digital. Oferecemos capacitação profissional gratuita, focadas em habilidades de tecnologia, seja do ponto de vista conceitual, de desenvolvimento ou de manuseio para áreas de negócio, além de conhecimento em outras áreas consideradas importantes para a vida corporativa ou empreendedorismo.

VAI GOSTAR: 74 sites que oferecem cursos online gratuitos com certificado

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.

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.

LEIA: 30 Sites Incríveis para Melhorar Suas Habilidades de Programação

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.

Use o ChatGPT para aprender a programar

O ChatGPT é um excelnte ajudante. Ele não substitui e nem irá substituir desenvolvedores. Mas você pode usar o ChatGPT para aprender a programar. Mas antes alguns avisos:

  1. Não confie totalmente nos resultados do ChatGPT: Há muitos falsos positivos.
  2. Cuidados com seus dados pessoais e de terceiros.
  3. Utilize para dúvidas ou para compreender código que ainda não entende.

Ao usar o ChatGPT para aprender a programar, é importante saber o que não fazer para garantir que o aprendizado seja eficaz e para evitar certos vícios que podem atrapalhar seu progresso. Aqui estão algumas coisas que você não deve fazer:

1. Não Depender Excessivamente do ChatGPT

Usar o ChatGPT como uma ferramenta de apoio é ótimo, mas você não deve depender dele para todas as respostas. É essencial praticar e resolver problemas por conta própria para realmente desenvolver suas habilidades. Se você recorrer ao ChatGPT para cada problema, pode acabar não aprendendo a pensar de maneira independente, o que é uma habilidade crucial na programação.

O que fazer em vez disso: Use o ChatGPT para guiar seu aprendizado, mas tente resolver os desafios e entender os conceitos antes de pedir ajuda.

2. Não Pular Conceitos Básicos

Pode ser tentador ir direto para tópicos avançados, especialmente com uma ferramenta que pode explicar tudo rapidamente. No entanto, pular os fundamentos da programação pode criar lacunas de conhecimento que serão problemáticas mais tarde. Por exemplo, se você tentar aprender sobre estruturas de dados complexas sem entender loops e variáveis, poderá se sentir perdido.

O que fazer em vez disso: Siga uma progressão natural de aprendizado, começando pelos conceitos básicos, como variáveis, loops, condições e funções, antes de passar para tópicos mais avançados.

3. Não Copiar Códigos Sem Compreender

Um dos maiores perigos ao aprender a programar com a ajuda do ChatGPT é copiar e colar código sem realmente entender como ele funciona. Isso pode fazer com que seu aprendizado fique superficial e você não consiga resolver problemas que exigem adaptações ou variações do código.

O que fazer em vez disso: Sempre tente entender o que o código faz, linha por linha. Faça perguntas como “Por que essa função foi usada?” ou “O que esse loop está realmente fazendo?” e, se necessário, peça ao ChatGPT para explicar cada parte do código.

4. Não Ignorar Erros ou Problemas

Quando seu código não funciona como esperado, pode ser tentador pedir ao ChatGPT para corrigir o problema imediatamente. No entanto, identificar e resolver seus próprios erros é uma das habilidades mais importantes para um programador.

O que fazer em vez disso: Tente depurar o código por conta própria. Leia as mensagens de erro, verifique a lógica e faça pequenos testes. Só recorra ao ChatGPT se não conseguir encontrar o erro após algum tempo tentando.

5. Não Usar o ChatGPT Como Substituto de Pesquisa

O ChatGPT pode fornecer muitas respostas rápidas, mas a pesquisa e a exploração de documentação oficial, fóruns e outras fontes são essenciais para um aprendizado sólido. Se você depender apenas de uma fonte, como o ChatGPT, pode perder contextos importantes e práticas recomendadas que surgem ao explorar mais profundamente o tema.

O que fazer em vez disso: Use o ChatGPT como complemento à documentação oficial, fóruns como Stack Overflow, e tutoriais online. Pesquisar por conta própria também ajuda a desenvolver a habilidade de encontrar soluções de forma eficiente.

6. Não Focar Apenas em Exemplos Simples

Um erro comum é se concentrar apenas em exemplos simples e não tentar aplicar o que você aprendeu em projetos maiores e mais complexos. Exemplos isolados podem parecer fáceis, mas a verdadeira compreensão vem da aplicação prática em cenários do mundo real.

O que fazer em vez disso: Depois de entender os conceitos por meio de exemplos simples, crie pequenos projetos ou colabore em projetos open-source para aplicar o que aprendeu em contextos mais amplos.

7. Não Usar o ChatGPT Para Fazer Tarefas de Forma Automática

Se você estiver estudando programação como parte de um curso ou treinamento, evite usar o ChatGPT para completar tarefas ou projetos sem entender o que está sendo feito. Fazer isso pode prejudicar seu aprendizado a longo prazo, já que você não estará realmente desenvolvendo as habilidades necessárias.

O que fazer em vez disso: Use o ChatGPT para obter orientações e dicas, mas faça o trabalho por conta própria. Se tiver dúvidas ou problemas, peça ao ChatGPT para explicar os conceitos em vez de fornecer a solução completa.

8. Não Esperar uma Solução Perfeita Sempre

Embora o ChatGPT seja uma ferramenta poderosa, ele pode cometer erros ou sugerir soluções que não funcionam em todos os contextos. Por isso, é importante não aceitar cegamente todas as respostas que ele oferece.

O que fazer em vez disso: Valide o que o ChatGPT diz, testando o código e verificando a lógica. Se algo parecer estranho ou não funcionar, pesquise outras fontes ou faça ajustes por conta própria.

Portanto

Usar o ChatGPT para aprender a programar pode ser uma ótima ajuda, mas é importante não cair nas armadilhas de depender demais dele ou usá-lo de maneira passiva. O aprendizado de programação exige prática, raciocínio lógico e a capacidade de resolver problemas. Use o ChatGPT como uma ferramenta para complementar sua aprendizagem, não como uma substituição para o esforço ativo e a prática consistente!

Mas como usar o ChatGPT para aprender

1. Tirar Dúvidas de Conceitos Básicos

Quando você está começando, é normal ter dúvidas sobre os conceitos fundamentais de programação. Você pode perguntar ao ChatGPT sobre qualquer linguagem de programação, como JavaScript, Python ou HTML, e ele pode explicar de uma forma clara e simplificada.

Exemplo: Você pode perguntar:

“O que são variáveis em JavaScript?”

2. Exemplos de Códigos Simples

Ao aprender a programar, ver exemplos práticos de códigos é uma ótima maneira de entender como as coisas funcionam. Você pode pedir ao ChatGPT para gerar pequenos exemplos que mostram como usar um determinado conceito.

Exemplo: Você pode pedir:

“Me mostra um exemplo de um loop for em Python?”

3. Correção e Explicação de Códigos

Se você tentar escrever um código e ele não funcionar como esperado, pode pedir ao ChatGPT para ajudar a corrigir o erro ou até mesmo explicar o que está errado.

Exemplo: Você pode dizer:

“Escrevi este código, mas está dando erro. O que há de errado?”

4. Criar Pequenos Projetos

À medida que você avança, pode pedir ideias de projetos pequenos para praticar o que aprendeu, e o ChatGPT pode até te ajudar a construir esses projetos passo a passo.

Exemplo: Você pode pedir:

“Me ajude a criar um contador simples com HTML, CSS e JavaScript.”

5. Resolução de Desafios de Programação

Para melhorar suas habilidades, você pode pedir ao ChatGPT para criar desafios de programação para você resolver. Ele também pode sugerir exercícios para você praticar e depois te ajudar a corrigir ou entender a solução.

Exemplo: Você pode pedir:

“Me dê um desafio de programação simples em Python.”

E o ChatGPT pode propor:

“Escreva um programa que receba uma lista de números e retorne apenas os números pares.”

Se você escrever a solução e encontrar problemas, o ChatGPT pode revisar o código e te mostrar como corrigir.

Com o ChatGPT, você tem um guia acessível e dinâmico para aprender a programar. Desde conceitos básicos até projetos mais avançados, ele pode te apoiar em cada etapa do processo de aprendizado, ajudando a resolver dúvidas, sugerir exemplos práticos e até criar desafios. Então, não tenha medo de perguntar e explorar o mundo da programação com essa ferramenta ao seu lado!

Livros uma excelente opção para estudos e práticas

Livros são excelentes fontes de aprendizado e consultas. Como pode ter percebido, buscamos neste guia não apenas mostrar os caminhos para aprender a programar, mas formas de adquirir estes conhecimentos sem gastar dinheiro ou quase. 

Uma excelente recomendação é o Kindle Unlimeted, onde você tem acesso a milhões de livros (muitos gratuitos ou com preços mais econômicos). Há um período gratuito de 30 dias grátis. Além disto, todas as recomendações de leituras aqui deste guia e do site também estão no Kindle e, não é preciso adquirir um Kindle, pode usar em seu computador ou software em seu smartphone.  

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.

Como aprender mais.
Infográfico sobre como aprender mais e fixar seu aprendizado.

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.

Dicas para Aprendizado Passivo (Topo da Pirâmide)

  1. Ouvir (5%):
    • Use podcasts e palestras como uma introdução ao tema, mas não dependa apenas deles para o aprendizado profundo.
    • Tome notas enquanto ouve para reforçar o conteúdo.
  2. Ler (10%):
    • Leia livros, artigos ou tutoriais sobre o tema que deseja aprender.
    • Faça resumos ou anotações para ajudar a fixar as ideias principais.
  3. Audiovisual (20%):
    • Assista a vídeos, aulas online e demonstrações práticas.
    • Combine o material audiovisual com exercícios práticos logo após assistir.

Dicas para Aprendizado Ativo (Base da Pirâmide)

  1. Ver e Escutar (30%):
    • Participe de workshops ou webinars interativos.
    • Use vídeos ou demonstrações como complemento de uma prática imediata.
  2. Discutir/Debater (50%):
    • Participe de grupos de estudo ou fóruns online, como Stack Overflow ou comunidades no Discord.
    • Explique conceitos para colegas ou discuta ideias para consolidar o entendimento.
  3. Praticar (75%):
    • Resolva problemas e desafios práticos relacionados ao que está aprendendo.
    • Crie projetos pequenos para aplicar o conhecimento adquirido.
  4. Ensinar aos Outros (90%):
    • Compartilhe o que você aprendeu escrevendo posts, gravando vídeos ou ajudando colegas.
    • Ensinar força a organizar seu conhecimento e identificar lacunas que ainda precisa preencher.

Estratégias Baseadas na Pirâmide

  • Combine técnicas: Não dependa apenas de ouvir ou ler. Sempre complemente o aprendizado passivo com práticas e discussões.
  • Foque em ensinar: Mesmo como iniciante, compartilhe o que aprendeu. Pode ser criando um artigo simples ou explicando para um amigo.
  • Planeje o aprendizado: Dedique tempo para consumir conteúdo e aplicar o conhecimento ativamente.

Estas dicas ajudarão você a utilizar cada nível da pirâmide de forma eficaz, transformando o aprendizado em algo mais profundo e duradouro!

O MAIS IMPORTANTE: Ensine: Monte um blog ou escreva aqui para a Ramos da Informática. Ensinar o que está aprendendo é a melhor forma de se aprofundar mais seus conhecimentos. 

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

Bons estudos.

E para concluir

Mantenha sempre atualizado. Assine o E-Zine Ramos da Informática e receba grátis em seu e-mail conteúdo exclusivo spbre progamação e banco de dados. Assine grátis:

Principais links do manifesto

LIVRO RECOMENDADO: Fundamentos de HTML5 e CSS3

LIVRO RECOMENDADO: Programação web com Node e Express: Beneficiando-se da stack JavaScript

“Um curso gratuito oferecido pela Universidade de Harvard, com um projeto disponível em português: https://cs50xemportugues.github.io/2022/. Além de aprender lógica de programação, você aprenderá Python, SQL, HTML, CSS, JavaScript e Flask, um poderoso micro-framework para construção de back-end em Python.”

A Crowd Academy, que tem a trilha de formação: “Desenvolvimento Web com a Devaria” que tem em seu conteúd programático. Link da trilha, aqui.

A Sansung Ocean também possuem excelentes trilhas de aprendizado: Com mais de 10 trilhas de aprendizagem, com foco na formação tecnológica e inovação para quem quer fazer a diferença no mercado de trabalho! A maioria é para Manaus, mas há também as opções online. São diversas. Link das trilhas da Sangung Ocean.

O ITA possui diversos cursos gratuitos sobre desenvolvimento de softwares, com o foco em Java e metodologia ágeis: https://www.coursera.org/partners/ita

A Fundação Bradesco oferece uma excelente trilha sobre programação Python que é linguagem fundamental para quem deseja trabalhar com IA. Conheça a trilha de Oython oferecida pela Fundação Bradesco, aqui.

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.

A Fundação Bradesco oferece um excelente curso de banco de dados: Desde administração, modelagem de banco de dados e implementação. Link do curso aqui.

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.

LIVRO RECOMENADO: 14 Hábitos de Desenvolvedores Altamente Produtivos

LIVRO RECOMENDADO: “Competitive Programmer ‘s Handbook E LISTA DE SITES: 30 Sites Incríveis para Melhorar Suas Habilidades de Programação

LIVRO RECOMENDADO (LEITURA OBRIGATÓRIA): Código Limpo.

O Eu Capacito é uma plataforma que tem como objetivo formar uma legião de profissionais para a economia digital. Oferecemos capacitação profissional gratuita, focadas em habilidades de tecnologia, seja do ponto de vista conceitual, de desenvolvimento ou de manuseio para áreas de negócio, além de conhecimento em outras áreas consideradas importantes para a vida corporativa ou empreendedorismo.

VAI GOSTAR: 74 sites que oferecem cursos online gratuitos com certificado

VAI GOSTAR: Coleção de E-Books sobre Git e GitHub grátis

Uma excelente recomendação é o Kindle Unlimeted, onde você tem acesso a milhões de livros (muitos gratuitos ou com preços mais econômicos). Há um período gratuito de 30 dias grátis. Além disto, todas as recomendações de leituras aqui deste guia e do site também estão no Kindle e, não é preciso adquirir um Kindle, pode usar em seu computador ou software em seu smartphone.  

VAI GOSTAR:Como aprender a programar sem gastar dinheiro: Descubra os melhores cursos gratuitos de programação, desde lógica até frameworks avançados, com certificados e recursos em português. Ideal para iniciantes e intermediários que desejam aprender a programar ou se especializar em tecnologia!

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.”

LEIA TAMBÉM: Guia Completo para Sua Carreira em TI

Este guia foi escrito por

Ramos de Souza J

Com mais de 26 anos de experiência na área de desenvolvimento de software, minha trajetória é marcada pela constante evolução tecnológica e pela entrega de soluções que fazem a diferença.

Desde os primeiros passos em Clipper e Delphi até a consolidação em JavaScript e TypeScript, desenvolvi uma expertise sólida em uma vasta gama de frameworks e tecnologias, como Node.js, Nest, React e banco de dados relacionais e não relacionais.

Atuando como Desenvolvedor Full Stack, sou apaixonado por criar soluções que resolvem problemas complexos, sempre buscando a excelência técnica.

Minha abordagem analítica e curiosidade autodidata me permitem adaptar rapidamente a novas tecnologias e desafios, garantindo entregas eficientes e de alta qualidade.

Além da parte técnica, sou reconhecido por meu relacionamento interpessoal e comprometimento com resultados, criando ambientes colaborativos e produtivos.

Minha missão é alavancar minha expertise para contribuir com projetos inovadores que impactam positivamente a vida das pessoas e empresas, mantendo-me sempre na vanguarda do desenvolvimento de software.

Atualmente, além de trabalhar em uma startup de Helth-Tech, também sou voluntário na OpenJS Foundation, uma organização que promove o avanço do ecossistema JavaScript por meio de projetos de código aberto e colaboração com a comunidade global de desenvolvedores.

Fique a vontade e me siga em minhas redes sociais:

Ramos de Souza J.

Artigos que podem te interessar

Uma seleção de artigos complementares para quem deseja entrar para a carreira de TI

Como aprender a programar sem gastar dinheiro.

Antes de iniciar este artigo, é importante a leitura de nosso: Guia completo sobre - Como aprender...

Cursos gratuitos em Inteligência Artificial com certificação

A Escola do Trabalhador 4.0, em parceria com o Ministério do Trabalho e Emprego e a Microsoft,...

Influenciadores de Desenvolvimento de Software: Backend e Frontend

No mundo do desenvolvimento de software, acompanhar influenciadores especializados pode ser uma excelente maneira de absorver conhecimentos,...

48 bolsas de estudos para graduação para Transformação Digital

A plataforma de cursos gratuitos Eu Capacito, em conjunto com a Deloitte, organização líder em serviços profissionais,...

Jogos que ensinam programação para as crianças

Com o avanço cada vez mais rápido da tecnologia, muitos jovens vem se interessando por adentrar cada...

Cuidado ao tentar usar o ChatGPT para aprender Python

ChatGPT impressiona desenvolvedores mais experientes, mas iniciantes em programação ou em uma nova linguagem precisam ficar muito...