Skip to content

O mapa do caminho das pedras encontrado no estudo de Linguages de Programação.

License

Notifications You must be signed in to change notification settings

jhonatancasale/Learning-Programming-Languages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aprendendo Linguagens de Programação - Motivação

tl;dr

Aprender a primeira Linguagem de Programação pode ser uma tarefa bastante desafiadora, ou porque os professores não se fazem valer, ou porque se esta em uma aventura autodidata e o material também não se paga, ou mesmo o próprio objeto de estudo, a Linguagem, não ajuda muito, o caminho pode ser especialmente tortuoso e cansativo. Desnecessário dizer que desistir pode parecer um pensamento confortável em certo ponto e pronto, lá se foi o entusiasmo e com ele os planos, metas, sonhos e por ai vai.

Para endereçar esse problema e me ajudar na minha própria jornada, estou criando esse repositório. Que tem como único objetivo servir como hub para meus projetos de estudo de Linguagens de Programação. Não me pretendo tornar referência em nenhuma das Linguagens, quero apenas me sentir confortável em expressar meus pensamentos, ideias, necessidades e expectativas computacionaveis.

E em um segundo momento, este material intenta em servir como uma memória externa e compartilhada para que naqueles momentos de dúvida eu volte e relembre como se faz isso ou aquilo em determinada Linguagem. Dito isso, vamos ao

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.

Objetos de estudo

Linguagens

  • Python
  • R
  • Octave
  • C++
  • Julia
  • Chapel
  • Haskell
  • Scala
  • Erlang
  • Elixir
  • Scheme
  • Ruby
  • Io
  • Clojure
  • Shell-script
  • JavaScript
  • Prolog
  • C
  • GO
  • [Free slot 1]

Tools/Frameworks/OS/...

  • Git
  • Linux
  • Makefiles
  • Tmux
  • Vim
  • LaTeX

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

~Jhonatan

About

O mapa do caminho das pedras encontrado no estudo de Linguages de Programação.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published