Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add support to export your guide #54

Closed
wants to merge 13 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/workflows/generate-download-files.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Generate - Download Files
on:
pull_request:
types: [opened, synchronize]
schedule:
- cron: "0 * * * *"

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
generate_downloadable_files:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '16'
- name: Call Script
run: |
echo "[START]"
yarn install
yarn dev:scripts:createShareableGuides
git add .
git commit -m "docs: update downloadable files" || echo "Up to date with main"
git push origin HEAD
echo "[END]"
207 changes: 207 additions & 0 deletions _data/downloadFiles/pt_BR/csharp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# C#

## Nivel 1
- [ ] **C# - Fundamentos**:
- Conhecer os tipos primitivos
- Declarar variáveis, considerando os diferentes tipos
- Usar estruturas condicionais ('if', 'else')
- Conhecer os operadores de comparação
- Usar estruturas de repetição e laços ('while', 'for')
- Usar funções, passando parâmetros e argumentos
- Manipular métodos
- Manipular arrays e listas
- Obter dados de uma API
- Fazer chamadas assíncronas, etc
- Criar construtores
- [ ] **Conceitos de Orientação a Objetos**:
- A Programação Orientada a Objetos é um paradigma de programação de software baseado na composição e interação entre diversas unidades chamadas de 'objetos' e as classes, que contêm uma identidade, propriedades e métodos). Ela é baseada em quatro componentes da programação: abstração digital, encapsulamento, herança e polimorfismo.
- Como funcionam objetos
- Criar e utilizar construtores
- O que são classes
- Criar e utilizar métodos
- Como funciona encapsulamento
- O que é herança
- O que é polimorfismo
- Como funcionam interfaces
- O que são abstrações
- [ ] **C# - Coleções**:
- Aprender os usos e diferenças entre Dictionary, List, Queue, SortedList e Stack
- Saiba trabalhar com ArrayList e HashTable
- Iterators
- [ ] **NuGet**:
- Gerenciar pacotes
- Compartilhar bibliotecas
- [ ] **C# - System.IO**:
- Ler dados de arquivos
- Escrever dados em arquivos
- Gerenciar arquivos com Using
- [ ] **C# - Gerenciamento de Memória**:
- Entender como a memória é administrada
- Conhecer o Garbage Collector
- Entender sobre o Stack e o Heap gerenciado
- [ ] **ADO.NET**:
- Manipular bancos de dados
- Conhecer o DataSet e DataTable
- Realizar conexões
- Manipular documentos XML
- [ ] **Entity Framework Core**:
- Manipular bancos de dados usando objetos .NET
- Criar modelos correspondentes a um banco de dados
- Realizar consultas
- [ ] **WPF**:
- Criar aplicativos para Windows
- Usar marcação e code-behind
- Criar um layout
- Criar modelos
- Desenvolver uma interface

## Nivel 2
- [ ] **CLR**:
- Entender como o CLR funciona
- Entender o gerenciamento de memória
- Conhecer a CIL e o JIT
- [ ] **LINQ**:
- Criar consultas
- Conhecer as cláusulas Select e Where
- Consultar coleções de objetos em memória
- Mapear o banco de dados com Linq to Sql
- [ ] **C# - Testes**:
- Usar testes unitários
- Usar testes de integração
- Usar testes de comportamento (behavior)
- Usar mocks
- [ ] **C# - Serialização**:
- Enviar um objeto para um aplicativo remoto usando um serviço Web
- Passar um objeto como uma cadeia de caracteres JSON ou XML
- Manter informações específicas do usuário ou de segurança entre aplicativos
- [ ] **C# - Rede e Sockets**:
- Abrir uma sessão de comunicação interativa entre o navegador do usuário e um servidor
- Enviar mensagens para um servidor e receber respostas sem consultar o servidor
- [ ] **ASP.NET Core**:
- Criar aplicativos e serviços Web
- Manter um aplicativo MVC
- Desenvolver de interface do usuário da Web do lado do cliente
- Criar uma API Web
- [ ] **Dapper**:
- Realizar consultas a bancos de dados
- Manipular bancos de dados
- [ ] **Injeção de Dependências**:
- Padrão de projeto no qual uma classe solicita dependências de fontes externas ao invés de criá-las
- Evitar o alto nível de acoplamento de código dentro de uma aplicação
- Implementar a inversão de controle
- [ ] **SOLID**:
- Conhecer boas práticas no desenvolvimento de software

## Nivel 3
- [ ] **C# - Delegates e eventos**:
- Entender o conceito de delegate
- Criar uma referência para uma função com uma certa lista de parâmetros
- Entender o conceito de evento
- Manipular diferentes tipos de eventos
- [ ] **Contêineres**:
- Isolar seu software para funcionar independentemente
- Implantar software em clusters
- Modularizar seu sistema em pacotes menores
- Conhecer a plataforma Docker
- Conhecer Kubernetes
- [ ] **Design Patterns**:
- Na engenharia de software, um "padrão de projeto" (Design Pattern em inglês) é uma solução geral e reutilizável para um problema que ocorre normalmente dentro de um determinado contexto de projeto de software.
- Conhecer e aplicar os principais Design Patterns
- [ ] **Clean Architecture**:
- Conhecer a metodologia a ser usada na codificação, a fim de facilitar o desenvolvimento códigos, permitir uma melhor manutenção, atualização e menos dependência
- [ ] **C# - Métodos anônimos e lambda expressions**:
- Criar funções anônimas que você pode usar para criar delegates
- Criar funções locais que podem ser passadas como argumentos
- [ ] **Reflection e atributos**:
- Escrever código que lê as informações e metadados de objetos em tempo de execução
- Obter nomes de classes em tempo de execução e criar objetos de uma classe
- [ ] **C# - Multithreading**:
- Executar múltiplas tarefas simultaneamente
- Entender como threads são executadas
- [ ] **Estruturas de Dados**:
- Conhecer as principais estruturas de dados
- Implementar as principais estruturas de dados
- [ ] **MAUI**:
- Criar aplicativos móveis e desktop nativos com C# e XAML
- Criar aplicativos multiplataforma
- Compartilhar o layout e o design da interface do usuário entre plataformas

## Habilidade Auxiliar: Infraestrutura e boas práticas
- [ ] **HTML - Fundamentos**:
- Aprender quais tags são necessárias para um HTML básico
- Criar um parágrafo de texto
- Exibir uma imagem
- Conhecer a diferença entre 'h1', 'h2', 'h3', etc
- Criar um texto com hyperlink
- Criar um formulário com campos relevantes
- Criar uma lista de itens ordenada ou não ordenada
- Criar uma lista de itens dentro de uma lista suspensa (dropdown list)
- Conectar com um arquivo de CSS
- Criar uma tabela
- Adicionar IDs e classes
- [ ] **JavaScript - Fundamentos**:
- Conhecer os tipos primitivos
- Declarar variáveis, considerando a diferença entre 'var', 'let' e 'const'
- Usar estruturas condicionais ('if', 'else')
- Conhecer os operadores de comparação ('=', '==', '===')
- Usar estruturas de repetição e laços ('while', 'for')
- Usar funções, passando parâmetros e argumentos
- Manipular arrays e listas
- Aprender o conceito de Orientação a Objetos
- Fazer um CRUD
- Obter dados de uma API
- Fazer chamadas assíncronas usando 'Async/Await', 'Promise', etc
- [ ] **CSS - Fundamentos**:
- Aprender a estrutura visual de uma página, com 'margin' e 'padding'
- Estabelecer o tamanho com 'width' e 'height'
- Aprender sobre a posição de um elemento ('static', 'relative' ou 'absolute)
- Aprender sobre o 'display' de exibição de um elemento ('block', 'inline', 'inline-block')
- Aprender a posicionar imagens em relação ao texto
- Aprender sobre alinhamento
- Aprender sobre estilo de fontes
- Aprender as diferenças e vantagens de usar as diferentes unidades de medida em CSS (%, relativas, etc)
- Conectar com os elementos (IDs, classes) de um arquivo HTML
- Alterar características de um elemento quando o mouse passar por cima dele ('hover')
- Aprender box-sizinh
- Aprender Flexbox
- Aprender Grid

## Habilidade Auxiliar: Front-end
- [ ] **HTML - Fundamentos**:
- Aprender quais tags são necessárias para um HTML básico
- Criar um parágrafo de texto
- Exibir uma imagem
- Conhecer a diferença entre 'h1', 'h2', 'h3', etc
- Criar um texto com hyperlink
- Criar um formulário com campos relevantes
- Criar uma lista de itens ordenada ou não ordenada
- Criar uma lista de itens dentro de uma lista suspensa (dropdown list)
- Conectar com um arquivo de CSS
- Criar uma tabela
- Adicionar IDs e classes
- [ ] **JavaScript - Fundamentos**:
- Conhecer os tipos primitivos
- Declarar variáveis, considerando a diferença entre 'var', 'let' e 'const'
- Usar estruturas condicionais ('if', 'else')
- Conhecer os operadores de comparação ('=', '==', '===')
- Usar estruturas de repetição e laços ('while', 'for')
- Usar funções, passando parâmetros e argumentos
- Manipular arrays e listas
- Aprender o conceito de Orientação a Objetos
- Fazer um CRUD
- Obter dados de uma API
- Fazer chamadas assíncronas usando 'Async/Await', 'Promise', etc
- [ ] **CSS - Fundamentos**:
- Aprender a estrutura visual de uma página, com 'margin' e 'padding'
- Estabelecer o tamanho com 'width' e 'height'
- Aprender sobre a posição de um elemento ('static', 'relative' ou 'absolute)
- Aprender sobre o 'display' de exibição de um elemento ('block', 'inline', 'inline-block')
- Aprender a posicionar imagens em relação ao texto
- Aprender sobre alinhamento
- Aprender sobre estilo de fontes
- Aprender as diferenças e vantagens de usar as diferentes unidades de medida em CSS (%, relativas, etc)
- Conectar com os elementos (IDs, classes) de um arquivo HTML
- Alterar características de um elemento quando o mouse passar por cima dele ('hover')
- Aprender box-sizinh
- Aprender Flexbox
- Aprender Grid
Loading