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:
- Tipos de dados básicos
- Operadores aritméticos
- Conversores de tipos de dados
- Operadores compartivos
- Operadores lógicos
- Estrutura de seleção – Se (if)
- Estrutura de repetição – Para (for)
- Tipos númericos inteiros (do byte ao long)
- Tipos númericos ponto flutunte (float x double x decimal)
- Operadores de atribuição
- Math
- Overflow
- Funções
- Funções que retornam valore(es)
- Yield
- Enumeradores
- Tuplas
- Estrutura de seleção – Caso (swtich-case)
- Estrutura de repetição – Enquanto (while)
- Break e Continue
- Funções para manipulação de string
- Datetime
- Timestamp
- Gerando valores randômicos
- Tratamento de exceção – try .. catch
- Tratamento de exceção – try .. catch .. finally
- Tratamento de exceção – Criando exceções personalizadas
- Estrutura de seleção – Ternário
- Recursividade
- Vetores
- Matrizes
- Listas
- Dicionários
- KeyValuePair (c# – KeyValuePair VS DictionaryEntry – Stack Overflow)
- Listas – operações avançadas (união, interseção, …)
- Estrutura de repetição – Para cada (foreach)
- Concatenando string (join, sb, .. https://www.c-sharpco
- Nulo: operadores Null-Coalescing e Null-Conditional
- Tipo Guid
- Classes
- Atributos
- Métodos
- Encapsulamento
- Polimorfismo
- Herança
- Herança Múltipla
- Constructors x destructors
- This e base
- Overwrite x overload
- Propriedades
- Indexer (get/set)
- Casting de objetos
- Static
- Interfaces
- Classes abstratas
- Comparando objetos
- Argumentos opcionais
- Static
- Extenções de métodos
- Const x Readonly
- Referencia x valor
- ref x out
- Boxing x unboxing
- Statment using
- Statment with
- Linq básico
- Linq com join
- Linq com group by
- Indexer (get/set)
- Classes e métodos parciais (partial class and methods)
- Thread
- Task
- Async
- Await
- Singleton Implementation
- Genéricos (Generics)
- Refexão (Reflection)
- Tipos Anônimos (Anonymous types)
- Tipos Dinâmicos (Dynamics types)
- Trabalhando com arquivos texto
- Trabalhando com arquivos XML
- Trabalhando com arquivos Json
- Consumindo APIs – parte I
- Consumindo APIs – parte II
- Delegates
- Events
- Data Annotation
- Estruturas (Structs)
- FileSystemWatcher
- Immutable
- goto – apenas saiba que existe, mas não use isto!