Coder Social home page Coder Social logo

learning-c's Introduction

Learning C

A ideia desse repositório é de alguma maneira poder contribuir para qualquer estudante de graduação que possa se sentir inspirado e/ou qualquer interessado em estudar o assunto. Não tenho a intenção e nem a pretensão de cobrir todo o conteúdo, técnicas, ferramentas, me comprometo em compartilhar o que aprendi sobre este assunto durante a graduação e algumas madrugadas de aha! Não pretendo cobrir tópicos como instalação, IDEs e por ai vai.

Vale ressaltar que não represento a Instituição de ensino da qual faço parte, apenas estou querendo compartilhar conhecimento de forma livre com quem se sentir interessado.

Para simplificar e caminhar, em alguns momentos escolheu-se focar em parte do programa e não em explicar todo o código, isso pois acredito que ter o código inteiro disponível para compilar e rodar é importante para os estudos, afinal, slide/texto não compila, muito menos roda! Em algum momento o trecho de código nebuloso deve ser esclarecido, se ninguém perder o ponteiro...

Roteiro de estudo

Conceitos básicos:

Conceitos gerais de programação

  1. Sobre a linguagem
  2. Tipos de variáveis (os principais)
  3. Operadores aritméticos e relacionais
  4. I/Os (printf, scanf, ...)
  5. Estruturas de decisão
  6. Estruturas de repetição
  7. Composições / Agregações
  8. Arrays
  9. Strings
  10. Matrizes
  11. Structs
  12. Unions
  13. Enums
  14. Modularização e Funções
  15. Recursividade
  16. Arquivos

Características e particularidades do C

  1. Criando tipos (typedef, struct, union, ...)
  2. sizeof
  3. Ponteiros
  4. Gerenciamento de memória (malloc, ...)
  5. Macros
  6. Compilação (flags de compilação, ...)
  7. Boas práticas da linguagem
  8. Pré-processador
  • #include
  1. Modularizando em arquivos
  2. Compilação condicional
  3. Makefile

Toy Applications e Problemas Resolvidos

  • wip

Conceitos avançados:

  1. Paralelismo (OpenMP, MPI, PThreads)
  2. System calls
  3. API de rede (sockets, ...)
  4. API DB (como se conectar com um banco, ...)
  5. "docstring" (Doxygen)
  6. IPC (mensagens)
  7. Técnicas de otimização
    1. segurança
    2. tempo (de execução)
    3. uso de memória
  8. Como debugar (gdb)
  9. APIs/Libs/Modules (como estender e utilizar o há de batuta por ai)
  10. GUI (gtk, qt)
  11. Ferramentas de Análise de código

Equipe

  • Repo owner and admin Jhonatan Casale < jhonatan at jhonatancasale dot com >

learning-c's People

Contributors

jhonatancasale avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.