Como começar a Codificação: Um Guia Prático para Iniciantes (Atualizado em 2020)

Passo 3: Inicie um projeto para praticar o que você aprendeu

Visitar cursos sozinha não o ajudaria a internalizar o conceito. Você teria que colocar o conceito em prática. A melhor maneira de fazer isso seria criar projetos.

Se você tem uma idéia para um projeto ou tem um problema que você quer resolver com a codificação, isso é ótimo!

Se eu não tiver preparado uma lista de projetos amigáveis para iniciantes dos quais você pode se inspirar ou tentar.

alguns projetos amigáveis para iniciantes você pode tentar

Aqui estão algumas terminologias que podem ser confusas

Bibliotecas: Uma biblioteca é uma coleção de peças de código relacionadas que foram compiladas e armazenadas juntas em um único arquivo. Esse ficheiro pode ser ligado ao seu código para lhe dar acesso ao código na biblioteca.

API: API significa Application Programming Interface. Uma API é um software intermediário que permite que duas aplicações falem uma com a outra. Em outras palavras, a API permite que você solicite funções de um provedor de software para fazer uso do seu código. Por exemplo, a API Spotify permite solicitar dados como músicas e artistas de Spotify e você pode fazer uso dos dados em seu código ou aplicação.

Projetos de Nível 1

Calculador

  • Idioma: Python
  • >

  • Biblioteca: Nenhuma
  • >

  • Guia: https://www.programiz.com/python-programming/examples/calculator

Sudoku Solver

  • Linguagem: Python
  • >

  • Biblioteca: Nenhuma
  • >

  • Guia: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/

Hangman

  • Linguagem: Python
  • >

  • Biblioteca: Nenhuma
  • >

  • Guia: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman

Nível 2 Projectos

Tradução

  • Idioma: Python ou Java
  • >

  • Biblioteca: Nenhuma
  • >

  • Guia: https://www.youtube.com/watch?v=ejZqLsQDjuo

Descobrir semanalmente a lista de reprodução

  • Construir o seu próprio sistema para fazer algo semelhante à lista de reproduçãoDescobrir semanalmente
  • Idioma: Python
  • >

  • Biblioteca: Spotify API
  • Guia: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb

Ferramenta automática de controle de tempo

  • Improve o foco rastreando o tempo gasto em aplicações desktop ou web sites em tempo real.
  • Idioma: Python
  • >

  • Biblioteca: Selénio
  • >

  • Guia: https://www.youtube.com/watch?v=ZBLYcvPl1MA

Nível 3 Projectos

Instagram Automation

  • Automate o processo de publicação no Instagram
  • Idioma: Python
  • >

  • Biblioteca: Frasco,Instapy
  • Guia: https://www.youtube.com/watch?v=vnfhv1E1dU4

Twitter Bot

  • Um bot que automaticamente tweets para o seu feed.
  • Linguagem: Python
  • >

  • Biblioteca: API do Twitter
  • >

  • Guia: https://medium.com/science-friday-footnotes/how-to-make-a-twitter-bot-in-under-an-hour-259597558acf, https://learn.g2.com/how-to-make-a-twitter-bot, http://socialmedia-class.org/twittertutorial.html

Telegrama chatbot

  • Um chatbot que lhe permite automatizar mensagens de telegrama de chat
  • Idioma: Python
  • >

  • Biblioteca: Python-Telegram-API
  • Guia: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/

Esta não é uma lista exaustiva. Se você tem um problema que precisa resolver, pense em como você pode resolvê-lo com programação. Isso também pode ser um projeto.

Não desista facilmente, você tem que superar as lutas iniciais

O maior erro que você pode cometer como um aspirante a programador é desistir porque você não acha que é inteligente o suficiente para aprender a programar. Aprender a codificar não tem nada a ver com sua inteligência.

Aprender a programar é difícil e a maioria das pessoas enfrentaria dificuldades em algum momento porque há muitos tópicos para aprender. Como você está programando, vai haver muitos tópicos que não vão fazer sentido na primeira vez. Portanto, abstenha-se dos auto-pensamentos negativos.

Eu também fico preso. Muitas vezes tenho que remontar a mesma palestra ou vídeo tutorial várias vezes para que eu possa entender o conceito. Não desanime se você se encontrar no meu lugar.

É importante construir uma base forte

Por mais elementares que apareçam no início, os fundamentos da programação sempre precisam vir primeiro: quanto melhor você os entender, mais fácil é aprender conceitos mais avançados. Se o tópico atual que você está aprendendo não faz sentido para você, fique onde você está. Não prossiga para o próximo tópico. Pular adiante é semelhante a construir uma casa sem uma base, negligenciando a base.

Se o tutorial (ou livro) que você está usando não explicou suficientemente o tópico, você pode ter que encontrar outros recursos que se adaptem a você. Você pode encontrar praticamente tudo o que você está procurando aprender gratuitamente no Google. Descubra o que procurar (por exemplo, em + quaisquer outras palavras-chave úteis).

Tire pelo menos 20 minutos para descobrir algo por si mesmo antes de procurar por ajuda. Há uma boa chance de que a resposta já esteja na sua frente. A luta faz com que você aprenda melhor e um melhor programador em geral.

Stackoverflow e aprender programação são minas de ouro para assistência à programação.

Aprenda fazendo. Sempre brinque com o código enquanto aprende.

O objectivo é estar consciente da sua própria aprendizagem à medida que avança no caminho da aprendizagem. Portanto, não siga cegamente os cursos e copie cegamente o código sem entendê-lo primeiro. Entenda os conceitos que foram ensinados na lição e tente recriá-lo.

Conforme você progride, torne um hábito a prática da sua programação. Você pode fazer isso em leetcode, hackerrank, ou fazendo um projeto. Tente fazer um projeto após cada módulo com os conceitos que você aprendeu. Quando eu estava fazendo cursos online tentei fazer um projeto a cada semana, aplicando todos os conceitos que aprendi.

Parte 2: Roadmap para se tornar um programador avançado

Agora que você aprendeu o básico da programação, o próximo passo seria pensar sobre qual caminho da programação você quer aprender mais sobre. Há muitos caminhos em que você pode se aventurar depois de ter compreendido o básico da programação, com os caminhos principais e mais populares sendo Engenharia de Software & Data Analytics.

Data Analytics

O que é Data Analytics?

Data Analytics é a ciência de examinar dados brutos para concluir novas informações. Envolve a aplicação de um processo algorítmico ou mecânico para obter insights. Por exemplo, correr por vários conjuntos de dados para procurar correlações significativas entre si.

Então, por que você deve aprender análise de dados? Grandes Dados é o futuro. Ele está sendo gerado a uma taxa exponencial, e muitas empresas estão fazendo uso desses dados para tomar melhores decisões, bem como verificar e refutar teorias ou modelos existentes. Espera-se que a demanda por análise de dados cresça no futuro, pois os dados serão o núcleo do processo de tomada de decisão em muitas empresas.

>

Como você pode aprender Análise de Dados gratuitamente?

>

Passei pelo currículo das universidades e encontrei um caminho para tentar combinar cursos online gratuitos com cursos universitários. No entanto, todos esses cursos são em Python, se você quiser aprender em uma língua diferente, sinta-se livre para conferir outros cursos.

O contorno dos Módulos de Análise de Dados

O contorno é geralmente baseado em módulos universitários. No entanto, estou excluindo alguns dos módulos importantes como Estrutura de Dados e Algoritmo que as universidades ensinam, pois estes são mais conceituais e de nível superior.

Nota: Coloquei a aprendizagem mecânica mais acima na prioridade, pois ela permite que você faça uso das habilidades aprendidas em cursos fundamentais.

Cursos Fundamentais

Módulo 1: Aprendendo o básico de Python (1 Mês)

  • Aprendendo a sintaxe de Python
  • Aprendendo Loops de Aprendizagem
  • Aprendendo Programação Orientada a Objetos

Módulo 2: Pré-processamento de Dados, Visualização de Dados, Análise Exploratória de Dados (1 Mês)

  • Aprendizagem de como fazer uso de bibliotecas python (matplotlib, numpy e pandas)
  • Estas bibliotecas permitem manipular os dados

Cursos Avançados

Módulo 3: Aprendizagem na Máquina (2 Meses)

  • Prerequisito: Álgebra Linear
  • Aprendizagem de Máquinas é um curso bastante técnico de matemática
  • Python tem uma biblioteca bastante abrangente para Aprendizagem de Máquinas chamada Scikit-Learn.
  • Se você quiser uma abordagem mais prática para a aprendizagem de máquinas, você pode conferir o Kaggle Learn.

Cursos de Ferramentas do Mundo Real

Módulo 4: Bases de Dados (SQL) (1 Mês)

  • O curso de base de dados ensina basicamente como os dados são armazenados e como você pode recuperar esses dados para executar funções de programação.
  • O conhecimento prático de bases de dados e SQL é uma necessidade se você quiser se tornar um cientista de dados.

Módulo 5: Cursos de Ferramentas do Mundo Real

  • Hadoop & Map-Reduce + Spark(escolha um) (1.5 meses)
  • Estas são ferramentas de Grandes Dados que a indústria comumente usa para processar grandes quantidades de dados.
  • Aprendizagem das tecnologias Hadoop lhe dará muito conhecimento fundamental, teoria e habilidades práticas. Também, você pode encontrar algo novo usando-o.
  • Spark é a implementação moderna do Hadoop e está vendo um caso de uso crescente.

Módulo 6: Data Storytelling (1 Semana)

  • Apresentação da História com dados é o elo que falta aos profissionais de análise para fornecer a essência dos sinais de data e insights para executivos, gerentes e outras partes interessadas.

Cursos Opcionais

  • Estrutura de Dados
  • Algoritmo
  • Deep Learning
  • Em cinco cursos, você aprenderá os fundamentos do Deep Learning, entenderá como construir redes neurais e aprenderá como liderar projetos de aprendizagem de máquinas de sucesso. Você vai praticar todas essas idéias em Python e em TensorFlow, que eles vão ensinar.
  • É um dos melhores cursos de Aprendizagem Profunda lá fora. Atualmente, eu estou no meio de fazer este curso e concordo com as revisões como é apresentado de uma forma simples e clara, apesar do Aprendizado Profundo ser um tópico técnico.
  • Um outro grande recurso gratuito é rápido.ai

Coisas a evitar enquanto aprende Análise de Dados

A armadilha é que você está apenas aprendendo mas não aplicando o conhecimento. Uma maneira que eu tento aplicar meu conhecimento é iniciar um projeto após cada módulo que eu tenha completado. Para Data Analytics você pode tentar o seu melhor em uma competição de sua escolha da Kaggle. Use Kaggle Learn como um guia útil

Engenharia de Software

O que é Engenharia de Software?

Em resumo, Engenharia de Software está basicamente usando conceitos de programação para construir aplicações

>

Como você pode aprender Engenharia de Software gratuitamente?

Eu acho que Engenharia de Software requer uma compreensão mais fundamental dos conceitos de computação do que a Análise de Dados, portanto, nos meus módulos esboço, incluí mais cursos teóricos.

Você quer construir coisas para ter uma sensação?

Se sim, aprenda Python e vá para os cursos práticos. Você pode sempre revisitar os cursos fundamentais quando atinge um obstáculo em termos de conhecimentos teóricos.

>

Continuação dos Módulos de Engenharia de Software

Cursos Fundamentais

Módulo 1: Aprendendo o básico de Python (1 Mês)

  • Aprendendo a sintaxe de Python
  • Laço de aprendizagem
  • Aprendendo programação orientada a objetos

Módulo 2: Estruturas de Dados (2 Meses)

  • Este curso cobre estruturas de dados essenciais como listas vinculadas, pilhas, filas, árvores binárias e tabelas de hash, e algoritmos de busca e ordenação como busca binária, quicksort, mergesort, ordenação de inserção, etc.
  • As estruturas de dados são importantes pois nos permitem melhorar a performance do nosso código usando o melhor tipo de dados para o nosso código.
  • O curso de Estrutura de Dados que recomendei está em Java pois nos força a passar de uma linguagem simples de python para uma linguagem mais verbosa. Também, Java é bom para aprender programação orientada a objetos e Estruturas de Dados.

Módulo 3: Algoritmos (2 Meses)

  • Esta é a segunda parte de uma série de cursos Coursera online em duas partes cobrindo estruturas de dados e algoritmos por Robert Sedgewick e Kevin Wayne, ambos são professores de Ciência da Computação.
  • Nesta parte, você aprenderá sobre os algoritmos de processamento de gráficos e strings.
  • Você também aprenderá algumas estruturas avançadas de dados e algoritmos usados no desenvolvimento de aplicações.

Módulo 4 : (Bases de Dados) (1 Mês)

  • O curso de base de dados ensina basicamente como os dados são armazenados e como você pode recuperar esses dados para executar funções de programação.

Módulo 5: Redes (1 Mês)

  • Fazer um curso de redes não é muito importante, portanto você pode ignorá-lo se quiser. No entanto, se você estiver interessado em cibersegurança, é absolutamente um curso essencial

Cursos práticos

Módulo 6: Semana 9-10 (Desenvolvimento Web) (2 Meses)

  • Tópicos incluem design de banco de dados, escalabilidade, segurança e experiência do usuário. Através de projetos práticos, você aprenderá a escrever e usar APIs, criar UIs interativas e aproveitar serviços de nuvem como GitHub e Heroku. Ao final do curso, você sairá com conhecimento e experiência em princípios, linguagens e ferramentas que capacitam você a projetar e implementar aplicativos na Internet.
  • Pessoalmente, este foi meu curso favorito para desenvolvimento web, pois eles passam pelo front end e back end e está muito bem explicado. Eles lhe ensinariam HTML, CSS, Javascript e PHP.
  • Este é um bom recurso para inspirações de sites: https://github.com/melanierichards/just-build-websites

Módulo 7: Desenvolvimento de Aplicações Móveis (escolha o que você mais gostar) (2 Meses)

  • IOS
  • Android
  • Flutter (Meu método preferido de desenvolvimento de aplicações)
  • Pessoalmente eu não aprendi desenvolvimento de IOS antes. Mas comparando entre andróide e flutter, flutter é mais rápido de desenvolver e protótipo com e por isso prefiro flutter

Cursos Avançados

Módulo 8: Arquitetura de Software (2 Meses)

  • Neste curso, você aprenderá como representar uma arquitetura de software usando ferramentas visuais como UML, o que é muito importante para comunicar a arquitetura com os acionistas, bem como desenvolvedores que irão implementá-la.
  • Tambem aprenderá algumas das arquitecturas standard, as suas qualidades e tradeoffs. O curso também fala sobre como os projetos são avaliados, o que faz uma boa arquitetura, e a arquitetura pode ser melhorada.

Módulo 9: Práticas de Engenharia de Software (1 Mês)

  • Após completar este curso, você será capaz de
  1. Aplicar as práticas de engenharia de software essenciais ao nível conceitual para um determinado problema.
  2. Comparar e contrastar metodologias de desenvolvimento tradicionais, ágeis e enxutas a um nível elevado. Estas incluem Waterfall, Rational Unified Process, V model, Incremental, Spiral models e visão geral da mentalidade ágil
  3. Propor uma metodologia mais adequada para uma dada situação

Opcional

Machine Learning

  • Realmente recomendei um curso mais teórico de Machine Learning por Andrew Ng
  • Even embora esteja ligeiramente desactualizado, ele ensina bem o conceito e ainda é um dos melhores cursos de aprendizagem de máquinas por aí, depois de muitos anos.

Deep Learning

  • Em cinco cursos, você aprenderá os fundamentos do Deep Learning, entenderá como construir redes neurais, e aprenderá como liderar projetos de aprendizagem de máquinas de sucesso. Você vai praticar todas essas idéias em Python e em TensorFlow, que eles vão ensinar.
  • Currentemente, estou no meio de fazer este curso e ele é apresentado de uma maneira simples de entender. Outro bom ponto é que Andrew Ng usa Python ao invés de oitava.
  • Outro grande recurso gratuito é rápido.ai

Conclusão

Embora eu tenha recomendado os módulos baseados em cursos universitários, você pode misturar e combinar para fazer o melhor currículo para si mesmo. Se este artigo vos ajudou, por favor ajudem-me a partilhá-lo com os vossos amigos! Se você gostaria de saber mais sobre mim e o que eu faço, por favor visite-me no meu website http://www.chiayong.me/

Deixe uma resposta

O seu endereço de email não será publicado.