100 dias de código – C#

O projeto 100 dias de código (www.100daysofcode.com) foi criado por Alexander Kallaway em 2016. Ele se propoz programar por pelo menos uma hora por dia, durante 100 dias, sempre publicando os seus resultados no Twitter.

A principal razão de Alexander era bem simples: ele queria se tornar um desenvolvedor melhor, mas após o trabalho ele sempre encontrava outra coisa para fazer do que codificar. Tonar o compromisso público criou uma espécie de incentivo e ao mesmo tempo uma certa “obrigação” de cumprir o prometido.

O “codificar” no parágrafo acima deve ser entendido no sentido de “estudar”. Quando eu lecionava eu costumava fazer a seguinte metáfora com meus alunos:

– Imagina que você não sabe andar de bicicleta e quer aprender. Então compra os melhores livros sobre ciclismo e os lê. Não satisfeito, assiste com todo o entusiasmo de concentração as reprises completas das últimas 10 edições da Volta da França. Por fim, vai ao parque e fica o dia todos vendo outras pessoas pedalando, prestando atenção nos mínimos detalhes. Ao final de tudo isto, você sobe na sua bicicleta e …. cai. Você só vai aprender a andar de bicicleta praticando e a programar programando!

Resolvi criar esta série para ajudar quem está tentando aprender C#. Serão 100 dias com conteúdos que irão paulatinamente do básico ao avançado, e cujo os fontes estarão disponíveis na integra nos posts referentes a cada dia e também em github.com/fernandoprass.

Segue a lista inicial com 91 tópicos que serão abordados, foi deixado intencionalmente espaço para que os assuntos mais relavantes possam ser tratados mais de uma vez se for necessário. Toda vez que um tópico for publicado esta página será atualiza com o link do mesmo:

  1. Tipos de dados básicos
  2. Operadores aritméticos
  3. Conversores de tipos de dados
  4. Operadores compartivos
  5. Operadores lógicos
  6. Estrutura de seleção – Se (if)
  7. Estrutura de repetição – Para (for)
  8. Tipos númericos inteiros (do byte ao long)
  9. Tipos númericos ponto flutunte (float x double x decimal)
  10. Operadores de atribuição
  11. Math
  12. Overflow
  13. Funções
  14. Funções que retornam valore(es)
  15. Yield
  16. Enumeradores
  17. Tuplas
  18. Estrutura de seleção – Caso (swtich-case)
  19. Estrutura de repetição – Enquanto (while)
  20. Break e Continue
  21. Funções para manipulação de string
  22. Datetime
  23. Timestamp
  24. Gerando valores randômicos
  25. Tratamento de exceção – try .. catch
  26. Tratamento de exceção – try .. catch .. finally
  27. Tratamento de exceção – Criando exceções personalizadas
  28. Estrutura de seleção – Ternário
  29. Recursividade
  30. Vetores
  31. Matrizes
  32. Listas
  33. Dicionários
  34. KeyValuePair (c# – KeyValuePair VS DictionaryEntry – Stack Overflow)
  35. Listas – operações avançadas (união, interseção, …)
  36. Estrutura de repetição – Para cada (foreach)
  37. Concatenando string (join, sb, .. https://www.c-sharpco
  38. Nulo: operadores Null-Coalescing  e Null-Conditional
  39. Tipo Guid
  40. Classes
  41. Atributos
  42. Métodos
  43. Encapsulamento
  44. Polimorfismo
  45. Herança
  46. Herança Múltipla
  47. Constructors x destructors
  48. This e base
  49. Overwrite x overload
  50. Propriedades
  51. Indexer (get/set)
  52. Casting de objetos
  53. Static
  54. Interfaces
  55. Classes abstratas
  56. Comparando objetos
  57. Argumentos opcionais
  58. Static
  59. Extenções de métodos
  60. Const x Readonly
  61. Referencia x valor
  62. ref x out
  63. Boxing x unboxing
  64. Statment using
  65. Statment with
  66. Linq básico
  67. Linq com join
  68. Linq com group by
  69. Indexer (get/set)
  70. Classes e métodos parciais (partial class and methods)
  71. Thread
  72. Task
  73. Async
  74. Await
  75. Singleton Implementation
  76. Genéricos (Generics)
  77. Refexão (Reflection)
  78. Tipos Anônimos (Anonymous types)
  79. Tipos Dinâmicos (Dynamics types)
  80. Trabalhando com arquivos texto
  81. Trabalhando com arquivos XML
  82. Trabalhando com arquivos Json
  83. Consumindo APIs – parte I
  84. Consumindo APIs – parte II
  85. Delegates
  86. Events
  87. Data Annotation
  88. Estruturas (Structs)
  89. FileSystemWatcher
  90. Immutable
  91. goto – apenas saiba que existe, mas não use isto!