My Preparation Journey for GitHub Fundamentals Certification

DevOps GIT Methodologies

This month, I achieved the GitHub Fundamentals certification, and in this article, I want to share how I did it, what new things I learned, and what I didn’t know before but wish I had known earlier so I could have implemented it sooner.

Romina Mendez https://example.com/norajones
2024-08-20

This month, I achieved the “GitHub Fundamentals” certification, and in this article, I want to share how I did it, what new things I learned, and what I didn’t know before but wish I had known earlier so I could have implemented it sooner.

What is the GitHub Platform?

The GitHub platform is a cloud-based solution built on Git, a version control system. It facilitates collaboration and project management through a range of features and AI-powered tools, enabling efficient software development, while ensuring quality and secure deployment.

Image description

Some features we can highlight are as follows:


🟠 GitHub Functionalities & Products

As mentioned initially, this post is intended to discuss what you need to know in order to pass the certification exam. Below, we have an image that represents each of the described entities and the topics you should study to successfully pass the certification exam, which consists of ✏️ 75 multiple-choice questions.

This mental map represents how I organized the key concepts needed to prepare for the certification, following the GitHub Foundation Learning Path, which I will explain next.

Image description

🟠 GitHub Foundations Learning Path

In order to effectively study and understand all the essential content for the certification, I completed the ‘GitHub Foundations Learning Path’ provided by Microsoft Learn. This path consists of 15 modules, totaling approximately ⌛ 10 hours, with each module averaging about ⌛ 35 minutes. The journey combines 📚 theoretical knowledge with ✏️hands-on exercises, enabling me to effectively learn and apply the concepts.

Practices with GitHub Actions

The modules include ✏️ hands-on exercises solved in stages, using GitHub Actions to validate each step of the process. This inspired me to develop similar tutorials for future posts.

Interactive Console

Some modules, such as the first one, offer an interactive console that facilitates executing typical Git commands, further enhancing the learning experience.

Knowledge Check

Each unit includes a set of ✏️questions to validate what has been learned, similar to those found on the exam. > 🙌 I recommend completing and reviewing these questions to consolidate the knowledge acquired.


🟠 Overview of Units

With the foundational concepts established, I will now delve into a detailed description of each unit. Below, you will find explanations of the key elements and tools I studied, and how I organized them to effectively prepare for the certification.


🟠 Code Management

Code management on GitHub is essential for productivity and effective collaboration within development teams. Below are the key tools that facilitate this management:

Image description

📁 Repository

The repository is the core component of a project on GitHub, which is where the source code, along with its version history, documentation, and other relevant resources for the project, is stored.


🔄 Pull Requests

Pull Requests (PRs) are a fundamental tool for collaboration on GitHub. They allow developers to propose changes to the source code, which can then be reviewed and discussed by other team members before being merged into the base code.

Pull Request States It is important to understand the possible states of a Pull Request (PR) on GitHub, which can be: * Draft: PRs in draft status are still in development and not yet ready for formal review. This state allows collaborators to work on a proposal before requesting official feedback. * Open: Open PRs are ready and available for review and discussion by project collaborators. This is where proposed changes are evaluated before deciding whether to integrate them into the base code. * Closed: Closed PRs have not been accepted and therefore will not be merged into the project’s base code. This state may indicate that the proposal was rejected or that the author decided not to proceed with it. * Merged: Merged PRs have been accepted, and the proposed changes have been successfully integrated with the main branch of the project. This is the final state of a successful PR.

### 🔧 Issues
Issues are tracking tickets used to report bugs, suggest improvements, or discuss new features. They are essential for planning and organizing work within a project, allowing teams to prioritize tasks and track progress.

💬 Discussions

Discussions on GitHub provide a space where collaborators can engage in broader conversations about the project. These discussions can be organized into several categories:


📁 Gists

Gists are a simple way to share snippets of code or text. They can be public, accessible to anyone, or private, visible only to the creator or those with whom the link is shared. Gists are useful for quickly sharing code examples, notes, or scripts among collaborators or with the broader community.


## 🟠 Accounts This is one of the topics where you may encounter questions, and within the recommended learning path, you can find three types of accounts:

Image description

Additionally, the existing plans are:


🟠 Methodologies

I’ve titled this section “Methodologies” because throughout different chapters of the learning path, I encountered several methodologies that you need to learn. Therefore, I decided to group them all under the same concept.

⚠️ Remember that this is my approach to studying for the certification, and you might find that the learning path or other resources refer to these methodologies differently.

Image description

Image description > source: Identify where you can help

Image description > source: Identify where you can help


🟠 Communication

Communication within a repository is essential and encompasses the detailed documentation of objectives, changes, methodologies, and rules to be applied. Below are the main tools and practices that facilitate this communication:

Image description

📝 Markdown

Markdown is a markup language that provides a simple and efficient way to format and style content in issues, README files, wikis, and any other textual documentation within a repository.

If you’re not familiar with Markdown, I recommend checking out the DataCamp CheatSheet, which summarizes everything you need to get started. Additionally, within the chapter, there’s an exercise titled “Exercise - Communicate using Markdown” that will allow you to apply and reinforce your practice using markdown.

Image description > source: DataCamp CheatSheet


🟠 Products

I have titled this section “Products” as it includes two chapters dedicated to two key products. One of these products leverages AI, while the other focuses on enhancing productivity.

Image description

🚀 GitHub Copilot

GitHub Copilot is an AI-powered assistance tool for developers. Its main features include:

🚀 GitHub Codespaces

GitHub Codespaces provides configurable development environments in the cloud, built on Docker container. Therefore every each Codespace operates within a 🐋 Docker container hosted on GitHub. Also, this container includes all the necessary tools and settings for your project, ensuring a consistent and reproducible environment for all project contributors.

Here’s an overview of the key functionalities and states of a Codespace:


🟠 Project

GitHub has introduced new types of projects that significantly enhance productivity and project management. While previously existing projects focused primarily on code management, the new GitHub Projects integrate key elements that allow you to manage not only the code but also the broader aspects of project management within a single tool.

This new approach aims to streamline workflows, provide more comprehensive tracking, and improve collaboration. It’s important to note that there may be questions about the differences between the previous project types and these new ones. In the following sections, I’ll highlight the functionalities and benefits of the new project types, helping you understand how they differ from the old ones and how they can be utilized to optimize project management.

Image description

📋 View

In GitHub Projects, tasks are represented as issues and can include key details such as title, description, assignee, start date, and complexity. These issues can be customized with various field types like text, number, date, single selection (for dropdown lists), or iteration to better suit your needs.

The types of views that can be generated are:

Image description
Image description
Image description

### 📊 Insights Insights in Projects allows you to visualize, create, and customize charts using the elements added to your Project as data sources. When creating a chart, you can define filters, the type of chart, and the information to be displayed. The generated charts are available to anyone with access to the Project.

These charts enable you to analyze and manage the project, enhancing your ability to plan, control, and assess the project’s progress.

Image description

🤖 Task Automation

Task automation on GitHub is important for improving efficiency and consistency in project management. The following are the key tools that facilitate this automation:


🟠 Security

Security is a fundamental aspect within GitHub, which provides a range of tools and best practices to enhance security in software development.

Image description

🔐 Authentication & Access Controls

Access to your GitHub account can be enhanced with advanced authentication methods that validate user identity more securely. * SAML SSO Authentication: Allows user authentication through a centralized Identity Provider (IdP), enhancing security and access control. * Multifactor Authentication (2FA): Adds an extra layer of security through two-step authentication, which may include physical security keys and time-based one-time password (TOTP) applications.


⚠️ Vulnerability Alerts

GitHub offers vulnerability alerts to help you identify and address security issues in your repositories.

Image description > source:Automated security

📊 Reporting

🚀 Best Practices


🟠 Types of Search on GitHub

On GitHub, you can use advanced search to efficiently navigate repositories, find issues, review pull requests, and join discussions. Here are some practical examples to enhance your search capabilities and collaboration on projects:

Image description

Search Examples

🔎 Repositories

topic:machine-learning stars:>1000

🔎 Issues in a Specific Repository

repo:r0mymendez/datapp is:issue is:closed

🔎 Issues with Labels and Status

is:issue language:python is:open label:help-wanted

🔎 Pull Requests

is:pr review-requested:@m

🔎 Discussions

in:discussions is:open language:python

Issues with Specific Combinations

topic:machine-learning stars:>1000 is:issue label:help-wanted language:python is:open

🟠 Summary

Image description

📚 References

The following references were used to create this article, with the first being the primary resource and the other materials were utilized to practice and simulate the exam.

  1. GitHub Foundations Learning Path: GitHub Foundations Learning Path
  2. GitHub Foundations Practice Test: Contains a series of multiple-choice questions for exam simulation. GitHub Foundations Practice Test
  3. Study Guide GitHub Foundations: A PDF guide for studying and preparing for the exam. Study Guide GitHub Foundations
  4. GitHub Foundations Certification – Exam Prep Guide: This is a post in FreeCodeCamp blog and it is content very helpful, and this post provides a good summary of everything you should know for exam preparation. GitHub Foundations Certification – Exam Prep Guide

Reuse

Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".

Citation

For attribution, please cite this work as

Mendez (2024, Aug. 20). Romina Mendez: My Preparation Journey for GitHub Fundamentals Certification. Retrieved from https://r0mymendez.github.io/posts_en/2024-08-20-my-preparation-journey-for-github-fundamentals-certification/

BibTeX citation

@misc{mendez2024my,
  author = {Mendez, Romina},
  title = {Romina Mendez: My Preparation Journey for GitHub Fundamentals Certification},
  url = {https://r0mymendez.github.io/posts_en/2024-08-20-my-preparation-journey-for-github-fundamentals-certification/},
  year = {2024}
}