Curso Open Source Software Development Linux for Developers

  • DevOps | CI | CD | Kubernetes | Web3

Curso Open Source Software Development Linux for Developers

24 horas
Visão Geral

Este curso oferece uma abordagem prática e aprofundada sobre o desenvolvimento de software em ambientes Linux, com foco em como navegar, utilizar e contribuir para o vibrante ecossistema de software de código aberto. Do ponto de vista técnico, os participantes dominarão as ferramentas essenciais da linha de comando Linux, aprenderão a gerenciar código com Git e GitHub/GitLab, entenderão os processos de compilação e empacotamento de software, e explorarão as práticas recomendadas para depuração e teste. O curso também abordará a cultura do software livre, os modelos de licenciamento e as melhores formas de contribuir para projetos existentes. a proficiência em desenvolvimento em Linux e em código aberto é uma habilidade extremamente valiosa e requisitada no mercado de trabalho atual. Empresas de todos os portes dependem de software livre para suas operações, e a capacidade de interagir, manter e contribuir para esses projetos é um diferencial competitivo. Além de impulsionar a inovação e a colaboração, este curso equipa os desenvolvedores com as ferramentas e a mentalidade necessárias para serem mais produtivos, versáteis e empregáveis, abrindo portas para oportunidades em startups, grandes corporações de tecnologia e comunidades globais de desenvolvimento.

Objetivo

Após realizar este Open Source Software Development: Linux for Developers, você será capaz de:

  • Configurar e otimizar um ambiente de desenvolvimento Linux para software.
  • Dominar as ferramentas essenciais da linha de comando Linux para desenvolvimento e automação.
  • Utilizar eficientemente o Git para controle de versão em projetos de código aberto.
  • Compreender e aplicar os processos de compilação, linkagem e empacotamento de software em Linux.
  • Realizar depuração de código em ambientes Linux usando ferramentas padrão.
  • Identificar, entender e aplicar os principais modelos de licenciamento de software livre.
  • Navegar e interagir com repositórios e comunidades de projetos open source.
  • Preparar e submeter contribuições (patches, pull requests) para projetos de software livre.
  • Aplicar princípios de desenvolvimento colaborativo e boas práticas do ecossistema open source.
Publico Alvo
  • Desenvolvedores de Software: Que desejam aprofundar suas habilidades em ambientes Linux e contribuir para projetos open source.
  • Estudantes de Ciência da Computação e Engenharia de Software: Buscando uma base sólida para desenvolvimento em sistemas Unix-like e participação na comunidade open source.
  • Profissionais de TI: Que querem transitar para o desenvolvimento de software ou aprimorar suas competências em plataformas abertas.
  • Qualquer pessoa: Com noções básicas de programação que aspire a se tornar um contribuidor de software livre.
Pre-Requisitos
  • Conhecimento básico em programação (lógica de programação e familiaridade com alguma linguagem como C, Python ou Java).
  • Noções básicas de como um sistema operacional funciona.
  • Familiaridade com o conceito de linha de comando (terminal), mesmo que em outros sistemas operacionais.
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico

Módulo I: Ambientação Linux para Desenvolvedores (6 horas)

  • 1.1. Configurando o Ambiente de Desenvolvimento Linux (2h)
    • Escolha e instalação de uma distribuição Linux (foco em Ubuntu/Debian ou Fedora).
    • Gerenciamento de pacotes (apt, dnf, yum): instalação e atualização de softwares.
    • Estrutura de diretórios padrão do Linux (FHS).
    • Shells de comando (Bash) e personalização.
    • Prática: Instalação da distribuição, configuração de ambiente, primeiros comandos.
  • 1.2. Dominando a Linha de Comando Essencial (2h)
    • Navegação e manipulação de arquivos e diretórios (ls, cd, cp, mv, rm, mkdir).
    • Comandos para gerenciamento de processos (ps, top, kill).
    • Redirecionamento de E/S (<, >, >>, |) e pipes.
    • Permissões de arquivos e usuários (chmod, chown, sudo).
    • Prática: Exercícios práticos com scripts de shell simples.
  • 1.3. Ferramentas Essenciais do Desenvolvedor Linux (2h)
    • Editores de texto no terminal (Vim/Nano - introdução).
    • Utilitários de busca e filtragem (grep, find, awk, sed).
    • Gerenciamento de pacotes para desenvolvimento (build-essentials, libs dev).
    • Prática: Usar grep e find para explorar código fonte, criar scripts de automação.

Módulo II: Controle de Versão e Colaboração com Git (6 horas)

  • 2.1. Fundamentos do Git para Desenvolvimento (2h)
    • O que é Git e por que é essencial para o desenvolvimento open source.
    • Conceitos básicos: repositório, commit, branch, merge.
    • Configuração do Git, inicialização de repositórios locais.
    • Ciclo de vida de um arquivo no Git (untracked, modified, staged, committed).
    • Prática: Criar um repositório local, fazer commits, inspecionar histórico.
  • 2.2. Colaboração em Projetos Open Source com Git Remoto (2h)
    • Conceitos de repositórios remotos (GitHub, GitLab, Bitbucket).
    • Clonando, puxando (pull), enviando (push) alterações.
    • Trabalhando com branches: criação, troca, fusão (merge), rebase.
    • Resolução de conflitos de merge.
    • Prática: Clonar um projeto open source, criar um branch, fazer alterações e tentar um merge.
  • 2.3. Fluxos de Trabalho Open Source e Contribuição (2h)
    • Forking Workflow vs. Feature Branch Workflow.
    • Pull Requests (PRs) / Merge Requests (MRs): criação, revisão e boas práticas.
    • Etiqueta e comunicação em projetos open source.
    • Prática: Criar um fork de um projeto de exemplo no GitHub/GitLab, fazer uma alteração e submeter um Pull Request.

Módulo III: Compilação, Depuração e Licenças (6 horas)

  • 3.1. Compilação e Build Systems em Linux (2.5h)
    • Compilação de código C/C++ com GCC/Clang: pré-processamento, compilação, montagem, linkagem.
    • Bibliotecas estáticas vs. dinâmicas.
    • Introdução ao Make e Makefiles: automação do processo de build.
    • Introdução ao CMake: ferramenta para projetos maiores e multiplataforma.
    • Prática: Compilar um projeto C/C++ simples usando GCC e Makefile/CMake.
  • 3.2. Depuração e Teste de Software (2.5h)
    • Conceitos de depuração e a importância em software complexo.
    • Usando GDB (GNU Debugger) para depurar aplicações em C/C++.
    • Ferramentas de análise de memória (Valgrind - introdução).
    • Escrevendo testes unitários básicos (introdução a frameworks como Google Test, Catch2).
    • Prática: Depurar um programa C/C++ com GDB para encontrar e corrigir um bug simples.
  • 3.3. Licenças de Software Livre e Direitos Autorais (1h)
    • O que são licenças open source e por que são importantes.
    • Tipos de licenças: Permissivas (MIT, Apache) vs. Copyleft (GPL).
    • Implicações legais e de uso para desenvolvedores e empresas.
    • Como escolher uma licença para seu próprio projeto open source.

Módulo IV: Contribuição Avançada e Boas Práticas (6 horas)

  • 4.1. Ferramentas e Processos para Contribuição (2h)
    • Revisão de código e feedback construtivo.
    • Gerenciamento de issues e bugs.
    • Padrões de commits e mensagens de commit.
    • Trabalhando com rebase para histórico limpo.
    • Prática: Resolver um "good first issue" de um projeto de exemplo, focando na qualidade do commit e PR.
  • 4.2. Documentação e Automação para Projetos Open Source (2h)
    • A importância da documentação (READMEs, Wikis, Godocs, Sphinx).
    • Integração Contínua (CI) e Entrega Contínua (CD) em projetos open source (GitHub Actions, GitLab CI/CD - conceitos básicos).
    • Testes automatizados e linting.
    • Prática: Adicionar documentação básica a um projeto, configurar um CI simples.
  • 4.3. Cultura Open Source e Desenvolvimento de Carreira (2h)
    • Ética e responsabilidade na comunidade open source.
    • Networking e construção de reputação.
    • Monetização e sustentabilidade no open source.
    • Como usar contribuições open source para impulsionar a carreira.
    • Discussão: Casos de sucesso e desafios no desenvolvimento open source.
TENHO INTERESSE

Cursos Relacionados

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso FOCUS FinOps Introduction

8 horas

FOCUS (FinOps Open Cost and Usage Specification) Deep Dive

24 horas

Curso Microsoft MD-102T00 Microsoft 365 Endpoint Administrator

32 horas Curso Pratico

Curso Standardizing Cloud Billing Data using FOCUS

24 horas