Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Este repositório é uma coleção abrangente de materiais de estudo organizados em diversas áreas de ciência da computação e desenvolvimento de software.

License

Notifications You must be signed in to change notification settings

raphaelkaique1/study

Repository files navigation

ROADMAP

COMPUTER SCIENCE: FULL STACK CYCLE

  • Arquitetura de Computadores

    • Componentes de hardware (CPU, memória, dispositivos de armazenamento).
    • Organização de sistemas computacionais.
    • Arquiteturas de processadores.
  • Sistemas Operacionais (Windows, Linux)

    • Funcionamento e gerenciamento de sistemas operacionais e de recursos.
    • Configuração e administração de ambientes Windows e Linux.
    • Virtualização e máquinas virtuais.
  • Conhecimentos de Prompt de Comando/Terminal

    • Uso básico e avançado do prompt de comando/terminal.
    • Navegação e manipulação de arquivos.
    • Automação de tarefas por linha de comando.
    • Scripting em ambientes de linha de comando.
  • Redes de Computadores

    • Fundamentos de redes (TCP/IP, DNS, DHCP).
    • Tipos de redes (LAN, WAN, MAN).
    • Protocolos de comunicação.
    • Configuração e administração de redes locais.
    • Segurança em redes.
  • Lógica de Programação

    • Estruturas condicionais e de repetição.
    • Construção de algoritmos simples e complexos.
    • Manipulação de variáveis, tipos e estruturas de dados.
    • Resolução de problemas computacionais.
  • Estruturas de Dados

    • Arrays, listas, filas, pilhas.
    • Estruturas de dados dinâmicas (árvores, grafos).
    • Algoritmos de ordenação e busca.
    • Operações e manipulações em estruturas de dados.
  • Algoritmos

    • Desenvolvimento e análise de algoritmos.
    • Otimização de algoritmos.
    • Algoritmos de busca, classificação, ordenação e recursividade.
    • Análise de complexidade.
  • Modelagem de Dados

    • Conceitos de modelagem de dados.
    • Estruturação de dados relacionalmente.
    • Modelagem de entidades e relacionamentos.
    • Normalização e desnormalização de esquemas.
  • Consultas Complexas

    • Consultas avançadas com joins, subconsultas e agregações.
    • Otimização de consultas.
  • Normalização e Desnormalização

    • Benefícios e desvantagens de normalizar e desnormalizar.
    • Estratégias de desnormalização quando necessário.
  • MySQL, PostgreSQL, SQLite

    • Características e diferenças entre sistemas de gerenciamento de banco de dados.
    • Configuração e administração básica.
    • Utilização de recursos específicos de cada banco.
  • Conceitos Básicos (Document, Key-Value, Graph)

    • Características e modelos de dados para bancos NoSQL.
    • Utilização de cada tipo em cenários específicos.
    • Comparação e compreensão entre os diferentes tipos de bancos de dados NoSQL.
  • MongoDB, Redis, Neo4j

    • Utilização e configuração de bancos NoSQL específicos.
    • Características e aplicação prática de bancos de dados NoSQL específicos.
    • Modelagem de dados em bancos NoSQL.
  • Continuous Integration e Continuous Deployment (CI/CD)

    • Implementação de pipelines de CI/CD.
    • Integração entre desenvolvimento e operações.
    • Práticas de Continuous Integration e Continuous Deployment (CI/CD).
    • Ferramentas populares como Jenkins, GitHub Actions, GitLab CI/CD.
    • Automação no desenvolvimento e entrega de software.
    • Automação de testes, construção e deploy contínuo.
  • Controle de Versão (Git/GitHub)

    • Versionamento de código com Git para controle de versão.
    • Uso do GitHub (fork e etc).
    • Estratégias de branching.
  • Ambientes Virtuais (venv, virtualenv)

    • Criação e gestão de ambientes virtuais.
    • Isolamento de dependências.
  • Docker e Containers

    • Virtualização de aplicações com Docker.
    • Criação e configuração de containers.
    • Utilização avançada de Docker para criação de ambientes isolados.
    • Orquestração de múltiplos containers com Docker Compose.
  • AWS, Google Cloud, Azure
    • Conhecimento e utilização de serviços oferecidos por plataformas de nuvem.
    • Configuração e escalabilidade em ambientes de nuvem.
  • Prometheus, Grafana
    • Configuração e utilização do Prometheus para monitoramento.
    • Visualização de métricas e dados com Grafana.
  • Protocolos HTTP/HTTPS
    • Funcionamento do protocolo HTTP/HTTPS.
    • Códigos de status e métodos de requisição.
    • Métodos HTTP (GET, POST, etc.).
    • Segurança em comunicações web.
    • Configuração e obtenção de certificados SSL/TLS.
  • HTML5, CSS3, SASS/LESS

    • Estruturação semântica com HTML5.
    • Estilização avançada com CSS3.
    • Pré-processadores CSS (SASS, LESS).
  • Frameworks CSS (Bootstrap, Tailwind)

    • Utilização de frameworks para desenvolvimento ágil e design responsivo.
    • Personalização e extensão de frameworks.
  • Frameworks JavaScript

    • Desenvolvimento de componentes reutilizáveis.
    • Estado e gerenciamento de dados.
    • Integração com APIs.
  • TypeScript

    • Uso de tipos em JavaScript.
    • Tipagem estática e funcionalidades adicionadas ao JavaScript.
    • Migração de projetos JavaScript para TypeScript.
  • Práticas de Segurança em Desenvolvimento Web

    • Identificação e prevenção de vulnerabilidades comuns.
    • Configuração segura de servidores web.
  • Segurança de Rede

    • Estratégias para proteção contra ameaças em redes.
    • Monitoramento e detecção de atividades suspeitas.
  • Criptografia

    • Conceitos de criptografia.
    • Implementação de criptografia em comunicações.
  • OAuth2:

    • Entendimento do protocolo OAuth2.
    • Implementação de autenticação e autorização baseadas em OAuth2.
  • JWT (JSON Web Tokens)

    • Compreensão do formato e funcionamento dos JSON Web Tokens.
    • Utilização de JWT para autenticação.
  • OWASP Top 10

    • Compreensão das principais ameaças de segurança.
    • Estratégias para mitigação.
  • Conceitos e Fundamentos

    • Definição de software para desktop e suas características principais.
    • Compreensão do ciclo de vida de desenvolvimento de software para desktop.
    • Diferenças entre aplicações desktop e aplicações web.
  • C# (Windows Forms, WPF)

    • Windows Forms: Desenvolvimento de interfaces com Windows Forms.
    • WPF (Windows Presentation Foundation): Utilização de recursos avançados para criação de interfaces.
  • C

    • Conhecer a sintaxe e semântica da linguagem
    • Uso e configuração de framework
  • Java (JavaFX, Swing)

    • JavaFX: Desenvolvimento de interfaces modernas e responsivas.
    • Swing: Criação de interfaces gráficas tradicionais em Java.
  • Electron (para desenvolvimento multiplataforma)

    • Utilização do Electron para criar aplicações desktop multiplataforma usando tecnologias web.
  • Integração de APIs para Desktop

    • Consumo de APIs em aplicações desktop.
    • Desenvolvimento de APIs para integração com outras aplicações.
  • Comunicação em Rede

    • Protocolos de comunicação em redes locais e remotas.
    • Configuração e utilização de sockets.
  • WebSocket e Outras Tecnologias

    • Implementação e utilização de WebSocket para comunicação em tempo real.
    • Exploração de outras tecnologias de comunicação avançada.
  • Conceitos de Arquitetura

    • Escolha adequada da arquitetura de acordo com requisitos do projeto.
    • Entendimento e aplicação de arquiteturas como Model-View-Controller (MVC), Model-View-View-Model (MVVM), entre outras.
  • Padrões de Projeto (Design Patterns)

    • Uso de padrões de projeto para reutilização de código e escalabilidade.
    • Escolha adequada de padrões para cenários específicos.
    • Aplicação de padrões de design para resolver problemas recorrentes.
    • Exemplos de Design Patterns comuns: Singleton, Factory, Observer, Strategy.
    • Implementação de padrões como Singleton, Observer, Factory, etc.
    • Utilização de design patterns como ferramenta para estruturar o código.
    • Implementação prática dos padrões em linguagens modernas.
  • Clean Code & more

    • Boas práticas de desenvolvimento de código limpo.
    • Princípios do Clean Code (legibilidade, simplicidade e organização).
    • Nomes descritivos e significado semântico no código.
    • Estruturação adequada de funções e classes.
    • Evitando comentários desnecessários com código autoexplicativo (automentado).
  • Princípios SOLID

    • Single Responsibility Principle (SRP) – Princípio da Responsabilidade Única.
    • Open/Closed Principle (OCP) – Princípio Aberto/Fechado.
    • Liskov Substitution Principle (LSP) – Princípio da Substituição de Liskov.
    • Interface Segregation Principle (ISP) – Princípio da Segregação de Interface.
    • Dependency Inversion Principle (DIP) – Princípio da Inversão de Dependência.
  • Metodologias Ágeis (Agile, Scrum, Kanban)
    • Princípios do Manifesto Ágil.
    • Scrum: papéis, eventos e artefatos.
    • Kanban: fluxo contínuo de desenvolvimento.
    • Benefícios e aplicação no ciclo de vida do software.

Copyright © 2026 Raphael Kaíque Dias Santos

AltStyle によって変換されたページ (->オリジナル) /