Skip to content

jhonatancasale/learning-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

learning-c++ | Aprendendo C++

tl;dr

Objetivo

// A idéia aqui é acompanhar meu desenvolvimeto durante o aprendizado da Linguagem de programação C++

Disclaimer:

Não tenho a pretensão de escrever um manual completo, muito menos algo inteiramente novo, a proposta aqui é apenas estudar e compartilhhar o que estou aprendendo, de uma forma lúdica e agradável, tão e somente isso.

Proposta de estudo

Parte I - Sobre a Linguagem

Neste ponto levantar os aspectos da Linguagem no que se refere a forma como a mesma lida com:

  • Poder ser Compilada, Interpretada ou ambos?
  • Qual é o tipo de tipagem que a Linguagem faz uso?
  • É de propósito mais geral ou especifico?
  • Qual ou quais paradigmas de programação podem ser expressados?

Parte II - Sobre as Estruturas da Linguagem

Neste ponto identificar como a Linguagem implementa as ideias de:

  • Tipos de dados.
  • Operações (logicas e aritméticas).
  • Condicionais e estruturas de decisão.
  • Loops e iteradores.
  • Agregações.
    • Homogêneas.
    • Heterogêneas.
  • Blocos de código, funções, escopo e modularização.

Metodologia

Parte I - Foco na Sintaxe

Estudar e produzir conteúdo referente ao como a Linguagem nos permite expressar o pensamento, de forma a gerar o resultado esperado. Ou seja, o foco esta mais no código em si, na sintaxe e na forma de construir.

Parte II - Foco na Maneira de Ser

  • O que essa Linguagem faz melhor que outras?
  • Em que ela se destaca?
  • Em que ela deixa a desejar?
  • O que seria extraordinário que essa Linguagem incorporasse e o que seria ótimo que a Linguagem deixasse de lado?

Parte III - Desenvolvimento de Toys

Para ajudar a fixar e fortalecer as conexões neurais para começar a ficar fluente na Linguagem, sera implementado algumas aplicações exemplo:

  • Operações com matrizes: como soma, multiplicação, transposição.

  • Processamento de textos: Obtenção de estatísticas da escrita e levantamento de métricas dessa escrita.

  • Algoritmos:

    • Ordenação:
      • Bubble Sort
      • Insertion Sort
      • Selection Sort
      • Merge Sort
      • Quick Sort
      • Heap Sort
    • Busca:
      • Busca Linear
      • Busca Binária
  • Estruturas de dados:

    • Stack
    • Queue
    • Linked List
    • Tree (BST)
    • Heap
    • Hash Tables
    • Trie
  • Integração com Banco de Dados e execução de querys.

  • Implementar um Server para responder "Hello, World!" via web

  • SO calls

  • Paralelismo

Fontes de estudo

Livros

Cursos

Tutorials

~Jhonatan

:wq